这是 antlr 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
antlr - 另一个语言识别工具
句法
蚂蚁 [选项] 语法文件
商品描述
蚂蚁 将上下文无关文法的扩展形式转换为一组 C 函数
直接实现一种有效形式的确定性递归下降 LL(k) 解析器。
上下文无关文法可以用谓词进行扩充以允许语义影响
解析; 这允许一种形式的上下文敏感的解析。 选择性回溯也是
可用于处理非 LL(k) 甚至非 LALR(k) 构造。 蚂蚁 还产生一个
可以自动转换为基于 DFA 的 C 代码的词法分析器的定义
词法分析器 dg。 因此, 蚂蚁 提供的功能很像 雅克,然而,它是
尤其是更加灵活,并且与词法分析器生成器更加集成(蚂蚁 直接
产生 dg 代码,而 雅克 和 法 给出了独立的描述)。 不像 雅克
接受 拉尔比(1) 语法, 蚂蚁 接受扩展 BNF 符号中的 LL(k) 文法——
这消除了对优先规则的需要。
喜欢 雅克 语法, 蚂蚁 语法可以使用自动维护的符号属性
作为美元变量引用的值。 此外,由于 蚂蚁 生成自顶向下的解析器,
可以从父规则继承任意值(像函数参数一样传递)。
蚂蚁 还具有创建和操作抽象语法树的机制。
还有各种其他的细节 蚂蚁,包括传播一种语法的能力
在单个文件中的多个文件甚至多个语法上,能够生成一个
删除了动作的语法版本(用于文档目的),以及很多
更多。
配置
-ck n 最多使用 n 使用压缩时的前瞻符号(线性近似)
展望。 这种类型的前瞻计算成本非常低,并且在之前就已尝试过
完整的 LL(k) 前瞻,在最坏的情况下具有指数复杂性。 在
一般来说,压缩的前瞻可以比完整的前瞻更深(例如,-ck 10)
前瞻(通常必须小于 4)。
-CC 从 ANTLR 和 DLG 生成 C++ 输出。
- 铬 为所有规则生成交叉引用。 对于每个规则,打印所有其他规则的列表
引用它的规则。
-e1 以低细节显示的歧义/错误(默认)。
-e2 更详细地显示了歧义/错误。
-e3 以令人难以忍受的细节显示的歧义/错误。
-信仰 文件
重命名 错误.c 归档。
-fh 文件
重命名 标准件.h 标题(打开 -gh) 归档。
-fl 文件
重命名词法输出, 解析器.dlg, 归档。
-调频 文件
使用词法模式定义重命名文件, 模式.h, 归档。
-fr 文件
重命名重新映射全局可见符号的文件, 重映射文件, 归档。
英尺 文件
重命名 令牌.h 归档。
到 生成 ANSI 兼容代码(默认情况)。 这个没有经过严格测试
符合 ANSI XJ11 C,但它很接近。 正常输出 蚂蚁 is
目前可以在 K&R、ANSI C 和 C++ 下编译——这个选项什么都不做
因为 蚂蚁 生成一堆#ifdef 来做正确的事情取决于
语言。
-GC 表示 蚂蚁 不应该生成 C 代码,即只对
语法。
-gd C 代码被插入到每个 蚂蚁 生成的解析函数来提供
用户定义的详细解析跟踪处理。 插入的代码包括
调用用户提供的宏或函数 跟踪素 和 跟踪输出.
唯一的论据是 坦克 * 指向一个 C 风格的字符串,它是语法
当前解析函数识别的规则。 如果没有给出定义
跟踪功能,在规则进入和退出时,将打印一条消息,指示
进入或退出特定规则。
-ge 为每个非终端生成一个错误类。
-gh 产生 标准件.h 用于包含非 ANTLR 生成的文件。 该文件包含
描述由生成的解析器类型所需的所有定义 蚂蚁 (例如多少
使用前瞻以及是否构造树)并包含 头
用户指定的操作。
-gk 生成延迟前瞻提取直到需要的解析器。 如果没有这个选项,
蚂蚁 生成始终具有的解析器 k 可用的前瞻令牌。
-gl 在表单的 C 解析器中生成有关语法操作的行信息 # 线 "文件"
这使得来自 C/C++ 编译器的错误消息更有意义,因为它们将
指向语法文件而不是生成的 C 文件。 调试也更容易,
因为您将逐步完成语法而不是 C 文件。
-gs 不要为标记表达式列表生成集合; 而是生成一个 ||-分隔
的顺序 LA(1)==令牌号. 默认是生成集合。
-gt 为抽象语法树生成代码。
-gx 不要创建词法分析器文件(与 dlg 相关)。 这个选项应该是
当用户希望提供定制的词法分析器时给出。 它也可能
用于 使 脚本导致仅在发生更改时重新构建解析器
影响词法结构的因素是对输入文法的影响。
-k n 将 LL(k) 的 k 设置为 n; 即设置前瞻标记(默认== 1)。
-o dir 输出文件所在的目录(默认=“.”)。 这非常适合
保持源目录中没有 ANTLR 和 DLG 生成。
-p 完整的语法,从所有输入语法文件中收集并剥离所有
评论和嵌入的动作,被列为 标准输出. 这是为了帮助
将整个语法视为一个整体并消除保持动作的需要
简明扼要地陈述,以便语法更容易阅读。 因此,最好是
甚至将复杂的动作直接嵌入到语法中,而不是将它们称为
子程序,因为将节省子程序调用开销。
-pa 此选项与 -p 除了输出用第一个注释
从语法分析确定的集合。
-中华人民共和国 on
打开谓词上下文的计算和提升。
-中华人民共和国 折扣
关闭谓词上下文的计算和提升。 此选项使 1.10
行为类似于 1.06 版本的选项 -公关 在。 上下文计算关闭
默认。
-rl n 将语法分析使用的最大树节点数限制为 n.
偶尔, 蚂蚁 无法分析用户提交的语法。 这个
罕见的情况只会发生在语法较大且前瞻量较大的情况下
大于一。 PCCTS 使用非线性分析算法来处理
LL(k) 解析的一般情况。 然而,分析的平均复杂度是
由于实施中的一些花哨的步法而接近线性,这减少了
对完整 LL(k) 算法的调用次数。 将显示错误消息,
如果达到此限制,则表明正在分析的语法结构
蚂蚁 达到非线性。 使用此选项,如果 蚂蚁 好像出去吃午饭
您的磁盘开始抖动; 尝试 n=10000 开始。 一旦违规构造
已确定,尝试消除歧义 蚂蚁 试图克服
大型前瞻分析。 的简介 (...)? 回溯块
消除了其中的一些问题—— 蚂蚁 不分析开始的替代方案
和 (...)? (如有必要,它只是在运行时回溯)。
-w1 设置低警告级别。 如果语义谓词和/或 (...) 不警告? 块是
假定涵盖模棱两可的替代方案。
-w2 即使语义谓词或 (...),模棱两可的解析决策也会产生警告?
块被使用。 警告如果谓词上下文计算和语义谓词
不完全消除替代产品的歧义。
- 从标准输入读取语法并生成 标准输入 作为解析器文件。
特别 注意事项
蚂蚁 有效......我们认为。 没有任何隐含的保证。 我们保留没有
法律 对称为 Purdue Compiler Construction Tool Set (PCCTS) 的软件的权利 —
PCCTS 属于公共领域。 个人或公司可以为所欲为
与 PCCTS 一起分发的源代码或由 PCCTS 生成的代码,包括
将 PCCTS 或其输出纳入商业软件。 我们鼓励用户
使用 PCCTS 开发软件。 但是,我们确实要求将信用归功于我们的开发
PCCTS。 通过“信用”,我们的意思是如果您将我们的源代码合并到您的
您承认这一点的程序(商业产品、研究项目或其他)
事实上在文档、研究报告等的某处......如果你喜欢 PCCTS 并且有
开发了一个很好的输出工具,请提及您使用 PCCTS 开发它。
只要遵循这些指导方针,我们就会继续加强这个系统,并
期望在其他工具完成时提供它们。
使用 onworks.net 服务在线使用 antlr