NCDConfigParser_parse.out 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886
  1. State 0:
  2. input ::= * processes
  3. (1) processes ::= *
  4. processes ::= * process_or_template NAME CURLY_OPEN statements CURLY_CLOSE processes
  5. process_or_template ::= * PROCESS
  6. process_or_template ::= * TEMPLATE
  7. PROCESS shift 69
  8. TEMPLATE shift 70
  9. processes shift 31
  10. process_or_template shift 32
  11. input accept
  12. {default} reduce 1
  13. State 1:
  14. statement ::= dotted_name ROUND_OPEN * statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON
  15. dotted_name ::= * NAME
  16. dotted_name ::= * NAME DOT dotted_name
  17. (18) statement_args_maybe ::= *
  18. statement_args_maybe ::= * list_contents
  19. list_contents ::= * value
  20. list_contents ::= * value COMMA list_contents
  21. list ::= * CURLY_OPEN CURLY_CLOSE
  22. list ::= * CURLY_OPEN list_contents CURLY_CLOSE
  23. map ::= * BRACKET_OPEN BRACKET_CLOSE
  24. map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE
  25. value ::= * STRING
  26. value ::= * dotted_name
  27. value ::= * list
  28. value ::= * map
  29. NAME shift 37
  30. CURLY_OPEN shift 3
  31. BRACKET_OPEN shift 4
  32. STRING shift 79
  33. dotted_name shift 80
  34. statement_args_maybe shift 35
  35. list_contents shift 74
  36. list shift 81
  37. map shift 82
  38. value shift 38
  39. {default} reduce 18
  40. State 2:
  41. statement ::= dotted_name ARROW dotted_name ROUND_OPEN * statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON
  42. dotted_name ::= * NAME
  43. dotted_name ::= * NAME DOT dotted_name
  44. (18) statement_args_maybe ::= *
  45. statement_args_maybe ::= * list_contents
  46. list_contents ::= * value
  47. list_contents ::= * value COMMA list_contents
  48. list ::= * CURLY_OPEN CURLY_CLOSE
  49. list ::= * CURLY_OPEN list_contents CURLY_CLOSE
  50. map ::= * BRACKET_OPEN BRACKET_CLOSE
  51. map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE
  52. value ::= * STRING
  53. value ::= * dotted_name
  54. value ::= * list
  55. value ::= * map
  56. NAME shift 37
  57. CURLY_OPEN shift 3
  58. BRACKET_OPEN shift 4
  59. STRING shift 79
  60. dotted_name shift 80
  61. statement_args_maybe shift 44
  62. list_contents shift 74
  63. list shift 81
  64. map shift 82
  65. value shift 38
  66. {default} reduce 18
  67. State 3:
  68. dotted_name ::= * NAME
  69. dotted_name ::= * NAME DOT dotted_name
  70. list_contents ::= * value
  71. list_contents ::= * value COMMA list_contents
  72. list ::= * CURLY_OPEN CURLY_CLOSE
  73. list ::= CURLY_OPEN * CURLY_CLOSE
  74. list ::= * CURLY_OPEN list_contents CURLY_CLOSE
  75. list ::= CURLY_OPEN * list_contents CURLY_CLOSE
  76. map ::= * BRACKET_OPEN BRACKET_CLOSE
  77. map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE
  78. value ::= * STRING
  79. value ::= * dotted_name
  80. value ::= * list
  81. value ::= * map
  82. NAME shift 37
  83. CURLY_OPEN shift 3
  84. CURLY_CLOSE shift 76
  85. BRACKET_OPEN shift 4
  86. STRING shift 79
  87. dotted_name shift 80
  88. list_contents shift 39
  89. list shift 81
  90. map shift 82
  91. value shift 38
  92. State 4:
  93. dotted_name ::= * NAME
  94. dotted_name ::= * NAME DOT dotted_name
  95. list ::= * CURLY_OPEN CURLY_CLOSE
  96. list ::= * CURLY_OPEN list_contents CURLY_CLOSE
  97. map_contents ::= * value COLON value
  98. map_contents ::= * value COLON value COMMA map_contents
  99. map ::= * BRACKET_OPEN BRACKET_CLOSE
  100. map ::= BRACKET_OPEN * BRACKET_CLOSE
  101. map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE
  102. map ::= BRACKET_OPEN * map_contents BRACKET_CLOSE
  103. value ::= * STRING
  104. value ::= * dotted_name
  105. value ::= * list
  106. value ::= * map
  107. NAME shift 37
  108. CURLY_OPEN shift 3
  109. BRACKET_OPEN shift 4
  110. BRACKET_CLOSE shift 83
  111. STRING shift 79
  112. dotted_name shift 80
  113. list shift 81
  114. map_contents shift 42
  115. map shift 82
  116. value shift 40
  117. State 5:
  118. dotted_name ::= * NAME
  119. dotted_name ::= * NAME DOT dotted_name
  120. list_contents ::= * value
  121. list_contents ::= * value COMMA list_contents
  122. list_contents ::= value COMMA * list_contents
  123. list ::= * CURLY_OPEN CURLY_CLOSE
  124. list ::= * CURLY_OPEN list_contents CURLY_CLOSE
  125. map ::= * BRACKET_OPEN BRACKET_CLOSE
  126. map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE
  127. value ::= * STRING
  128. value ::= * dotted_name
  129. value ::= * list
  130. value ::= * map
  131. NAME shift 37
  132. CURLY_OPEN shift 3
  133. BRACKET_OPEN shift 4
  134. STRING shift 79
  135. dotted_name shift 80
  136. list_contents shift 75
  137. list shift 81
  138. map shift 82
  139. value shift 38
  140. State 6:
  141. dotted_name ::= * NAME
  142. dotted_name ::= * NAME DOT dotted_name
  143. list ::= * CURLY_OPEN CURLY_CLOSE
  144. list ::= * CURLY_OPEN list_contents CURLY_CLOSE
  145. map_contents ::= * value COLON value
  146. map_contents ::= * value COLON value COMMA map_contents
  147. map_contents ::= value COLON value COMMA * map_contents
  148. map ::= * BRACKET_OPEN BRACKET_CLOSE
  149. map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE
  150. value ::= * STRING
  151. value ::= * dotted_name
  152. value ::= * list
  153. value ::= * map
  154. NAME shift 37
  155. CURLY_OPEN shift 3
  156. BRACKET_OPEN shift 4
  157. STRING shift 79
  158. dotted_name shift 80
  159. list shift 81
  160. map_contents shift 78
  161. map shift 82
  162. value shift 40
  163. State 7:
  164. dotted_name ::= * NAME
  165. dotted_name ::= * NAME DOT dotted_name
  166. list ::= * CURLY_OPEN CURLY_CLOSE
  167. list ::= * CURLY_OPEN list_contents CURLY_CLOSE
  168. map_contents ::= value COLON * value
  169. map_contents ::= value COLON * value COMMA map_contents
  170. map ::= * BRACKET_OPEN BRACKET_CLOSE
  171. map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE
  172. value ::= * STRING
  173. value ::= * dotted_name
  174. value ::= * list
  175. value ::= * map
  176. NAME shift 37
  177. CURLY_OPEN shift 3
  178. BRACKET_OPEN shift 4
  179. STRING shift 79
  180. dotted_name shift 80
  181. list shift 81
  182. map shift 82
  183. value shift 41
  184. State 8:
  185. statement ::= IF ROUND_OPEN * value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON
  186. dotted_name ::= * NAME
  187. dotted_name ::= * NAME DOT dotted_name
  188. list ::= * CURLY_OPEN CURLY_CLOSE
  189. list ::= * CURLY_OPEN list_contents CURLY_CLOSE
  190. map ::= * BRACKET_OPEN BRACKET_CLOSE
  191. map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE
  192. value ::= * STRING
  193. value ::= * dotted_name
  194. value ::= * list
  195. value ::= * map
  196. NAME shift 37
  197. CURLY_OPEN shift 3
  198. BRACKET_OPEN shift 4
  199. STRING shift 79
  200. dotted_name shift 80
  201. list shift 81
  202. map shift 82
  203. value shift 47
  204. State 9:
  205. statement ::= FOREACH ROUND_OPEN * value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  206. statement ::= FOREACH ROUND_OPEN * value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  207. dotted_name ::= * NAME
  208. dotted_name ::= * NAME DOT dotted_name
  209. list ::= * CURLY_OPEN CURLY_CLOSE
  210. list ::= * CURLY_OPEN list_contents CURLY_CLOSE
  211. map ::= * BRACKET_OPEN BRACKET_CLOSE
  212. map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE
  213. value ::= * STRING
  214. value ::= * dotted_name
  215. value ::= * list
  216. value ::= * map
  217. NAME shift 37
  218. CURLY_OPEN shift 3
  219. BRACKET_OPEN shift 4
  220. STRING shift 79
  221. dotted_name shift 80
  222. list shift 81
  223. map shift 82
  224. value shift 53
  225. State 10:
  226. elif ::= ELIF ROUND_OPEN * value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE
  227. elif ::= ELIF ROUND_OPEN * value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif
  228. dotted_name ::= * NAME
  229. dotted_name ::= * NAME DOT dotted_name
  230. list ::= * CURLY_OPEN CURLY_CLOSE
  231. list ::= * CURLY_OPEN list_contents CURLY_CLOSE
  232. map ::= * BRACKET_OPEN BRACKET_CLOSE
  233. map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE
  234. value ::= * STRING
  235. value ::= * dotted_name
  236. value ::= * list
  237. value ::= * map
  238. NAME shift 37
  239. CURLY_OPEN shift 3
  240. BRACKET_OPEN shift 4
  241. STRING shift 79
  242. dotted_name shift 80
  243. list shift 81
  244. map shift 82
  245. value shift 65
  246. State 11:
  247. processes ::= process_or_template NAME CURLY_OPEN * statements CURLY_CLOSE processes
  248. statement ::= * dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON
  249. statement ::= * dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON
  250. statement ::= * IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON
  251. statement ::= * FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  252. statement ::= * FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  253. statements ::= * statement
  254. statements ::= * statement statements
  255. dotted_name ::= * NAME
  256. dotted_name ::= * NAME DOT dotted_name
  257. NAME shift 37
  258. IF shift 46
  259. FOREACH shift 52
  260. statement shift 15
  261. statements shift 34
  262. dotted_name shift 29
  263. State 12:
  264. statement ::= * dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON
  265. statement ::= * dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON
  266. statement ::= * IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON
  267. statement ::= IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN * statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON
  268. statement ::= * FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  269. statement ::= * FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  270. statements ::= * statement
  271. statements ::= * statement statements
  272. dotted_name ::= * NAME
  273. dotted_name ::= * NAME DOT dotted_name
  274. NAME shift 37
  275. IF shift 46
  276. FOREACH shift 52
  277. statement shift 15
  278. statements shift 49
  279. dotted_name shift 29
  280. State 13:
  281. statement ::= * dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON
  282. statement ::= * dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON
  283. statement ::= * IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON
  284. statement ::= * FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  285. statement ::= * FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  286. else_maybe ::= ELSE CURLY_OPEN * statements CURLY_CLOSE
  287. statements ::= * statement
  288. statements ::= * statement statements
  289. dotted_name ::= * NAME
  290. dotted_name ::= * NAME DOT dotted_name
  291. NAME shift 37
  292. IF shift 46
  293. FOREACH shift 52
  294. statement shift 15
  295. statements shift 63
  296. dotted_name shift 29
  297. State 14:
  298. statement ::= * dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON
  299. statement ::= * dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON
  300. statement ::= * IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON
  301. statement ::= * FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  302. statement ::= FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN * statements CURLY_CLOSE name_maybe SEMICOLON
  303. statement ::= * FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  304. statements ::= * statement
  305. statements ::= * statement statements
  306. dotted_name ::= * NAME
  307. dotted_name ::= * NAME DOT dotted_name
  308. NAME shift 37
  309. IF shift 46
  310. FOREACH shift 52
  311. statement shift 15
  312. statements shift 56
  313. dotted_name shift 29
  314. State 15:
  315. statement ::= * dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON
  316. statement ::= * dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON
  317. statement ::= * IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON
  318. statement ::= * FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  319. statement ::= * FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  320. statements ::= * statement
  321. (14) statements ::= statement *
  322. statements ::= * statement statements
  323. statements ::= statement * statements
  324. dotted_name ::= * NAME
  325. dotted_name ::= * NAME DOT dotted_name
  326. NAME shift 37
  327. IF shift 46
  328. FOREACH shift 52
  329. statement shift 15
  330. statements shift 88
  331. dotted_name shift 29
  332. {default} reduce 14
  333. State 16:
  334. statement ::= * dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON
  335. statement ::= * dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON
  336. statement ::= * IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON
  337. statement ::= * FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  338. statement ::= * FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  339. statement ::= FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN * statements CURLY_CLOSE name_maybe SEMICOLON
  340. statements ::= * statement
  341. statements ::= * statement statements
  342. dotted_name ::= * NAME
  343. dotted_name ::= * NAME DOT dotted_name
  344. NAME shift 37
  345. IF shift 46
  346. FOREACH shift 52
  347. statement shift 15
  348. statements shift 61
  349. dotted_name shift 29
  350. State 17:
  351. statement ::= * dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON
  352. statement ::= * dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON
  353. statement ::= * IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON
  354. statement ::= * FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  355. statement ::= * FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  356. elif ::= ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN * statements CURLY_CLOSE
  357. elif ::= ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN * statements CURLY_CLOSE elif
  358. statements ::= * statement
  359. statements ::= * statement statements
  360. dotted_name ::= * NAME
  361. dotted_name ::= * NAME DOT dotted_name
  362. NAME shift 37
  363. IF shift 46
  364. FOREACH shift 52
  365. statement shift 15
  366. statements shift 67
  367. dotted_name shift 29
  368. State 18:
  369. (1) processes ::= *
  370. processes ::= * process_or_template NAME CURLY_OPEN statements CURLY_CLOSE processes
  371. processes ::= process_or_template NAME CURLY_OPEN statements CURLY_CLOSE * processes
  372. process_or_template ::= * PROCESS
  373. process_or_template ::= * TEMPLATE
  374. PROCESS shift 69
  375. TEMPLATE shift 70
  376. processes shift 68
  377. process_or_template shift 32
  378. {default} reduce 1
  379. State 19:
  380. statement ::= IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE * elif_maybe else_maybe name_maybe SEMICOLON
  381. (8) elif_maybe ::= *
  382. elif_maybe ::= * elif
  383. elif ::= * ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE
  384. elif ::= * ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif
  385. ELIF shift 64
  386. elif_maybe shift 24
  387. elif shift 91
  388. {default} reduce 8
  389. State 20:
  390. statement ::= dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE * name_maybe SEMICOLON
  391. (32) name_maybe ::= *
  392. name_maybe ::= * NAME
  393. NAME shift 72
  394. name_maybe shift 36
  395. {default} reduce 32
  396. State 21:
  397. dotted_name ::= * NAME
  398. dotted_name ::= * NAME DOT dotted_name
  399. dotted_name ::= NAME DOT * dotted_name
  400. NAME shift 37
  401. dotted_name shift 73
  402. State 22:
  403. statement ::= dotted_name ARROW * dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON
  404. dotted_name ::= * NAME
  405. dotted_name ::= * NAME DOT dotted_name
  406. NAME shift 37
  407. dotted_name shift 43
  408. State 23:
  409. statement ::= dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE * name_maybe SEMICOLON
  410. (32) name_maybe ::= *
  411. name_maybe ::= * NAME
  412. NAME shift 72
  413. name_maybe shift 45
  414. {default} reduce 32
  415. State 24:
  416. statement ::= IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe * else_maybe name_maybe SEMICOLON
  417. (12) else_maybe ::= *
  418. else_maybe ::= * ELSE CURLY_OPEN statements CURLY_CLOSE
  419. ELSE shift 51
  420. else_maybe shift 25
  421. {default} reduce 12
  422. State 25:
  423. statement ::= IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe * name_maybe SEMICOLON
  424. (32) name_maybe ::= *
  425. name_maybe ::= * NAME
  426. NAME shift 72
  427. name_maybe shift 50
  428. {default} reduce 32
  429. State 26:
  430. statement ::= FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE * name_maybe SEMICOLON
  431. (32) name_maybe ::= *
  432. name_maybe ::= * NAME
  433. NAME shift 72
  434. name_maybe shift 57
  435. {default} reduce 32
  436. State 27:
  437. statement ::= FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE * name_maybe SEMICOLON
  438. (32) name_maybe ::= *
  439. name_maybe ::= * NAME
  440. NAME shift 72
  441. name_maybe shift 62
  442. {default} reduce 32
  443. State 28:
  444. elif ::= * ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE
  445. (10) elif ::= ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE *
  446. elif ::= * ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif
  447. elif ::= ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE * elif
  448. ELIF shift 64
  449. elif shift 92
  450. {default} reduce 10
  451. State 29:
  452. statement ::= dotted_name * ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON
  453. statement ::= dotted_name * ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON
  454. ROUND_OPEN shift 1
  455. ARROW shift 22
  456. State 30:
  457. statement ::= FOREACH ROUND_OPEN value AS NAME * ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  458. statement ::= FOREACH ROUND_OPEN value AS NAME * COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  459. ROUND_CLOSE shift 55
  460. COLON shift 58
  461. State 31:
  462. (0) input ::= processes *
  463. $ reduce 0
  464. State 32:
  465. processes ::= process_or_template * NAME CURLY_OPEN statements CURLY_CLOSE processes
  466. NAME shift 33
  467. State 33:
  468. processes ::= process_or_template NAME * CURLY_OPEN statements CURLY_CLOSE processes
  469. CURLY_OPEN shift 11
  470. State 34:
  471. processes ::= process_or_template NAME CURLY_OPEN statements * CURLY_CLOSE processes
  472. CURLY_CLOSE shift 18
  473. State 35:
  474. statement ::= dotted_name ROUND_OPEN statement_args_maybe * ROUND_CLOSE name_maybe SEMICOLON
  475. ROUND_CLOSE shift 20
  476. State 36:
  477. statement ::= dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe * SEMICOLON
  478. SEMICOLON shift 71
  479. State 37:
  480. (16) dotted_name ::= NAME *
  481. dotted_name ::= NAME * DOT dotted_name
  482. DOT shift 21
  483. {default} reduce 16
  484. State 38:
  485. (20) list_contents ::= value *
  486. list_contents ::= value * COMMA list_contents
  487. COMMA shift 5
  488. {default} reduce 20
  489. State 39:
  490. list ::= CURLY_OPEN list_contents * CURLY_CLOSE
  491. CURLY_CLOSE shift 77
  492. State 40:
  493. map_contents ::= value * COLON value
  494. map_contents ::= value * COLON value COMMA map_contents
  495. COLON shift 7
  496. State 41:
  497. (24) map_contents ::= value COLON value *
  498. map_contents ::= value COLON value * COMMA map_contents
  499. COMMA shift 6
  500. {default} reduce 24
  501. State 42:
  502. map ::= BRACKET_OPEN map_contents * BRACKET_CLOSE
  503. BRACKET_CLOSE shift 84
  504. State 43:
  505. statement ::= dotted_name ARROW dotted_name * ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON
  506. ROUND_OPEN shift 2
  507. State 44:
  508. statement ::= dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe * ROUND_CLOSE name_maybe SEMICOLON
  509. ROUND_CLOSE shift 23
  510. State 45:
  511. statement ::= dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe * SEMICOLON
  512. SEMICOLON shift 85
  513. State 46:
  514. statement ::= IF * ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON
  515. ROUND_OPEN shift 8
  516. State 47:
  517. statement ::= IF ROUND_OPEN value * ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON
  518. ROUND_CLOSE shift 48
  519. State 48:
  520. statement ::= IF ROUND_OPEN value ROUND_CLOSE * CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON
  521. CURLY_OPEN shift 12
  522. State 49:
  523. statement ::= IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements * CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON
  524. CURLY_CLOSE shift 19
  525. State 50:
  526. statement ::= IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe * SEMICOLON
  527. SEMICOLON shift 86
  528. State 51:
  529. else_maybe ::= ELSE * CURLY_OPEN statements CURLY_CLOSE
  530. CURLY_OPEN shift 13
  531. State 52:
  532. statement ::= FOREACH * ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  533. statement ::= FOREACH * ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  534. ROUND_OPEN shift 9
  535. State 53:
  536. statement ::= FOREACH ROUND_OPEN value * AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  537. statement ::= FOREACH ROUND_OPEN value * AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  538. AS shift 54
  539. State 54:
  540. statement ::= FOREACH ROUND_OPEN value AS * NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  541. statement ::= FOREACH ROUND_OPEN value AS * NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  542. NAME shift 30
  543. State 55:
  544. statement ::= FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE * CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  545. CURLY_OPEN shift 14
  546. State 56:
  547. statement ::= FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements * CURLY_CLOSE name_maybe SEMICOLON
  548. CURLY_CLOSE shift 26
  549. State 57:
  550. statement ::= FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe * SEMICOLON
  551. SEMICOLON shift 87
  552. State 58:
  553. statement ::= FOREACH ROUND_OPEN value AS NAME COLON * NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  554. NAME shift 59
  555. State 59:
  556. statement ::= FOREACH ROUND_OPEN value AS NAME COLON NAME * ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  557. ROUND_CLOSE shift 60
  558. State 60:
  559. statement ::= FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE * CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON
  560. CURLY_OPEN shift 16
  561. State 61:
  562. statement ::= FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements * CURLY_CLOSE name_maybe SEMICOLON
  563. CURLY_CLOSE shift 27
  564. State 62:
  565. statement ::= FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe * SEMICOLON
  566. SEMICOLON shift 89
  567. State 63:
  568. else_maybe ::= ELSE CURLY_OPEN statements * CURLY_CLOSE
  569. CURLY_CLOSE shift 90
  570. State 64:
  571. elif ::= ELIF * ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE
  572. elif ::= ELIF * ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif
  573. ROUND_OPEN shift 10
  574. State 65:
  575. elif ::= ELIF ROUND_OPEN value * ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE
  576. elif ::= ELIF ROUND_OPEN value * ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif
  577. ROUND_CLOSE shift 66
  578. State 66:
  579. elif ::= ELIF ROUND_OPEN value ROUND_CLOSE * CURLY_OPEN statements CURLY_CLOSE
  580. elif ::= ELIF ROUND_OPEN value ROUND_CLOSE * CURLY_OPEN statements CURLY_CLOSE elif
  581. CURLY_OPEN shift 17
  582. State 67:
  583. elif ::= ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements * CURLY_CLOSE
  584. elif ::= ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements * CURLY_CLOSE elif
  585. CURLY_CLOSE shift 28
  586. State 68:
  587. (2) processes ::= process_or_template NAME CURLY_OPEN statements CURLY_CLOSE processes *
  588. {default} reduce 2
  589. State 69:
  590. (34) process_or_template ::= PROCESS *
  591. {default} reduce 34
  592. State 70:
  593. (35) process_or_template ::= TEMPLATE *
  594. {default} reduce 35
  595. State 71:
  596. (3) statement ::= dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON *
  597. {default} reduce 3
  598. State 72:
  599. (33) name_maybe ::= NAME *
  600. {default} reduce 33
  601. State 73:
  602. (17) dotted_name ::= NAME DOT dotted_name *
  603. {default} reduce 17
  604. State 74:
  605. (19) statement_args_maybe ::= list_contents *
  606. {default} reduce 19
  607. State 75:
  608. (21) list_contents ::= value COMMA list_contents *
  609. {default} reduce 21
  610. State 76:
  611. (22) list ::= CURLY_OPEN CURLY_CLOSE *
  612. {default} reduce 22
  613. State 77:
  614. (23) list ::= CURLY_OPEN list_contents CURLY_CLOSE *
  615. {default} reduce 23
  616. State 78:
  617. (25) map_contents ::= value COLON value COMMA map_contents *
  618. {default} reduce 25
  619. State 79:
  620. (28) value ::= STRING *
  621. {default} reduce 28
  622. State 80:
  623. (29) value ::= dotted_name *
  624. {default} reduce 29
  625. State 81:
  626. (30) value ::= list *
  627. {default} reduce 30
  628. State 82:
  629. (31) value ::= map *
  630. {default} reduce 31
  631. State 83:
  632. (26) map ::= BRACKET_OPEN BRACKET_CLOSE *
  633. {default} reduce 26
  634. State 84:
  635. (27) map ::= BRACKET_OPEN map_contents BRACKET_CLOSE *
  636. {default} reduce 27
  637. State 85:
  638. (4) statement ::= dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON *
  639. {default} reduce 4
  640. State 86:
  641. (5) statement ::= IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON *
  642. {default} reduce 5
  643. State 87:
  644. (6) statement ::= FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON *
  645. {default} reduce 6
  646. State 88:
  647. (15) statements ::= statement statements *
  648. {default} reduce 15
  649. State 89:
  650. (7) statement ::= FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON *
  651. {default} reduce 7
  652. State 90:
  653. (13) else_maybe ::= ELSE CURLY_OPEN statements CURLY_CLOSE *
  654. {default} reduce 13
  655. State 91:
  656. (9) elif_maybe ::= elif *
  657. {default} reduce 9
  658. State 92:
  659. (11) elif ::= ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif *
  660. {default} reduce 11
  661. ----------------------------------------------------
  662. Symbols:
  663. 0: $:
  664. 1: NAME
  665. 2: CURLY_OPEN
  666. 3: CURLY_CLOSE
  667. 4: ROUND_OPEN
  668. 5: ROUND_CLOSE
  669. 6: SEMICOLON
  670. 7: ARROW
  671. 8: IF
  672. 9: FOREACH
  673. 10: AS
  674. 11: COLON
  675. 12: ELIF
  676. 13: ELSE
  677. 14: DOT
  678. 15: COMMA
  679. 16: BRACKET_OPEN
  680. 17: BRACKET_CLOSE
  681. 18: STRING
  682. 19: PROCESS
  683. 20: TEMPLATE
  684. 21: error:
  685. 22: processes: <lambda> PROCESS TEMPLATE
  686. 23: statement: NAME IF FOREACH
  687. 24: elif_maybe: <lambda> ELIF
  688. 25: elif: ELIF
  689. 26: else_maybe: <lambda> ELSE
  690. 27: statements: NAME IF FOREACH
  691. 28: dotted_name: NAME
  692. 29: statement_args_maybe: <lambda> NAME CURLY_OPEN BRACKET_OPEN STRING
  693. 30: list_contents: NAME CURLY_OPEN BRACKET_OPEN STRING
  694. 31: list: CURLY_OPEN
  695. 32: map_contents: NAME CURLY_OPEN BRACKET_OPEN STRING
  696. 33: map: BRACKET_OPEN
  697. 34: value: NAME CURLY_OPEN BRACKET_OPEN STRING
  698. 35: name_maybe: <lambda> NAME
  699. 36: process_or_template: PROCESS TEMPLATE
  700. 37: input: PROCESS TEMPLATE