| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552 |
- Terminals which are not used
- APPLY
- LEAF
- Rules never reduced
- 101 external_declaration: function_definition
- State 15 conflicts: 1 shift/reduce
- State 19 conflicts: 9 reduce/reduce
- State 35 conflicts: 1 shift/reduce
- State 43 conflicts: 3 reduce/reduce
- State 53 conflicts: 1 shift/reduce, 2 reduce/reduce
- State 165 conflicts: 1 shift/reduce
- Grammar
- 0 $accept: goal $end
- 1 goal: translation_unit
- 2 primary_expression: IDENTIFIER
- 3 | CONSTANT
- 4 | STRING_LITERAL
- 5 | '(' expression ')'
- 6 postfix_expression: primary_expression
- 7 | postfix_expression '(' ')'
- 8 | postfix_expression '(' argument_expression_list ')'
- 9 argument_expression_list: assignment_expression
- 10 | argument_expression_list ',' assignment_expression
- 11 unary_expression: postfix_expression
- 12 | unary_operator unary_expression
- 13 unary_operator: '&'
- 14 | '*'
- 15 | '+'
- 16 | '-'
- 17 | '!'
- 18 multiplicative_expression: unary_expression
- 19 | multiplicative_expression '*' unary_expression
- 20 | multiplicative_expression '/' unary_expression
- 21 | multiplicative_expression '%' unary_expression
- 22 additive_expression: multiplicative_expression
- 23 | additive_expression '+' multiplicative_expression
- 24 | additive_expression '-' multiplicative_expression
- 25 relational_expression: additive_expression
- 26 | relational_expression '<' additive_expression
- 27 | relational_expression '>' additive_expression
- 28 | relational_expression LE_OP additive_expression
- 29 | relational_expression GE_OP additive_expression
- 30 equality_expression: relational_expression
- 31 | equality_expression EQ_OP relational_expression
- 32 | equality_expression NE_OP relational_expression
- 33 assignment_expression: equality_expression
- 34 | unary_expression '=' assignment_expression
- 35 expression: assignment_expression
- 36 | expression ',' assignment_expression
- 37 declaration: declaration_specifiers ';'
- 38 | function_definition
- 39 | declaration_specifiers init_declarator_list ';'
- 40 declaration_specifiers: storage_class_specifier
- 41 | storage_class_specifier declaration_specifiers
- 42 | type_specifier
- 43 | type_specifier declaration_specifiers
- 44 init_declarator_list: init_declarator
- 45 | init_declarator_list ',' init_declarator
- 46 init_declarator: declarator
- 47 | declarator '=' assignment_expression
- 48 storage_class_specifier: EXTERN
- 49 | AUTO
- 50 type_specifier: VOID
- 51 | INT
- 52 | FUNCTION
- 53 declarator: pointer direct_declarator
- 54 | direct_declarator
- 55 direct_declarator: IDENTIFIER
- 56 | '(' declarator ')'
- 57 | direct_declarator '(' parameter_list ')'
- 58 | direct_declarator '(' identifier_list ')'
- 59 | direct_declarator '(' ')'
- 60 pointer: '*'
- 61 | '*' pointer
- 62 parameter_list: parameter_declaration
- 63 | parameter_list ',' parameter_declaration
- 64 parameter_declaration: declaration_specifiers declarator
- 65 | declaration_specifiers abstract_declarator
- 66 | declaration_specifiers
- 67 identifier_list: IDENTIFIER
- 68 | identifier_list ',' IDENTIFIER
- 69 abstract_declarator: pointer
- 70 | direct_abstract_declarator
- 71 | pointer direct_abstract_declarator
- 72 direct_abstract_declarator: '(' abstract_declarator ')'
- 73 | '(' ')'
- 74 | '(' parameter_list ')'
- 75 | direct_abstract_declarator '(' ')'
- 76 | direct_abstract_declarator '(' parameter_list ')'
- 77 statement: compound_statement
- 78 | expression_statement
- 79 | selection_statement
- 80 | iteration_statement
- 81 | jump_statement
- 82 compound_statement: '{' '}'
- 83 | '{' statement_list '}'
- 84 | '{' declaration_list '}'
- 85 | '{' declaration_list statement_list '}'
- 86 declaration_list: declaration
- 87 | declaration_list declaration
- 88 statement_list: statement
- 89 | statement_list statement
- 90 expression_statement: ';'
- 91 | expression ';'
- 92 selection_statement: IF '(' expression ')' statement
- 93 | IF '(' expression ')' statement ELSE statement
- 94 iteration_statement: WHILE '(' expression ')' statement
- 95 jump_statement: CONTINUE ';'
- 96 | BREAK ';'
- 97 | RETURN ';'
- 98 | RETURN expression ';'
- 99 translation_unit: external_declaration
- 100 | translation_unit external_declaration
- 101 external_declaration: function_definition
- 102 | declaration
- 103 function_definition: declaration_specifiers declarator declaration_list compound_statement
- 104 | declaration_specifiers declarator compound_statement
- 105 | declarator declaration_list compound_statement
- 106 | declarator compound_statement
- Terminals, with rules where they appear
- $end (0) 0
- '!' (33) 17
- '%' (37) 21
- '&' (38) 13
- '(' (40) 5 7 8 56 57 58 59 72 73 74 75 76 92 93 94
- ')' (41) 5 7 8 56 57 58 59 72 73 74 75 76 92 93 94
- '*' (42) 14 19 60 61
- '+' (43) 15 23
- ',' (44) 10 36 45 63 68
- '-' (45) 16 24
- '/' (47) 20
- ';' (59) 37 39 90 91 95 96 97 98
- '<' (60) 26
- '=' (61) 34 47
- '>' (62) 27
- '{' (123) 82 83 84 85
- '}' (125) 82 83 84 85
- error (256)
- IDENTIFIER (258) 2 55 67 68
- CONSTANT (259) 3
- STRING_LITERAL (260) 4
- LE_OP (261) 28
- GE_OP (262) 29
- EQ_OP (263) 31
- NE_OP (264) 32
- EXTERN (265) 48
- AUTO (266) 49
- INT (267) 51
- VOID (268) 50
- FUNCTION (269) 52
- APPLY (270)
- LEAF (271)
- IF (272) 92 93
- ELSE (273) 93
- WHILE (274) 94
- CONTINUE (275) 95
- BREAK (276) 96
- RETURN (277) 97 98
- Nonterminals, with rules where they appear
- $accept (39)
- on left: 0
- goal (40)
- on left: 1, on right: 0
- primary_expression (41)
- on left: 2 3 4 5, on right: 6
- postfix_expression (42)
- on left: 6 7 8, on right: 7 8 11
- argument_expression_list (43)
- on left: 9 10, on right: 8 10
- unary_expression (44)
- on left: 11 12, on right: 12 18 19 20 21 34
- unary_operator (45)
- on left: 13 14 15 16 17, on right: 12
- multiplicative_expression (46)
- on left: 18 19 20 21, on right: 19 20 21 22 23 24
- additive_expression (47)
- on left: 22 23 24, on right: 23 24 25 26 27 28 29
- relational_expression (48)
- on left: 25 26 27 28 29, on right: 26 27 28 29 30 31 32
- equality_expression (49)
- on left: 30 31 32, on right: 31 32 33
- assignment_expression (50)
- on left: 33 34, on right: 9 10 34 35 36 47
- expression (51)
- on left: 35 36, on right: 5 36 91 92 93 94 98
- declaration (52)
- on left: 37 38 39, on right: 86 87 102
- declaration_specifiers (53)
- on left: 40 41 42 43, on right: 37 39 41 43 64 65 66 103 104
- init_declarator_list (54)
- on left: 44 45, on right: 39 45
- init_declarator (55)
- on left: 46 47, on right: 44 45
- storage_class_specifier (56)
- on left: 48 49, on right: 40 41
- type_specifier (57)
- on left: 50 51 52, on right: 42 43
- declarator (58)
- on left: 53 54, on right: 46 47 56 64 103 104 105 106
- direct_declarator (59)
- on left: 55 56 57 58 59, on right: 53 54 57 58 59
- pointer (60)
- on left: 60 61, on right: 53 61 69 71
- parameter_list (61)
- on left: 62 63, on right: 57 63 74 76
- parameter_declaration (62)
- on left: 64 65 66, on right: 62 63
- identifier_list (63)
- on left: 67 68, on right: 58 68
- abstract_declarator (64)
- on left: 69 70 71, on right: 65 72
- direct_abstract_declarator (65)
- on left: 72 73 74 75 76, on right: 70 71 75 76
- statement (66)
- on left: 77 78 79 80 81, on right: 88 89 92 93 94
- compound_statement (67)
- on left: 82 83 84 85, on right: 77 103 104 105 106
- declaration_list (68)
- on left: 86 87, on right: 84 85 87 103 105
- statement_list (69)
- on left: 88 89, on right: 83 85 89
- expression_statement (70)
- on left: 90 91, on right: 78
- selection_statement (71)
- on left: 92 93, on right: 79
- iteration_statement (72)
- on left: 94, on right: 80
- jump_statement (73)
- on left: 95 96 97 98, on right: 81
- translation_unit (74)
- on left: 99 100, on right: 1 100
- external_declaration (75)
- on left: 101 102, on right: 99 100
- function_definition (76)
- on left: 103 104 105 106, on right: 38 101
- state 0
- 0 $accept: . goal $end
- IDENTIFIER shift, and go to state 1
- EXTERN shift, and go to state 2
- AUTO shift, and go to state 3
- INT shift, and go to state 4
- VOID shift, and go to state 5
- FUNCTION shift, and go to state 6
- '(' shift, and go to state 7
- '*' shift, and go to state 8
- goal go to state 9
- declaration go to state 10
- declaration_specifiers go to state 11
- storage_class_specifier go to state 12
- type_specifier go to state 13
- declarator go to state 14
- direct_declarator go to state 15
- pointer go to state 16
- translation_unit go to state 17
- external_declaration go to state 18
- function_definition go to state 19
- state 1
- 55 direct_declarator: IDENTIFIER .
- $default reduce using rule 55 (direct_declarator)
- state 2
- 48 storage_class_specifier: EXTERN .
- $default reduce using rule 48 (storage_class_specifier)
- state 3
- 49 storage_class_specifier: AUTO .
- $default reduce using rule 49 (storage_class_specifier)
- state 4
- 51 type_specifier: INT .
- $default reduce using rule 51 (type_specifier)
- state 5
- 50 type_specifier: VOID .
- $default reduce using rule 50 (type_specifier)
- state 6
- 52 type_specifier: FUNCTION .
- $default reduce using rule 52 (type_specifier)
- state 7
- 56 direct_declarator: '(' . declarator ')'
- IDENTIFIER shift, and go to state 1
- '(' shift, and go to state 7
- '*' shift, and go to state 8
- declarator go to state 20
- direct_declarator go to state 15
- pointer go to state 16
- state 8
- 60 pointer: '*' .
- 61 | '*' . pointer
- '*' shift, and go to state 8
- $default reduce using rule 60 (pointer)
- pointer go to state 21
- state 9
- 0 $accept: goal . $end
- $end shift, and go to state 22
- state 10
- 102 external_declaration: declaration .
- $default reduce using rule 102 (external_declaration)
- state 11
- 37 declaration: declaration_specifiers . ';'
- 39 | declaration_specifiers . init_declarator_list ';'
- 103 function_definition: declaration_specifiers . declarator declaration_list compound_statement
- 104 | declaration_specifiers . declarator compound_statement
- IDENTIFIER shift, and go to state 1
- '(' shift, and go to state 7
- '*' shift, and go to state 8
- ';' shift, and go to state 23
- init_declarator_list go to state 24
- init_declarator go to state 25
- declarator go to state 26
- direct_declarator go to state 15
- pointer go to state 16
- state 12
- 40 declaration_specifiers: storage_class_specifier .
- 41 | storage_class_specifier . declaration_specifiers
- EXTERN shift, and go to state 2
- AUTO shift, and go to state 3
- INT shift, and go to state 4
- VOID shift, and go to state 5
- FUNCTION shift, and go to state 6
- $default reduce using rule 40 (declaration_specifiers)
- declaration_specifiers go to state 27
- storage_class_specifier go to state 12
- type_specifier go to state 13
- state 13
- 42 declaration_specifiers: type_specifier .
- 43 | type_specifier . declaration_specifiers
- EXTERN shift, and go to state 2
- AUTO shift, and go to state 3
- INT shift, and go to state 4
- VOID shift, and go to state 5
- FUNCTION shift, and go to state 6
- $default reduce using rule 42 (declaration_specifiers)
- declaration_specifiers go to state 28
- storage_class_specifier go to state 12
- type_specifier go to state 13
- state 14
- 105 function_definition: declarator . declaration_list compound_statement
- 106 | declarator . compound_statement
- IDENTIFIER shift, and go to state 1
- EXTERN shift, and go to state 2
- AUTO shift, and go to state 3
- INT shift, and go to state 4
- VOID shift, and go to state 5
- FUNCTION shift, and go to state 6
- '(' shift, and go to state 7
- '*' shift, and go to state 8
- '{' shift, and go to state 29
- declaration go to state 30
- declaration_specifiers go to state 11
- storage_class_specifier go to state 12
- type_specifier go to state 13
- declarator go to state 14
- direct_declarator go to state 15
- pointer go to state 16
- compound_statement go to state 31
- declaration_list go to state 32
- function_definition go to state 33
- state 15
- 54 declarator: direct_declarator .
- 57 direct_declarator: direct_declarator . '(' parameter_list ')'
- 58 | direct_declarator . '(' identifier_list ')'
- 59 | direct_declarator . '(' ')'
- '(' shift, and go to state 34
- '(' [reduce using rule 54 (declarator)]
- $default reduce using rule 54 (declarator)
- state 16
- 53 declarator: pointer . direct_declarator
- IDENTIFIER shift, and go to state 1
- '(' shift, and go to state 7
- direct_declarator go to state 35
- state 17
- 1 goal: translation_unit .
- 100 translation_unit: translation_unit . external_declaration
- IDENTIFIER shift, and go to state 1
- EXTERN shift, and go to state 2
- AUTO shift, and go to state 3
- INT shift, and go to state 4
- VOID shift, and go to state 5
- FUNCTION shift, and go to state 6
- '(' shift, and go to state 7
- '*' shift, and go to state 8
- $default reduce using rule 1 (goal)
- declaration go to state 10
- declaration_specifiers go to state 11
- storage_class_specifier go to state 12
- type_specifier go to state 13
- declarator go to state 14
- direct_declarator go to state 15
- pointer go to state 16
- external_declaration go to state 36
- function_definition go to state 19
- state 18
- 99 translation_unit: external_declaration .
- $default reduce using rule 99 (translation_unit)
- state 19
- 38 declaration: function_definition .
- 101 external_declaration: function_definition .
- $end reduce using rule 38 (declaration)
- $end [reduce using rule 101 (external_declaration)]
- IDENTIFIER reduce using rule 38 (declaration)
- IDENTIFIER [reduce using rule 101 (external_declaration)]
- EXTERN reduce using rule 38 (declaration)
- EXTERN [reduce using rule 101 (external_declaration)]
- AUTO reduce using rule 38 (declaration)
- AUTO [reduce using rule 101 (external_declaration)]
- INT reduce using rule 38 (declaration)
- INT [reduce using rule 101 (external_declaration)]
- VOID reduce using rule 38 (declaration)
- VOID [reduce using rule 101 (external_declaration)]
- FUNCTION reduce using rule 38 (declaration)
- FUNCTION [reduce using rule 101 (external_declaration)]
- '(' reduce using rule 38 (declaration)
- '(' [reduce using rule 101 (external_declaration)]
- '*' reduce using rule 38 (declaration)
- '*' [reduce using rule 101 (external_declaration)]
- $default reduce using rule 38 (declaration)
- state 20
- 56 direct_declarator: '(' declarator . ')'
- ')' shift, and go to state 37
- state 21
- 61 pointer: '*' pointer .
- $default reduce using rule 61 (pointer)
- state 22
- 0 $accept: goal $end .
- $default accept
- state 23
- 37 declaration: declaration_specifiers ';' .
- $default reduce using rule 37 (declaration)
- state 24
- 39 declaration: declaration_specifiers init_declarator_list . ';'
- 45 init_declarator_list: init_declarator_list . ',' init_declarator
- ',' shift, and go to state 38
- ';' shift, and go to state 39
- state 25
- 44 init_declarator_list: init_declarator .
- $default reduce using rule 44 (init_declarator_list)
- state 26
- 46 init_declarator: declarator .
- 47 | declarator . '=' assignment_expression
- 103 function_definition: declaration_specifiers declarator . declaration_list compound_statement
- 104 | declaration_specifiers declarator . compound_statement
- IDENTIFIER shift, and go to state 1
- EXTERN shift, and go to state 2
- AUTO shift, and go to state 3
- INT shift, and go to state 4
- VOID shift, and go to state 5
- FUNCTION shift, and go to state 6
- '(' shift, and go to state 7
- '*' shift, and go to state 8
- '=' shift, and go to state 40
- '{' shift, and go to state 29
- $default reduce using rule 46 (init_declarator)
- declaration go to state 30
- declaration_specifiers go to state 11
- storage_class_specifier go to state 12
- type_specifier go to state 13
- declarator go to state 14
- direct_declarator go to state 15
- pointer go to state 16
- compound_statement go to state 41
- declaration_list go to state 42
- function_definition go to state 33
- state 27
- 41 declaration_specifiers: storage_class_specifier declaration_specifiers .
- $default reduce using rule 41 (declaration_specifiers)
- state 28
- 43 declaration_specifiers: type_specifier declaration_specifiers .
- $default reduce using rule 43 (declaration_specifiers)
- state 29
- 82 compound_statement: '{' . '}'
- 83 | '{' . statement_list '}'
- 84 | '{' . declaration_list '}'
- 85 | '{' . declaration_list statement_list '}'
- IDENTIFIER shift, and go to state 43
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- EXTERN shift, and go to state 2
- AUTO shift, and go to state 3
- INT shift, and go to state 4
- VOID shift, and go to state 5
- FUNCTION shift, and go to state 6
- IF shift, and go to state 46
- WHILE shift, and go to state 47
- CONTINUE shift, and go to state 48
- BREAK shift, and go to state 49
- RETURN shift, and go to state 50
- '(' shift, and go to state 51
- '&' shift, and go to state 52
- '*' shift, and go to state 53
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- ';' shift, and go to state 57
- '{' shift, and go to state 29
- '}' shift, and go to state 58
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 61
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 64
- relational_expression go to state 65
- equality_expression go to state 66
- assignment_expression go to state 67
- expression go to state 68
- declaration go to state 30
- declaration_specifiers go to state 11
- storage_class_specifier go to state 12
- type_specifier go to state 13
- declarator go to state 14
- direct_declarator go to state 15
- pointer go to state 16
- statement go to state 69
- compound_statement go to state 70
- declaration_list go to state 71
- statement_list go to state 72
- expression_statement go to state 73
- selection_statement go to state 74
- iteration_statement go to state 75
- jump_statement go to state 76
- function_definition go to state 33
- state 30
- 86 declaration_list: declaration .
- $default reduce using rule 86 (declaration_list)
- state 31
- 106 function_definition: declarator compound_statement .
- $default reduce using rule 106 (function_definition)
- state 32
- 87 declaration_list: declaration_list . declaration
- 105 function_definition: declarator declaration_list . compound_statement
- IDENTIFIER shift, and go to state 1
- EXTERN shift, and go to state 2
- AUTO shift, and go to state 3
- INT shift, and go to state 4
- VOID shift, and go to state 5
- FUNCTION shift, and go to state 6
- '(' shift, and go to state 7
- '*' shift, and go to state 8
- '{' shift, and go to state 29
- declaration go to state 77
- declaration_specifiers go to state 11
- storage_class_specifier go to state 12
- type_specifier go to state 13
- declarator go to state 14
- direct_declarator go to state 15
- pointer go to state 16
- compound_statement go to state 78
- function_definition go to state 33
- state 33
- 38 declaration: function_definition .
- $default reduce using rule 38 (declaration)
- state 34
- 57 direct_declarator: direct_declarator '(' . parameter_list ')'
- 58 | direct_declarator '(' . identifier_list ')'
- 59 | direct_declarator '(' . ')'
- IDENTIFIER shift, and go to state 79
- EXTERN shift, and go to state 2
- AUTO shift, and go to state 3
- INT shift, and go to state 4
- VOID shift, and go to state 5
- FUNCTION shift, and go to state 6
- ')' shift, and go to state 80
- declaration_specifiers go to state 81
- storage_class_specifier go to state 12
- type_specifier go to state 13
- parameter_list go to state 82
- parameter_declaration go to state 83
- identifier_list go to state 84
- state 35
- 53 declarator: pointer direct_declarator .
- 57 direct_declarator: direct_declarator . '(' parameter_list ')'
- 58 | direct_declarator . '(' identifier_list ')'
- 59 | direct_declarator . '(' ')'
- '(' shift, and go to state 34
- '(' [reduce using rule 53 (declarator)]
- $default reduce using rule 53 (declarator)
- state 36
- 100 translation_unit: translation_unit external_declaration .
- $default reduce using rule 100 (translation_unit)
- state 37
- 56 direct_declarator: '(' declarator ')' .
- $default reduce using rule 56 (direct_declarator)
- state 38
- 45 init_declarator_list: init_declarator_list ',' . init_declarator
- IDENTIFIER shift, and go to state 1
- '(' shift, and go to state 7
- '*' shift, and go to state 8
- init_declarator go to state 85
- declarator go to state 86
- direct_declarator go to state 15
- pointer go to state 16
- state 39
- 39 declaration: declaration_specifiers init_declarator_list ';' .
- $default reduce using rule 39 (declaration)
- state 40
- 47 init_declarator: declarator '=' . assignment_expression
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 61
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 64
- relational_expression go to state 65
- equality_expression go to state 66
- assignment_expression go to state 90
- state 41
- 104 function_definition: declaration_specifiers declarator compound_statement .
- $default reduce using rule 104 (function_definition)
- state 42
- 87 declaration_list: declaration_list . declaration
- 103 function_definition: declaration_specifiers declarator declaration_list . compound_statement
- IDENTIFIER shift, and go to state 1
- EXTERN shift, and go to state 2
- AUTO shift, and go to state 3
- INT shift, and go to state 4
- VOID shift, and go to state 5
- FUNCTION shift, and go to state 6
- '(' shift, and go to state 7
- '*' shift, and go to state 8
- '{' shift, and go to state 29
- declaration go to state 77
- declaration_specifiers go to state 11
- storage_class_specifier go to state 12
- type_specifier go to state 13
- declarator go to state 14
- direct_declarator go to state 15
- pointer go to state 16
- compound_statement go to state 91
- function_definition go to state 33
- state 43
- 2 primary_expression: IDENTIFIER .
- 55 direct_declarator: IDENTIFIER .
- IDENTIFIER reduce using rule 55 (direct_declarator)
- EXTERN reduce using rule 55 (direct_declarator)
- AUTO reduce using rule 55 (direct_declarator)
- INT reduce using rule 55 (direct_declarator)
- VOID reduce using rule 55 (direct_declarator)
- FUNCTION reduce using rule 55 (direct_declarator)
- '(' reduce using rule 2 (primary_expression)
- '(' [reduce using rule 55 (direct_declarator)]
- ')' reduce using rule 2 (primary_expression)
- ')' [reduce using rule 55 (direct_declarator)]
- '*' reduce using rule 2 (primary_expression)
- '*' [reduce using rule 55 (direct_declarator)]
- '{' reduce using rule 55 (direct_declarator)
- $default reduce using rule 2 (primary_expression)
- state 44
- 3 primary_expression: CONSTANT .
- $default reduce using rule 3 (primary_expression)
- state 45
- 4 primary_expression: STRING_LITERAL .
- $default reduce using rule 4 (primary_expression)
- state 46
- 92 selection_statement: IF . '(' expression ')' statement
- 93 | IF . '(' expression ')' statement ELSE statement
- '(' shift, and go to state 92
- state 47
- 94 iteration_statement: WHILE . '(' expression ')' statement
- '(' shift, and go to state 93
- state 48
- 95 jump_statement: CONTINUE . ';'
- ';' shift, and go to state 94
- state 49
- 96 jump_statement: BREAK . ';'
- ';' shift, and go to state 95
- state 50
- 97 jump_statement: RETURN . ';'
- 98 | RETURN . expression ';'
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- ';' shift, and go to state 96
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 61
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 64
- relational_expression go to state 65
- equality_expression go to state 66
- assignment_expression go to state 67
- expression go to state 97
- state 51
- 5 primary_expression: '(' . expression ')'
- 56 direct_declarator: '(' . declarator ')'
- IDENTIFIER shift, and go to state 43
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 51
- '&' shift, and go to state 52
- '*' shift, and go to state 53
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 61
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 64
- relational_expression go to state 65
- equality_expression go to state 66
- assignment_expression go to state 67
- expression go to state 98
- declarator go to state 20
- direct_declarator go to state 15
- pointer go to state 16
- state 52
- 13 unary_operator: '&' .
- $default reduce using rule 13 (unary_operator)
- state 53
- 14 unary_operator: '*' .
- 60 pointer: '*' .
- 61 | '*' . pointer
- '*' shift, and go to state 8
- IDENTIFIER reduce using rule 14 (unary_operator)
- IDENTIFIER [reduce using rule 60 (pointer)]
- '(' reduce using rule 14 (unary_operator)
- '(' [reduce using rule 60 (pointer)]
- '*' [reduce using rule 14 (unary_operator)]
- $default reduce using rule 14 (unary_operator)
- pointer go to state 21
- state 54
- 15 unary_operator: '+' .
- $default reduce using rule 15 (unary_operator)
- state 55
- 16 unary_operator: '-' .
- $default reduce using rule 16 (unary_operator)
- state 56
- 17 unary_operator: '!' .
- $default reduce using rule 17 (unary_operator)
- state 57
- 90 expression_statement: ';' .
- $default reduce using rule 90 (expression_statement)
- state 58
- 82 compound_statement: '{' '}' .
- $default reduce using rule 82 (compound_statement)
- state 59
- 6 postfix_expression: primary_expression .
- $default reduce using rule 6 (postfix_expression)
- state 60
- 7 postfix_expression: postfix_expression . '(' ')'
- 8 | postfix_expression . '(' argument_expression_list ')'
- 11 unary_expression: postfix_expression .
- '(' shift, and go to state 99
- $default reduce using rule 11 (unary_expression)
- state 61
- 18 multiplicative_expression: unary_expression .
- 34 assignment_expression: unary_expression . '=' assignment_expression
- '=' shift, and go to state 100
- $default reduce using rule 18 (multiplicative_expression)
- state 62
- 12 unary_expression: unary_operator . unary_expression
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 101
- unary_operator go to state 62
- state 63
- 19 multiplicative_expression: multiplicative_expression . '*' unary_expression
- 20 | multiplicative_expression . '/' unary_expression
- 21 | multiplicative_expression . '%' unary_expression
- 22 additive_expression: multiplicative_expression .
- '*' shift, and go to state 102
- '/' shift, and go to state 103
- '%' shift, and go to state 104
- $default reduce using rule 22 (additive_expression)
- state 64
- 23 additive_expression: additive_expression . '+' multiplicative_expression
- 24 | additive_expression . '-' multiplicative_expression
- 25 relational_expression: additive_expression .
- '+' shift, and go to state 105
- '-' shift, and go to state 106
- $default reduce using rule 25 (relational_expression)
- state 65
- 26 relational_expression: relational_expression . '<' additive_expression
- 27 | relational_expression . '>' additive_expression
- 28 | relational_expression . LE_OP additive_expression
- 29 | relational_expression . GE_OP additive_expression
- 30 equality_expression: relational_expression .
- LE_OP shift, and go to state 107
- GE_OP shift, and go to state 108
- '<' shift, and go to state 109
- '>' shift, and go to state 110
- $default reduce using rule 30 (equality_expression)
- state 66
- 31 equality_expression: equality_expression . EQ_OP relational_expression
- 32 | equality_expression . NE_OP relational_expression
- 33 assignment_expression: equality_expression .
- EQ_OP shift, and go to state 111
- NE_OP shift, and go to state 112
- $default reduce using rule 33 (assignment_expression)
- state 67
- 35 expression: assignment_expression .
- $default reduce using rule 35 (expression)
- state 68
- 36 expression: expression . ',' assignment_expression
- 91 expression_statement: expression . ';'
- ',' shift, and go to state 113
- ';' shift, and go to state 114
- state 69
- 88 statement_list: statement .
- $default reduce using rule 88 (statement_list)
- state 70
- 77 statement: compound_statement .
- $default reduce using rule 77 (statement)
- state 71
- 84 compound_statement: '{' declaration_list . '}'
- 85 | '{' declaration_list . statement_list '}'
- 87 declaration_list: declaration_list . declaration
- IDENTIFIER shift, and go to state 43
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- EXTERN shift, and go to state 2
- AUTO shift, and go to state 3
- INT shift, and go to state 4
- VOID shift, and go to state 5
- FUNCTION shift, and go to state 6
- IF shift, and go to state 46
- WHILE shift, and go to state 47
- CONTINUE shift, and go to state 48
- BREAK shift, and go to state 49
- RETURN shift, and go to state 50
- '(' shift, and go to state 51
- '&' shift, and go to state 52
- '*' shift, and go to state 53
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- ';' shift, and go to state 57
- '{' shift, and go to state 29
- '}' shift, and go to state 115
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 61
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 64
- relational_expression go to state 65
- equality_expression go to state 66
- assignment_expression go to state 67
- expression go to state 68
- declaration go to state 77
- declaration_specifiers go to state 11
- storage_class_specifier go to state 12
- type_specifier go to state 13
- declarator go to state 14
- direct_declarator go to state 15
- pointer go to state 16
- statement go to state 69
- compound_statement go to state 70
- statement_list go to state 116
- expression_statement go to state 73
- selection_statement go to state 74
- iteration_statement go to state 75
- jump_statement go to state 76
- function_definition go to state 33
- state 72
- 83 compound_statement: '{' statement_list . '}'
- 89 statement_list: statement_list . statement
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- IF shift, and go to state 46
- WHILE shift, and go to state 47
- CONTINUE shift, and go to state 48
- BREAK shift, and go to state 49
- RETURN shift, and go to state 50
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- ';' shift, and go to state 57
- '{' shift, and go to state 29
- '}' shift, and go to state 117
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 61
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 64
- relational_expression go to state 65
- equality_expression go to state 66
- assignment_expression go to state 67
- expression go to state 68
- statement go to state 118
- compound_statement go to state 70
- expression_statement go to state 73
- selection_statement go to state 74
- iteration_statement go to state 75
- jump_statement go to state 76
- state 73
- 78 statement: expression_statement .
- $default reduce using rule 78 (statement)
- state 74
- 79 statement: selection_statement .
- $default reduce using rule 79 (statement)
- state 75
- 80 statement: iteration_statement .
- $default reduce using rule 80 (statement)
- state 76
- 81 statement: jump_statement .
- $default reduce using rule 81 (statement)
- state 77
- 87 declaration_list: declaration_list declaration .
- $default reduce using rule 87 (declaration_list)
- state 78
- 105 function_definition: declarator declaration_list compound_statement .
- $default reduce using rule 105 (function_definition)
- state 79
- 67 identifier_list: IDENTIFIER .
- $default reduce using rule 67 (identifier_list)
- state 80
- 59 direct_declarator: direct_declarator '(' ')' .
- $default reduce using rule 59 (direct_declarator)
- state 81
- 64 parameter_declaration: declaration_specifiers . declarator
- 65 | declaration_specifiers . abstract_declarator
- 66 | declaration_specifiers .
- IDENTIFIER shift, and go to state 1
- '(' shift, and go to state 119
- '*' shift, and go to state 8
- $default reduce using rule 66 (parameter_declaration)
- declarator go to state 120
- direct_declarator go to state 15
- pointer go to state 121
- abstract_declarator go to state 122
- direct_abstract_declarator go to state 123
- state 82
- 57 direct_declarator: direct_declarator '(' parameter_list . ')'
- 63 parameter_list: parameter_list . ',' parameter_declaration
- ')' shift, and go to state 124
- ',' shift, and go to state 125
- state 83
- 62 parameter_list: parameter_declaration .
- $default reduce using rule 62 (parameter_list)
- state 84
- 58 direct_declarator: direct_declarator '(' identifier_list . ')'
- 68 identifier_list: identifier_list . ',' IDENTIFIER
- ')' shift, and go to state 126
- ',' shift, and go to state 127
- state 85
- 45 init_declarator_list: init_declarator_list ',' init_declarator .
- $default reduce using rule 45 (init_declarator_list)
- state 86
- 46 init_declarator: declarator .
- 47 | declarator . '=' assignment_expression
- '=' shift, and go to state 40
- $default reduce using rule 46 (init_declarator)
- state 87
- 2 primary_expression: IDENTIFIER .
- $default reduce using rule 2 (primary_expression)
- state 88
- 5 primary_expression: '(' . expression ')'
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 61
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 64
- relational_expression go to state 65
- equality_expression go to state 66
- assignment_expression go to state 67
- expression go to state 98
- state 89
- 14 unary_operator: '*' .
- $default reduce using rule 14 (unary_operator)
- state 90
- 47 init_declarator: declarator '=' assignment_expression .
- $default reduce using rule 47 (init_declarator)
- state 91
- 103 function_definition: declaration_specifiers declarator declaration_list compound_statement .
- $default reduce using rule 103 (function_definition)
- state 92
- 92 selection_statement: IF '(' . expression ')' statement
- 93 | IF '(' . expression ')' statement ELSE statement
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 61
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 64
- relational_expression go to state 65
- equality_expression go to state 66
- assignment_expression go to state 67
- expression go to state 128
- state 93
- 94 iteration_statement: WHILE '(' . expression ')' statement
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 61
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 64
- relational_expression go to state 65
- equality_expression go to state 66
- assignment_expression go to state 67
- expression go to state 129
- state 94
- 95 jump_statement: CONTINUE ';' .
- $default reduce using rule 95 (jump_statement)
- state 95
- 96 jump_statement: BREAK ';' .
- $default reduce using rule 96 (jump_statement)
- state 96
- 97 jump_statement: RETURN ';' .
- $default reduce using rule 97 (jump_statement)
- state 97
- 36 expression: expression . ',' assignment_expression
- 98 jump_statement: RETURN expression . ';'
- ',' shift, and go to state 113
- ';' shift, and go to state 130
- state 98
- 5 primary_expression: '(' expression . ')'
- 36 expression: expression . ',' assignment_expression
- ')' shift, and go to state 131
- ',' shift, and go to state 113
- state 99
- 7 postfix_expression: postfix_expression '(' . ')'
- 8 | postfix_expression '(' . argument_expression_list ')'
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 88
- ')' shift, and go to state 132
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- primary_expression go to state 59
- postfix_expression go to state 60
- argument_expression_list go to state 133
- unary_expression go to state 61
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 64
- relational_expression go to state 65
- equality_expression go to state 66
- assignment_expression go to state 134
- state 100
- 34 assignment_expression: unary_expression '=' . assignment_expression
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 61
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 64
- relational_expression go to state 65
- equality_expression go to state 66
- assignment_expression go to state 135
- state 101
- 12 unary_expression: unary_operator unary_expression .
- $default reduce using rule 12 (unary_expression)
- state 102
- 19 multiplicative_expression: multiplicative_expression '*' . unary_expression
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 136
- unary_operator go to state 62
- state 103
- 20 multiplicative_expression: multiplicative_expression '/' . unary_expression
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 137
- unary_operator go to state 62
- state 104
- 21 multiplicative_expression: multiplicative_expression '%' . unary_expression
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 138
- unary_operator go to state 62
- state 105
- 23 additive_expression: additive_expression '+' . multiplicative_expression
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 139
- unary_operator go to state 62
- multiplicative_expression go to state 140
- state 106
- 24 additive_expression: additive_expression '-' . multiplicative_expression
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 139
- unary_operator go to state 62
- multiplicative_expression go to state 141
- state 107
- 28 relational_expression: relational_expression LE_OP . additive_expression
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 139
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 142
- state 108
- 29 relational_expression: relational_expression GE_OP . additive_expression
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 139
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 143
- state 109
- 26 relational_expression: relational_expression '<' . additive_expression
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 139
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 144
- state 110
- 27 relational_expression: relational_expression '>' . additive_expression
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 139
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 145
- state 111
- 31 equality_expression: equality_expression EQ_OP . relational_expression
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 139
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 64
- relational_expression go to state 146
- state 112
- 32 equality_expression: equality_expression NE_OP . relational_expression
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 139
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 64
- relational_expression go to state 147
- state 113
- 36 expression: expression ',' . assignment_expression
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 61
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 64
- relational_expression go to state 65
- equality_expression go to state 66
- assignment_expression go to state 148
- state 114
- 91 expression_statement: expression ';' .
- $default reduce using rule 91 (expression_statement)
- state 115
- 84 compound_statement: '{' declaration_list '}' .
- $default reduce using rule 84 (compound_statement)
- state 116
- 85 compound_statement: '{' declaration_list statement_list . '}'
- 89 statement_list: statement_list . statement
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- IF shift, and go to state 46
- WHILE shift, and go to state 47
- CONTINUE shift, and go to state 48
- BREAK shift, and go to state 49
- RETURN shift, and go to state 50
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- ';' shift, and go to state 57
- '{' shift, and go to state 29
- '}' shift, and go to state 149
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 61
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 64
- relational_expression go to state 65
- equality_expression go to state 66
- assignment_expression go to state 67
- expression go to state 68
- statement go to state 118
- compound_statement go to state 70
- expression_statement go to state 73
- selection_statement go to state 74
- iteration_statement go to state 75
- jump_statement go to state 76
- state 117
- 83 compound_statement: '{' statement_list '}' .
- $default reduce using rule 83 (compound_statement)
- state 118
- 89 statement_list: statement_list statement .
- $default reduce using rule 89 (statement_list)
- state 119
- 56 direct_declarator: '(' . declarator ')'
- 72 direct_abstract_declarator: '(' . abstract_declarator ')'
- 73 | '(' . ')'
- 74 | '(' . parameter_list ')'
- IDENTIFIER shift, and go to state 1
- EXTERN shift, and go to state 2
- AUTO shift, and go to state 3
- INT shift, and go to state 4
- VOID shift, and go to state 5
- FUNCTION shift, and go to state 6
- '(' shift, and go to state 119
- ')' shift, and go to state 150
- '*' shift, and go to state 8
- declaration_specifiers go to state 81
- storage_class_specifier go to state 12
- type_specifier go to state 13
- declarator go to state 20
- direct_declarator go to state 15
- pointer go to state 121
- parameter_list go to state 151
- parameter_declaration go to state 83
- abstract_declarator go to state 152
- direct_abstract_declarator go to state 123
- state 120
- 64 parameter_declaration: declaration_specifiers declarator .
- $default reduce using rule 64 (parameter_declaration)
- state 121
- 53 declarator: pointer . direct_declarator
- 69 abstract_declarator: pointer .
- 71 | pointer . direct_abstract_declarator
- IDENTIFIER shift, and go to state 1
- '(' shift, and go to state 119
- $default reduce using rule 69 (abstract_declarator)
- direct_declarator go to state 35
- direct_abstract_declarator go to state 153
- state 122
- 65 parameter_declaration: declaration_specifiers abstract_declarator .
- $default reduce using rule 65 (parameter_declaration)
- state 123
- 70 abstract_declarator: direct_abstract_declarator .
- 75 direct_abstract_declarator: direct_abstract_declarator . '(' ')'
- 76 | direct_abstract_declarator . '(' parameter_list ')'
- '(' shift, and go to state 154
- $default reduce using rule 70 (abstract_declarator)
- state 124
- 57 direct_declarator: direct_declarator '(' parameter_list ')' .
- $default reduce using rule 57 (direct_declarator)
- state 125
- 63 parameter_list: parameter_list ',' . parameter_declaration
- EXTERN shift, and go to state 2
- AUTO shift, and go to state 3
- INT shift, and go to state 4
- VOID shift, and go to state 5
- FUNCTION shift, and go to state 6
- declaration_specifiers go to state 81
- storage_class_specifier go to state 12
- type_specifier go to state 13
- parameter_declaration go to state 155
- state 126
- 58 direct_declarator: direct_declarator '(' identifier_list ')' .
- $default reduce using rule 58 (direct_declarator)
- state 127
- 68 identifier_list: identifier_list ',' . IDENTIFIER
- IDENTIFIER shift, and go to state 156
- state 128
- 36 expression: expression . ',' assignment_expression
- 92 selection_statement: IF '(' expression . ')' statement
- 93 | IF '(' expression . ')' statement ELSE statement
- ')' shift, and go to state 157
- ',' shift, and go to state 113
- state 129
- 36 expression: expression . ',' assignment_expression
- 94 iteration_statement: WHILE '(' expression . ')' statement
- ')' shift, and go to state 158
- ',' shift, and go to state 113
- state 130
- 98 jump_statement: RETURN expression ';' .
- $default reduce using rule 98 (jump_statement)
- state 131
- 5 primary_expression: '(' expression ')' .
- $default reduce using rule 5 (primary_expression)
- state 132
- 7 postfix_expression: postfix_expression '(' ')' .
- $default reduce using rule 7 (postfix_expression)
- state 133
- 8 postfix_expression: postfix_expression '(' argument_expression_list . ')'
- 10 argument_expression_list: argument_expression_list . ',' assignment_expression
- ')' shift, and go to state 159
- ',' shift, and go to state 160
- state 134
- 9 argument_expression_list: assignment_expression .
- $default reduce using rule 9 (argument_expression_list)
- state 135
- 34 assignment_expression: unary_expression '=' assignment_expression .
- $default reduce using rule 34 (assignment_expression)
- state 136
- 19 multiplicative_expression: multiplicative_expression '*' unary_expression .
- $default reduce using rule 19 (multiplicative_expression)
- state 137
- 20 multiplicative_expression: multiplicative_expression '/' unary_expression .
- $default reduce using rule 20 (multiplicative_expression)
- state 138
- 21 multiplicative_expression: multiplicative_expression '%' unary_expression .
- $default reduce using rule 21 (multiplicative_expression)
- state 139
- 18 multiplicative_expression: unary_expression .
- $default reduce using rule 18 (multiplicative_expression)
- state 140
- 19 multiplicative_expression: multiplicative_expression . '*' unary_expression
- 20 | multiplicative_expression . '/' unary_expression
- 21 | multiplicative_expression . '%' unary_expression
- 23 additive_expression: additive_expression '+' multiplicative_expression .
- '*' shift, and go to state 102
- '/' shift, and go to state 103
- '%' shift, and go to state 104
- $default reduce using rule 23 (additive_expression)
- state 141
- 19 multiplicative_expression: multiplicative_expression . '*' unary_expression
- 20 | multiplicative_expression . '/' unary_expression
- 21 | multiplicative_expression . '%' unary_expression
- 24 additive_expression: additive_expression '-' multiplicative_expression .
- '*' shift, and go to state 102
- '/' shift, and go to state 103
- '%' shift, and go to state 104
- $default reduce using rule 24 (additive_expression)
- state 142
- 23 additive_expression: additive_expression . '+' multiplicative_expression
- 24 | additive_expression . '-' multiplicative_expression
- 28 relational_expression: relational_expression LE_OP additive_expression .
- '+' shift, and go to state 105
- '-' shift, and go to state 106
- $default reduce using rule 28 (relational_expression)
- state 143
- 23 additive_expression: additive_expression . '+' multiplicative_expression
- 24 | additive_expression . '-' multiplicative_expression
- 29 relational_expression: relational_expression GE_OP additive_expression .
- '+' shift, and go to state 105
- '-' shift, and go to state 106
- $default reduce using rule 29 (relational_expression)
- state 144
- 23 additive_expression: additive_expression . '+' multiplicative_expression
- 24 | additive_expression . '-' multiplicative_expression
- 26 relational_expression: relational_expression '<' additive_expression .
- '+' shift, and go to state 105
- '-' shift, and go to state 106
- $default reduce using rule 26 (relational_expression)
- state 145
- 23 additive_expression: additive_expression . '+' multiplicative_expression
- 24 | additive_expression . '-' multiplicative_expression
- 27 relational_expression: relational_expression '>' additive_expression .
- '+' shift, and go to state 105
- '-' shift, and go to state 106
- $default reduce using rule 27 (relational_expression)
- state 146
- 26 relational_expression: relational_expression . '<' additive_expression
- 27 | relational_expression . '>' additive_expression
- 28 | relational_expression . LE_OP additive_expression
- 29 | relational_expression . GE_OP additive_expression
- 31 equality_expression: equality_expression EQ_OP relational_expression .
- LE_OP shift, and go to state 107
- GE_OP shift, and go to state 108
- '<' shift, and go to state 109
- '>' shift, and go to state 110
- $default reduce using rule 31 (equality_expression)
- state 147
- 26 relational_expression: relational_expression . '<' additive_expression
- 27 | relational_expression . '>' additive_expression
- 28 | relational_expression . LE_OP additive_expression
- 29 | relational_expression . GE_OP additive_expression
- 32 equality_expression: equality_expression NE_OP relational_expression .
- LE_OP shift, and go to state 107
- GE_OP shift, and go to state 108
- '<' shift, and go to state 109
- '>' shift, and go to state 110
- $default reduce using rule 32 (equality_expression)
- state 148
- 36 expression: expression ',' assignment_expression .
- $default reduce using rule 36 (expression)
- state 149
- 85 compound_statement: '{' declaration_list statement_list '}' .
- $default reduce using rule 85 (compound_statement)
- state 150
- 73 direct_abstract_declarator: '(' ')' .
- $default reduce using rule 73 (direct_abstract_declarator)
- state 151
- 63 parameter_list: parameter_list . ',' parameter_declaration
- 74 direct_abstract_declarator: '(' parameter_list . ')'
- ')' shift, and go to state 161
- ',' shift, and go to state 125
- state 152
- 72 direct_abstract_declarator: '(' abstract_declarator . ')'
- ')' shift, and go to state 162
- state 153
- 71 abstract_declarator: pointer direct_abstract_declarator .
- 75 direct_abstract_declarator: direct_abstract_declarator . '(' ')'
- 76 | direct_abstract_declarator . '(' parameter_list ')'
- '(' shift, and go to state 154
- $default reduce using rule 71 (abstract_declarator)
- state 154
- 75 direct_abstract_declarator: direct_abstract_declarator '(' . ')'
- 76 | direct_abstract_declarator '(' . parameter_list ')'
- EXTERN shift, and go to state 2
- AUTO shift, and go to state 3
- INT shift, and go to state 4
- VOID shift, and go to state 5
- FUNCTION shift, and go to state 6
- ')' shift, and go to state 163
- declaration_specifiers go to state 81
- storage_class_specifier go to state 12
- type_specifier go to state 13
- parameter_list go to state 164
- parameter_declaration go to state 83
- state 155
- 63 parameter_list: parameter_list ',' parameter_declaration .
- $default reduce using rule 63 (parameter_list)
- state 156
- 68 identifier_list: identifier_list ',' IDENTIFIER .
- $default reduce using rule 68 (identifier_list)
- state 157
- 92 selection_statement: IF '(' expression ')' . statement
- 93 | IF '(' expression ')' . statement ELSE statement
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- IF shift, and go to state 46
- WHILE shift, and go to state 47
- CONTINUE shift, and go to state 48
- BREAK shift, and go to state 49
- RETURN shift, and go to state 50
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- ';' shift, and go to state 57
- '{' shift, and go to state 29
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 61
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 64
- relational_expression go to state 65
- equality_expression go to state 66
- assignment_expression go to state 67
- expression go to state 68
- statement go to state 165
- compound_statement go to state 70
- expression_statement go to state 73
- selection_statement go to state 74
- iteration_statement go to state 75
- jump_statement go to state 76
- state 158
- 94 iteration_statement: WHILE '(' expression ')' . statement
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- IF shift, and go to state 46
- WHILE shift, and go to state 47
- CONTINUE shift, and go to state 48
- BREAK shift, and go to state 49
- RETURN shift, and go to state 50
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- ';' shift, and go to state 57
- '{' shift, and go to state 29
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 61
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 64
- relational_expression go to state 65
- equality_expression go to state 66
- assignment_expression go to state 67
- expression go to state 68
- statement go to state 166
- compound_statement go to state 70
- expression_statement go to state 73
- selection_statement go to state 74
- iteration_statement go to state 75
- jump_statement go to state 76
- state 159
- 8 postfix_expression: postfix_expression '(' argument_expression_list ')' .
- $default reduce using rule 8 (postfix_expression)
- state 160
- 10 argument_expression_list: argument_expression_list ',' . assignment_expression
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 61
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 64
- relational_expression go to state 65
- equality_expression go to state 66
- assignment_expression go to state 167
- state 161
- 74 direct_abstract_declarator: '(' parameter_list ')' .
- $default reduce using rule 74 (direct_abstract_declarator)
- state 162
- 72 direct_abstract_declarator: '(' abstract_declarator ')' .
- $default reduce using rule 72 (direct_abstract_declarator)
- state 163
- 75 direct_abstract_declarator: direct_abstract_declarator '(' ')' .
- $default reduce using rule 75 (direct_abstract_declarator)
- state 164
- 63 parameter_list: parameter_list . ',' parameter_declaration
- 76 direct_abstract_declarator: direct_abstract_declarator '(' parameter_list . ')'
- ')' shift, and go to state 168
- ',' shift, and go to state 125
- state 165
- 92 selection_statement: IF '(' expression ')' statement .
- 93 | IF '(' expression ')' statement . ELSE statement
- ELSE shift, and go to state 169
- ELSE [reduce using rule 92 (selection_statement)]
- $default reduce using rule 92 (selection_statement)
- state 166
- 94 iteration_statement: WHILE '(' expression ')' statement .
- $default reduce using rule 94 (iteration_statement)
- state 167
- 10 argument_expression_list: argument_expression_list ',' assignment_expression .
- $default reduce using rule 10 (argument_expression_list)
- state 168
- 76 direct_abstract_declarator: direct_abstract_declarator '(' parameter_list ')' .
- $default reduce using rule 76 (direct_abstract_declarator)
- state 169
- 93 selection_statement: IF '(' expression ')' statement ELSE . statement
- IDENTIFIER shift, and go to state 87
- CONSTANT shift, and go to state 44
- STRING_LITERAL shift, and go to state 45
- IF shift, and go to state 46
- WHILE shift, and go to state 47
- CONTINUE shift, and go to state 48
- BREAK shift, and go to state 49
- RETURN shift, and go to state 50
- '(' shift, and go to state 88
- '&' shift, and go to state 52
- '*' shift, and go to state 89
- '+' shift, and go to state 54
- '-' shift, and go to state 55
- '!' shift, and go to state 56
- ';' shift, and go to state 57
- '{' shift, and go to state 29
- primary_expression go to state 59
- postfix_expression go to state 60
- unary_expression go to state 61
- unary_operator go to state 62
- multiplicative_expression go to state 63
- additive_expression go to state 64
- relational_expression go to state 65
- equality_expression go to state 66
- assignment_expression go to state 67
- expression go to state 68
- statement go to state 170
- compound_statement go to state 70
- expression_statement go to state 73
- selection_statement go to state 74
- iteration_statement go to state 75
- jump_statement go to state 76
- state 170
- 93 selection_statement: IF '(' expression ')' statement ELSE statement .
- $default reduce using rule 93 (selection_statement)
|