英语法语西班牙文

OnWorks 网站图标

antlr - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 antlr

这是 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


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad