在语法文件上调用 ANTLR 翻译器生成器。
要使用 ANTLR 任务,请将 target 属性设置为要处理的语法文件的名称。 此外,您还可以设置 outputdirectory 将生成的输出文件写入到特定目录。 否则,ANTLR 会将生成的输出文件写入到包含语法文件的目录。
此任务仅在语法文件(或由 glib 属性指定的超语法)比生成的输出文件更新时才会调用 ANTLR。
注意:此任务依赖于 Apache Ant 分发版中未包含的外部库。 有关更多信息,请参见 库依赖项。
Antlr 2.7.2 注意:您将需要 antlrall.jar,它可以通过下载提供的 Makefile 中的 antlr-all.jar
目标创建。
属性 | 描述 | 必需 |
---|---|---|
target | 要处理的语法文件。 | 是 |
outputdirectory | 要将生成的输出文件写入到的目录。 | 否;默认为包含语法文件的目录 |
glib | 目标语法覆盖的可选超语法文件。 此功能仅在需要高级词汇表时才需要。 | 否 |
debug | 当设置为 yes时,此标志会向生成的解析器添加代码,该代码将在调用时启动 ParseView 调试器。 注意:ParseView 是一个单独的组件,需要安装,否则您的语法将出现编译错误。 |
否;默认值为 no |
html | 如果设置为 yes,则会生成语法文件的 HTML 版本,其中包含超链接的动作。 |
否;默认值为 no |
diagnostic | 如果设置为 yes,则会生成一个包含基于目标语法的调试信息的文本文件。 |
否;默认值为 no |
trace | 如果设置为 yes,则强制所有规则调用 traceIn/traceOut。 |
否;默认值为 no |
traceParser | 如果设置为 yes,则仅强制解析器规则调用 traceIn/traceOut。 |
否;默认值为 no |
traceLexer | 如果设置为 yes,则仅强制词法分析器规则调用 traceIn/traceOut。 |
否;默认值为 no |
traceTreeWalker | 如果设置为 yes,则仅强制树遍历器规则调用 traceIn/traceOut。 |
否;默认值为 no |
dir | 要调用 JVM 的目录。 | 否 |
此任务支持嵌套的 <classpath>
元素,它表示 路径状结构。 如果您必须指定原始 ANTLR 目录,则将其作为便利提供。 在大多数情况下,将适当的 ANTLR jar 文件放到正常的 Ant lib 存储库中就足够了。
可以通过嵌套的 <jvmarg>
属性将其他参数传递给新的 JVM,例如
<antlr target="..."> <jvmarg value="-Dfoo=bar"/> ... </antlr>
将在没有 JIT 的 JVM 中运行 ANTLR。
<jvmarg>
允许 命令行参数 中描述的所有属性。
在语法文件 etc/java.g 上调用 ANTLR,并将生成的输出文件写入到 build/src
<antlr target="etc/java.g" outputdirectory="build/src"/>