# OpenDSL Parser **Repository Path**: opendsl/opendsl-parser ## Basic Information - **Project Name**: OpenDSL Parser - **Description**: 语法解析:词法和句法 实现功能:输入语法文件和代码,返回JSON格式的AST - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2022-01-09 - **Last Updated**: 2023-09-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OpenDSL Parser #### 介绍 语法解析:词法和句法 实现功能:输入语法文件和代码,返回JSON格式的AST 目前使用antlr,支持生成Java和JavaScript,最初是使用Java,但是发现Java编译耗时2秒左右,会涉及两次编译,整体耗时5秒, 后面改为JavaScript,解释执行模式,最多耗时2秒,耗时大大降低 整体流程:传入g4语法文件和代码文件code.dsl,把g4用antlr命令生产解析文件,然后用解析文件解析code.dsl,生产JSON格式的AST 需要提前安装antlr,或则下载antlr的jar包,编写shell脚本,java -jar 的方式执行 一个特别坑的地方:linux和macos参数加引号的规则不一样,linux是全部参数一起加引号,macos是每个参数加引号,这个坑排查了许久,详情见: opendsl-parser/opendsl-parser-antlr/runtime/javascript/gen.sh