ANTLR

描述

在语法文件上调用 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

可以通过嵌套的 <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"/>