状态I0:
产生式打点项目:
S -> · statements
statements -> · statements M statement
statements -> ·
GOTO状态转换:
GOTO(0,statements)=1
状态I1:
产生式打点项目:
S -> statements ·
statements -> statements · M statement
M -> ·
GOTO状态转换:
GOTO(1,M)=2
状态I2:
产生式打点项目:
statements -> statements M · statement
statement -> · selectionStatement
statement -> · whileStatement
statement -> · compoundStatement
statement -> · expressionStatement
selectionStatement -> · if ( T ) M statement
selectionStatement -> · if ( T ) M statement N else M statement
whileStatement -> · while M ( T ) M statement
compoundStatement -> · { declaration statements }
expressionStatement -> · expression ;
expressionStatement -> · ;
expression -> · assignmentExp
expression -> · expression , assignmentExp
assignmentExp -> · logicalOrExp
assignmentExp -> · ID = logicalOrExp
logicalOrExp -> · logicalAndExp
logicalOrExp -> · logicalOrExp || M logicalAndExp
logicalAndExp -> · equalityExp
logicalAndExp -> · logicalAndExp && M equalityExp
equalityExp -> · relationalExp
equalityExp -> · equalityExp == relationalExp
equalityExp -> · equalityExp != relationalExp
relationalExp -> · additiveExp
relationalExp -> · relationalExp < additiveExp
relationalExp -> · relationalExp <= additiveExp
relationalExp -> · relationalExp > additiveExp
relationalExp -> · relationalExp >= additiveExp
additiveExp -> · multiplicativeExp
additiveExp -> · additiveExp + multiplicativeExp
additiveExp -> · additiveExp - multiplicativeExp
multiplicativeExp -> · unaryExp
multiplicativeExp -> · multiplicativeExp * unaryExp
multiplicativeExp -> · multiplicativeExp / unaryExp
unaryExp -> · primaryExp
unaryExp -> · - primaryExp
unaryExp -> · + primaryExp
primaryExp -> · ID
primaryExp -> · constant
primaryExp -> · ( expression )
constant -> · integer
constant -> · character
GOTO状态转换:
GOTO(2,()=26
GOTO(2,+)=24
GOTO(2,-)=23
GOTO(2,;)=12
GOTO(2,ID)=15
GOTO(2,additiveExp)=19
GOTO(2,assignmentExp)=13
GOTO(2,character)=28
GOTO(2,compoundStatement)=6
GOTO(2,constant)=25
GOTO(2,equalityExp)=17
GOTO(2,expression)=11
GOTO(2,expressionStatement)=7
GOTO(2,if)=8
GOTO(2,integer)=27
GOTO(2,logicalAndExp)=16
GOTO(2,logicalOrExp)=14
GOTO(2,multiplicativeExp)=20
GOTO(2,primaryExp)=22
GOTO(2,relationalExp)=18
GOTO(2,selectionStatement)=4
GOTO(2,statement)=3
GOTO(2,unaryExp)=21
GOTO(2,while)=9
GOTO(2,whileStatement)=5
GOTO(2,{)=10
状态I3:
产生式打点项目:
statements -> statements M statement ·
GOTO状态转换:
状态I4:
产生式打点项目:
statement -> selectionStatement ·
GOTO状态转换:
状态I5:
产生式打点项目:
statement -> whileStatement ·
GOTO状态转换:
状态I6:
产生式打点项目:
statement -> compoundStatement ·
GOTO状态转换:
状态I7:
产生式打点项目:
statement -> expressionStatement ·
GOTO状态转换:
状态I8:
产生式打点项目:
selectionStatement -> if · ( T ) M statement
selectionStatement -> if · ( T ) M statement N else M statement
GOTO状态转换:
GOTO(8,()=29
状态I9:
产生式打点项目:
whileStatement -> while · M ( T ) M statement
M -> ·
GOTO状态转换:
GOTO(9,M)=30
状态I10:
产生式打点项目:
compoundStatement -> { · declaration statements }
declaration -> · typeSpecifier initDeclarator ; declaration
declaration -> · typeSpecifier ;
declaration -> ·
typeSpecifier -> · int
typeSpecifier -> · char
GOTO状态转换:
GOTO(10,char)=34
GOTO(10,declaration)=31
GOTO(10,int)=33
GOTO(10,typeSpecifier)=32
状态I11:
产生式打点项目:
expressionStatement -> expression · ;
expression -> expression · , assignmentExp
GOTO状态转换:
GOTO(11,,)=36
GOTO(11,;)=35
状态I12:
产生式打点项目:
expressionStatement -> ; ·
GOTO状态转换:
状态I13:
产生式打点项目:
expression -> assignmentExp ·
GOTO状态转换:
状态I14:
产生式打点项目:
assignmentExp -> logicalOrExp ·
logicalOrExp -> logicalOrExp · || M logicalAndExp
GOTO状态转换:
GOTO(14,||)=37
状态I15:
产生式打点项目:
assignmentExp -> ID · = logicalOrExp
primaryExp -> ID ·
GOTO状态转换:
GOTO(15,=)=38
状态I16:
产生式打点项目:
logicalOrExp -> logicalAndExp ·
logicalAndExp -> logicalAndExp · && M equalityExp
GOTO状态转换:
GOTO(16,&&)=39
状态I17:
产生式打点项目:
logicalAndExp -> equalityExp ·
equalityExp -> equalityExp · == relationalExp
equalityExp -> equalityExp · != relationalExp
GOTO状态转换:
GOTO(17,!=)=41
GOTO(17,==)=40
状态I18:
产生式打点项目:
equalityExp -> relationalExp ·
relationalExp -> relationalExp · < additiveExp
relationalExp -> relationalExp · <= additiveExp
relationalExp -> relationalExp · > additiveExp
relationalExp -> relationalExp · >= additiveExp
GOTO状态转换:
GOTO(18,<)=42
GOTO(18,<=)=43
GOTO(18,>)=44
GOTO(18,>=)=45
状态I19:
产生式打点项目:
relationalExp -> additiveExp ·
additiveExp -> additiveExp · + multiplicativeExp
additiveExp -> additiveExp · - multiplicativeExp
GOTO状态转换:
GOTO(19,+)=46
GOTO(19,-)=47
状态I20:
产生式打点项目:
additiveExp -> multiplicativeExp ·
multiplicativeExp -> multiplicativeExp · * unaryExp
multiplicativeExp -> multiplicativeExp · / unaryExp
GOTO状态转换:
GOTO(20,*)=48
GOTO(20,/)=49
状态I21:
产生式打点项目:
multiplicativeExp -> unaryExp ·
GOTO状态转换:
状态I22:
产生式打点项目:
unaryExp -> primaryExp ·
GOTO状态转换:
状态I23:
产生式打点项目:
unaryExp -> - · primaryExp
primaryExp -> · ID
primaryExp -> · constant
primaryExp -> · ( expression )
constant -> · integer
constant -> · character
GOTO状态转换:
GOTO(23,()=26
GOTO(23,ID)=51
GOTO(23,character)=28
GOTO(23,constant)=25
GOTO(23,integer)=27
GOTO(23,primaryExp)=50
状态I24:
产生式打点项目:
unaryExp -> + · primaryExp
primaryExp -> · ID
primaryExp -> · constant
primaryExp -> · ( expression )
constant -> · integer
constant -> · character
GOTO状态转换:
GOTO(24,()=26
GOTO(24,ID)=51
GOTO(24,character)=28
GOTO(24,constant)=25
GOTO(24,integer)=27
GOTO(24,primaryExp)=52
状态I25:
产生式打点项目:
primaryExp -> constant ·
GOTO状态转换:
状态I26:
产生式打点项目:
primaryExp -> ( · expression )
expression -> · assignmentExp
expression -> · expression , assignmentExp
assignmentExp -> · logicalOrExp
assignmentExp -> · ID = logicalOrExp
logicalOrExp -> · logicalAndExp
logicalOrExp -> · logicalOrExp || M logicalAndExp
logicalAndExp -> · equalityExp
logicalAndExp -> · logicalAndExp && M equalityExp
equalityExp -> · relationalExp
equalityExp -> · equalityExp == relationalExp
equalityExp -> · equalityExp != relationalExp
relationalExp -> · additiveExp
relationalExp -> · relationalExp < additiveExp
relationalExp -> · relationalExp <= additiveExp
relationalExp -> · relationalExp > additiveExp
relationalExp -> · relationalExp >= additiveExp
additiveExp -> · multiplicativeExp
additiveExp -> · additiveExp + multiplicativeExp
没有合适的资源?快使用搜索试试~ 我知道了~
C语言子集编译器前端(C++)
共77个文件
txt:26个
tlog:12个
obj:8个
2星 需积分: 0 24 下载量 162 浏览量
2022-07-08
01:05:16
上传
评论 3
收藏 12.07MB ZIP 举报
温馨提示
实现了一个C语言简单子集的编译器点段部分 可以将文法定义的合法的源代码转化为四元式 实现了词法分析、语法分析、语义分析部分 进行文件的输入输出,从文件读取文法、源代码、将四元式输出到文件
资源详情
资源评论
资源推荐
收起资源包目录
complier.zip (77个子文件)
lexer.h 1KB
Token.cpp 3KB
SLR.h 2KB
Parser.cpp 23KB
lexer.cpp 6KB
Token.h 3KB
lex.cpp 27KB
lexer.vcxproj.filters 2KB
tools.cpp 9KB
lexer.sln 1KB
tools.h 2KB
parser.h 678B
SLR.cpp 9KB
lexer.vcxproj 7KB
.gitignore 6KB
Debug
lex.obj.enc 779KB
WFdata
productionsId.txt 2KB
Grammar.txt 2KB
First.txt 1KB
Follow.txt 2KB
Complier.ilk 5.01MB
lexer.log 619B
lexer.pdb 30.31MB
Parser.obj 2.42MB
lexer.exe.recipe 272B
Token.obj 246KB
sourceCode
sourceCode1.txt 162B
sourceCode5.txt 52B
sourceCode3.txt 128B
sourceCode2.txt 122B
sourceCode0.txt 317B
sourceCode4.txt 198B
vc142.pdb 2.03MB
Token3.txt 28B
lexer.ilk 4.67MB
Complier.tlog
CL.write.1.tlog 1KB
CL.read.1.tlog 107KB
CL.command.1.tlog 3KB
Complier.lastbuildstate 145B
link.write.1.tlog 508B
link.command.1.tlog 1KB
link.read.1.tlog 4KB
main.obj 2.41MB
1.obj 42KB
Complier.exe.recipe 275B
tools.obj 1.84MB
lexer.vcxproj.FileListAbsolute.txt 69B
out
Token2.txt 1KB
formula4.txt 636B
formula1.txt 354B
Token3.txt 1KB
Token4.txt 2KB
Token5.txt 320B
formula5.txt 39B
Token0.txt 1KB
Token1.txt 1KB
formula3.txt 425B
formula2.txt 418B
formula0.txt 202B
tools.obj.enc 2.06MB
vc142.idb 331KB
lexer.obj 739KB
SLR
SLRtable.txt 29KB
SLRstates.txt 45KB
Complier.exe 732KB
Complier.pdb 9.8MB
SLR.obj 2.44MB
lex.obj 2.73MB
lexer.tlog
CL.write.1.tlog 6KB
CL.read.1.tlog 238KB
CL.command.1.tlog 10KB
link.write.1.tlog 978B
link.command.1.tlog 4KB
link.read.1.tlog 7KB
lexer.lastbuildstate 145B
.gitattributes 3KB
lexer.vcxproj.user 168B
共 77 条
- 1
飘飘飄飘
- 粉丝: 91
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论2