【文件属性】:
文件名称:java鼠标监听器源码-interpreter:C程序声明部分的解释器
文件大小:78KB
文件格式:ZIP
更新时间:2021-06-05 16:40:44
系统开源
java鼠标监听器源码口译员
C
程序声明部分的解释器
我们将使用
2
种语言工具:Lex
和
Yacc(或
flex
和
bison)来实现这一点。
LEX文件
lex
文件有
3
个主要部分,由“双百分号”分隔。
第一部分是封装在“百分比大括号”中的较难文件和函数定义的列表。
第二部分是可接受的标记列表,最后部分是一些
C
用户定义的函数。
y.tab.h由
Yacc
生成,它定义了我们在这里提到的令牌列表。
在下一节中,我们从定义数据类型标记开始。
尽管
struct
可以被视为数据类型标记,但由于其独特的语法,我们将其单独视为STRUCT标记。
然后我们定义单个字符标记。
我们还定义了字符、整数和浮点值。
从这里开始,我们开始对
Array_identifiers、标识符和字符串变得更加通用。
当遇到换行符(在本例中为\n
)时,
yylineno会递增。
yylineno跟踪输入
C
文件中的行号。
我们只是忽略任何其他标记。
这是如何工作的。
遇到的标记存储在名为yytext的变量中。
它与这些可接受的令牌格式列表从上到下进行比较。
第一次找到匹配项时,会执行右侧的相应代码
【文件预览】:
interpreter-master
----y.tab.c(60KB)
----sample(145B)
----output(34KB)
----y.tab.h(3KB)
----LICENSE(1KB)
----README.md(8KB)
----HeaderFiles()
--------.DS_Store(6KB)
--------langFunctions.h(2KB)
--------validators.h(2KB)
----semantics.l(2KB)
----lex.yy.c(49KB)
----syntax2.y(6KB)
----GUI_Program()
--------output(34KB)
--------src()
--------bin()
--------.classpath(295B)
--------.DS_Store(6KB)
--------.settings()
--------.project(375B)