yaccplan9 - 云端在线

这是 yaccplan9 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


yacc - 又一个编译器-编译器

概要


雅克 [ 选项 ... ] 语法

商品描述


Yacc 将上下文无关的语法和翻译代码转换为一组表
LR(1) 解析器和翻译器。 语法可能有歧义; 指定的优先规则是
用来打破歧义。

输出文件, y.tab.c, 必须由 C 编译器编译生成程序 这
程序必须加载词法分析器函数, yylex(空) (通常由
(1)), 与 主要(整数 argc, 坦克 *argv[]) 程序,并带有错误处理例程,
yyerror(字符*).

选项是

-o 产量 直接输出到指定文件而不是 y.tab.c.

-Dn 创建文件 y.调试,包含诊断消息。 将它们纳入
解析器,用预处理器符号编译它 调试 定义。 大量的
解析器的诊断输出由值调节 n. 值 0 报告
错误; 1 报告减少; 更高的值(最多 4 个)包含更多信息
关于状态转换。

-v 创建文件 y.输出,包含解析表的描述和
由语法中的歧义引起的冲突。

-d 创建文件 y.tab.h,含有 #定义 关联的陈述 雅克-分配
带有用户声明的“令牌名称”的“令牌代码”。 将其包含在源文件中
以外 y.tab.c 以访问令牌代码。

-s 更改文件名的前缀 y.tab.c, y.tab.h, y.调试y.输出
.

-S 编写一个使用 Stdio 而不是 打印 libc 中的例程。

-l 在生成的解析器中禁用 #line 指令。

-a 生成一个解析器,它接受一个 Yyarg 类型的参数并传递这个参数
对词法分析器函数 yylex 的每次调用。 Yyarg 包含每个实例
state 和一个用户可见的成员,arg,类型为 void*。

的规格 雅克 本身本质上与 UNIX 版本中描述的相同
下面提到的参考资料。 除了 -D 选项,主要的相关区别是:

C环境的接口默认是通过 而非
;的 -S 选项颠倒了这一点。

解析器接受 UTF 输入文本(请参阅 utf(7)),它有几个效果。
一、返回值 yylex() 不再适合 ; 二、起点
非终端的值现在是 0xE000 而不是 257。

生成的解析器可以递归:动作可以调用 yy解析,例如
实施一种 的#include 口译员中的陈述。

最后,解析器的一些未记录的内部工作已被更改,其中
可能会影响对其结构了解太多的程序。

使用 onworks.net 服务在线使用 yaccplan9



最新的 Linux 和 Windows 在线程序