📄 lalr(1)dfa.txt
字号:
通过term到状态52
通过unary-expression到状态53
通过unaryop到状态54
通过factor到状态55
通过call到状态59
通过constant到状态60
通过expression到状态115
通过ID到状态50
通过!到状态56
通过-到状态57
通过(到状态58
通过NUM到状态61
通过true到状态62
通过false到状态63
STATE72
return-stmt --> return ; ||| ID ; NUM ( { } if else while return - ! true false
STATE73
return-stmt --> return expression . ; ||| ID ; NUM ( { } if else while return - ! true false
通过;到状态116
STATE74
expression --> var = . expression ||| ; ] ) ,
通过var到状态48
通过simple-expression到状态49
通过additive-expression到状态51
通过term到状态52
通过unary-expression到状态53
通过unaryop到状态54
通过factor到状态55
通过call到状态59
通过constant到状态60
通过expression到状态117
通过ID到状态50
通过!到状态56
通过-到状态57
通过(到状态58
通过NUM到状态61
通过true到状态62
通过false到状态63
STATE75
var --> ID [ . expression ] ||| ; ] ) , = <= < > >= == != + - || | * / % &&
通过var到状态48
通过simple-expression到状态49
通过additive-expression到状态51
通过term到状态52
通过unary-expression到状态53
通过unaryop到状态54
通过factor到状态55
通过call到状态59
通过constant到状态60
通过expression到状态132
通过ID到状态50
通过!到状态56
通过-到状态57
通过(到状态58
通过NUM到状态61
通过true到状态62
通过false到状态63
STATE76
call --> ID ( . args ) ||| ; ] ) , <= < > >= == != + - || | * / % &&
通过var到状态48
通过simple-expression到状态49
通过additive-expression到状态51
通过term到状态52
通过unary-expression到状态53
通过unaryop到状态54
通过factor到状态55
通过call到状态59
通过constant到状态60
通过arg-list到状态147
通过expression到状态149
通过args到状态150
通过ID到状态50
通过!到状态56
通过-到状态57
通过(到状态58
通过NUM到状态61
通过true到状态62
通过false到状态63
通过#到状态148
STATE77
relop --> <= ||| ID NUM ( - ! true false
STATE78
relop --> < ||| ID NUM ( - ! true false
STATE79
relop --> > ||| ID NUM ( - ! true false
STATE80
relop --> >= ||| ID NUM ( - ! true false
STATE81
relop --> == ||| ID NUM ( - ! true false
STATE82
relop --> != ||| ID NUM ( - ! true false
STATE83
addop --> + ||| ID NUM ( - ! true false
STATE84
addop --> - ||| ID NUM ( - ! true false
STATE85
addop --> || ||| ID NUM ( - ! true false
STATE86
addop --> | ||| ID NUM ( - ! true false
STATE87
simple-expression --> additive-expression relop . additive-expression ||| ; ] ) ,
通过additive-expression到状态152
通过term到状态52
通过unary-expression到状态53
通过unaryop到状态54
通过factor到状态55
通过var到状态95
通过call到状态59
通过constant到状态60
通过ID到状态50
通过!到状态56
通过-到状态57
通过(到状态58
通过NUM到状态61
通过true到状态62
通过false到状态63
STATE88
additive-expression --> additive-expression addop . term ||| ; ] ) , <= < > >= == != + - || |
通过term到状态164
通过unary-expression到状态53
通过unaryop到状态54
通过factor到状态55
通过var到状态95
通过call到状态59
通过constant到状态60
通过ID到状态50
通过!到状态56
通过-到状态57
通过(到状态58
通过NUM到状态61
通过true到状态62
通过false到状态63
STATE89
mulop --> * ||| ID NUM ( - ! true false
STATE90
mulop --> / ||| ID NUM ( - ! true false
STATE91
mulop --> % ||| ID NUM ( - ! true false
STATE92
mulop --> && ||| ID NUM ( - ! true false
STATE93
term --> term mulop . unary-expression ||| ; ] ) , <= < > >= == != + - || | * / % &&
通过unaryop到状态54
通过factor到状态55
通过var到状态95
通过call到状态59
通过constant到状态60
通过unary-expression到状态165
通过ID到状态50
通过!到状态56
通过-到状态57
通过(到状态58
通过NUM到状态61
通过true到状态62
通过false到状态63
STATE95
factor --> var ||| ; ] ) , <= < > >= == != + - || | * / % &&
STATE96
unary-expression --> unaryop unary-expression ||| ; ] ) , <= < > >= == != + - || | * / % &&
STATE111
factor --> ( expression . ) ||| ; ] ) , <= < > >= == != + - || | * / % &&
通过)到状态177
STATE114
selection-stmt --> if ( expression . ) statement ||| ID ; NUM ( { } if else while return - ! true false
selection-stmt --> if ( expression . ) statement else statement ||| ID ; NUM ( { } if else while return - ! true false
通过)到状态180
STATE115
iteration-stmt --> while ( expression . ) statement ||| ID ; NUM ( { } if else while return - ! true false
通过)到状态181
STATE116
return-stmt --> return expression ; ||| ID ; NUM ( { } if else while return - ! true false
STATE117
expression --> var = expression ||| ; ] ) ,
STATE132
var --> ID [ expression . ] ||| ; ] ) , = <= < > >= == != + - || | * / % &&
通过]到状态192
STATE147
args --> arg-list ||| )
arg-list --> arg-list . , expression ||| ) ,
通过,到状态203
STATE148
args --> # ||| )
STATE149
arg-list --> expression ||| ) ,
STATE150
call --> ID ( args . ) ||| ; ] ) , <= < > >= == != + - || | * / % &&
通过)到状态204
STATE152
additive-expression --> additive-expression . addop term ||| ; ] ) , + - || |
simple-expression --> additive-expression relop additive-expression ||| ; ] ) ,
通过addop到状态88
通过+到状态83
通过-到状态84
通过||到状态85
通过|到状态86
STATE164
term --> term . mulop unary-expression ||| ; ] ) , <= < > >= == != + - || | * / % &&
additive-expression --> additive-expression addop term ||| ; ] ) , <= < > >= == != + - || |
通过mulop到状态93
通过*到状态89
通过/到状态90
通过%到状态91
通过&&到状态92
STATE165
term --> term mulop unary-expression ||| ; ] ) , <= < > >= == != + - || | * / % &&
STATE177
factor --> ( expression ) ||| ; ] ) , <= < > >= == != + - || | * / % &&
STATE180
selection-stmt --> if ( expression ) . statement ||| ID ; NUM ( { } if else while return - ! true false
selection-stmt --> if ( expression ) . statement else statement ||| ID ; NUM ( { } if else while return - ! true false
通过expression-stmt到状态38
通过compound-stmt到状态39
通过selection-stmt到状态40
通过iteration-stmt到状态41
通过return-stmt到状态42
通过expression到状态43
通过var到状态48
通过simple-expression到状态49
通过additive-expression到状态51
通过term到状态52
通过unary-expression到状态53
通过unaryop到状态54
通过factor到状态55
通过call到状态59
通过constant到状态60
通过statement到状态244
通过{到状态27
通过;到状态44
通过if到状态45
通过while到状态46
通过return到状态47
通过ID到状态50
通过!到状态56
通过-到状态57
通过(到状态58
通过NUM到状态61
通过true到状态62
通过false到状态63
STATE181
iteration-stmt --> while ( expression ) . statement ||| ID ; NUM ( { } if else while return - ! true false
通过expression-stmt到状态38
通过compound-stmt到状态39
通过selection-stmt到状态40
通过iteration-stmt到状态41
通过return-stmt到状态42
通过expression到状态43
通过var到状态48
通过simple-expression到状态49
通过additive-expression到状态51
通过term到状态52
通过unary-expression到状态53
通过unaryop到状态54
通过factor到状态55
通过call到状态59
通过constant到状态60
通过statement到状态245
通过{到状态27
通过;到状态44
通过if到状态45
通过while到状态46
通过return到状态47
通过ID到状态50
通过!到状态56
通过-到状态57
通过(到状态58
通过NUM到状态61
通过true到状态62
通过false到状态63
STATE192
var --> ID [ expression ] ||| ; ] ) , = <= < > >= == != + - || | * / % &&
STATE203
arg-list --> arg-list , . expression ||| ) ,
通过var到状态48
通过simple-expression到状态49
通过additive-expression到状态51
通过term到状态52
通过unary-expression到状态53
通过unaryop到状态54
通过factor到状态55
通过call到状态59
通过constant到状态60
通过expression到状态286
通过ID到状态50
通过!到状态56
通过-到状态57
通过(到状态58
通过NUM到状态61
通过true到状态62
通过false到状态63
STATE204
call --> ID ( args ) ||| ; ] ) , <= < > >= == != + - || | * / % &&
STATE244
selection-stmt --> if ( expression ) statement ||| ID ; NUM ( { } if else while return - ! true false
selection-stmt --> if ( expression ) statement . else statement ||| ID ; NUM ( { } if else while return - ! true false
通过else到状态308
STATE245
iteration-stmt --> while ( expression ) statement ||| ID ; NUM ( { } if else while return - ! true false
STATE286
arg-list --> arg-list , expression ||| ) ,
STATE308
selection-stmt --> if ( expression ) statement else . statement ||| ID ; NUM ( { } if else while return - ! true false
通过expression-stmt到状态38
通过compound-stmt到状态39
通过selection-stmt到状态40
通过iteration-stmt到状态41
通过return-stmt到状态42
通过expression到状态43
通过var到状态48
通过simple-expression到状态49
通过additive-expression到状态51
通过term到状态52
通过unary-expression到状态53
通过unaryop到状态54
通过factor到状态55
通过call到状态59
通过constant到状态60
通过statement到状态339
通过{到状态27
通过;到状态44
通过if到状态45
通过while到状态46
通过return到状态47
通过ID到状态50
通过!到状态56
通过-到状态57
通过(到状态58
通过NUM到状态61
通过true到状态62
通过false到状态63
STATE339
selection-stmt --> if ( expression ) statement else statement ||| ID ; NUM ( { } if else while return - ! true false
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -