Year 2 compilers coureswork

C.output 75KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552
  1. Terminals which are not used
  2. APPLY
  3. LEAF
  4. Rules never reduced
  5. 101 external_declaration: function_definition
  6. State 15 conflicts: 1 shift/reduce
  7. State 19 conflicts: 9 reduce/reduce
  8. State 35 conflicts: 1 shift/reduce
  9. State 43 conflicts: 3 reduce/reduce
  10. State 53 conflicts: 1 shift/reduce, 2 reduce/reduce
  11. State 165 conflicts: 1 shift/reduce
  12. Grammar
  13. 0 $accept: goal $end
  14. 1 goal: translation_unit
  15. 2 primary_expression: IDENTIFIER
  16. 3 | CONSTANT
  17. 4 | STRING_LITERAL
  18. 5 | '(' expression ')'
  19. 6 postfix_expression: primary_expression
  20. 7 | postfix_expression '(' ')'
  21. 8 | postfix_expression '(' argument_expression_list ')'
  22. 9 argument_expression_list: assignment_expression
  23. 10 | argument_expression_list ',' assignment_expression
  24. 11 unary_expression: postfix_expression
  25. 12 | unary_operator unary_expression
  26. 13 unary_operator: '&'
  27. 14 | '*'
  28. 15 | '+'
  29. 16 | '-'
  30. 17 | '!'
  31. 18 multiplicative_expression: unary_expression
  32. 19 | multiplicative_expression '*' unary_expression
  33. 20 | multiplicative_expression '/' unary_expression
  34. 21 | multiplicative_expression '%' unary_expression
  35. 22 additive_expression: multiplicative_expression
  36. 23 | additive_expression '+' multiplicative_expression
  37. 24 | additive_expression '-' multiplicative_expression
  38. 25 relational_expression: additive_expression
  39. 26 | relational_expression '<' additive_expression
  40. 27 | relational_expression '>' additive_expression
  41. 28 | relational_expression LE_OP additive_expression
  42. 29 | relational_expression GE_OP additive_expression
  43. 30 equality_expression: relational_expression
  44. 31 | equality_expression EQ_OP relational_expression
  45. 32 | equality_expression NE_OP relational_expression
  46. 33 assignment_expression: equality_expression
  47. 34 | unary_expression '=' assignment_expression
  48. 35 expression: assignment_expression
  49. 36 | expression ',' assignment_expression
  50. 37 declaration: declaration_specifiers ';'
  51. 38 | function_definition
  52. 39 | declaration_specifiers init_declarator_list ';'
  53. 40 declaration_specifiers: storage_class_specifier
  54. 41 | storage_class_specifier declaration_specifiers
  55. 42 | type_specifier
  56. 43 | type_specifier declaration_specifiers
  57. 44 init_declarator_list: init_declarator
  58. 45 | init_declarator_list ',' init_declarator
  59. 46 init_declarator: declarator
  60. 47 | declarator '=' assignment_expression
  61. 48 storage_class_specifier: EXTERN
  62. 49 | AUTO
  63. 50 type_specifier: VOID
  64. 51 | INT
  65. 52 | FUNCTION
  66. 53 declarator: pointer direct_declarator
  67. 54 | direct_declarator
  68. 55 direct_declarator: IDENTIFIER
  69. 56 | '(' declarator ')'
  70. 57 | direct_declarator '(' parameter_list ')'
  71. 58 | direct_declarator '(' identifier_list ')'
  72. 59 | direct_declarator '(' ')'
  73. 60 pointer: '*'
  74. 61 | '*' pointer
  75. 62 parameter_list: parameter_declaration
  76. 63 | parameter_list ',' parameter_declaration
  77. 64 parameter_declaration: declaration_specifiers declarator
  78. 65 | declaration_specifiers abstract_declarator
  79. 66 | declaration_specifiers
  80. 67 identifier_list: IDENTIFIER
  81. 68 | identifier_list ',' IDENTIFIER
  82. 69 abstract_declarator: pointer
  83. 70 | direct_abstract_declarator
  84. 71 | pointer direct_abstract_declarator
  85. 72 direct_abstract_declarator: '(' abstract_declarator ')'
  86. 73 | '(' ')'
  87. 74 | '(' parameter_list ')'
  88. 75 | direct_abstract_declarator '(' ')'
  89. 76 | direct_abstract_declarator '(' parameter_list ')'
  90. 77 statement: compound_statement
  91. 78 | expression_statement
  92. 79 | selection_statement
  93. 80 | iteration_statement
  94. 81 | jump_statement
  95. 82 compound_statement: '{' '}'
  96. 83 | '{' statement_list '}'
  97. 84 | '{' declaration_list '}'
  98. 85 | '{' declaration_list statement_list '}'
  99. 86 declaration_list: declaration
  100. 87 | declaration_list declaration
  101. 88 statement_list: statement
  102. 89 | statement_list statement
  103. 90 expression_statement: ';'
  104. 91 | expression ';'
  105. 92 selection_statement: IF '(' expression ')' statement
  106. 93 | IF '(' expression ')' statement ELSE statement
  107. 94 iteration_statement: WHILE '(' expression ')' statement
  108. 95 jump_statement: CONTINUE ';'
  109. 96 | BREAK ';'
  110. 97 | RETURN ';'
  111. 98 | RETURN expression ';'
  112. 99 translation_unit: external_declaration
  113. 100 | translation_unit external_declaration
  114. 101 external_declaration: function_definition
  115. 102 | declaration
  116. 103 function_definition: declaration_specifiers declarator declaration_list compound_statement
  117. 104 | declaration_specifiers declarator compound_statement
  118. 105 | declarator declaration_list compound_statement
  119. 106 | declarator compound_statement
  120. Terminals, with rules where they appear
  121. $end (0) 0
  122. '!' (33) 17
  123. '%' (37) 21
  124. '&' (38) 13
  125. '(' (40) 5 7 8 56 57 58 59 72 73 74 75 76 92 93 94
  126. ')' (41) 5 7 8 56 57 58 59 72 73 74 75 76 92 93 94
  127. '*' (42) 14 19 60 61
  128. '+' (43) 15 23
  129. ',' (44) 10 36 45 63 68
  130. '-' (45) 16 24
  131. '/' (47) 20
  132. ';' (59) 37 39 90 91 95 96 97 98
  133. '<' (60) 26
  134. '=' (61) 34 47
  135. '>' (62) 27
  136. '{' (123) 82 83 84 85
  137. '}' (125) 82 83 84 85
  138. error (256)
  139. IDENTIFIER (258) 2 55 67 68
  140. CONSTANT (259) 3
  141. STRING_LITERAL (260) 4
  142. LE_OP (261) 28
  143. GE_OP (262) 29
  144. EQ_OP (263) 31
  145. NE_OP (264) 32
  146. EXTERN (265) 48
  147. AUTO (266) 49
  148. INT (267) 51
  149. VOID (268) 50
  150. FUNCTION (269) 52
  151. APPLY (270)
  152. LEAF (271)
  153. IF (272) 92 93
  154. ELSE (273) 93
  155. WHILE (274) 94
  156. CONTINUE (275) 95
  157. BREAK (276) 96
  158. RETURN (277) 97 98
  159. Nonterminals, with rules where they appear
  160. $accept (39)
  161. on left: 0
  162. goal (40)
  163. on left: 1, on right: 0
  164. primary_expression (41)
  165. on left: 2 3 4 5, on right: 6
  166. postfix_expression (42)
  167. on left: 6 7 8, on right: 7 8 11
  168. argument_expression_list (43)
  169. on left: 9 10, on right: 8 10
  170. unary_expression (44)
  171. on left: 11 12, on right: 12 18 19 20 21 34
  172. unary_operator (45)
  173. on left: 13 14 15 16 17, on right: 12
  174. multiplicative_expression (46)
  175. on left: 18 19 20 21, on right: 19 20 21 22 23 24
  176. additive_expression (47)
  177. on left: 22 23 24, on right: 23 24 25 26 27 28 29
  178. relational_expression (48)
  179. on left: 25 26 27 28 29, on right: 26 27 28 29 30 31 32
  180. equality_expression (49)
  181. on left: 30 31 32, on right: 31 32 33
  182. assignment_expression (50)
  183. on left: 33 34, on right: 9 10 34 35 36 47
  184. expression (51)
  185. on left: 35 36, on right: 5 36 91 92 93 94 98
  186. declaration (52)
  187. on left: 37 38 39, on right: 86 87 102
  188. declaration_specifiers (53)
  189. on left: 40 41 42 43, on right: 37 39 41 43 64 65 66 103 104
  190. init_declarator_list (54)
  191. on left: 44 45, on right: 39 45
  192. init_declarator (55)
  193. on left: 46 47, on right: 44 45
  194. storage_class_specifier (56)
  195. on left: 48 49, on right: 40 41
  196. type_specifier (57)
  197. on left: 50 51 52, on right: 42 43
  198. declarator (58)
  199. on left: 53 54, on right: 46 47 56 64 103 104 105 106
  200. direct_declarator (59)
  201. on left: 55 56 57 58 59, on right: 53 54 57 58 59
  202. pointer (60)
  203. on left: 60 61, on right: 53 61 69 71
  204. parameter_list (61)
  205. on left: 62 63, on right: 57 63 74 76
  206. parameter_declaration (62)
  207. on left: 64 65 66, on right: 62 63
  208. identifier_list (63)
  209. on left: 67 68, on right: 58 68
  210. abstract_declarator (64)
  211. on left: 69 70 71, on right: 65 72
  212. direct_abstract_declarator (65)
  213. on left: 72 73 74 75 76, on right: 70 71 75 76
  214. statement (66)
  215. on left: 77 78 79 80 81, on right: 88 89 92 93 94
  216. compound_statement (67)
  217. on left: 82 83 84 85, on right: 77 103 104 105 106
  218. declaration_list (68)
  219. on left: 86 87, on right: 84 85 87 103 105
  220. statement_list (69)
  221. on left: 88 89, on right: 83 85 89
  222. expression_statement (70)
  223. on left: 90 91, on right: 78
  224. selection_statement (71)
  225. on left: 92 93, on right: 79
  226. iteration_statement (72)
  227. on left: 94, on right: 80
  228. jump_statement (73)
  229. on left: 95 96 97 98, on right: 81
  230. translation_unit (74)
  231. on left: 99 100, on right: 1 100
  232. external_declaration (75)
  233. on left: 101 102, on right: 99 100
  234. function_definition (76)
  235. on left: 103 104 105 106, on right: 38 101
  236. state 0
  237. 0 $accept: . goal $end
  238. IDENTIFIER shift, and go to state 1
  239. EXTERN shift, and go to state 2
  240. AUTO shift, and go to state 3
  241. INT shift, and go to state 4
  242. VOID shift, and go to state 5
  243. FUNCTION shift, and go to state 6
  244. '(' shift, and go to state 7
  245. '*' shift, and go to state 8
  246. goal go to state 9
  247. declaration go to state 10
  248. declaration_specifiers go to state 11
  249. storage_class_specifier go to state 12
  250. type_specifier go to state 13
  251. declarator go to state 14
  252. direct_declarator go to state 15
  253. pointer go to state 16
  254. translation_unit go to state 17
  255. external_declaration go to state 18
  256. function_definition go to state 19
  257. state 1
  258. 55 direct_declarator: IDENTIFIER .
  259. $default reduce using rule 55 (direct_declarator)
  260. state 2
  261. 48 storage_class_specifier: EXTERN .
  262. $default reduce using rule 48 (storage_class_specifier)
  263. state 3
  264. 49 storage_class_specifier: AUTO .
  265. $default reduce using rule 49 (storage_class_specifier)
  266. state 4
  267. 51 type_specifier: INT .
  268. $default reduce using rule 51 (type_specifier)
  269. state 5
  270. 50 type_specifier: VOID .
  271. $default reduce using rule 50 (type_specifier)
  272. state 6
  273. 52 type_specifier: FUNCTION .
  274. $default reduce using rule 52 (type_specifier)
  275. state 7
  276. 56 direct_declarator: '(' . declarator ')'
  277. IDENTIFIER shift, and go to state 1
  278. '(' shift, and go to state 7
  279. '*' shift, and go to state 8
  280. declarator go to state 20
  281. direct_declarator go to state 15
  282. pointer go to state 16
  283. state 8
  284. 60 pointer: '*' .
  285. 61 | '*' . pointer
  286. '*' shift, and go to state 8
  287. $default reduce using rule 60 (pointer)
  288. pointer go to state 21
  289. state 9
  290. 0 $accept: goal . $end
  291. $end shift, and go to state 22
  292. state 10
  293. 102 external_declaration: declaration .
  294. $default reduce using rule 102 (external_declaration)
  295. state 11
  296. 37 declaration: declaration_specifiers . ';'
  297. 39 | declaration_specifiers . init_declarator_list ';'
  298. 103 function_definition: declaration_specifiers . declarator declaration_list compound_statement
  299. 104 | declaration_specifiers . declarator compound_statement
  300. IDENTIFIER shift, and go to state 1
  301. '(' shift, and go to state 7
  302. '*' shift, and go to state 8
  303. ';' shift, and go to state 23
  304. init_declarator_list go to state 24
  305. init_declarator go to state 25
  306. declarator go to state 26
  307. direct_declarator go to state 15
  308. pointer go to state 16
  309. state 12
  310. 40 declaration_specifiers: storage_class_specifier .
  311. 41 | storage_class_specifier . declaration_specifiers
  312. EXTERN shift, and go to state 2
  313. AUTO shift, and go to state 3
  314. INT shift, and go to state 4
  315. VOID shift, and go to state 5
  316. FUNCTION shift, and go to state 6
  317. $default reduce using rule 40 (declaration_specifiers)
  318. declaration_specifiers go to state 27
  319. storage_class_specifier go to state 12
  320. type_specifier go to state 13
  321. state 13
  322. 42 declaration_specifiers: type_specifier .
  323. 43 | type_specifier . declaration_specifiers
  324. EXTERN shift, and go to state 2
  325. AUTO shift, and go to state 3
  326. INT shift, and go to state 4
  327. VOID shift, and go to state 5
  328. FUNCTION shift, and go to state 6
  329. $default reduce using rule 42 (declaration_specifiers)
  330. declaration_specifiers go to state 28
  331. storage_class_specifier go to state 12
  332. type_specifier go to state 13
  333. state 14
  334. 105 function_definition: declarator . declaration_list compound_statement
  335. 106 | declarator . compound_statement
  336. IDENTIFIER shift, and go to state 1
  337. EXTERN shift, and go to state 2
  338. AUTO shift, and go to state 3
  339. INT shift, and go to state 4
  340. VOID shift, and go to state 5
  341. FUNCTION shift, and go to state 6
  342. '(' shift, and go to state 7
  343. '*' shift, and go to state 8
  344. '{' shift, and go to state 29
  345. declaration go to state 30
  346. declaration_specifiers go to state 11
  347. storage_class_specifier go to state 12
  348. type_specifier go to state 13
  349. declarator go to state 14
  350. direct_declarator go to state 15
  351. pointer go to state 16
  352. compound_statement go to state 31
  353. declaration_list go to state 32
  354. function_definition go to state 33
  355. state 15
  356. 54 declarator: direct_declarator .
  357. 57 direct_declarator: direct_declarator . '(' parameter_list ')'
  358. 58 | direct_declarator . '(' identifier_list ')'
  359. 59 | direct_declarator . '(' ')'
  360. '(' shift, and go to state 34
  361. '(' [reduce using rule 54 (declarator)]
  362. $default reduce using rule 54 (declarator)
  363. state 16
  364. 53 declarator: pointer . direct_declarator
  365. IDENTIFIER shift, and go to state 1
  366. '(' shift, and go to state 7
  367. direct_declarator go to state 35
  368. state 17
  369. 1 goal: translation_unit .
  370. 100 translation_unit: translation_unit . external_declaration
  371. IDENTIFIER shift, and go to state 1
  372. EXTERN shift, and go to state 2
  373. AUTO shift, and go to state 3
  374. INT shift, and go to state 4
  375. VOID shift, and go to state 5
  376. FUNCTION shift, and go to state 6
  377. '(' shift, and go to state 7
  378. '*' shift, and go to state 8
  379. $default reduce using rule 1 (goal)
  380. declaration go to state 10
  381. declaration_specifiers go to state 11
  382. storage_class_specifier go to state 12
  383. type_specifier go to state 13
  384. declarator go to state 14
  385. direct_declarator go to state 15
  386. pointer go to state 16
  387. external_declaration go to state 36
  388. function_definition go to state 19
  389. state 18
  390. 99 translation_unit: external_declaration .
  391. $default reduce using rule 99 (translation_unit)
  392. state 19
  393. 38 declaration: function_definition .
  394. 101 external_declaration: function_definition .
  395. $end reduce using rule 38 (declaration)
  396. $end [reduce using rule 101 (external_declaration)]
  397. IDENTIFIER reduce using rule 38 (declaration)
  398. IDENTIFIER [reduce using rule 101 (external_declaration)]
  399. EXTERN reduce using rule 38 (declaration)
  400. EXTERN [reduce using rule 101 (external_declaration)]
  401. AUTO reduce using rule 38 (declaration)
  402. AUTO [reduce using rule 101 (external_declaration)]
  403. INT reduce using rule 38 (declaration)
  404. INT [reduce using rule 101 (external_declaration)]
  405. VOID reduce using rule 38 (declaration)
  406. VOID [reduce using rule 101 (external_declaration)]
  407. FUNCTION reduce using rule 38 (declaration)
  408. FUNCTION [reduce using rule 101 (external_declaration)]
  409. '(' reduce using rule 38 (declaration)
  410. '(' [reduce using rule 101 (external_declaration)]
  411. '*' reduce using rule 38 (declaration)
  412. '*' [reduce using rule 101 (external_declaration)]
  413. $default reduce using rule 38 (declaration)
  414. state 20
  415. 56 direct_declarator: '(' declarator . ')'
  416. ')' shift, and go to state 37
  417. state 21
  418. 61 pointer: '*' pointer .
  419. $default reduce using rule 61 (pointer)
  420. state 22
  421. 0 $accept: goal $end .
  422. $default accept
  423. state 23
  424. 37 declaration: declaration_specifiers ';' .
  425. $default reduce using rule 37 (declaration)
  426. state 24
  427. 39 declaration: declaration_specifiers init_declarator_list . ';'
  428. 45 init_declarator_list: init_declarator_list . ',' init_declarator
  429. ',' shift, and go to state 38
  430. ';' shift, and go to state 39
  431. state 25
  432. 44 init_declarator_list: init_declarator .
  433. $default reduce using rule 44 (init_declarator_list)
  434. state 26
  435. 46 init_declarator: declarator .
  436. 47 | declarator . '=' assignment_expression
  437. 103 function_definition: declaration_specifiers declarator . declaration_list compound_statement
  438. 104 | declaration_specifiers declarator . compound_statement
  439. IDENTIFIER shift, and go to state 1
  440. EXTERN shift, and go to state 2
  441. AUTO shift, and go to state 3
  442. INT shift, and go to state 4
  443. VOID shift, and go to state 5
  444. FUNCTION shift, and go to state 6
  445. '(' shift, and go to state 7
  446. '*' shift, and go to state 8
  447. '=' shift, and go to state 40
  448. '{' shift, and go to state 29
  449. $default reduce using rule 46 (init_declarator)
  450. declaration go to state 30
  451. declaration_specifiers go to state 11
  452. storage_class_specifier go to state 12
  453. type_specifier go to state 13
  454. declarator go to state 14
  455. direct_declarator go to state 15
  456. pointer go to state 16
  457. compound_statement go to state 41
  458. declaration_list go to state 42
  459. function_definition go to state 33
  460. state 27
  461. 41 declaration_specifiers: storage_class_specifier declaration_specifiers .
  462. $default reduce using rule 41 (declaration_specifiers)
  463. state 28
  464. 43 declaration_specifiers: type_specifier declaration_specifiers .
  465. $default reduce using rule 43 (declaration_specifiers)
  466. state 29
  467. 82 compound_statement: '{' . '}'
  468. 83 | '{' . statement_list '}'
  469. 84 | '{' . declaration_list '}'
  470. 85 | '{' . declaration_list statement_list '}'
  471. IDENTIFIER shift, and go to state 43
  472. CONSTANT shift, and go to state 44
  473. STRING_LITERAL shift, and go to state 45
  474. EXTERN shift, and go to state 2
  475. AUTO shift, and go to state 3
  476. INT shift, and go to state 4
  477. VOID shift, and go to state 5
  478. FUNCTION shift, and go to state 6
  479. IF shift, and go to state 46
  480. WHILE shift, and go to state 47
  481. CONTINUE shift, and go to state 48
  482. BREAK shift, and go to state 49
  483. RETURN shift, and go to state 50
  484. '(' shift, and go to state 51
  485. '&' shift, and go to state 52
  486. '*' shift, and go to state 53
  487. '+' shift, and go to state 54
  488. '-' shift, and go to state 55
  489. '!' shift, and go to state 56
  490. ';' shift, and go to state 57
  491. '{' shift, and go to state 29
  492. '}' shift, and go to state 58
  493. primary_expression go to state 59
  494. postfix_expression go to state 60
  495. unary_expression go to state 61
  496. unary_operator go to state 62
  497. multiplicative_expression go to state 63
  498. additive_expression go to state 64
  499. relational_expression go to state 65
  500. equality_expression go to state 66
  501. assignment_expression go to state 67
  502. expression go to state 68
  503. declaration go to state 30
  504. declaration_specifiers go to state 11
  505. storage_class_specifier go to state 12
  506. type_specifier go to state 13
  507. declarator go to state 14
  508. direct_declarator go to state 15
  509. pointer go to state 16
  510. statement go to state 69
  511. compound_statement go to state 70
  512. declaration_list go to state 71
  513. statement_list go to state 72
  514. expression_statement go to state 73
  515. selection_statement go to state 74
  516. iteration_statement go to state 75
  517. jump_statement go to state 76
  518. function_definition go to state 33
  519. state 30
  520. 86 declaration_list: declaration .
  521. $default reduce using rule 86 (declaration_list)
  522. state 31
  523. 106 function_definition: declarator compound_statement .
  524. $default reduce using rule 106 (function_definition)
  525. state 32
  526. 87 declaration_list: declaration_list . declaration
  527. 105 function_definition: declarator declaration_list . compound_statement
  528. IDENTIFIER shift, and go to state 1
  529. EXTERN shift, and go to state 2
  530. AUTO shift, and go to state 3
  531. INT shift, and go to state 4
  532. VOID shift, and go to state 5
  533. FUNCTION shift, and go to state 6
  534. '(' shift, and go to state 7
  535. '*' shift, and go to state 8
  536. '{' shift, and go to state 29
  537. declaration go to state 77
  538. declaration_specifiers go to state 11
  539. storage_class_specifier go to state 12
  540. type_specifier go to state 13
  541. declarator go to state 14
  542. direct_declarator go to state 15
  543. pointer go to state 16
  544. compound_statement go to state 78
  545. function_definition go to state 33
  546. state 33
  547. 38 declaration: function_definition .
  548. $default reduce using rule 38 (declaration)
  549. state 34
  550. 57 direct_declarator: direct_declarator '(' . parameter_list ')'
  551. 58 | direct_declarator '(' . identifier_list ')'
  552. 59 | direct_declarator '(' . ')'
  553. IDENTIFIER shift, and go to state 79
  554. EXTERN shift, and go to state 2
  555. AUTO shift, and go to state 3
  556. INT shift, and go to state 4
  557. VOID shift, and go to state 5
  558. FUNCTION shift, and go to state 6
  559. ')' shift, and go to state 80
  560. declaration_specifiers go to state 81
  561. storage_class_specifier go to state 12
  562. type_specifier go to state 13
  563. parameter_list go to state 82
  564. parameter_declaration go to state 83
  565. identifier_list go to state 84
  566. state 35
  567. 53 declarator: pointer direct_declarator .
  568. 57 direct_declarator: direct_declarator . '(' parameter_list ')'
  569. 58 | direct_declarator . '(' identifier_list ')'
  570. 59 | direct_declarator . '(' ')'
  571. '(' shift, and go to state 34
  572. '(' [reduce using rule 53 (declarator)]
  573. $default reduce using rule 53 (declarator)
  574. state 36
  575. 100 translation_unit: translation_unit external_declaration .
  576. $default reduce using rule 100 (translation_unit)
  577. state 37
  578. 56 direct_declarator: '(' declarator ')' .
  579. $default reduce using rule 56 (direct_declarator)
  580. state 38
  581. 45 init_declarator_list: init_declarator_list ',' . init_declarator
  582. IDENTIFIER shift, and go to state 1
  583. '(' shift, and go to state 7
  584. '*' shift, and go to state 8
  585. init_declarator go to state 85
  586. declarator go to state 86
  587. direct_declarator go to state 15
  588. pointer go to state 16
  589. state 39
  590. 39 declaration: declaration_specifiers init_declarator_list ';' .
  591. $default reduce using rule 39 (declaration)
  592. state 40
  593. 47 init_declarator: declarator '=' . assignment_expression
  594. IDENTIFIER shift, and go to state 87
  595. CONSTANT shift, and go to state 44
  596. STRING_LITERAL shift, and go to state 45
  597. '(' shift, and go to state 88
  598. '&' shift, and go to state 52
  599. '*' shift, and go to state 89
  600. '+' shift, and go to state 54
  601. '-' shift, and go to state 55
  602. '!' shift, and go to state 56
  603. primary_expression go to state 59
  604. postfix_expression go to state 60
  605. unary_expression go to state 61
  606. unary_operator go to state 62
  607. multiplicative_expression go to state 63
  608. additive_expression go to state 64
  609. relational_expression go to state 65
  610. equality_expression go to state 66
  611. assignment_expression go to state 90
  612. state 41
  613. 104 function_definition: declaration_specifiers declarator compound_statement .
  614. $default reduce using rule 104 (function_definition)
  615. state 42
  616. 87 declaration_list: declaration_list . declaration
  617. 103 function_definition: declaration_specifiers declarator declaration_list . compound_statement
  618. IDENTIFIER shift, and go to state 1
  619. EXTERN shift, and go to state 2
  620. AUTO shift, and go to state 3
  621. INT shift, and go to state 4
  622. VOID shift, and go to state 5
  623. FUNCTION shift, and go to state 6
  624. '(' shift, and go to state 7
  625. '*' shift, and go to state 8
  626. '{' shift, and go to state 29
  627. declaration go to state 77
  628. declaration_specifiers go to state 11
  629. storage_class_specifier go to state 12
  630. type_specifier go to state 13
  631. declarator go to state 14
  632. direct_declarator go to state 15
  633. pointer go to state 16
  634. compound_statement go to state 91
  635. function_definition go to state 33
  636. state 43
  637. 2 primary_expression: IDENTIFIER .
  638. 55 direct_declarator: IDENTIFIER .
  639. IDENTIFIER reduce using rule 55 (direct_declarator)
  640. EXTERN reduce using rule 55 (direct_declarator)
  641. AUTO reduce using rule 55 (direct_declarator)
  642. INT reduce using rule 55 (direct_declarator)
  643. VOID reduce using rule 55 (direct_declarator)
  644. FUNCTION reduce using rule 55 (direct_declarator)
  645. '(' reduce using rule 2 (primary_expression)
  646. '(' [reduce using rule 55 (direct_declarator)]
  647. ')' reduce using rule 2 (primary_expression)
  648. ')' [reduce using rule 55 (direct_declarator)]
  649. '*' reduce using rule 2 (primary_expression)
  650. '*' [reduce using rule 55 (direct_declarator)]
  651. '{' reduce using rule 55 (direct_declarator)
  652. $default reduce using rule 2 (primary_expression)
  653. state 44
  654. 3 primary_expression: CONSTANT .
  655. $default reduce using rule 3 (primary_expression)
  656. state 45
  657. 4 primary_expression: STRING_LITERAL .
  658. $default reduce using rule 4 (primary_expression)
  659. state 46
  660. 92 selection_statement: IF . '(' expression ')' statement
  661. 93 | IF . '(' expression ')' statement ELSE statement
  662. '(' shift, and go to state 92
  663. state 47
  664. 94 iteration_statement: WHILE . '(' expression ')' statement
  665. '(' shift, and go to state 93
  666. state 48
  667. 95 jump_statement: CONTINUE . ';'
  668. ';' shift, and go to state 94
  669. state 49
  670. 96 jump_statement: BREAK . ';'
  671. ';' shift, and go to state 95
  672. state 50
  673. 97 jump_statement: RETURN . ';'
  674. 98 | RETURN . expression ';'
  675. IDENTIFIER shift, and go to state 87
  676. CONSTANT shift, and go to state 44
  677. STRING_LITERAL shift, and go to state 45
  678. '(' shift, and go to state 88
  679. '&' shift, and go to state 52
  680. '*' shift, and go to state 89
  681. '+' shift, and go to state 54
  682. '-' shift, and go to state 55
  683. '!' shift, and go to state 56
  684. ';' shift, and go to state 96
  685. primary_expression go to state 59
  686. postfix_expression go to state 60
  687. unary_expression go to state 61
  688. unary_operator go to state 62
  689. multiplicative_expression go to state 63
  690. additive_expression go to state 64
  691. relational_expression go to state 65
  692. equality_expression go to state 66
  693. assignment_expression go to state 67
  694. expression go to state 97
  695. state 51
  696. 5 primary_expression: '(' . expression ')'
  697. 56 direct_declarator: '(' . declarator ')'
  698. IDENTIFIER shift, and go to state 43
  699. CONSTANT shift, and go to state 44
  700. STRING_LITERAL shift, and go to state 45
  701. '(' shift, and go to state 51
  702. '&' shift, and go to state 52
  703. '*' shift, and go to state 53
  704. '+' shift, and go to state 54
  705. '-' shift, and go to state 55
  706. '!' shift, and go to state 56
  707. primary_expression go to state 59
  708. postfix_expression go to state 60
  709. unary_expression go to state 61
  710. unary_operator go to state 62
  711. multiplicative_expression go to state 63
  712. additive_expression go to state 64
  713. relational_expression go to state 65
  714. equality_expression go to state 66
  715. assignment_expression go to state 67
  716. expression go to state 98
  717. declarator go to state 20
  718. direct_declarator go to state 15
  719. pointer go to state 16
  720. state 52
  721. 13 unary_operator: '&' .
  722. $default reduce using rule 13 (unary_operator)
  723. state 53
  724. 14 unary_operator: '*' .
  725. 60 pointer: '*' .
  726. 61 | '*' . pointer
  727. '*' shift, and go to state 8
  728. IDENTIFIER reduce using rule 14 (unary_operator)
  729. IDENTIFIER [reduce using rule 60 (pointer)]
  730. '(' reduce using rule 14 (unary_operator)
  731. '(' [reduce using rule 60 (pointer)]
  732. '*' [reduce using rule 14 (unary_operator)]
  733. $default reduce using rule 14 (unary_operator)
  734. pointer go to state 21
  735. state 54
  736. 15 unary_operator: '+' .
  737. $default reduce using rule 15 (unary_operator)
  738. state 55
  739. 16 unary_operator: '-' .
  740. $default reduce using rule 16 (unary_operator)
  741. state 56
  742. 17 unary_operator: '!' .
  743. $default reduce using rule 17 (unary_operator)
  744. state 57
  745. 90 expression_statement: ';' .
  746. $default reduce using rule 90 (expression_statement)
  747. state 58
  748. 82 compound_statement: '{' '}' .
  749. $default reduce using rule 82 (compound_statement)
  750. state 59
  751. 6 postfix_expression: primary_expression .
  752. $default reduce using rule 6 (postfix_expression)
  753. state 60
  754. 7 postfix_expression: postfix_expression . '(' ')'
  755. 8 | postfix_expression . '(' argument_expression_list ')'
  756. 11 unary_expression: postfix_expression .
  757. '(' shift, and go to state 99
  758. $default reduce using rule 11 (unary_expression)
  759. state 61
  760. 18 multiplicative_expression: unary_expression .
  761. 34 assignment_expression: unary_expression . '=' assignment_expression
  762. '=' shift, and go to state 100
  763. $default reduce using rule 18 (multiplicative_expression)
  764. state 62
  765. 12 unary_expression: unary_operator . unary_expression
  766. IDENTIFIER shift, and go to state 87
  767. CONSTANT shift, and go to state 44
  768. STRING_LITERAL shift, and go to state 45
  769. '(' shift, and go to state 88
  770. '&' shift, and go to state 52
  771. '*' shift, and go to state 89
  772. '+' shift, and go to state 54
  773. '-' shift, and go to state 55
  774. '!' shift, and go to state 56
  775. primary_expression go to state 59
  776. postfix_expression go to state 60
  777. unary_expression go to state 101
  778. unary_operator go to state 62
  779. state 63
  780. 19 multiplicative_expression: multiplicative_expression . '*' unary_expression
  781. 20 | multiplicative_expression . '/' unary_expression
  782. 21 | multiplicative_expression . '%' unary_expression
  783. 22 additive_expression: multiplicative_expression .
  784. '*' shift, and go to state 102
  785. '/' shift, and go to state 103
  786. '%' shift, and go to state 104
  787. $default reduce using rule 22 (additive_expression)
  788. state 64
  789. 23 additive_expression: additive_expression . '+' multiplicative_expression
  790. 24 | additive_expression . '-' multiplicative_expression
  791. 25 relational_expression: additive_expression .
  792. '+' shift, and go to state 105
  793. '-' shift, and go to state 106
  794. $default reduce using rule 25 (relational_expression)
  795. state 65
  796. 26 relational_expression: relational_expression . '<' additive_expression
  797. 27 | relational_expression . '>' additive_expression
  798. 28 | relational_expression . LE_OP additive_expression
  799. 29 | relational_expression . GE_OP additive_expression
  800. 30 equality_expression: relational_expression .
  801. LE_OP shift, and go to state 107
  802. GE_OP shift, and go to state 108
  803. '<' shift, and go to state 109
  804. '>' shift, and go to state 110
  805. $default reduce using rule 30 (equality_expression)
  806. state 66
  807. 31 equality_expression: equality_expression . EQ_OP relational_expression
  808. 32 | equality_expression . NE_OP relational_expression
  809. 33 assignment_expression: equality_expression .
  810. EQ_OP shift, and go to state 111
  811. NE_OP shift, and go to state 112
  812. $default reduce using rule 33 (assignment_expression)
  813. state 67
  814. 35 expression: assignment_expression .
  815. $default reduce using rule 35 (expression)
  816. state 68
  817. 36 expression: expression . ',' assignment_expression
  818. 91 expression_statement: expression . ';'
  819. ',' shift, and go to state 113
  820. ';' shift, and go to state 114
  821. state 69
  822. 88 statement_list: statement .
  823. $default reduce using rule 88 (statement_list)
  824. state 70
  825. 77 statement: compound_statement .
  826. $default reduce using rule 77 (statement)
  827. state 71
  828. 84 compound_statement: '{' declaration_list . '}'
  829. 85 | '{' declaration_list . statement_list '}'
  830. 87 declaration_list: declaration_list . declaration
  831. IDENTIFIER shift, and go to state 43
  832. CONSTANT shift, and go to state 44
  833. STRING_LITERAL shift, and go to state 45
  834. EXTERN shift, and go to state 2
  835. AUTO shift, and go to state 3
  836. INT shift, and go to state 4
  837. VOID shift, and go to state 5
  838. FUNCTION shift, and go to state 6
  839. IF shift, and go to state 46
  840. WHILE shift, and go to state 47
  841. CONTINUE shift, and go to state 48
  842. BREAK shift, and go to state 49
  843. RETURN shift, and go to state 50
  844. '(' shift, and go to state 51
  845. '&' shift, and go to state 52
  846. '*' shift, and go to state 53
  847. '+' shift, and go to state 54
  848. '-' shift, and go to state 55
  849. '!' shift, and go to state 56
  850. ';' shift, and go to state 57
  851. '{' shift, and go to state 29
  852. '}' shift, and go to state 115
  853. primary_expression go to state 59
  854. postfix_expression go to state 60
  855. unary_expression go to state 61
  856. unary_operator go to state 62
  857. multiplicative_expression go to state 63
  858. additive_expression go to state 64
  859. relational_expression go to state 65
  860. equality_expression go to state 66
  861. assignment_expression go to state 67
  862. expression go to state 68
  863. declaration go to state 77
  864. declaration_specifiers go to state 11
  865. storage_class_specifier go to state 12
  866. type_specifier go to state 13
  867. declarator go to state 14
  868. direct_declarator go to state 15
  869. pointer go to state 16
  870. statement go to state 69
  871. compound_statement go to state 70
  872. statement_list go to state 116
  873. expression_statement go to state 73
  874. selection_statement go to state 74
  875. iteration_statement go to state 75
  876. jump_statement go to state 76
  877. function_definition go to state 33
  878. state 72
  879. 83 compound_statement: '{' statement_list . '}'
  880. 89 statement_list: statement_list . statement
  881. IDENTIFIER shift, and go to state 87
  882. CONSTANT shift, and go to state 44
  883. STRING_LITERAL shift, and go to state 45
  884. IF shift, and go to state 46
  885. WHILE shift, and go to state 47
  886. CONTINUE shift, and go to state 48
  887. BREAK shift, and go to state 49
  888. RETURN shift, and go to state 50
  889. '(' shift, and go to state 88
  890. '&' shift, and go to state 52
  891. '*' shift, and go to state 89
  892. '+' shift, and go to state 54
  893. '-' shift, and go to state 55
  894. '!' shift, and go to state 56
  895. ';' shift, and go to state 57
  896. '{' shift, and go to state 29
  897. '}' shift, and go to state 117
  898. primary_expression go to state 59
  899. postfix_expression go to state 60
  900. unary_expression go to state 61
  901. unary_operator go to state 62
  902. multiplicative_expression go to state 63
  903. additive_expression go to state 64
  904. relational_expression go to state 65
  905. equality_expression go to state 66
  906. assignment_expression go to state 67
  907. expression go to state 68
  908. statement go to state 118
  909. compound_statement go to state 70
  910. expression_statement go to state 73
  911. selection_statement go to state 74
  912. iteration_statement go to state 75
  913. jump_statement go to state 76
  914. state 73
  915. 78 statement: expression_statement .
  916. $default reduce using rule 78 (statement)
  917. state 74
  918. 79 statement: selection_statement .
  919. $default reduce using rule 79 (statement)
  920. state 75
  921. 80 statement: iteration_statement .
  922. $default reduce using rule 80 (statement)
  923. state 76
  924. 81 statement: jump_statement .
  925. $default reduce using rule 81 (statement)
  926. state 77
  927. 87 declaration_list: declaration_list declaration .
  928. $default reduce using rule 87 (declaration_list)
  929. state 78
  930. 105 function_definition: declarator declaration_list compound_statement .
  931. $default reduce using rule 105 (function_definition)
  932. state 79
  933. 67 identifier_list: IDENTIFIER .
  934. $default reduce using rule 67 (identifier_list)
  935. state 80
  936. 59 direct_declarator: direct_declarator '(' ')' .
  937. $default reduce using rule 59 (direct_declarator)
  938. state 81
  939. 64 parameter_declaration: declaration_specifiers . declarator
  940. 65 | declaration_specifiers . abstract_declarator
  941. 66 | declaration_specifiers .
  942. IDENTIFIER shift, and go to state 1
  943. '(' shift, and go to state 119
  944. '*' shift, and go to state 8
  945. $default reduce using rule 66 (parameter_declaration)
  946. declarator go to state 120
  947. direct_declarator go to state 15
  948. pointer go to state 121
  949. abstract_declarator go to state 122
  950. direct_abstract_declarator go to state 123
  951. state 82
  952. 57 direct_declarator: direct_declarator '(' parameter_list . ')'
  953. 63 parameter_list: parameter_list . ',' parameter_declaration
  954. ')' shift, and go to state 124
  955. ',' shift, and go to state 125
  956. state 83
  957. 62 parameter_list: parameter_declaration .
  958. $default reduce using rule 62 (parameter_list)
  959. state 84
  960. 58 direct_declarator: direct_declarator '(' identifier_list . ')'
  961. 68 identifier_list: identifier_list . ',' IDENTIFIER
  962. ')' shift, and go to state 126
  963. ',' shift, and go to state 127
  964. state 85
  965. 45 init_declarator_list: init_declarator_list ',' init_declarator .
  966. $default reduce using rule 45 (init_declarator_list)
  967. state 86
  968. 46 init_declarator: declarator .
  969. 47 | declarator . '=' assignment_expression
  970. '=' shift, and go to state 40
  971. $default reduce using rule 46 (init_declarator)
  972. state 87
  973. 2 primary_expression: IDENTIFIER .
  974. $default reduce using rule 2 (primary_expression)
  975. state 88
  976. 5 primary_expression: '(' . expression ')'
  977. IDENTIFIER shift, and go to state 87
  978. CONSTANT shift, and go to state 44
  979. STRING_LITERAL shift, and go to state 45
  980. '(' shift, and go to state 88
  981. '&' shift, and go to state 52
  982. '*' shift, and go to state 89
  983. '+' shift, and go to state 54
  984. '-' shift, and go to state 55
  985. '!' shift, and go to state 56
  986. primary_expression go to state 59
  987. postfix_expression go to state 60
  988. unary_expression go to state 61
  989. unary_operator go to state 62
  990. multiplicative_expression go to state 63
  991. additive_expression go to state 64
  992. relational_expression go to state 65
  993. equality_expression go to state 66
  994. assignment_expression go to state 67
  995. expression go to state 98
  996. state 89
  997. 14 unary_operator: '*' .
  998. $default reduce using rule 14 (unary_operator)
  999. state 90
  1000. 47 init_declarator: declarator '=' assignment_expression .
  1001. $default reduce using rule 47 (init_declarator)
  1002. state 91
  1003. 103 function_definition: declaration_specifiers declarator declaration_list compound_statement .
  1004. $default reduce using rule 103 (function_definition)
  1005. state 92
  1006. 92 selection_statement: IF '(' . expression ')' statement
  1007. 93 | IF '(' . expression ')' statement ELSE statement
  1008. IDENTIFIER shift, and go to state 87
  1009. CONSTANT shift, and go to state 44
  1010. STRING_LITERAL shift, and go to state 45
  1011. '(' shift, and go to state 88
  1012. '&' shift, and go to state 52
  1013. '*' shift, and go to state 89
  1014. '+' shift, and go to state 54
  1015. '-' shift, and go to state 55
  1016. '!' shift, and go to state 56
  1017. primary_expression go to state 59
  1018. postfix_expression go to state 60
  1019. unary_expression go to state 61
  1020. unary_operator go to state 62
  1021. multiplicative_expression go to state 63
  1022. additive_expression go to state 64
  1023. relational_expression go to state 65
  1024. equality_expression go to state 66
  1025. assignment_expression go to state 67
  1026. expression go to state 128
  1027. state 93
  1028. 94 iteration_statement: WHILE '(' . expression ')' statement
  1029. IDENTIFIER shift, and go to state 87
  1030. CONSTANT shift, and go to state 44
  1031. STRING_LITERAL shift, and go to state 45
  1032. '(' shift, and go to state 88
  1033. '&' shift, and go to state 52
  1034. '*' shift, and go to state 89
  1035. '+' shift, and go to state 54
  1036. '-' shift, and go to state 55
  1037. '!' shift, and go to state 56
  1038. primary_expression go to state 59
  1039. postfix_expression go to state 60
  1040. unary_expression go to state 61
  1041. unary_operator go to state 62
  1042. multiplicative_expression go to state 63
  1043. additive_expression go to state 64
  1044. relational_expression go to state 65
  1045. equality_expression go to state 66
  1046. assignment_expression go to state 67
  1047. expression go to state 129
  1048. state 94
  1049. 95 jump_statement: CONTINUE ';' .
  1050. $default reduce using rule 95 (jump_statement)
  1051. state 95
  1052. 96 jump_statement: BREAK ';' .
  1053. $default reduce using rule 96 (jump_statement)
  1054. state 96
  1055. 97 jump_statement: RETURN ';' .
  1056. $default reduce using rule 97 (jump_statement)
  1057. state 97
  1058. 36 expression: expression . ',' assignment_expression
  1059. 98 jump_statement: RETURN expression . ';'
  1060. ',' shift, and go to state 113
  1061. ';' shift, and go to state 130
  1062. state 98
  1063. 5 primary_expression: '(' expression . ')'
  1064. 36 expression: expression . ',' assignment_expression
  1065. ')' shift, and go to state 131
  1066. ',' shift, and go to state 113
  1067. state 99
  1068. 7 postfix_expression: postfix_expression '(' . ')'
  1069. 8 | postfix_expression '(' . argument_expression_list ')'
  1070. IDENTIFIER shift, and go to state 87
  1071. CONSTANT shift, and go to state 44
  1072. STRING_LITERAL shift, and go to state 45
  1073. '(' shift, and go to state 88
  1074. ')' shift, and go to state 132
  1075. '&' shift, and go to state 52
  1076. '*' shift, and go to state 89
  1077. '+' shift, and go to state 54
  1078. '-' shift, and go to state 55
  1079. '!' shift, and go to state 56
  1080. primary_expression go to state 59
  1081. postfix_expression go to state 60
  1082. argument_expression_list go to state 133
  1083. unary_expression go to state 61
  1084. unary_operator go to state 62
  1085. multiplicative_expression go to state 63
  1086. additive_expression go to state 64
  1087. relational_expression go to state 65
  1088. equality_expression go to state 66
  1089. assignment_expression go to state 134
  1090. state 100
  1091. 34 assignment_expression: unary_expression '=' . assignment_expression
  1092. IDENTIFIER shift, and go to state 87
  1093. CONSTANT shift, and go to state 44
  1094. STRING_LITERAL shift, and go to state 45
  1095. '(' shift, and go to state 88
  1096. '&' shift, and go to state 52
  1097. '*' shift, and go to state 89
  1098. '+' shift, and go to state 54
  1099. '-' shift, and go to state 55
  1100. '!' shift, and go to state 56
  1101. primary_expression go to state 59
  1102. postfix_expression go to state 60
  1103. unary_expression go to state 61
  1104. unary_operator go to state 62
  1105. multiplicative_expression go to state 63
  1106. additive_expression go to state 64
  1107. relational_expression go to state 65
  1108. equality_expression go to state 66
  1109. assignment_expression go to state 135
  1110. state 101
  1111. 12 unary_expression: unary_operator unary_expression .
  1112. $default reduce using rule 12 (unary_expression)
  1113. state 102
  1114. 19 multiplicative_expression: multiplicative_expression '*' . unary_expression
  1115. IDENTIFIER shift, and go to state 87
  1116. CONSTANT shift, and go to state 44
  1117. STRING_LITERAL shift, and go to state 45
  1118. '(' shift, and go to state 88
  1119. '&' shift, and go to state 52
  1120. '*' shift, and go to state 89
  1121. '+' shift, and go to state 54
  1122. '-' shift, and go to state 55
  1123. '!' shift, and go to state 56
  1124. primary_expression go to state 59
  1125. postfix_expression go to state 60
  1126. unary_expression go to state 136
  1127. unary_operator go to state 62
  1128. state 103
  1129. 20 multiplicative_expression: multiplicative_expression '/' . unary_expression
  1130. IDENTIFIER shift, and go to state 87
  1131. CONSTANT shift, and go to state 44
  1132. STRING_LITERAL shift, and go to state 45
  1133. '(' shift, and go to state 88
  1134. '&' shift, and go to state 52
  1135. '*' shift, and go to state 89
  1136. '+' shift, and go to state 54
  1137. '-' shift, and go to state 55
  1138. '!' shift, and go to state 56
  1139. primary_expression go to state 59
  1140. postfix_expression go to state 60
  1141. unary_expression go to state 137
  1142. unary_operator go to state 62
  1143. state 104
  1144. 21 multiplicative_expression: multiplicative_expression '%' . unary_expression
  1145. IDENTIFIER shift, and go to state 87
  1146. CONSTANT shift, and go to state 44
  1147. STRING_LITERAL shift, and go to state 45
  1148. '(' shift, and go to state 88
  1149. '&' shift, and go to state 52
  1150. '*' shift, and go to state 89
  1151. '+' shift, and go to state 54
  1152. '-' shift, and go to state 55
  1153. '!' shift, and go to state 56
  1154. primary_expression go to state 59
  1155. postfix_expression go to state 60
  1156. unary_expression go to state 138
  1157. unary_operator go to state 62
  1158. state 105
  1159. 23 additive_expression: additive_expression '+' . multiplicative_expression
  1160. IDENTIFIER shift, and go to state 87
  1161. CONSTANT shift, and go to state 44
  1162. STRING_LITERAL shift, and go to state 45
  1163. '(' shift, and go to state 88
  1164. '&' shift, and go to state 52
  1165. '*' shift, and go to state 89
  1166. '+' shift, and go to state 54
  1167. '-' shift, and go to state 55
  1168. '!' shift, and go to state 56
  1169. primary_expression go to state 59
  1170. postfix_expression go to state 60
  1171. unary_expression go to state 139
  1172. unary_operator go to state 62
  1173. multiplicative_expression go to state 140
  1174. state 106
  1175. 24 additive_expression: additive_expression '-' . multiplicative_expression
  1176. IDENTIFIER shift, and go to state 87
  1177. CONSTANT shift, and go to state 44
  1178. STRING_LITERAL shift, and go to state 45
  1179. '(' shift, and go to state 88
  1180. '&' shift, and go to state 52
  1181. '*' shift, and go to state 89
  1182. '+' shift, and go to state 54
  1183. '-' shift, and go to state 55
  1184. '!' shift, and go to state 56
  1185. primary_expression go to state 59
  1186. postfix_expression go to state 60
  1187. unary_expression go to state 139
  1188. unary_operator go to state 62
  1189. multiplicative_expression go to state 141
  1190. state 107
  1191. 28 relational_expression: relational_expression LE_OP . additive_expression
  1192. IDENTIFIER shift, and go to state 87
  1193. CONSTANT shift, and go to state 44
  1194. STRING_LITERAL shift, and go to state 45
  1195. '(' shift, and go to state 88
  1196. '&' shift, and go to state 52
  1197. '*' shift, and go to state 89
  1198. '+' shift, and go to state 54
  1199. '-' shift, and go to state 55
  1200. '!' shift, and go to state 56
  1201. primary_expression go to state 59
  1202. postfix_expression go to state 60
  1203. unary_expression go to state 139
  1204. unary_operator go to state 62
  1205. multiplicative_expression go to state 63
  1206. additive_expression go to state 142
  1207. state 108
  1208. 29 relational_expression: relational_expression GE_OP . additive_expression
  1209. IDENTIFIER shift, and go to state 87
  1210. CONSTANT shift, and go to state 44
  1211. STRING_LITERAL shift, and go to state 45
  1212. '(' shift, and go to state 88
  1213. '&' shift, and go to state 52
  1214. '*' shift, and go to state 89
  1215. '+' shift, and go to state 54
  1216. '-' shift, and go to state 55
  1217. '!' shift, and go to state 56
  1218. primary_expression go to state 59
  1219. postfix_expression go to state 60
  1220. unary_expression go to state 139
  1221. unary_operator go to state 62
  1222. multiplicative_expression go to state 63
  1223. additive_expression go to state 143
  1224. state 109
  1225. 26 relational_expression: relational_expression '<' . additive_expression
  1226. IDENTIFIER shift, and go to state 87
  1227. CONSTANT shift, and go to state 44
  1228. STRING_LITERAL shift, and go to state 45
  1229. '(' shift, and go to state 88
  1230. '&' shift, and go to state 52
  1231. '*' shift, and go to state 89
  1232. '+' shift, and go to state 54
  1233. '-' shift, and go to state 55
  1234. '!' shift, and go to state 56
  1235. primary_expression go to state 59
  1236. postfix_expression go to state 60
  1237. unary_expression go to state 139
  1238. unary_operator go to state 62
  1239. multiplicative_expression go to state 63
  1240. additive_expression go to state 144
  1241. state 110
  1242. 27 relational_expression: relational_expression '>' . additive_expression
  1243. IDENTIFIER shift, and go to state 87
  1244. CONSTANT shift, and go to state 44
  1245. STRING_LITERAL shift, and go to state 45
  1246. '(' shift, and go to state 88
  1247. '&' shift, and go to state 52
  1248. '*' shift, and go to state 89
  1249. '+' shift, and go to state 54
  1250. '-' shift, and go to state 55
  1251. '!' shift, and go to state 56
  1252. primary_expression go to state 59
  1253. postfix_expression go to state 60
  1254. unary_expression go to state 139
  1255. unary_operator go to state 62
  1256. multiplicative_expression go to state 63
  1257. additive_expression go to state 145
  1258. state 111
  1259. 31 equality_expression: equality_expression EQ_OP . relational_expression
  1260. IDENTIFIER shift, and go to state 87
  1261. CONSTANT shift, and go to state 44
  1262. STRING_LITERAL shift, and go to state 45
  1263. '(' shift, and go to state 88
  1264. '&' shift, and go to state 52
  1265. '*' shift, and go to state 89
  1266. '+' shift, and go to state 54
  1267. '-' shift, and go to state 55
  1268. '!' shift, and go to state 56
  1269. primary_expression go to state 59
  1270. postfix_expression go to state 60
  1271. unary_expression go to state 139
  1272. unary_operator go to state 62
  1273. multiplicative_expression go to state 63
  1274. additive_expression go to state 64
  1275. relational_expression go to state 146
  1276. state 112
  1277. 32 equality_expression: equality_expression NE_OP . relational_expression
  1278. IDENTIFIER shift, and go to state 87
  1279. CONSTANT shift, and go to state 44
  1280. STRING_LITERAL shift, and go to state 45
  1281. '(' shift, and go to state 88
  1282. '&' shift, and go to state 52
  1283. '*' shift, and go to state 89
  1284. '+' shift, and go to state 54
  1285. '-' shift, and go to state 55
  1286. '!' shift, and go to state 56
  1287. primary_expression go to state 59
  1288. postfix_expression go to state 60
  1289. unary_expression go to state 139
  1290. unary_operator go to state 62
  1291. multiplicative_expression go to state 63
  1292. additive_expression go to state 64
  1293. relational_expression go to state 147
  1294. state 113
  1295. 36 expression: expression ',' . assignment_expression
  1296. IDENTIFIER shift, and go to state 87
  1297. CONSTANT shift, and go to state 44
  1298. STRING_LITERAL shift, and go to state 45
  1299. '(' shift, and go to state 88
  1300. '&' shift, and go to state 52
  1301. '*' shift, and go to state 89
  1302. '+' shift, and go to state 54
  1303. '-' shift, and go to state 55
  1304. '!' shift, and go to state 56
  1305. primary_expression go to state 59
  1306. postfix_expression go to state 60
  1307. unary_expression go to state 61
  1308. unary_operator go to state 62
  1309. multiplicative_expression go to state 63
  1310. additive_expression go to state 64
  1311. relational_expression go to state 65
  1312. equality_expression go to state 66
  1313. assignment_expression go to state 148
  1314. state 114
  1315. 91 expression_statement: expression ';' .
  1316. $default reduce using rule 91 (expression_statement)
  1317. state 115
  1318. 84 compound_statement: '{' declaration_list '}' .
  1319. $default reduce using rule 84 (compound_statement)
  1320. state 116
  1321. 85 compound_statement: '{' declaration_list statement_list . '}'
  1322. 89 statement_list: statement_list . statement
  1323. IDENTIFIER shift, and go to state 87
  1324. CONSTANT shift, and go to state 44
  1325. STRING_LITERAL shift, and go to state 45
  1326. IF shift, and go to state 46
  1327. WHILE shift, and go to state 47
  1328. CONTINUE shift, and go to state 48
  1329. BREAK shift, and go to state 49
  1330. RETURN shift, and go to state 50
  1331. '(' shift, and go to state 88
  1332. '&' shift, and go to state 52
  1333. '*' shift, and go to state 89
  1334. '+' shift, and go to state 54
  1335. '-' shift, and go to state 55
  1336. '!' shift, and go to state 56
  1337. ';' shift, and go to state 57
  1338. '{' shift, and go to state 29
  1339. '}' shift, and go to state 149
  1340. primary_expression go to state 59
  1341. postfix_expression go to state 60
  1342. unary_expression go to state 61
  1343. unary_operator go to state 62
  1344. multiplicative_expression go to state 63
  1345. additive_expression go to state 64
  1346. relational_expression go to state 65
  1347. equality_expression go to state 66
  1348. assignment_expression go to state 67
  1349. expression go to state 68
  1350. statement go to state 118
  1351. compound_statement go to state 70
  1352. expression_statement go to state 73
  1353. selection_statement go to state 74
  1354. iteration_statement go to state 75
  1355. jump_statement go to state 76
  1356. state 117
  1357. 83 compound_statement: '{' statement_list '}' .
  1358. $default reduce using rule 83 (compound_statement)
  1359. state 118
  1360. 89 statement_list: statement_list statement .
  1361. $default reduce using rule 89 (statement_list)
  1362. state 119
  1363. 56 direct_declarator: '(' . declarator ')'
  1364. 72 direct_abstract_declarator: '(' . abstract_declarator ')'
  1365. 73 | '(' . ')'
  1366. 74 | '(' . parameter_list ')'
  1367. IDENTIFIER shift, and go to state 1
  1368. EXTERN shift, and go to state 2
  1369. AUTO shift, and go to state 3
  1370. INT shift, and go to state 4
  1371. VOID shift, and go to state 5
  1372. FUNCTION shift, and go to state 6
  1373. '(' shift, and go to state 119
  1374. ')' shift, and go to state 150
  1375. '*' shift, and go to state 8
  1376. declaration_specifiers go to state 81
  1377. storage_class_specifier go to state 12
  1378. type_specifier go to state 13
  1379. declarator go to state 20
  1380. direct_declarator go to state 15
  1381. pointer go to state 121
  1382. parameter_list go to state 151
  1383. parameter_declaration go to state 83
  1384. abstract_declarator go to state 152
  1385. direct_abstract_declarator go to state 123
  1386. state 120
  1387. 64 parameter_declaration: declaration_specifiers declarator .
  1388. $default reduce using rule 64 (parameter_declaration)
  1389. state 121
  1390. 53 declarator: pointer . direct_declarator
  1391. 69 abstract_declarator: pointer .
  1392. 71 | pointer . direct_abstract_declarator
  1393. IDENTIFIER shift, and go to state 1
  1394. '(' shift, and go to state 119
  1395. $default reduce using rule 69 (abstract_declarator)
  1396. direct_declarator go to state 35
  1397. direct_abstract_declarator go to state 153
  1398. state 122
  1399. 65 parameter_declaration: declaration_specifiers abstract_declarator .
  1400. $default reduce using rule 65 (parameter_declaration)
  1401. state 123
  1402. 70 abstract_declarator: direct_abstract_declarator .
  1403. 75 direct_abstract_declarator: direct_abstract_declarator . '(' ')'
  1404. 76 | direct_abstract_declarator . '(' parameter_list ')'
  1405. '(' shift, and go to state 154
  1406. $default reduce using rule 70 (abstract_declarator)
  1407. state 124
  1408. 57 direct_declarator: direct_declarator '(' parameter_list ')' .
  1409. $default reduce using rule 57 (direct_declarator)
  1410. state 125
  1411. 63 parameter_list: parameter_list ',' . parameter_declaration
  1412. EXTERN shift, and go to state 2
  1413. AUTO shift, and go to state 3
  1414. INT shift, and go to state 4
  1415. VOID shift, and go to state 5
  1416. FUNCTION shift, and go to state 6
  1417. declaration_specifiers go to state 81
  1418. storage_class_specifier go to state 12
  1419. type_specifier go to state 13
  1420. parameter_declaration go to state 155
  1421. state 126
  1422. 58 direct_declarator: direct_declarator '(' identifier_list ')' .
  1423. $default reduce using rule 58 (direct_declarator)
  1424. state 127
  1425. 68 identifier_list: identifier_list ',' . IDENTIFIER
  1426. IDENTIFIER shift, and go to state 156
  1427. state 128
  1428. 36 expression: expression . ',' assignment_expression
  1429. 92 selection_statement: IF '(' expression . ')' statement
  1430. 93 | IF '(' expression . ')' statement ELSE statement
  1431. ')' shift, and go to state 157
  1432. ',' shift, and go to state 113
  1433. state 129
  1434. 36 expression: expression . ',' assignment_expression
  1435. 94 iteration_statement: WHILE '(' expression . ')' statement
  1436. ')' shift, and go to state 158
  1437. ',' shift, and go to state 113
  1438. state 130
  1439. 98 jump_statement: RETURN expression ';' .
  1440. $default reduce using rule 98 (jump_statement)
  1441. state 131
  1442. 5 primary_expression: '(' expression ')' .
  1443. $default reduce using rule 5 (primary_expression)
  1444. state 132
  1445. 7 postfix_expression: postfix_expression '(' ')' .
  1446. $default reduce using rule 7 (postfix_expression)
  1447. state 133
  1448. 8 postfix_expression: postfix_expression '(' argument_expression_list . ')'
  1449. 10 argument_expression_list: argument_expression_list . ',' assignment_expression
  1450. ')' shift, and go to state 159
  1451. ',' shift, and go to state 160
  1452. state 134
  1453. 9 argument_expression_list: assignment_expression .
  1454. $default reduce using rule 9 (argument_expression_list)
  1455. state 135
  1456. 34 assignment_expression: unary_expression '=' assignment_expression .
  1457. $default reduce using rule 34 (assignment_expression)
  1458. state 136
  1459. 19 multiplicative_expression: multiplicative_expression '*' unary_expression .
  1460. $default reduce using rule 19 (multiplicative_expression)
  1461. state 137
  1462. 20 multiplicative_expression: multiplicative_expression '/' unary_expression .
  1463. $default reduce using rule 20 (multiplicative_expression)
  1464. state 138
  1465. 21 multiplicative_expression: multiplicative_expression '%' unary_expression .
  1466. $default reduce using rule 21 (multiplicative_expression)
  1467. state 139
  1468. 18 multiplicative_expression: unary_expression .
  1469. $default reduce using rule 18 (multiplicative_expression)
  1470. state 140
  1471. 19 multiplicative_expression: multiplicative_expression . '*' unary_expression
  1472. 20 | multiplicative_expression . '/' unary_expression
  1473. 21 | multiplicative_expression . '%' unary_expression
  1474. 23 additive_expression: additive_expression '+' multiplicative_expression .
  1475. '*' shift, and go to state 102
  1476. '/' shift, and go to state 103
  1477. '%' shift, and go to state 104
  1478. $default reduce using rule 23 (additive_expression)
  1479. state 141
  1480. 19 multiplicative_expression: multiplicative_expression . '*' unary_expression
  1481. 20 | multiplicative_expression . '/' unary_expression
  1482. 21 | multiplicative_expression . '%' unary_expression
  1483. 24 additive_expression: additive_expression '-' multiplicative_expression .
  1484. '*' shift, and go to state 102
  1485. '/' shift, and go to state 103
  1486. '%' shift, and go to state 104
  1487. $default reduce using rule 24 (additive_expression)
  1488. state 142
  1489. 23 additive_expression: additive_expression . '+' multiplicative_expression
  1490. 24 | additive_expression . '-' multiplicative_expression
  1491. 28 relational_expression: relational_expression LE_OP additive_expression .
  1492. '+' shift, and go to state 105
  1493. '-' shift, and go to state 106
  1494. $default reduce using rule 28 (relational_expression)
  1495. state 143
  1496. 23 additive_expression: additive_expression . '+' multiplicative_expression
  1497. 24 | additive_expression . '-' multiplicative_expression
  1498. 29 relational_expression: relational_expression GE_OP additive_expression .
  1499. '+' shift, and go to state 105
  1500. '-' shift, and go to state 106
  1501. $default reduce using rule 29 (relational_expression)
  1502. state 144
  1503. 23 additive_expression: additive_expression . '+' multiplicative_expression
  1504. 24 | additive_expression . '-' multiplicative_expression
  1505. 26 relational_expression: relational_expression '<' additive_expression .
  1506. '+' shift, and go to state 105
  1507. '-' shift, and go to state 106
  1508. $default reduce using rule 26 (relational_expression)
  1509. state 145
  1510. 23 additive_expression: additive_expression . '+' multiplicative_expression
  1511. 24 | additive_expression . '-' multiplicative_expression
  1512. 27 relational_expression: relational_expression '>' additive_expression .
  1513. '+' shift, and go to state 105
  1514. '-' shift, and go to state 106
  1515. $default reduce using rule 27 (relational_expression)
  1516. state 146
  1517. 26 relational_expression: relational_expression . '<' additive_expression
  1518. 27 | relational_expression . '>' additive_expression
  1519. 28 | relational_expression . LE_OP additive_expression
  1520. 29 | relational_expression . GE_OP additive_expression
  1521. 31 equality_expression: equality_expression EQ_OP relational_expression .
  1522. LE_OP shift, and go to state 107
  1523. GE_OP shift, and go to state 108
  1524. '<' shift, and go to state 109
  1525. '>' shift, and go to state 110
  1526. $default reduce using rule 31 (equality_expression)
  1527. state 147
  1528. 26 relational_expression: relational_expression . '<' additive_expression
  1529. 27 | relational_expression . '>' additive_expression
  1530. 28 | relational_expression . LE_OP additive_expression
  1531. 29 | relational_expression . GE_OP additive_expression
  1532. 32 equality_expression: equality_expression NE_OP relational_expression .
  1533. LE_OP shift, and go to state 107
  1534. GE_OP shift, and go to state 108
  1535. '<' shift, and go to state 109
  1536. '>' shift, and go to state 110
  1537. $default reduce using rule 32 (equality_expression)
  1538. state 148
  1539. 36 expression: expression ',' assignment_expression .
  1540. $default reduce using rule 36 (expression)
  1541. state 149
  1542. 85 compound_statement: '{' declaration_list statement_list '}' .
  1543. $default reduce using rule 85 (compound_statement)
  1544. state 150
  1545. 73 direct_abstract_declarator: '(' ')' .
  1546. $default reduce using rule 73 (direct_abstract_declarator)
  1547. state 151
  1548. 63 parameter_list: parameter_list . ',' parameter_declaration
  1549. 74 direct_abstract_declarator: '(' parameter_list . ')'
  1550. ')' shift, and go to state 161
  1551. ',' shift, and go to state 125
  1552. state 152
  1553. 72 direct_abstract_declarator: '(' abstract_declarator . ')'
  1554. ')' shift, and go to state 162
  1555. state 153
  1556. 71 abstract_declarator: pointer direct_abstract_declarator .
  1557. 75 direct_abstract_declarator: direct_abstract_declarator . '(' ')'
  1558. 76 | direct_abstract_declarator . '(' parameter_list ')'
  1559. '(' shift, and go to state 154
  1560. $default reduce using rule 71 (abstract_declarator)
  1561. state 154
  1562. 75 direct_abstract_declarator: direct_abstract_declarator '(' . ')'
  1563. 76 | direct_abstract_declarator '(' . parameter_list ')'
  1564. EXTERN shift, and go to state 2
  1565. AUTO shift, and go to state 3
  1566. INT shift, and go to state 4
  1567. VOID shift, and go to state 5
  1568. FUNCTION shift, and go to state 6
  1569. ')' shift, and go to state 163
  1570. declaration_specifiers go to state 81
  1571. storage_class_specifier go to state 12
  1572. type_specifier go to state 13
  1573. parameter_list go to state 164
  1574. parameter_declaration go to state 83
  1575. state 155
  1576. 63 parameter_list: parameter_list ',' parameter_declaration .
  1577. $default reduce using rule 63 (parameter_list)
  1578. state 156
  1579. 68 identifier_list: identifier_list ',' IDENTIFIER .
  1580. $default reduce using rule 68 (identifier_list)
  1581. state 157
  1582. 92 selection_statement: IF '(' expression ')' . statement
  1583. 93 | IF '(' expression ')' . statement ELSE statement
  1584. IDENTIFIER shift, and go to state 87
  1585. CONSTANT shift, and go to state 44
  1586. STRING_LITERAL shift, and go to state 45
  1587. IF shift, and go to state 46
  1588. WHILE shift, and go to state 47
  1589. CONTINUE shift, and go to state 48
  1590. BREAK shift, and go to state 49
  1591. RETURN shift, and go to state 50
  1592. '(' shift, and go to state 88
  1593. '&' shift, and go to state 52
  1594. '*' shift, and go to state 89
  1595. '+' shift, and go to state 54
  1596. '-' shift, and go to state 55
  1597. '!' shift, and go to state 56
  1598. ';' shift, and go to state 57
  1599. '{' shift, and go to state 29
  1600. primary_expression go to state 59
  1601. postfix_expression go to state 60
  1602. unary_expression go to state 61
  1603. unary_operator go to state 62
  1604. multiplicative_expression go to state 63
  1605. additive_expression go to state 64
  1606. relational_expression go to state 65
  1607. equality_expression go to state 66
  1608. assignment_expression go to state 67
  1609. expression go to state 68
  1610. statement go to state 165
  1611. compound_statement go to state 70
  1612. expression_statement go to state 73
  1613. selection_statement go to state 74
  1614. iteration_statement go to state 75
  1615. jump_statement go to state 76
  1616. state 158
  1617. 94 iteration_statement: WHILE '(' expression ')' . statement
  1618. IDENTIFIER shift, and go to state 87
  1619. CONSTANT shift, and go to state 44
  1620. STRING_LITERAL shift, and go to state 45
  1621. IF shift, and go to state 46
  1622. WHILE shift, and go to state 47
  1623. CONTINUE shift, and go to state 48
  1624. BREAK shift, and go to state 49
  1625. RETURN shift, and go to state 50
  1626. '(' shift, and go to state 88
  1627. '&' shift, and go to state 52
  1628. '*' shift, and go to state 89
  1629. '+' shift, and go to state 54
  1630. '-' shift, and go to state 55
  1631. '!' shift, and go to state 56
  1632. ';' shift, and go to state 57
  1633. '{' shift, and go to state 29
  1634. primary_expression go to state 59
  1635. postfix_expression go to state 60
  1636. unary_expression go to state 61
  1637. unary_operator go to state 62
  1638. multiplicative_expression go to state 63
  1639. additive_expression go to state 64
  1640. relational_expression go to state 65
  1641. equality_expression go to state 66
  1642. assignment_expression go to state 67
  1643. expression go to state 68
  1644. statement go to state 166
  1645. compound_statement go to state 70
  1646. expression_statement go to state 73
  1647. selection_statement go to state 74
  1648. iteration_statement go to state 75
  1649. jump_statement go to state 76
  1650. state 159
  1651. 8 postfix_expression: postfix_expression '(' argument_expression_list ')' .
  1652. $default reduce using rule 8 (postfix_expression)
  1653. state 160
  1654. 10 argument_expression_list: argument_expression_list ',' . assignment_expression
  1655. IDENTIFIER shift, and go to state 87
  1656. CONSTANT shift, and go to state 44
  1657. STRING_LITERAL shift, and go to state 45
  1658. '(' shift, and go to state 88
  1659. '&' shift, and go to state 52
  1660. '*' shift, and go to state 89
  1661. '+' shift, and go to state 54
  1662. '-' shift, and go to state 55
  1663. '!' shift, and go to state 56
  1664. primary_expression go to state 59
  1665. postfix_expression go to state 60
  1666. unary_expression go to state 61
  1667. unary_operator go to state 62
  1668. multiplicative_expression go to state 63
  1669. additive_expression go to state 64
  1670. relational_expression go to state 65
  1671. equality_expression go to state 66
  1672. assignment_expression go to state 167
  1673. state 161
  1674. 74 direct_abstract_declarator: '(' parameter_list ')' .
  1675. $default reduce using rule 74 (direct_abstract_declarator)
  1676. state 162
  1677. 72 direct_abstract_declarator: '(' abstract_declarator ')' .
  1678. $default reduce using rule 72 (direct_abstract_declarator)
  1679. state 163
  1680. 75 direct_abstract_declarator: direct_abstract_declarator '(' ')' .
  1681. $default reduce using rule 75 (direct_abstract_declarator)
  1682. state 164
  1683. 63 parameter_list: parameter_list . ',' parameter_declaration
  1684. 76 direct_abstract_declarator: direct_abstract_declarator '(' parameter_list . ')'
  1685. ')' shift, and go to state 168
  1686. ',' shift, and go to state 125
  1687. state 165
  1688. 92 selection_statement: IF '(' expression ')' statement .
  1689. 93 | IF '(' expression ')' statement . ELSE statement
  1690. ELSE shift, and go to state 169
  1691. ELSE [reduce using rule 92 (selection_statement)]
  1692. $default reduce using rule 92 (selection_statement)
  1693. state 166
  1694. 94 iteration_statement: WHILE '(' expression ')' statement .
  1695. $default reduce using rule 94 (iteration_statement)
  1696. state 167
  1697. 10 argument_expression_list: argument_expression_list ',' assignment_expression .
  1698. $default reduce using rule 10 (argument_expression_list)
  1699. state 168
  1700. 76 direct_abstract_declarator: direct_abstract_declarator '(' parameter_list ')' .
  1701. $default reduce using rule 76 (direct_abstract_declarator)
  1702. state 169
  1703. 93 selection_statement: IF '(' expression ')' statement ELSE . statement
  1704. IDENTIFIER shift, and go to state 87
  1705. CONSTANT shift, and go to state 44
  1706. STRING_LITERAL shift, and go to state 45
  1707. IF shift, and go to state 46
  1708. WHILE shift, and go to state 47
  1709. CONTINUE shift, and go to state 48
  1710. BREAK shift, and go to state 49
  1711. RETURN shift, and go to state 50
  1712. '(' shift, and go to state 88
  1713. '&' shift, and go to state 52
  1714. '*' shift, and go to state 89
  1715. '+' shift, and go to state 54
  1716. '-' shift, and go to state 55
  1717. '!' shift, and go to state 56
  1718. ';' shift, and go to state 57
  1719. '{' shift, and go to state 29
  1720. primary_expression go to state 59
  1721. postfix_expression go to state 60
  1722. unary_expression go to state 61
  1723. unary_operator go to state 62
  1724. multiplicative_expression go to state 63
  1725. additive_expression go to state 64
  1726. relational_expression go to state 65
  1727. equality_expression go to state 66
  1728. assignment_expression go to state 67
  1729. expression go to state 68
  1730. statement go to state 170
  1731. compound_statement go to state 70
  1732. expression_statement go to state 73
  1733. selection_statement go to state 74
  1734. iteration_statement go to state 75
  1735. jump_statement go to state 76
  1736. state 170
  1737. 93 selection_statement: IF '(' expression ')' statement ELSE statement .
  1738. $default reduce using rule 93 (selection_statement)