NCDConfigParser_parse.out 34 KB

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