Guest User

Untitled

a guest
Jul 20th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 218.72 KB | None | 0 0
  1. -----------------------------------------------------------------------------
  2. Info file generated by Happy Version 1.19.9 from src/Parser.y
  3. -----------------------------------------------------------------------------
  4.  
  5. state 53 contains 7 shift/reduce conflicts.
  6.  
  7. terminal '[' is unused
  8. terminal ']' is unused
  9.  
  10. -----------------------------------------------------------------------------
  11. Grammar
  12. -----------------------------------------------------------------------------
  13. %start_parseTops -> Tops (0)
  14. %start_parseRepl -> Repl (1)
  15. Tops -> List1__Top__TopSep__ (2)
  16. TopSep -> ';;' (3)
  17. TopSep -> '$sep' (4)
  18. Top -> let BindGroup (5)
  19. Top -> external val ident ':' Type '=' string (6)
  20. Top -> type ident ListE__TyConArg__ (7)
  21. Top -> type ident ListE__TyConArg__ '=' List1__Ctor__'|'__ (8)
  22. Top -> type ident ListE__TyConArg__ '=' '|' List1__Ctor__'|'__ (9)
  23. Top -> module qconid '=' begin Tops end (10)
  24. Top -> module conid '=' begin Tops end (11)
  25. Top -> module conid '=' '$begin' Tops '$end' (12)
  26. Top -> module conid '=' Con (13)
  27. Top -> open Con (14)
  28. TyConArg -> TyVar (15)
  29. TyConArg -> '(' TyVar ':' Type ')' (16)
  30. TyConArg -> '{' TyVar ':' Type '}' (17)
  31. Ctor -> conid (18)
  32. Ctor -> conid of Type (19)
  33. Ctor -> conid ':' Type (20)
  34. Repl -> Top ReplSep (21)
  35. Repl -> Expr ReplSep (22)
  36. ReplSep -> ';;' (23)
  37. ReplSep -> '$sep' (24)
  38. ReplSep -> (25)
  39. Expr -> ExprApp (26)
  40. Expr -> Expr Operator ExprApp (27)
  41. ExprApp -> Expr0 (28)
  42. ExprApp -> ExprApp Atom (29)
  43. ExprApp -> ExprApp ':' Type (30)
  44. Expr0 -> fun ListE1__Parameter__ '->' ExprBlock '$end' (31)
  45. Expr0 -> let BindGroup ExprIn ExprBlock '$end' (32)
  46. Expr0 -> let open Con ExprIn ExprBlock '$end' (33)
  47. Expr0 -> if Expr then ExprBlock else ExprBlock '$end' (34)
  48. Expr0 -> match List1__Expr__','__ with ListE1__Arm__ '$end' (35)
  49. Expr0 -> match List1__Expr__','__ with '(' ')' (36)
  50. Expr0 -> function ListE1__Arm__ '$end' (37)
  51. Expr0 -> qdotid Atom (38)
  52. Expr0 -> lazy Atom (39)
  53. Expr0 -> Atom (40)
  54. Atom -> Var (41)
  55. Atom -> Con (42)
  56. Atom -> Lit (43)
  57. Atom -> hole (44)
  58. Atom -> '_' (45)
  59. Atom -> begin List1__Expr__ExprSep__ end (46)
  60. Atom -> '(' ')' (47)
  61. Atom -> '(' Section ')' (48)
  62. Atom -> '(' NullSection ',' List1__NullSection__','__ ')' (49)
  63. Atom -> '{' Rows__'='__Expr__ '}' (50)
  64. Atom -> '{' Expr with Rows__'='__Expr__ '}' (51)
  65. Atom -> '?' (52)
  66. Atom -> '@{' Type '}' (53)
  67. Atom -> Atom access (54)
  68. ExprBlock -> List1__Expr__ExprSep__ (55)
  69. ExprSep -> ';' (56)
  70. ExprSep -> '$sep' (57)
  71. ExprIn -> in (58)
  72. ExprIn -> '$in' (59)
  73. Operator -> '*' (60)
  74. Operator -> '~' (61)
  75. Operator -> op (62)
  76. Operator -> opid (63)
  77. Operator -> qopid (64)
  78. Section -> Expr (65)
  79. Section -> access (66)
  80. Section -> Operator (67)
  81. Section -> Expr Operator (68)
  82. Section -> Operator Expr (69)
  83. NullSection -> (70)
  84. NullSection -> Section (71)
  85. Var -> ident (72)
  86. Var -> qident (73)
  87. Con -> conid (74)
  88. Con -> qconid (75)
  89. TyVar -> tyvar (76)
  90. BindGroup -> Binding (77)
  91. BindGroup -> BindGroup and Binding (78)
  92. Binding -> PreBinding (79)
  93. Binding -> implicit PreBinding (80)
  94. PreBinding -> BindName ListE__Parameter__ '=' ExprBlock '$end' (81)
  95. PreBinding -> BindName ListE__Parameter__ ':' Type '=' ExprBlock '$end' (82)
  96. PreBinding -> ArgP BindOp ArgP '=' ExprBlock '$end' (83)
  97. BindName -> ident (84)
  98. BindName -> '(' op ')' (85)
  99. BindOp -> '*' (86)
  100. BindOp -> '~' (87)
  101. BindOp -> op (88)
  102. BindOp -> opid (89)
  103. Lit -> int (90)
  104. Lit -> float (91)
  105. Lit -> string (92)
  106. Lit -> true (93)
  107. Lit -> false (94)
  108. MPattern -> ArgP (95)
  109. MPattern -> Con ArgP (96)
  110. MPattern -> MPattern ':' TypeProd (97)
  111. Pattern -> ArgP (98)
  112. Pattern -> Con ArgP (99)
  113. Pattern -> Pattern ':' Type (100)
  114. ArgP -> ident (101)
  115. ArgP -> '_' (102)
  116. ArgP -> Con (103)
  117. ArgP -> '{' Rows__'='__Pattern__ '}' (104)
  118. ArgP -> '(' List__Pattern__','__ ')' (105)
  119. ArgP -> Lit (106)
  120. Arm -> '|' List1__MPattern__','__ '->' ExprBlock (107)
  121. Parameter -> ArgP (108)
  122. Parameter -> iident (109)
  123. Parameter -> '?(' Pattern ')' (110)
  124. Type -> TypeProd (111)
  125. Type -> TypeProd '->' Type (112)
  126. Type -> TypeProd '=>' Type (113)
  127. Type -> forall ListE1__tyvar__ '.' Type (114)
  128. Type -> forall ListE1__BoundTv__ '->' Type (115)
  129. BoundTv -> '(' tyvar ':' Type ')' (116)
  130. TypeProd -> TypeApp (117)
  131. TypeProd -> TypeApp '*' TypeProd (118)
  132. TypeApp -> TypeAtom (119)
  133. TypeApp -> TypeApp TypeAtom (120)
  134. TypeAtom -> Var (121)
  135. TypeAtom -> TyVar (122)
  136. TypeAtom -> Con (123)
  137. TypeAtom -> type (124)
  138. TypeAtom -> lazy (125)
  139. TypeAtom -> '(' ')' (126)
  140. TypeAtom -> '(' Type ')' (127)
  141. TypeAtom -> '{' Rows__':'__Type__ '}' (128)
  142. TypeAtom -> '{' Type '|' Rows__':'__Type__ '}' (129)
  143. List__Pattern__','__ -> (130)
  144. List__Pattern__','__ -> List1__Pattern__','__ (131)
  145. List1__Ctor__'|'__ -> Ctor (132)
  146. List1__Ctor__'|'__ -> Ctor '|' List1__Ctor__'|'__ (133)
  147. List1__Expr__','__ -> Expr (134)
  148. List1__Expr__','__ -> Expr ',' List1__Expr__','__ (135)
  149. List1__Expr__ExprSep__ -> Expr (136)
  150. List1__Expr__ExprSep__ -> Expr ExprSep List1__Expr__ExprSep__ (137)
  151. List1__MPattern__','__ -> MPattern (138)
  152. List1__MPattern__','__ -> MPattern ',' List1__MPattern__','__ (139)
  153. List1__NullSection__','__ -> NullSection (140)
  154. List1__NullSection__','__ -> NullSection ',' List1__NullSection__','__ (141)
  155. List1__Top__TopSep__ -> Top (142)
  156. List1__Top__TopSep__ -> Top TopSep List1__Top__TopSep__ (143)
  157. ListE__Parameter__ -> (144)
  158. ListE__Parameter__ -> ListE1__Parameter__ (145)
  159. ListE__TyConArg__ -> (146)
  160. ListE__TyConArg__ -> ListE1__TyConArg__ (147)
  161. ListE1__Arm__ -> Arm (148)
  162. ListE1__Arm__ -> Arm ListE1__Arm__ (149)
  163. ListE1__BoundTv__ -> BoundTv (150)
  164. ListE1__BoundTv__ -> BoundTv ListE1__BoundTv__ (151)
  165. ListE1__Parameter__ -> Parameter (152)
  166. ListE1__Parameter__ -> Parameter ListE1__Parameter__ (153)
  167. ListE1__tyvar__ -> tyvar (154)
  168. ListE1__tyvar__ -> tyvar ListE1__tyvar__ (155)
  169. Rows__':'__Type__ -> (156)
  170. Rows__':'__Type__ -> ident ':' Type ',' Rows__':'__Type__ (157)
  171. Rows__':'__Type__ -> ident ':' Type (158)
  172. Rows__'='__Expr__ -> (159)
  173. Rows__'='__Expr__ -> ident '=' Expr ',' Rows__'='__Expr__ (160)
  174. Rows__'='__Expr__ -> ident '=' Expr (161)
  175. Rows__'='__Pattern__ -> (162)
  176. Rows__'='__Pattern__ -> ident '=' Pattern ',' Rows__'='__Pattern__ (163)
  177. Rows__'='__Pattern__ -> ident '=' Pattern (164)
  178. List1__Pattern__','__ -> Pattern (165)
  179. List1__Pattern__','__ -> Pattern ',' List1__Pattern__','__ (166)
  180. ListE1__TyConArg__ -> TyConArg (167)
  181. ListE1__TyConArg__ -> TyConArg ListE1__TyConArg__ (168)
  182.  
  183. -----------------------------------------------------------------------------
  184. Terminals
  185. -----------------------------------------------------------------------------
  186. '->' { Token TcArrow _ _ }
  187. '=' { Token TcEqual _ _ }
  188. forall { Token TcForall _ _ }
  189. '=>' { Token TcImplies _ _ }
  190. '|' { Token TcPipe _ _ }
  191. '*' { Token TcStar _ _ }
  192. '~' { Token TcTilde _ _ }
  193. '_' { Token TcUnderscore _ _ }
  194. let { Token TcLet _ _ }
  195. fun { Token TcFun _ _ }
  196. and { Token TcAnd _ _ }
  197. if { Token TcIf _ _ }
  198. then { Token TcThen _ _ }
  199. else { Token TcElse _ _ }
  200. begin { Token TcBegin _ _ }
  201. end { Token TcEnd _ _ }
  202. in { Token TcIn _ _ }
  203. external { Token TcExternal _ _ }
  204. implicit { Token TcImplicit _ _ }
  205. val { Token TcVal _ _ }
  206. true { Token TcTrue _ _ }
  207. false { Token TcFalse _ _ }
  208. match { Token TcMatch _ _ }
  209. with { Token TcWith _ _ }
  210. function { Token TcFunction _ _ }
  211. type { Token TcType _ _ }
  212. of { Token TcOf _ _ }
  213. module { Token TcModule _ _ }
  214. open { Token TcOpen _ _ }
  215. lazy { Token TcLazy _ _ }
  216. ',' { Token TcComma _ _ }
  217. '.' { Token TcDot _ _ }
  218. ':' { Token TcColon _ _ }
  219. ';;' { Token TcTopSep _ _ }
  220. ';' { Token TcSemicolon _ _ }
  221. '(' { Token TcOParen _ _ }
  222. '?(' { Token TcQParen _ _ }
  223. ')' { Token TcCParen _ _ }
  224. '@{' { Token TcAtBrace _ _ }
  225. '?' { Token TcQuestion _ _ }
  226. '{' { Token TcOBrace _ _ }
  227. '}' { Token TcCBrace _ _ }
  228. '[' { Token TcOSquare _ _ }
  229. ']' { Token TcCSquare _ _ }
  230. op { Token (TcOp _) _ _ }
  231. ident { Token (TcIdentifier _) _ _ }
  232. iident { Token (TcQIdentifier _) _ _ }
  233. opid { Token (TcOpIdent _) _ _ }
  234. conid { Token (TcConIdent _) _ _ }
  235. qident { Token (TcIdentifierQual _ _) _ _ }
  236. qopid { Token (TcOpIdentQual _ _) _ _ }
  237. qconid { Token (TcConIdentQual _ _) _ _ }
  238. qdotid { Token (TcDotQual _) _ _ }
  239. access { Token (TcAccess _) _ _ }
  240. tyvar { Token (TcTyvar _) _ _ }
  241. hole { Token (TcHole _) _ _ }
  242. int { Token (TcInteger _) _ _ }
  243. float { Token (TcFloat _) _ _ }
  244. string { Token (TcString _) _ _ }
  245. '$begin' { Token TcVBegin _ _ }
  246. '$end' { Token TcVEnd _ _ }
  247. '$in' { Token TcVIn _ _ }
  248. '$sep' { Token TcVSep _ _ }
  249.  
  250. -----------------------------------------------------------------------------
  251. Non-terminals
  252. -----------------------------------------------------------------------------
  253. %start_parseTops rule 0
  254. %start_parseRepl rule 1
  255. Tops rule 2
  256. TopSep rules 3, 4
  257. Top rules 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
  258. TyConArg rules 15, 16, 17
  259. Ctor rules 18, 19, 20
  260. Repl rules 21, 22
  261. ReplSep rules 23, 24, 25
  262. Expr rules 26, 27
  263. ExprApp rules 28, 29, 30
  264. Expr0 rules 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
  265. Atom rules 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54
  266. ExprBlock rule 55
  267. ExprSep rules 56, 57
  268. ExprIn rules 58, 59
  269. Operator rules 60, 61, 62, 63, 64
  270. Section rules 65, 66, 67, 68, 69
  271. NullSection rules 70, 71
  272. Var rules 72, 73
  273. Con rules 74, 75
  274. TyVar rule 76
  275. BindGroup rules 77, 78
  276. Binding rules 79, 80
  277. PreBinding rules 81, 82, 83
  278. BindName rules 84, 85
  279. BindOp rules 86, 87, 88, 89
  280. Lit rules 90, 91, 92, 93, 94
  281. MPattern rules 95, 96, 97
  282. Pattern rules 98, 99, 100
  283. ArgP rules 101, 102, 103, 104, 105, 106
  284. Arm rule 107
  285. Parameter rules 108, 109, 110
  286. Type rules 111, 112, 113, 114, 115
  287. BoundTv rule 116
  288. TypeProd rules 117, 118
  289. TypeApp rules 119, 120
  290. TypeAtom rules 121, 122, 123, 124, 125, 126, 127, 128, 129
  291. List__Pattern__','__ rules 130, 131
  292. List1__Ctor__'|'__ rules 132, 133
  293. List1__Expr__','__ rules 134, 135
  294. List1__Expr__ExprSep__ rules 136, 137
  295. List1__MPattern__','__ rules 138, 139
  296. List1__NullSection__','__ rules 140, 141
  297. List1__Top__TopSep__ rules 142, 143
  298. ListE__Parameter__ rules 144, 145
  299. ListE__TyConArg__ rules 146, 147
  300. ListE1__Arm__ rules 148, 149
  301. ListE1__BoundTv__ rules 150, 151
  302. ListE1__Parameter__ rules 152, 153
  303. ListE1__tyvar__ rules 154, 155
  304. Rows__':'__Type__ rules 156, 157, 158
  305. Rows__'='__Expr__ rules 159, 160, 161
  306. Rows__'='__Pattern__ rules 162, 163, 164
  307. List1__Pattern__','__ rules 165, 166
  308. ListE1__TyConArg__ rules 167, 168
  309.  
  310. -----------------------------------------------------------------------------
  311. States
  312. -----------------------------------------------------------------------------
  313. State 0
  314.  
  315.  
  316. let shift, and enter state 5
  317. external shift, and enter state 6
  318. type shift, and enter state 7
  319. module shift, and enter state 8
  320. open shift, and enter state 9
  321.  
  322. Tops goto state 42
  323. Top goto state 3
  324. List1__Top__TopSep__goto state 4
  325.  
  326. State 1
  327.  
  328.  
  329. '_' shift, and enter state 19
  330. let shift, and enter state 20
  331. fun shift, and enter state 21
  332. if shift, and enter state 22
  333. begin shift, and enter state 23
  334. external shift, and enter state 6
  335. true shift, and enter state 24
  336. false shift, and enter state 25
  337. match shift, and enter state 26
  338. function shift, and enter state 27
  339. type shift, and enter state 7
  340. module shift, and enter state 8
  341. open shift, and enter state 9
  342. lazy shift, and enter state 28
  343. '(' shift, and enter state 29
  344. '@{' shift, and enter state 30
  345. '?' shift, and enter state 31
  346. '{' shift, and enter state 32
  347. ident shift, and enter state 33
  348. conid shift, and enter state 34
  349. qident shift, and enter state 35
  350. qconid shift, and enter state 36
  351. qdotid shift, and enter state 37
  352. hole shift, and enter state 38
  353. int shift, and enter state 39
  354. float shift, and enter state 40
  355. string shift, and enter state 41
  356.  
  357. Top goto state 10
  358. Repl goto state 11
  359. Expr goto state 12
  360. ExprApp goto state 13
  361. Expr0 goto state 14
  362. Atom goto state 15
  363. Var goto state 16
  364. Con goto state 17
  365. Lit goto state 18
  366.  
  367. State 2
  368.  
  369.  
  370. let shift, and enter state 5
  371. external shift, and enter state 6
  372. type shift, and enter state 7
  373. module shift, and enter state 8
  374. open shift, and enter state 9
  375.  
  376. Top goto state 3
  377. List1__Top__TopSep__goto state 4
  378.  
  379. State 3
  380.  
  381. List1__Top__TopSep__ -> Top . (rule 142)
  382. List1__Top__TopSep__ -> Top . TopSep List1__Top__TopSep__ (rule 143)
  383.  
  384. end reduce using rule 142
  385. ';;' shift, and enter state 116
  386. '$end' reduce using rule 142
  387. '$sep' shift, and enter state 117
  388. %eof reduce using rule 142
  389.  
  390. TopSep goto state 115
  391.  
  392. State 4
  393.  
  394. Tops -> List1__Top__TopSep__ . (rule 2)
  395.  
  396. end reduce using rule 2
  397. '$end' reduce using rule 2
  398. %eof reduce using rule 2
  399.  
  400.  
  401. State 5
  402.  
  403. Top -> let . BindGroup (rule 5)
  404.  
  405. '_' shift, and enter state 86
  406. implicit shift, and enter state 97
  407. true shift, and enter state 24
  408. false shift, and enter state 25
  409. '(' shift, and enter state 99
  410. '{' shift, and enter state 89
  411. ident shift, and enter state 100
  412. conid shift, and enter state 34
  413. qconid shift, and enter state 36
  414. int shift, and enter state 39
  415. float shift, and enter state 40
  416. string shift, and enter state 41
  417.  
  418. Con goto state 81
  419. BindGroup goto state 114
  420. Binding goto state 93
  421. PreBinding goto state 94
  422. BindName goto state 95
  423. Lit goto state 82
  424. ArgP goto state 96
  425.  
  426. State 6
  427.  
  428. Top -> external . val ident ':' Type '=' string (rule 6)
  429.  
  430. val shift, and enter state 113
  431.  
  432.  
  433. State 7
  434.  
  435. Top -> type . ident ListE__TyConArg__ (rule 7)
  436. Top -> type . ident ListE__TyConArg__ '=' List1__Ctor__'|'__ (rule 8)
  437. Top -> type . ident ListE__TyConArg__ '=' '|' List1__Ctor__'|'__ (rule 9)
  438.  
  439. ident shift, and enter state 112
  440.  
  441.  
  442. State 8
  443.  
  444. Top -> module . qconid '=' begin Tops end (rule 10)
  445. Top -> module . conid '=' begin Tops end (rule 11)
  446. Top -> module . conid '=' '$begin' Tops '$end' (rule 12)
  447. Top -> module . conid '=' Con (rule 13)
  448.  
  449. conid shift, and enter state 110
  450. qconid shift, and enter state 111
  451.  
  452.  
  453. State 9
  454.  
  455. Top -> open . Con (rule 14)
  456.  
  457. conid shift, and enter state 34
  458. qconid shift, and enter state 36
  459.  
  460. Con goto state 109
  461.  
  462. State 10
  463.  
  464. Repl -> Top . ReplSep (rule 21)
  465.  
  466. ';;' shift, and enter state 106
  467. '$sep' shift, and enter state 107
  468. %eof reduce using rule 25
  469.  
  470. ReplSep goto state 108
  471.  
  472. State 11
  473.  
  474. %start_parseRepl -> Repl . (rule 1)
  475.  
  476. %eof accept
  477.  
  478.  
  479. State 12
  480.  
  481. Repl -> Expr . ReplSep (rule 22)
  482. Expr -> Expr . Operator ExprApp (rule 27)
  483.  
  484. '*' shift, and enter state 65
  485. '~' shift, and enter state 66
  486. ';;' shift, and enter state 106
  487. op shift, and enter state 68
  488. opid shift, and enter state 69
  489. qopid shift, and enter state 70
  490. '$sep' shift, and enter state 107
  491. %eof reduce using rule 25
  492.  
  493. ReplSep goto state 104
  494. Operator goto state 105
  495.  
  496. State 13
  497.  
  498. Expr -> ExprApp . (rule 26)
  499. ExprApp -> ExprApp . Atom (rule 29)
  500. ExprApp -> ExprApp . ':' Type (rule 30)
  501.  
  502. '|' reduce using rule 26
  503. '*' reduce using rule 26
  504. '~' reduce using rule 26
  505. '_' shift, and enter state 19
  506. then reduce using rule 26
  507. else reduce using rule 26
  508. begin shift, and enter state 23
  509. end reduce using rule 26
  510. true shift, and enter state 24
  511. false shift, and enter state 25
  512. with reduce using rule 26
  513. ',' reduce using rule 26
  514. ':' shift, and enter state 103
  515. ';;' reduce using rule 26
  516. ';' reduce using rule 26
  517. '(' shift, and enter state 29
  518. ')' reduce using rule 26
  519. '@{' shift, and enter state 30
  520. '?' shift, and enter state 31
  521. '{' shift, and enter state 32
  522. '}' reduce using rule 26
  523. op reduce using rule 26
  524. ident shift, and enter state 33
  525. opid reduce using rule 26
  526. conid shift, and enter state 34
  527. qident shift, and enter state 35
  528. qopid reduce using rule 26
  529. qconid shift, and enter state 36
  530. hole shift, and enter state 38
  531. int shift, and enter state 39
  532. float shift, and enter state 40
  533. string shift, and enter state 41
  534. '$end' reduce using rule 26
  535. '$sep' reduce using rule 26
  536. %eof reduce using rule 26
  537.  
  538. Atom goto state 102
  539. Var goto state 16
  540. Con goto state 17
  541. Lit goto state 18
  542.  
  543. State 14
  544.  
  545. ExprApp -> Expr0 . (rule 28)
  546.  
  547. '|' reduce using rule 28
  548. '*' reduce using rule 28
  549. '~' reduce using rule 28
  550. '_' reduce using rule 28
  551. then reduce using rule 28
  552. else reduce using rule 28
  553. begin reduce using rule 28
  554. end reduce using rule 28
  555. true reduce using rule 28
  556. false reduce using rule 28
  557. with reduce using rule 28
  558. ',' reduce using rule 28
  559. ':' reduce using rule 28
  560. ';;' reduce using rule 28
  561. ';' reduce using rule 28
  562. '(' reduce using rule 28
  563. ')' reduce using rule 28
  564. '@{' reduce using rule 28
  565. '?' reduce using rule 28
  566. '{' reduce using rule 28
  567. '}' reduce using rule 28
  568. op reduce using rule 28
  569. ident reduce using rule 28
  570. opid reduce using rule 28
  571. conid reduce using rule 28
  572. qident reduce using rule 28
  573. qopid reduce using rule 28
  574. qconid reduce using rule 28
  575. hole reduce using rule 28
  576. int reduce using rule 28
  577. float reduce using rule 28
  578. string reduce using rule 28
  579. '$end' reduce using rule 28
  580. '$sep' reduce using rule 28
  581. %eof reduce using rule 28
  582.  
  583.  
  584. State 15
  585.  
  586. Expr0 -> Atom . (rule 40)
  587. Atom -> Atom . access (rule 54)
  588.  
  589. '|' reduce using rule 40
  590. '*' reduce using rule 40
  591. '~' reduce using rule 40
  592. '_' reduce using rule 40
  593. then reduce using rule 40
  594. else reduce using rule 40
  595. begin reduce using rule 40
  596. end reduce using rule 40
  597. true reduce using rule 40
  598. false reduce using rule 40
  599. with reduce using rule 40
  600. ',' reduce using rule 40
  601. ':' reduce using rule 40
  602. ';;' reduce using rule 40
  603. ';' reduce using rule 40
  604. '(' reduce using rule 40
  605. ')' reduce using rule 40
  606. '@{' reduce using rule 40
  607. '?' reduce using rule 40
  608. '{' reduce using rule 40
  609. '}' reduce using rule 40
  610. op reduce using rule 40
  611. ident reduce using rule 40
  612. opid reduce using rule 40
  613. conid reduce using rule 40
  614. qident reduce using rule 40
  615. qopid reduce using rule 40
  616. qconid reduce using rule 40
  617. access shift, and enter state 101
  618. hole reduce using rule 40
  619. int reduce using rule 40
  620. float reduce using rule 40
  621. string reduce using rule 40
  622. '$end' reduce using rule 40
  623. '$sep' reduce using rule 40
  624. %eof reduce using rule 40
  625.  
  626.  
  627. State 16
  628.  
  629. Atom -> Var . (rule 41)
  630.  
  631. '|' reduce using rule 41
  632. '*' reduce using rule 41
  633. '~' reduce using rule 41
  634. '_' reduce using rule 41
  635. then reduce using rule 41
  636. else reduce using rule 41
  637. begin reduce using rule 41
  638. end reduce using rule 41
  639. true reduce using rule 41
  640. false reduce using rule 41
  641. with reduce using rule 41
  642. ',' reduce using rule 41
  643. ':' reduce using rule 41
  644. ';;' reduce using rule 41
  645. ';' reduce using rule 41
  646. '(' reduce using rule 41
  647. ')' reduce using rule 41
  648. '@{' reduce using rule 41
  649. '?' reduce using rule 41
  650. '{' reduce using rule 41
  651. '}' reduce using rule 41
  652. op reduce using rule 41
  653. ident reduce using rule 41
  654. opid reduce using rule 41
  655. conid reduce using rule 41
  656. qident reduce using rule 41
  657. qopid reduce using rule 41
  658. qconid reduce using rule 41
  659. access reduce using rule 41
  660. hole reduce using rule 41
  661. int reduce using rule 41
  662. float reduce using rule 41
  663. string reduce using rule 41
  664. '$end' reduce using rule 41
  665. '$sep' reduce using rule 41
  666. %eof reduce using rule 41
  667.  
  668.  
  669. State 17
  670.  
  671. Atom -> Con . (rule 42)
  672.  
  673. '|' reduce using rule 42
  674. '*' reduce using rule 42
  675. '~' reduce using rule 42
  676. '_' reduce using rule 42
  677. then reduce using rule 42
  678. else reduce using rule 42
  679. begin reduce using rule 42
  680. end reduce using rule 42
  681. true reduce using rule 42
  682. false reduce using rule 42
  683. with reduce using rule 42
  684. ',' reduce using rule 42
  685. ':' reduce using rule 42
  686. ';;' reduce using rule 42
  687. ';' reduce using rule 42
  688. '(' reduce using rule 42
  689. ')' reduce using rule 42
  690. '@{' reduce using rule 42
  691. '?' reduce using rule 42
  692. '{' reduce using rule 42
  693. '}' reduce using rule 42
  694. op reduce using rule 42
  695. ident reduce using rule 42
  696. opid reduce using rule 42
  697. conid reduce using rule 42
  698. qident reduce using rule 42
  699. qopid reduce using rule 42
  700. qconid reduce using rule 42
  701. access reduce using rule 42
  702. hole reduce using rule 42
  703. int reduce using rule 42
  704. float reduce using rule 42
  705. string reduce using rule 42
  706. '$end' reduce using rule 42
  707. '$sep' reduce using rule 42
  708. %eof reduce using rule 42
  709.  
  710.  
  711. State 18
  712.  
  713. Atom -> Lit . (rule 43)
  714.  
  715. '|' reduce using rule 43
  716. '*' reduce using rule 43
  717. '~' reduce using rule 43
  718. '_' reduce using rule 43
  719. then reduce using rule 43
  720. else reduce using rule 43
  721. begin reduce using rule 43
  722. end reduce using rule 43
  723. true reduce using rule 43
  724. false reduce using rule 43
  725. with reduce using rule 43
  726. ',' reduce using rule 43
  727. ':' reduce using rule 43
  728. ';;' reduce using rule 43
  729. ';' reduce using rule 43
  730. '(' reduce using rule 43
  731. ')' reduce using rule 43
  732. '@{' reduce using rule 43
  733. '?' reduce using rule 43
  734. '{' reduce using rule 43
  735. '}' reduce using rule 43
  736. op reduce using rule 43
  737. ident reduce using rule 43
  738. opid reduce using rule 43
  739. conid reduce using rule 43
  740. qident reduce using rule 43
  741. qopid reduce using rule 43
  742. qconid reduce using rule 43
  743. access reduce using rule 43
  744. hole reduce using rule 43
  745. int reduce using rule 43
  746. float reduce using rule 43
  747. string reduce using rule 43
  748. '$end' reduce using rule 43
  749. '$sep' reduce using rule 43
  750. %eof reduce using rule 43
  751.  
  752.  
  753. State 19
  754.  
  755. Atom -> '_' . (rule 45)
  756.  
  757. '|' reduce using rule 45
  758. '*' reduce using rule 45
  759. '~' reduce using rule 45
  760. '_' reduce using rule 45
  761. then reduce using rule 45
  762. else reduce using rule 45
  763. begin reduce using rule 45
  764. end reduce using rule 45
  765. true reduce using rule 45
  766. false reduce using rule 45
  767. with reduce using rule 45
  768. ',' reduce using rule 45
  769. ':' reduce using rule 45
  770. ';;' reduce using rule 45
  771. ';' reduce using rule 45
  772. '(' reduce using rule 45
  773. ')' reduce using rule 45
  774. '@{' reduce using rule 45
  775. '?' reduce using rule 45
  776. '{' reduce using rule 45
  777. '}' reduce using rule 45
  778. op reduce using rule 45
  779. ident reduce using rule 45
  780. opid reduce using rule 45
  781. conid reduce using rule 45
  782. qident reduce using rule 45
  783. qopid reduce using rule 45
  784. qconid reduce using rule 45
  785. access reduce using rule 45
  786. hole reduce using rule 45
  787. int reduce using rule 45
  788. float reduce using rule 45
  789. string reduce using rule 45
  790. '$end' reduce using rule 45
  791. '$sep' reduce using rule 45
  792. %eof reduce using rule 45
  793.  
  794.  
  795. State 20
  796.  
  797. Top -> let . BindGroup (rule 5)
  798. Expr0 -> let . BindGroup ExprIn ExprBlock '$end' (rule 32)
  799. Expr0 -> let . open Con ExprIn ExprBlock '$end' (rule 33)
  800.  
  801. '_' shift, and enter state 86
  802. implicit shift, and enter state 97
  803. true shift, and enter state 24
  804. false shift, and enter state 25
  805. open shift, and enter state 98
  806. '(' shift, and enter state 99
  807. '{' shift, and enter state 89
  808. ident shift, and enter state 100
  809. conid shift, and enter state 34
  810. qconid shift, and enter state 36
  811. int shift, and enter state 39
  812. float shift, and enter state 40
  813. string shift, and enter state 41
  814.  
  815. Con goto state 81
  816. BindGroup goto state 92
  817. Binding goto state 93
  818. PreBinding goto state 94
  819. BindName goto state 95
  820. Lit goto state 82
  821. ArgP goto state 96
  822.  
  823. State 21
  824.  
  825. Expr0 -> fun . ListE1__Parameter__ '->' ExprBlock '$end' (rule 31)
  826.  
  827. '_' shift, and enter state 86
  828. true shift, and enter state 24
  829. false shift, and enter state 25
  830. '(' shift, and enter state 87
  831. '?(' shift, and enter state 88
  832. '{' shift, and enter state 89
  833. ident shift, and enter state 90
  834. iident shift, and enter state 91
  835. conid shift, and enter state 34
  836. qconid shift, and enter state 36
  837. int shift, and enter state 39
  838. float shift, and enter state 40
  839. string shift, and enter state 41
  840.  
  841. Con goto state 81
  842. Lit goto state 82
  843. ArgP goto state 83
  844. Parameter goto state 84
  845. ListE1__Parameter__goto state 85
  846.  
  847. State 22
  848.  
  849. Expr0 -> if . Expr then ExprBlock else ExprBlock '$end' (rule 34)
  850.  
  851. '_' shift, and enter state 19
  852. let shift, and enter state 46
  853. fun shift, and enter state 21
  854. if shift, and enter state 22
  855. begin shift, and enter state 23
  856. true shift, and enter state 24
  857. false shift, and enter state 25
  858. match shift, and enter state 26
  859. function shift, and enter state 27
  860. lazy shift, and enter state 28
  861. '(' shift, and enter state 29
  862. '@{' shift, and enter state 30
  863. '?' shift, and enter state 31
  864. '{' shift, and enter state 32
  865. ident shift, and enter state 33
  866. conid shift, and enter state 34
  867. qident shift, and enter state 35
  868. qconid shift, and enter state 36
  869. qdotid shift, and enter state 37
  870. hole shift, and enter state 38
  871. int shift, and enter state 39
  872. float shift, and enter state 40
  873. string shift, and enter state 41
  874.  
  875. Expr goto state 80
  876. ExprApp goto state 13
  877. Expr0 goto state 14
  878. Atom goto state 15
  879. Var goto state 16
  880. Con goto state 17
  881. Lit goto state 18
  882.  
  883. State 23
  884.  
  885. Atom -> begin . List1__Expr__ExprSep__ end (rule 46)
  886.  
  887. '_' shift, and enter state 19
  888. let shift, and enter state 46
  889. fun shift, and enter state 21
  890. if shift, and enter state 22
  891. begin shift, and enter state 23
  892. true shift, and enter state 24
  893. false shift, and enter state 25
  894. match shift, and enter state 26
  895. function shift, and enter state 27
  896. lazy shift, and enter state 28
  897. '(' shift, and enter state 29
  898. '@{' shift, and enter state 30
  899. '?' shift, and enter state 31
  900. '{' shift, and enter state 32
  901. ident shift, and enter state 33
  902. conid shift, and enter state 34
  903. qident shift, and enter state 35
  904. qconid shift, and enter state 36
  905. qdotid shift, and enter state 37
  906. hole shift, and enter state 38
  907. int shift, and enter state 39
  908. float shift, and enter state 40
  909. string shift, and enter state 41
  910.  
  911. Expr goto state 78
  912. ExprApp goto state 13
  913. Expr0 goto state 14
  914. Atom goto state 15
  915. Var goto state 16
  916. Con goto state 17
  917. Lit goto state 18
  918. List1__Expr__ExprSep__goto state 79
  919.  
  920. State 24
  921.  
  922. Lit -> true . (rule 93)
  923.  
  924. '->' reduce using rule 93
  925. '=' reduce using rule 93
  926. '|' reduce using rule 93
  927. '*' reduce using rule 93
  928. '~' reduce using rule 93
  929. '_' reduce using rule 93
  930. then reduce using rule 93
  931. else reduce using rule 93
  932. begin reduce using rule 93
  933. end reduce using rule 93
  934. true reduce using rule 93
  935. false reduce using rule 93
  936. with reduce using rule 93
  937. ',' reduce using rule 93
  938. ':' reduce using rule 93
  939. ';;' reduce using rule 93
  940. ';' reduce using rule 93
  941. '(' reduce using rule 93
  942. '?(' reduce using rule 93
  943. ')' reduce using rule 93
  944. '@{' reduce using rule 93
  945. '?' reduce using rule 93
  946. '{' reduce using rule 93
  947. '}' reduce using rule 93
  948. op reduce using rule 93
  949. ident reduce using rule 93
  950. iident reduce using rule 93
  951. opid reduce using rule 93
  952. conid reduce using rule 93
  953. qident reduce using rule 93
  954. qopid reduce using rule 93
  955. qconid reduce using rule 93
  956. access reduce using rule 93
  957. hole reduce using rule 93
  958. int reduce using rule 93
  959. float reduce using rule 93
  960. string reduce using rule 93
  961. '$end' reduce using rule 93
  962. '$sep' reduce using rule 93
  963. %eof reduce using rule 93
  964.  
  965.  
  966. State 25
  967.  
  968. Lit -> false . (rule 94)
  969.  
  970. '->' reduce using rule 94
  971. '=' reduce using rule 94
  972. '|' reduce using rule 94
  973. '*' reduce using rule 94
  974. '~' reduce using rule 94
  975. '_' reduce using rule 94
  976. then reduce using rule 94
  977. else reduce using rule 94
  978. begin reduce using rule 94
  979. end reduce using rule 94
  980. true reduce using rule 94
  981. false reduce using rule 94
  982. with reduce using rule 94
  983. ',' reduce using rule 94
  984. ':' reduce using rule 94
  985. ';;' reduce using rule 94
  986. ';' reduce using rule 94
  987. '(' reduce using rule 94
  988. '?(' reduce using rule 94
  989. ')' reduce using rule 94
  990. '@{' reduce using rule 94
  991. '?' reduce using rule 94
  992. '{' reduce using rule 94
  993. '}' reduce using rule 94
  994. op reduce using rule 94
  995. ident reduce using rule 94
  996. iident reduce using rule 94
  997. opid reduce using rule 94
  998. conid reduce using rule 94
  999. qident reduce using rule 94
  1000. qopid reduce using rule 94
  1001. qconid reduce using rule 94
  1002. access reduce using rule 94
  1003. hole reduce using rule 94
  1004. int reduce using rule 94
  1005. float reduce using rule 94
  1006. string reduce using rule 94
  1007. '$end' reduce using rule 94
  1008. '$sep' reduce using rule 94
  1009. %eof reduce using rule 94
  1010.  
  1011.  
  1012. State 26
  1013.  
  1014. Expr0 -> match . List1__Expr__','__ with ListE1__Arm__ '$end' (rule 35)
  1015. Expr0 -> match . List1__Expr__','__ with '(' ')' (rule 36)
  1016.  
  1017. '_' shift, and enter state 19
  1018. let shift, and enter state 46
  1019. fun shift, and enter state 21
  1020. if shift, and enter state 22
  1021. begin shift, and enter state 23
  1022. true shift, and enter state 24
  1023. false shift, and enter state 25
  1024. match shift, and enter state 26
  1025. function shift, and enter state 27
  1026. lazy shift, and enter state 28
  1027. '(' shift, and enter state 29
  1028. '@{' shift, and enter state 30
  1029. '?' shift, and enter state 31
  1030. '{' shift, and enter state 32
  1031. ident shift, and enter state 33
  1032. conid shift, and enter state 34
  1033. qident shift, and enter state 35
  1034. qconid shift, and enter state 36
  1035. qdotid shift, and enter state 37
  1036. hole shift, and enter state 38
  1037. int shift, and enter state 39
  1038. float shift, and enter state 40
  1039. string shift, and enter state 41
  1040.  
  1041. Expr goto state 76
  1042. ExprApp goto state 13
  1043. Expr0 goto state 14
  1044. Atom goto state 15
  1045. Var goto state 16
  1046. Con goto state 17
  1047. Lit goto state 18
  1048. List1__Expr__','__goto state 77
  1049.  
  1050. State 27
  1051.  
  1052. Expr0 -> function . ListE1__Arm__ '$end' (rule 37)
  1053.  
  1054. '|' shift, and enter state 75
  1055.  
  1056. Arm goto state 73
  1057. ListE1__Arm__ goto state 74
  1058.  
  1059. State 28
  1060.  
  1061. Expr0 -> lazy . Atom (rule 39)
  1062.  
  1063. '_' shift, and enter state 19
  1064. begin shift, and enter state 23
  1065. true shift, and enter state 24
  1066. false shift, and enter state 25
  1067. '(' shift, and enter state 29
  1068. '@{' shift, and enter state 30
  1069. '?' shift, and enter state 31
  1070. '{' shift, and enter state 32
  1071. ident shift, and enter state 33
  1072. conid shift, and enter state 34
  1073. qident shift, and enter state 35
  1074. qconid shift, and enter state 36
  1075. hole shift, and enter state 38
  1076. int shift, and enter state 39
  1077. float shift, and enter state 40
  1078. string shift, and enter state 41
  1079.  
  1080. Atom goto state 72
  1081. Var goto state 16
  1082. Con goto state 17
  1083. Lit goto state 18
  1084.  
  1085. State 29
  1086.  
  1087. Atom -> '(' . ')' (rule 47)
  1088. Atom -> '(' . Section ')' (rule 48)
  1089. Atom -> '(' . NullSection ',' List1__NullSection__','__ ')' (rule 49)
  1090.  
  1091. '*' shift, and enter state 65
  1092. '~' shift, and enter state 66
  1093. '_' shift, and enter state 19
  1094. let shift, and enter state 46
  1095. fun shift, and enter state 21
  1096. if shift, and enter state 22
  1097. begin shift, and enter state 23
  1098. true shift, and enter state 24
  1099. false shift, and enter state 25
  1100. match shift, and enter state 26
  1101. function shift, and enter state 27
  1102. lazy shift, and enter state 28
  1103. ',' reduce using rule 70
  1104. '(' shift, and enter state 29
  1105. ')' shift, and enter state 67
  1106. '@{' shift, and enter state 30
  1107. '?' shift, and enter state 31
  1108. '{' shift, and enter state 32
  1109. op shift, and enter state 68
  1110. ident shift, and enter state 33
  1111. opid shift, and enter state 69
  1112. conid shift, and enter state 34
  1113. qident shift, and enter state 35
  1114. qopid shift, and enter state 70
  1115. qconid shift, and enter state 36
  1116. qdotid shift, and enter state 37
  1117. access shift, and enter state 71
  1118. hole shift, and enter state 38
  1119. int shift, and enter state 39
  1120. float shift, and enter state 40
  1121. string shift, and enter state 41
  1122.  
  1123. Expr goto state 61
  1124. ExprApp goto state 13
  1125. Expr0 goto state 14
  1126. Atom goto state 15
  1127. Operator goto state 62
  1128. Section goto state 63
  1129. NullSection goto state 64
  1130. Var goto state 16
  1131. Con goto state 17
  1132. Lit goto state 18
  1133.  
  1134. State 30
  1135.  
  1136. Atom -> '@{' . Type '}' (rule 53)
  1137.  
  1138. forall shift, and enter state 55
  1139. type shift, and enter state 56
  1140. lazy shift, and enter state 57
  1141. '(' shift, and enter state 58
  1142. '{' shift, and enter state 59
  1143. ident shift, and enter state 33
  1144. conid shift, and enter state 34
  1145. qident shift, and enter state 35
  1146. qconid shift, and enter state 36
  1147. tyvar shift, and enter state 60
  1148.  
  1149. Var goto state 48
  1150. Con goto state 49
  1151. TyVar goto state 50
  1152. Type goto state 51
  1153. TypeProd goto state 52
  1154. TypeApp goto state 53
  1155. TypeAtom goto state 54
  1156.  
  1157. State 31
  1158.  
  1159. Atom -> '?' . (rule 52)
  1160.  
  1161. '|' reduce using rule 52
  1162. '*' reduce using rule 52
  1163. '~' reduce using rule 52
  1164. '_' reduce using rule 52
  1165. then reduce using rule 52
  1166. else reduce using rule 52
  1167. begin reduce using rule 52
  1168. end reduce using rule 52
  1169. true reduce using rule 52
  1170. false reduce using rule 52
  1171. with reduce using rule 52
  1172. ',' reduce using rule 52
  1173. ':' reduce using rule 52
  1174. ';;' reduce using rule 52
  1175. ';' reduce using rule 52
  1176. '(' reduce using rule 52
  1177. ')' reduce using rule 52
  1178. '@{' reduce using rule 52
  1179. '?' reduce using rule 52
  1180. '{' reduce using rule 52
  1181. '}' reduce using rule 52
  1182. op reduce using rule 52
  1183. ident reduce using rule 52
  1184. opid reduce using rule 52
  1185. conid reduce using rule 52
  1186. qident reduce using rule 52
  1187. qopid reduce using rule 52
  1188. qconid reduce using rule 52
  1189. access reduce using rule 52
  1190. hole reduce using rule 52
  1191. int reduce using rule 52
  1192. float reduce using rule 52
  1193. string reduce using rule 52
  1194. '$end' reduce using rule 52
  1195. '$sep' reduce using rule 52
  1196. %eof reduce using rule 52
  1197.  
  1198.  
  1199. State 32
  1200.  
  1201. Atom -> '{' . Rows__'='__Expr__ '}' (rule 50)
  1202. Atom -> '{' . Expr with Rows__'='__Expr__ '}' (rule 51)
  1203.  
  1204. '_' shift, and enter state 19
  1205. let shift, and enter state 46
  1206. fun shift, and enter state 21
  1207. if shift, and enter state 22
  1208. begin shift, and enter state 23
  1209. true shift, and enter state 24
  1210. false shift, and enter state 25
  1211. match shift, and enter state 26
  1212. function shift, and enter state 27
  1213. lazy shift, and enter state 28
  1214. '(' shift, and enter state 29
  1215. '@{' shift, and enter state 30
  1216. '?' shift, and enter state 31
  1217. '{' shift, and enter state 32
  1218. '}' reduce using rule 159
  1219. ident shift, and enter state 47
  1220. conid shift, and enter state 34
  1221. qident shift, and enter state 35
  1222. qconid shift, and enter state 36
  1223. qdotid shift, and enter state 37
  1224. hole shift, and enter state 38
  1225. int shift, and enter state 39
  1226. float shift, and enter state 40
  1227. string shift, and enter state 41
  1228.  
  1229. Expr goto state 44
  1230. ExprApp goto state 13
  1231. Expr0 goto state 14
  1232. Atom goto state 15
  1233. Var goto state 16
  1234. Con goto state 17
  1235. Lit goto state 18
  1236. Rows__'='__Expr__goto state 45
  1237.  
  1238. State 33
  1239.  
  1240. Var -> ident . (rule 72)
  1241.  
  1242. '->' reduce using rule 72
  1243. '=' reduce using rule 72
  1244. '=>' reduce using rule 72
  1245. '|' reduce using rule 72
  1246. '*' reduce using rule 72
  1247. '~' reduce using rule 72
  1248. '_' reduce using rule 72
  1249. then reduce using rule 72
  1250. else reduce using rule 72
  1251. begin reduce using rule 72
  1252. end reduce using rule 72
  1253. true reduce using rule 72
  1254. false reduce using rule 72
  1255. with reduce using rule 72
  1256. type reduce using rule 72
  1257. lazy reduce using rule 72
  1258. ',' reduce using rule 72
  1259. ':' reduce using rule 72
  1260. ';;' reduce using rule 72
  1261. ';' reduce using rule 72
  1262. '(' reduce using rule 72
  1263. ')' reduce using rule 72
  1264. '@{' reduce using rule 72
  1265. '?' reduce using rule 72
  1266. '{' reduce using rule 72
  1267. '}' reduce using rule 72
  1268. op reduce using rule 72
  1269. ident reduce using rule 72
  1270. opid reduce using rule 72
  1271. conid reduce using rule 72
  1272. qident reduce using rule 72
  1273. qopid reduce using rule 72
  1274. qconid reduce using rule 72
  1275. access reduce using rule 72
  1276. tyvar reduce using rule 72
  1277. hole reduce using rule 72
  1278. int reduce using rule 72
  1279. float reduce using rule 72
  1280. string reduce using rule 72
  1281. '$end' reduce using rule 72
  1282. '$sep' reduce using rule 72
  1283. %eof reduce using rule 72
  1284.  
  1285.  
  1286. State 34
  1287.  
  1288. Con -> conid . (rule 74)
  1289.  
  1290. '->' reduce using rule 74
  1291. '=' reduce using rule 74
  1292. '=>' reduce using rule 74
  1293. '|' reduce using rule 74
  1294. '*' reduce using rule 74
  1295. '~' reduce using rule 74
  1296. '_' reduce using rule 74
  1297. then reduce using rule 74
  1298. else reduce using rule 74
  1299. begin reduce using rule 74
  1300. end reduce using rule 74
  1301. in reduce using rule 74
  1302. true reduce using rule 74
  1303. false reduce using rule 74
  1304. with reduce using rule 74
  1305. type reduce using rule 74
  1306. lazy reduce using rule 74
  1307. ',' reduce using rule 74
  1308. ':' reduce using rule 74
  1309. ';;' reduce using rule 74
  1310. ';' reduce using rule 74
  1311. '(' reduce using rule 74
  1312. '?(' reduce using rule 74
  1313. ')' reduce using rule 74
  1314. '@{' reduce using rule 74
  1315. '?' reduce using rule 74
  1316. '{' reduce using rule 74
  1317. '}' reduce using rule 74
  1318. op reduce using rule 74
  1319. ident reduce using rule 74
  1320. iident reduce using rule 74
  1321. opid reduce using rule 74
  1322. conid reduce using rule 74
  1323. qident reduce using rule 74
  1324. qopid reduce using rule 74
  1325. qconid reduce using rule 74
  1326. access reduce using rule 74
  1327. tyvar reduce using rule 74
  1328. hole reduce using rule 74
  1329. int reduce using rule 74
  1330. float reduce using rule 74
  1331. string reduce using rule 74
  1332. '$end' reduce using rule 74
  1333. '$in' reduce using rule 74
  1334. '$sep' reduce using rule 74
  1335. %eof reduce using rule 74
  1336.  
  1337.  
  1338. State 35
  1339.  
  1340. Var -> qident . (rule 73)
  1341.  
  1342. '->' reduce using rule 73
  1343. '=' reduce using rule 73
  1344. '=>' reduce using rule 73
  1345. '|' reduce using rule 73
  1346. '*' reduce using rule 73
  1347. '~' reduce using rule 73
  1348. '_' reduce using rule 73
  1349. then reduce using rule 73
  1350. else reduce using rule 73
  1351. begin reduce using rule 73
  1352. end reduce using rule 73
  1353. true reduce using rule 73
  1354. false reduce using rule 73
  1355. with reduce using rule 73
  1356. type reduce using rule 73
  1357. lazy reduce using rule 73
  1358. ',' reduce using rule 73
  1359. ':' reduce using rule 73
  1360. ';;' reduce using rule 73
  1361. ';' reduce using rule 73
  1362. '(' reduce using rule 73
  1363. ')' reduce using rule 73
  1364. '@{' reduce using rule 73
  1365. '?' reduce using rule 73
  1366. '{' reduce using rule 73
  1367. '}' reduce using rule 73
  1368. op reduce using rule 73
  1369. ident reduce using rule 73
  1370. opid reduce using rule 73
  1371. conid reduce using rule 73
  1372. qident reduce using rule 73
  1373. qopid reduce using rule 73
  1374. qconid reduce using rule 73
  1375. access reduce using rule 73
  1376. tyvar reduce using rule 73
  1377. hole reduce using rule 73
  1378. int reduce using rule 73
  1379. float reduce using rule 73
  1380. string reduce using rule 73
  1381. '$end' reduce using rule 73
  1382. '$sep' reduce using rule 73
  1383. %eof reduce using rule 73
  1384.  
  1385.  
  1386. State 36
  1387.  
  1388. Con -> qconid . (rule 75)
  1389.  
  1390. '->' reduce using rule 75
  1391. '=' reduce using rule 75
  1392. '=>' reduce using rule 75
  1393. '|' reduce using rule 75
  1394. '*' reduce using rule 75
  1395. '~' reduce using rule 75
  1396. '_' reduce using rule 75
  1397. then reduce using rule 75
  1398. else reduce using rule 75
  1399. begin reduce using rule 75
  1400. end reduce using rule 75
  1401. in reduce using rule 75
  1402. true reduce using rule 75
  1403. false reduce using rule 75
  1404. with reduce using rule 75
  1405. type reduce using rule 75
  1406. lazy reduce using rule 75
  1407. ',' reduce using rule 75
  1408. ':' reduce using rule 75
  1409. ';;' reduce using rule 75
  1410. ';' reduce using rule 75
  1411. '(' reduce using rule 75
  1412. '?(' reduce using rule 75
  1413. ')' reduce using rule 75
  1414. '@{' reduce using rule 75
  1415. '?' reduce using rule 75
  1416. '{' reduce using rule 75
  1417. '}' reduce using rule 75
  1418. op reduce using rule 75
  1419. ident reduce using rule 75
  1420. iident reduce using rule 75
  1421. opid reduce using rule 75
  1422. conid reduce using rule 75
  1423. qident reduce using rule 75
  1424. qopid reduce using rule 75
  1425. qconid reduce using rule 75
  1426. access reduce using rule 75
  1427. tyvar reduce using rule 75
  1428. hole reduce using rule 75
  1429. int reduce using rule 75
  1430. float reduce using rule 75
  1431. string reduce using rule 75
  1432. '$end' reduce using rule 75
  1433. '$in' reduce using rule 75
  1434. '$sep' reduce using rule 75
  1435. %eof reduce using rule 75
  1436.  
  1437.  
  1438. State 37
  1439.  
  1440. Expr0 -> qdotid . Atom (rule 38)
  1441.  
  1442. '_' shift, and enter state 19
  1443. begin shift, and enter state 23
  1444. true shift, and enter state 24
  1445. false shift, and enter state 25
  1446. '(' shift, and enter state 29
  1447. '@{' shift, and enter state 30
  1448. '?' shift, and enter state 31
  1449. '{' shift, and enter state 32
  1450. ident shift, and enter state 33
  1451. conid shift, and enter state 34
  1452. qident shift, and enter state 35
  1453. qconid shift, and enter state 36
  1454. hole shift, and enter state 38
  1455. int shift, and enter state 39
  1456. float shift, and enter state 40
  1457. string shift, and enter state 41
  1458.  
  1459. Atom goto state 43
  1460. Var goto state 16
  1461. Con goto state 17
  1462. Lit goto state 18
  1463.  
  1464. State 38
  1465.  
  1466. Atom -> hole . (rule 44)
  1467.  
  1468. '|' reduce using rule 44
  1469. '*' reduce using rule 44
  1470. '~' reduce using rule 44
  1471. '_' reduce using rule 44
  1472. then reduce using rule 44
  1473. else reduce using rule 44
  1474. begin reduce using rule 44
  1475. end reduce using rule 44
  1476. true reduce using rule 44
  1477. false reduce using rule 44
  1478. with reduce using rule 44
  1479. ',' reduce using rule 44
  1480. ':' reduce using rule 44
  1481. ';;' reduce using rule 44
  1482. ';' reduce using rule 44
  1483. '(' reduce using rule 44
  1484. ')' reduce using rule 44
  1485. '@{' reduce using rule 44
  1486. '?' reduce using rule 44
  1487. '{' reduce using rule 44
  1488. '}' reduce using rule 44
  1489. op reduce using rule 44
  1490. ident reduce using rule 44
  1491. opid reduce using rule 44
  1492. conid reduce using rule 44
  1493. qident reduce using rule 44
  1494. qopid reduce using rule 44
  1495. qconid reduce using rule 44
  1496. access reduce using rule 44
  1497. hole reduce using rule 44
  1498. int reduce using rule 44
  1499. float reduce using rule 44
  1500. string reduce using rule 44
  1501. '$end' reduce using rule 44
  1502. '$sep' reduce using rule 44
  1503. %eof reduce using rule 44
  1504.  
  1505.  
  1506. State 39
  1507.  
  1508. Lit -> int . (rule 90)
  1509.  
  1510. '->' reduce using rule 90
  1511. '=' reduce using rule 90
  1512. '|' reduce using rule 90
  1513. '*' reduce using rule 90
  1514. '~' reduce using rule 90
  1515. '_' reduce using rule 90
  1516. then reduce using rule 90
  1517. else reduce using rule 90
  1518. begin reduce using rule 90
  1519. end reduce using rule 90
  1520. true reduce using rule 90
  1521. false reduce using rule 90
  1522. with reduce using rule 90
  1523. ',' reduce using rule 90
  1524. ':' reduce using rule 90
  1525. ';;' reduce using rule 90
  1526. ';' reduce using rule 90
  1527. '(' reduce using rule 90
  1528. '?(' reduce using rule 90
  1529. ')' reduce using rule 90
  1530. '@{' reduce using rule 90
  1531. '?' reduce using rule 90
  1532. '{' reduce using rule 90
  1533. '}' reduce using rule 90
  1534. op reduce using rule 90
  1535. ident reduce using rule 90
  1536. iident reduce using rule 90
  1537. opid reduce using rule 90
  1538. conid reduce using rule 90
  1539. qident reduce using rule 90
  1540. qopid reduce using rule 90
  1541. qconid reduce using rule 90
  1542. access reduce using rule 90
  1543. hole reduce using rule 90
  1544. int reduce using rule 90
  1545. float reduce using rule 90
  1546. string reduce using rule 90
  1547. '$end' reduce using rule 90
  1548. '$sep' reduce using rule 90
  1549. %eof reduce using rule 90
  1550.  
  1551.  
  1552. State 40
  1553.  
  1554. Lit -> float . (rule 91)
  1555.  
  1556. '->' reduce using rule 91
  1557. '=' reduce using rule 91
  1558. '|' reduce using rule 91
  1559. '*' reduce using rule 91
  1560. '~' reduce using rule 91
  1561. '_' reduce using rule 91
  1562. then reduce using rule 91
  1563. else reduce using rule 91
  1564. begin reduce using rule 91
  1565. end reduce using rule 91
  1566. true reduce using rule 91
  1567. false reduce using rule 91
  1568. with reduce using rule 91
  1569. ',' reduce using rule 91
  1570. ':' reduce using rule 91
  1571. ';;' reduce using rule 91
  1572. ';' reduce using rule 91
  1573. '(' reduce using rule 91
  1574. '?(' reduce using rule 91
  1575. ')' reduce using rule 91
  1576. '@{' reduce using rule 91
  1577. '?' reduce using rule 91
  1578. '{' reduce using rule 91
  1579. '}' reduce using rule 91
  1580. op reduce using rule 91
  1581. ident reduce using rule 91
  1582. iident reduce using rule 91
  1583. opid reduce using rule 91
  1584. conid reduce using rule 91
  1585. qident reduce using rule 91
  1586. qopid reduce using rule 91
  1587. qconid reduce using rule 91
  1588. access reduce using rule 91
  1589. hole reduce using rule 91
  1590. int reduce using rule 91
  1591. float reduce using rule 91
  1592. string reduce using rule 91
  1593. '$end' reduce using rule 91
  1594. '$sep' reduce using rule 91
  1595. %eof reduce using rule 91
  1596.  
  1597.  
  1598. State 41
  1599.  
  1600. Lit -> string . (rule 92)
  1601.  
  1602. '->' reduce using rule 92
  1603. '=' reduce using rule 92
  1604. '|' reduce using rule 92
  1605. '*' reduce using rule 92
  1606. '~' reduce using rule 92
  1607. '_' reduce using rule 92
  1608. then reduce using rule 92
  1609. else reduce using rule 92
  1610. begin reduce using rule 92
  1611. end reduce using rule 92
  1612. true reduce using rule 92
  1613. false reduce using rule 92
  1614. with reduce using rule 92
  1615. ',' reduce using rule 92
  1616. ':' reduce using rule 92
  1617. ';;' reduce using rule 92
  1618. ';' reduce using rule 92
  1619. '(' reduce using rule 92
  1620. '?(' reduce using rule 92
  1621. ')' reduce using rule 92
  1622. '@{' reduce using rule 92
  1623. '?' reduce using rule 92
  1624. '{' reduce using rule 92
  1625. '}' reduce using rule 92
  1626. op reduce using rule 92
  1627. ident reduce using rule 92
  1628. iident reduce using rule 92
  1629. opid reduce using rule 92
  1630. conid reduce using rule 92
  1631. qident reduce using rule 92
  1632. qopid reduce using rule 92
  1633. qconid reduce using rule 92
  1634. access reduce using rule 92
  1635. hole reduce using rule 92
  1636. int reduce using rule 92
  1637. float reduce using rule 92
  1638. string reduce using rule 92
  1639. '$end' reduce using rule 92
  1640. '$sep' reduce using rule 92
  1641. %eof reduce using rule 92
  1642.  
  1643.  
  1644. State 42
  1645.  
  1646. %start_parseTops -> Tops . (rule 0)
  1647.  
  1648. %eof accept
  1649.  
  1650.  
  1651. State 43
  1652.  
  1653. Expr0 -> qdotid Atom . (rule 38)
  1654. Atom -> Atom . access (rule 54)
  1655.  
  1656. '|' reduce using rule 38
  1657. '*' reduce using rule 38
  1658. '~' reduce using rule 38
  1659. '_' reduce using rule 38
  1660. then reduce using rule 38
  1661. else reduce using rule 38
  1662. begin reduce using rule 38
  1663. end reduce using rule 38
  1664. true reduce using rule 38
  1665. false reduce using rule 38
  1666. with reduce using rule 38
  1667. ',' reduce using rule 38
  1668. ':' reduce using rule 38
  1669. ';;' reduce using rule 38
  1670. ';' reduce using rule 38
  1671. '(' reduce using rule 38
  1672. ')' reduce using rule 38
  1673. '@{' reduce using rule 38
  1674. '?' reduce using rule 38
  1675. '{' reduce using rule 38
  1676. '}' reduce using rule 38
  1677. op reduce using rule 38
  1678. ident reduce using rule 38
  1679. opid reduce using rule 38
  1680. conid reduce using rule 38
  1681. qident reduce using rule 38
  1682. qopid reduce using rule 38
  1683. qconid reduce using rule 38
  1684. access shift, and enter state 101
  1685. hole reduce using rule 38
  1686. int reduce using rule 38
  1687. float reduce using rule 38
  1688. string reduce using rule 38
  1689. '$end' reduce using rule 38
  1690. '$sep' reduce using rule 38
  1691. %eof reduce using rule 38
  1692.  
  1693.  
  1694. State 44
  1695.  
  1696. Expr -> Expr . Operator ExprApp (rule 27)
  1697. Atom -> '{' Expr . with Rows__'='__Expr__ '}' (rule 51)
  1698.  
  1699. '*' shift, and enter state 65
  1700. '~' shift, and enter state 66
  1701. with shift, and enter state 189
  1702. op shift, and enter state 68
  1703. opid shift, and enter state 69
  1704. qopid shift, and enter state 70
  1705.  
  1706. Operator goto state 105
  1707.  
  1708. State 45
  1709.  
  1710. Atom -> '{' Rows__'='__Expr__ . '}' (rule 50)
  1711.  
  1712. '}' shift, and enter state 188
  1713.  
  1714.  
  1715. State 46
  1716.  
  1717. Expr0 -> let . BindGroup ExprIn ExprBlock '$end' (rule 32)
  1718. Expr0 -> let . open Con ExprIn ExprBlock '$end' (rule 33)
  1719.  
  1720. '_' shift, and enter state 86
  1721. implicit shift, and enter state 97
  1722. true shift, and enter state 24
  1723. false shift, and enter state 25
  1724. open shift, and enter state 98
  1725. '(' shift, and enter state 99
  1726. '{' shift, and enter state 89
  1727. ident shift, and enter state 100
  1728. conid shift, and enter state 34
  1729. qconid shift, and enter state 36
  1730. int shift, and enter state 39
  1731. float shift, and enter state 40
  1732. string shift, and enter state 41
  1733.  
  1734. Con goto state 81
  1735. BindGroup goto state 187
  1736. Binding goto state 93
  1737. PreBinding goto state 94
  1738. BindName goto state 95
  1739. Lit goto state 82
  1740. ArgP goto state 96
  1741.  
  1742. State 47
  1743.  
  1744. Var -> ident . (rule 72)
  1745. Rows__'='__Expr__ -> ident . '=' Expr ',' Rows__'='__Expr__ (rule 160)
  1746. Rows__'='__Expr__ -> ident . '=' Expr (rule 161)
  1747.  
  1748. '=' shift, and enter state 186
  1749. '*' reduce using rule 72
  1750. '~' reduce using rule 72
  1751. '_' reduce using rule 72
  1752. begin reduce using rule 72
  1753. true reduce using rule 72
  1754. false reduce using rule 72
  1755. with reduce using rule 72
  1756. ':' reduce using rule 72
  1757. '(' reduce using rule 72
  1758. '@{' reduce using rule 72
  1759. '?' reduce using rule 72
  1760. '{' reduce using rule 72
  1761. op reduce using rule 72
  1762. ident reduce using rule 72
  1763. opid reduce using rule 72
  1764. conid reduce using rule 72
  1765. qident reduce using rule 72
  1766. qopid reduce using rule 72
  1767. qconid reduce using rule 72
  1768. access reduce using rule 72
  1769. hole reduce using rule 72
  1770. int reduce using rule 72
  1771. float reduce using rule 72
  1772. string reduce using rule 72
  1773.  
  1774.  
  1775. State 48
  1776.  
  1777. TypeAtom -> Var . (rule 121)
  1778.  
  1779. '->' reduce using rule 121
  1780. '=' reduce using rule 121
  1781. '=>' reduce using rule 121
  1782. '|' reduce using rule 121
  1783. '*' reduce using rule 121
  1784. '~' reduce using rule 121
  1785. '_' reduce using rule 121
  1786. then reduce using rule 121
  1787. else reduce using rule 121
  1788. begin reduce using rule 121
  1789. end reduce using rule 121
  1790. true reduce using rule 121
  1791. false reduce using rule 121
  1792. with reduce using rule 121
  1793. type reduce using rule 121
  1794. lazy reduce using rule 121
  1795. ',' reduce using rule 121
  1796. ':' reduce using rule 121
  1797. ';;' reduce using rule 121
  1798. ';' reduce using rule 121
  1799. '(' reduce using rule 121
  1800. ')' reduce using rule 121
  1801. '@{' reduce using rule 121
  1802. '?' reduce using rule 121
  1803. '{' reduce using rule 121
  1804. '}' reduce using rule 121
  1805. op reduce using rule 121
  1806. ident reduce using rule 121
  1807. opid reduce using rule 121
  1808. conid reduce using rule 121
  1809. qident reduce using rule 121
  1810. qopid reduce using rule 121
  1811. qconid reduce using rule 121
  1812. tyvar reduce using rule 121
  1813. hole reduce using rule 121
  1814. int reduce using rule 121
  1815. float reduce using rule 121
  1816. string reduce using rule 121
  1817. '$end' reduce using rule 121
  1818. '$sep' reduce using rule 121
  1819. %eof reduce using rule 121
  1820.  
  1821.  
  1822. State 49
  1823.  
  1824. TypeAtom -> Con . (rule 123)
  1825.  
  1826. '->' reduce using rule 123
  1827. '=' reduce using rule 123
  1828. '=>' reduce using rule 123
  1829. '|' reduce using rule 123
  1830. '*' reduce using rule 123
  1831. '~' reduce using rule 123
  1832. '_' reduce using rule 123
  1833. then reduce using rule 123
  1834. else reduce using rule 123
  1835. begin reduce using rule 123
  1836. end reduce using rule 123
  1837. true reduce using rule 123
  1838. false reduce using rule 123
  1839. with reduce using rule 123
  1840. type reduce using rule 123
  1841. lazy reduce using rule 123
  1842. ',' reduce using rule 123
  1843. ':' reduce using rule 123
  1844. ';;' reduce using rule 123
  1845. ';' reduce using rule 123
  1846. '(' reduce using rule 123
  1847. ')' reduce using rule 123
  1848. '@{' reduce using rule 123
  1849. '?' reduce using rule 123
  1850. '{' reduce using rule 123
  1851. '}' reduce using rule 123
  1852. op reduce using rule 123
  1853. ident reduce using rule 123
  1854. opid reduce using rule 123
  1855. conid reduce using rule 123
  1856. qident reduce using rule 123
  1857. qopid reduce using rule 123
  1858. qconid reduce using rule 123
  1859. tyvar reduce using rule 123
  1860. hole reduce using rule 123
  1861. int reduce using rule 123
  1862. float reduce using rule 123
  1863. string reduce using rule 123
  1864. '$end' reduce using rule 123
  1865. '$sep' reduce using rule 123
  1866. %eof reduce using rule 123
  1867.  
  1868.  
  1869. State 50
  1870.  
  1871. TypeAtom -> TyVar . (rule 122)
  1872.  
  1873. '->' reduce using rule 122
  1874. '=' reduce using rule 122
  1875. '=>' reduce using rule 122
  1876. '|' reduce using rule 122
  1877. '*' reduce using rule 122
  1878. '~' reduce using rule 122
  1879. '_' reduce using rule 122
  1880. then reduce using rule 122
  1881. else reduce using rule 122
  1882. begin reduce using rule 122
  1883. end reduce using rule 122
  1884. true reduce using rule 122
  1885. false reduce using rule 122
  1886. with reduce using rule 122
  1887. type reduce using rule 122
  1888. lazy reduce using rule 122
  1889. ',' reduce using rule 122
  1890. ':' reduce using rule 122
  1891. ';;' reduce using rule 122
  1892. ';' reduce using rule 122
  1893. '(' reduce using rule 122
  1894. ')' reduce using rule 122
  1895. '@{' reduce using rule 122
  1896. '?' reduce using rule 122
  1897. '{' reduce using rule 122
  1898. '}' reduce using rule 122
  1899. op reduce using rule 122
  1900. ident reduce using rule 122
  1901. opid reduce using rule 122
  1902. conid reduce using rule 122
  1903. qident reduce using rule 122
  1904. qopid reduce using rule 122
  1905. qconid reduce using rule 122
  1906. tyvar reduce using rule 122
  1907. hole reduce using rule 122
  1908. int reduce using rule 122
  1909. float reduce using rule 122
  1910. string reduce using rule 122
  1911. '$end' reduce using rule 122
  1912. '$sep' reduce using rule 122
  1913. %eof reduce using rule 122
  1914.  
  1915.  
  1916. State 51
  1917.  
  1918. Atom -> '@{' Type . '}' (rule 53)
  1919.  
  1920. '}' shift, and enter state 185
  1921.  
  1922.  
  1923. State 52
  1924.  
  1925. Type -> TypeProd . (rule 111)
  1926. Type -> TypeProd . '->' Type (rule 112)
  1927. Type -> TypeProd . '=>' Type (rule 113)
  1928.  
  1929. '->' shift, and enter state 183
  1930. '=' reduce using rule 111
  1931. '=>' shift, and enter state 184
  1932. '|' reduce using rule 111
  1933. '*' reduce using rule 111
  1934. '~' reduce using rule 111
  1935. '_' reduce using rule 111
  1936. then reduce using rule 111
  1937. else reduce using rule 111
  1938. begin reduce using rule 111
  1939. end reduce using rule 111
  1940. true reduce using rule 111
  1941. false reduce using rule 111
  1942. with reduce using rule 111
  1943. ',' reduce using rule 111
  1944. ':' reduce using rule 111
  1945. ';;' reduce using rule 111
  1946. ';' reduce using rule 111
  1947. '(' reduce using rule 111
  1948. ')' reduce using rule 111
  1949. '@{' reduce using rule 111
  1950. '?' reduce using rule 111
  1951. '{' reduce using rule 111
  1952. '}' reduce using rule 111
  1953. op reduce using rule 111
  1954. ident reduce using rule 111
  1955. opid reduce using rule 111
  1956. conid reduce using rule 111
  1957. qident reduce using rule 111
  1958. qopid reduce using rule 111
  1959. qconid reduce using rule 111
  1960. hole reduce using rule 111
  1961. int reduce using rule 111
  1962. float reduce using rule 111
  1963. string reduce using rule 111
  1964. '$end' reduce using rule 111
  1965. '$sep' reduce using rule 111
  1966. %eof reduce using rule 111
  1967.  
  1968.  
  1969. State 53
  1970.  
  1971. TypeProd -> TypeApp . (rule 117)
  1972. TypeProd -> TypeApp . '*' TypeProd (rule 118)
  1973. TypeApp -> TypeApp . TypeAtom (rule 120)
  1974.  
  1975. '->' reduce using rule 117
  1976. '=' reduce using rule 117
  1977. '=>' reduce using rule 117
  1978. '|' reduce using rule 117
  1979. '*' shift, and enter state 182
  1980. (reduce using rule 117)
  1981.  
  1982. '~' reduce using rule 117
  1983. '_' reduce using rule 117
  1984. then reduce using rule 117
  1985. else reduce using rule 117
  1986. begin reduce using rule 117
  1987. end reduce using rule 117
  1988. true reduce using rule 117
  1989. false reduce using rule 117
  1990. with reduce using rule 117
  1991. type shift, and enter state 56
  1992. lazy shift, and enter state 57
  1993. ',' reduce using rule 117
  1994. ':' reduce using rule 117
  1995. ';;' reduce using rule 117
  1996. ';' reduce using rule 117
  1997. '(' shift, and enter state 58
  1998. (reduce using rule 117)
  1999.  
  2000. ')' reduce using rule 117
  2001. '@{' reduce using rule 117
  2002. '?' reduce using rule 117
  2003. '{' shift, and enter state 59
  2004. (reduce using rule 117)
  2005.  
  2006. '}' reduce using rule 117
  2007. op reduce using rule 117
  2008. ident shift, and enter state 33
  2009. (reduce using rule 117)
  2010.  
  2011. opid reduce using rule 117
  2012. conid shift, and enter state 34
  2013. (reduce using rule 117)
  2014.  
  2015. qident shift, and enter state 35
  2016. (reduce using rule 117)
  2017.  
  2018. qopid reduce using rule 117
  2019. qconid shift, and enter state 36
  2020. (reduce using rule 117)
  2021.  
  2022. tyvar shift, and enter state 60
  2023. hole reduce using rule 117
  2024. int reduce using rule 117
  2025. float reduce using rule 117
  2026. string reduce using rule 117
  2027. '$end' reduce using rule 117
  2028. '$sep' reduce using rule 117
  2029. %eof reduce using rule 117
  2030.  
  2031. Var goto state 48
  2032. Con goto state 49
  2033. TyVar goto state 50
  2034. TypeAtom goto state 181
  2035.  
  2036. State 54
  2037.  
  2038. TypeApp -> TypeAtom . (rule 119)
  2039.  
  2040. '->' reduce using rule 119
  2041. '=' reduce using rule 119
  2042. '=>' reduce using rule 119
  2043. '|' reduce using rule 119
  2044. '*' reduce using rule 119
  2045. '~' reduce using rule 119
  2046. '_' reduce using rule 119
  2047. then reduce using rule 119
  2048. else reduce using rule 119
  2049. begin reduce using rule 119
  2050. end reduce using rule 119
  2051. true reduce using rule 119
  2052. false reduce using rule 119
  2053. with reduce using rule 119
  2054. type reduce using rule 119
  2055. lazy reduce using rule 119
  2056. ',' reduce using rule 119
  2057. ':' reduce using rule 119
  2058. ';;' reduce using rule 119
  2059. ';' reduce using rule 119
  2060. '(' reduce using rule 119
  2061. ')' reduce using rule 119
  2062. '@{' reduce using rule 119
  2063. '?' reduce using rule 119
  2064. '{' reduce using rule 119
  2065. '}' reduce using rule 119
  2066. op reduce using rule 119
  2067. ident reduce using rule 119
  2068. opid reduce using rule 119
  2069. conid reduce using rule 119
  2070. qident reduce using rule 119
  2071. qopid reduce using rule 119
  2072. qconid reduce using rule 119
  2073. tyvar reduce using rule 119
  2074. hole reduce using rule 119
  2075. int reduce using rule 119
  2076. float reduce using rule 119
  2077. string reduce using rule 119
  2078. '$end' reduce using rule 119
  2079. '$sep' reduce using rule 119
  2080. %eof reduce using rule 119
  2081.  
  2082.  
  2083. State 55
  2084.  
  2085. Type -> forall . ListE1__tyvar__ '.' Type (rule 114)
  2086. Type -> forall . ListE1__BoundTv__ '->' Type (rule 115)
  2087.  
  2088. '(' shift, and enter state 179
  2089. tyvar shift, and enter state 180
  2090.  
  2091. BoundTv goto state 176
  2092. ListE1__BoundTv__goto state 177
  2093. ListE1__tyvar__goto state 178
  2094.  
  2095. State 56
  2096.  
  2097. TypeAtom -> type . (rule 124)
  2098.  
  2099. '->' reduce using rule 124
  2100. '=' reduce using rule 124
  2101. '=>' reduce using rule 124
  2102. '|' reduce using rule 124
  2103. '*' reduce using rule 124
  2104. '~' reduce using rule 124
  2105. '_' reduce using rule 124
  2106. then reduce using rule 124
  2107. else reduce using rule 124
  2108. begin reduce using rule 124
  2109. end reduce using rule 124
  2110. true reduce using rule 124
  2111. false reduce using rule 124
  2112. with reduce using rule 124
  2113. type reduce using rule 124
  2114. lazy reduce using rule 124
  2115. ',' reduce using rule 124
  2116. ':' reduce using rule 124
  2117. ';;' reduce using rule 124
  2118. ';' reduce using rule 124
  2119. '(' reduce using rule 124
  2120. ')' reduce using rule 124
  2121. '@{' reduce using rule 124
  2122. '?' reduce using rule 124
  2123. '{' reduce using rule 124
  2124. '}' reduce using rule 124
  2125. op reduce using rule 124
  2126. ident reduce using rule 124
  2127. opid reduce using rule 124
  2128. conid reduce using rule 124
  2129. qident reduce using rule 124
  2130. qopid reduce using rule 124
  2131. qconid reduce using rule 124
  2132. tyvar reduce using rule 124
  2133. hole reduce using rule 124
  2134. int reduce using rule 124
  2135. float reduce using rule 124
  2136. string reduce using rule 124
  2137. '$end' reduce using rule 124
  2138. '$sep' reduce using rule 124
  2139. %eof reduce using rule 124
  2140.  
  2141.  
  2142. State 57
  2143.  
  2144. TypeAtom -> lazy . (rule 125)
  2145.  
  2146. '->' reduce using rule 125
  2147. '=' reduce using rule 125
  2148. '=>' reduce using rule 125
  2149. '|' reduce using rule 125
  2150. '*' reduce using rule 125
  2151. '~' reduce using rule 125
  2152. '_' reduce using rule 125
  2153. then reduce using rule 125
  2154. else reduce using rule 125
  2155. begin reduce using rule 125
  2156. end reduce using rule 125
  2157. true reduce using rule 125
  2158. false reduce using rule 125
  2159. with reduce using rule 125
  2160. type reduce using rule 125
  2161. lazy reduce using rule 125
  2162. ',' reduce using rule 125
  2163. ':' reduce using rule 125
  2164. ';;' reduce using rule 125
  2165. ';' reduce using rule 125
  2166. '(' reduce using rule 125
  2167. ')' reduce using rule 125
  2168. '@{' reduce using rule 125
  2169. '?' reduce using rule 125
  2170. '{' reduce using rule 125
  2171. '}' reduce using rule 125
  2172. op reduce using rule 125
  2173. ident reduce using rule 125
  2174. opid reduce using rule 125
  2175. conid reduce using rule 125
  2176. qident reduce using rule 125
  2177. qopid reduce using rule 125
  2178. qconid reduce using rule 125
  2179. tyvar reduce using rule 125
  2180. hole reduce using rule 125
  2181. int reduce using rule 125
  2182. float reduce using rule 125
  2183. string reduce using rule 125
  2184. '$end' reduce using rule 125
  2185. '$sep' reduce using rule 125
  2186. %eof reduce using rule 125
  2187.  
  2188.  
  2189. State 58
  2190.  
  2191. TypeAtom -> '(' . ')' (rule 126)
  2192. TypeAtom -> '(' . Type ')' (rule 127)
  2193.  
  2194. forall shift, and enter state 55
  2195. type shift, and enter state 56
  2196. lazy shift, and enter state 57
  2197. '(' shift, and enter state 58
  2198. ')' shift, and enter state 175
  2199. '{' shift, and enter state 59
  2200. ident shift, and enter state 33
  2201. conid shift, and enter state 34
  2202. qident shift, and enter state 35
  2203. qconid shift, and enter state 36
  2204. tyvar shift, and enter state 60
  2205.  
  2206. Var goto state 48
  2207. Con goto state 49
  2208. TyVar goto state 50
  2209. Type goto state 174
  2210. TypeProd goto state 52
  2211. TypeApp goto state 53
  2212. TypeAtom goto state 54
  2213.  
  2214. State 59
  2215.  
  2216. TypeAtom -> '{' . Rows__':'__Type__ '}' (rule 128)
  2217. TypeAtom -> '{' . Type '|' Rows__':'__Type__ '}' (rule 129)
  2218.  
  2219. forall shift, and enter state 55
  2220. type shift, and enter state 56
  2221. lazy shift, and enter state 57
  2222. '(' shift, and enter state 58
  2223. '{' shift, and enter state 59
  2224. '}' reduce using rule 156
  2225. ident shift, and enter state 173
  2226. conid shift, and enter state 34
  2227. qident shift, and enter state 35
  2228. qconid shift, and enter state 36
  2229. tyvar shift, and enter state 60
  2230.  
  2231. Var goto state 48
  2232. Con goto state 49
  2233. TyVar goto state 50
  2234. Type goto state 171
  2235. TypeProd goto state 52
  2236. TypeApp goto state 53
  2237. TypeAtom goto state 54
  2238. Rows__':'__Type__goto state 172
  2239.  
  2240. State 60
  2241.  
  2242. TyVar -> tyvar . (rule 76)
  2243.  
  2244. '->' reduce using rule 76
  2245. '=' reduce using rule 76
  2246. '=>' reduce using rule 76
  2247. '|' reduce using rule 76
  2248. '*' reduce using rule 76
  2249. '~' reduce using rule 76
  2250. '_' reduce using rule 76
  2251. then reduce using rule 76
  2252. else reduce using rule 76
  2253. begin reduce using rule 76
  2254. end reduce using rule 76
  2255. true reduce using rule 76
  2256. false reduce using rule 76
  2257. with reduce using rule 76
  2258. type reduce using rule 76
  2259. lazy reduce using rule 76
  2260. ',' reduce using rule 76
  2261. ':' reduce using rule 76
  2262. ';;' reduce using rule 76
  2263. ';' reduce using rule 76
  2264. '(' reduce using rule 76
  2265. ')' reduce using rule 76
  2266. '@{' reduce using rule 76
  2267. '?' reduce using rule 76
  2268. '{' reduce using rule 76
  2269. '}' reduce using rule 76
  2270. op reduce using rule 76
  2271. ident reduce using rule 76
  2272. opid reduce using rule 76
  2273. conid reduce using rule 76
  2274. qident reduce using rule 76
  2275. qopid reduce using rule 76
  2276. qconid reduce using rule 76
  2277. tyvar reduce using rule 76
  2278. hole reduce using rule 76
  2279. int reduce using rule 76
  2280. float reduce using rule 76
  2281. string reduce using rule 76
  2282. '$end' reduce using rule 76
  2283. '$sep' reduce using rule 76
  2284. %eof reduce using rule 76
  2285.  
  2286.  
  2287. State 61
  2288.  
  2289. Expr -> Expr . Operator ExprApp (rule 27)
  2290. Section -> Expr . (rule 65)
  2291. Section -> Expr . Operator (rule 68)
  2292.  
  2293. '*' shift, and enter state 65
  2294. '~' shift, and enter state 66
  2295. ',' reduce using rule 65
  2296. ')' reduce using rule 65
  2297. op shift, and enter state 68
  2298. opid shift, and enter state 69
  2299. qopid shift, and enter state 70
  2300.  
  2301. Operator goto state 170
  2302.  
  2303. State 62
  2304.  
  2305. Section -> Operator . (rule 67)
  2306. Section -> Operator . Expr (rule 69)
  2307.  
  2308. '_' shift, and enter state 19
  2309. let shift, and enter state 46
  2310. fun shift, and enter state 21
  2311. if shift, and enter state 22
  2312. begin shift, and enter state 23
  2313. true shift, and enter state 24
  2314. false shift, and enter state 25
  2315. match shift, and enter state 26
  2316. function shift, and enter state 27
  2317. lazy shift, and enter state 28
  2318. ',' reduce using rule 67
  2319. '(' shift, and enter state 29
  2320. ')' reduce using rule 67
  2321. '@{' shift, and enter state 30
  2322. '?' shift, and enter state 31
  2323. '{' shift, and enter state 32
  2324. ident shift, and enter state 33
  2325. conid shift, and enter state 34
  2326. qident shift, and enter state 35
  2327. qconid shift, and enter state 36
  2328. qdotid shift, and enter state 37
  2329. hole shift, and enter state 38
  2330. int shift, and enter state 39
  2331. float shift, and enter state 40
  2332. string shift, and enter state 41
  2333.  
  2334. Expr goto state 169
  2335. ExprApp goto state 13
  2336. Expr0 goto state 14
  2337. Atom goto state 15
  2338. Var goto state 16
  2339. Con goto state 17
  2340. Lit goto state 18
  2341.  
  2342. State 63
  2343.  
  2344. Atom -> '(' Section . ')' (rule 48)
  2345. NullSection -> Section . (rule 71)
  2346.  
  2347. ',' reduce using rule 71
  2348. ')' shift, and enter state 168
  2349.  
  2350.  
  2351. State 64
  2352.  
  2353. Atom -> '(' NullSection . ',' List1__NullSection__','__ ')' (rule 49)
  2354.  
  2355. ',' shift, and enter state 167
  2356.  
  2357.  
  2358. State 65
  2359.  
  2360. Operator -> '*' . (rule 60)
  2361.  
  2362. '_' reduce using rule 60
  2363. let reduce using rule 60
  2364. fun reduce using rule 60
  2365. if reduce using rule 60
  2366. begin reduce using rule 60
  2367. true reduce using rule 60
  2368. false reduce using rule 60
  2369. match reduce using rule 60
  2370. function reduce using rule 60
  2371. lazy reduce using rule 60
  2372. ',' reduce using rule 60
  2373. '(' reduce using rule 60
  2374. ')' reduce using rule 60
  2375. '@{' reduce using rule 60
  2376. '?' reduce using rule 60
  2377. '{' reduce using rule 60
  2378. ident reduce using rule 60
  2379. conid reduce using rule 60
  2380. qident reduce using rule 60
  2381. qconid reduce using rule 60
  2382. qdotid reduce using rule 60
  2383. hole reduce using rule 60
  2384. int reduce using rule 60
  2385. float reduce using rule 60
  2386. string reduce using rule 60
  2387.  
  2388.  
  2389. State 66
  2390.  
  2391. Operator -> '~' . (rule 61)
  2392.  
  2393. '_' reduce using rule 61
  2394. let reduce using rule 61
  2395. fun reduce using rule 61
  2396. if reduce using rule 61
  2397. begin reduce using rule 61
  2398. true reduce using rule 61
  2399. false reduce using rule 61
  2400. match reduce using rule 61
  2401. function reduce using rule 61
  2402. lazy reduce using rule 61
  2403. ',' reduce using rule 61
  2404. '(' reduce using rule 61
  2405. ')' reduce using rule 61
  2406. '@{' reduce using rule 61
  2407. '?' reduce using rule 61
  2408. '{' reduce using rule 61
  2409. ident reduce using rule 61
  2410. conid reduce using rule 61
  2411. qident reduce using rule 61
  2412. qconid reduce using rule 61
  2413. qdotid reduce using rule 61
  2414. hole reduce using rule 61
  2415. int reduce using rule 61
  2416. float reduce using rule 61
  2417. string reduce using rule 61
  2418.  
  2419.  
  2420. State 67
  2421.  
  2422. Atom -> '(' ')' . (rule 47)
  2423.  
  2424. '|' reduce using rule 47
  2425. '*' reduce using rule 47
  2426. '~' reduce using rule 47
  2427. '_' reduce using rule 47
  2428. then reduce using rule 47
  2429. else reduce using rule 47
  2430. begin reduce using rule 47
  2431. end reduce using rule 47
  2432. true reduce using rule 47
  2433. false reduce using rule 47
  2434. with reduce using rule 47
  2435. ',' reduce using rule 47
  2436. ':' reduce using rule 47
  2437. ';;' reduce using rule 47
  2438. ';' reduce using rule 47
  2439. '(' reduce using rule 47
  2440. ')' reduce using rule 47
  2441. '@{' reduce using rule 47
  2442. '?' reduce using rule 47
  2443. '{' reduce using rule 47
  2444. '}' reduce using rule 47
  2445. op reduce using rule 47
  2446. ident reduce using rule 47
  2447. opid reduce using rule 47
  2448. conid reduce using rule 47
  2449. qident reduce using rule 47
  2450. qopid reduce using rule 47
  2451. qconid reduce using rule 47
  2452. access reduce using rule 47
  2453. hole reduce using rule 47
  2454. int reduce using rule 47
  2455. float reduce using rule 47
  2456. string reduce using rule 47
  2457. '$end' reduce using rule 47
  2458. '$sep' reduce using rule 47
  2459. %eof reduce using rule 47
  2460.  
  2461.  
  2462. State 68
  2463.  
  2464. Operator -> op . (rule 62)
  2465.  
  2466. '_' reduce using rule 62
  2467. let reduce using rule 62
  2468. fun reduce using rule 62
  2469. if reduce using rule 62
  2470. begin reduce using rule 62
  2471. true reduce using rule 62
  2472. false reduce using rule 62
  2473. match reduce using rule 62
  2474. function reduce using rule 62
  2475. lazy reduce using rule 62
  2476. ',' reduce using rule 62
  2477. '(' reduce using rule 62
  2478. ')' reduce using rule 62
  2479. '@{' reduce using rule 62
  2480. '?' reduce using rule 62
  2481. '{' reduce using rule 62
  2482. ident reduce using rule 62
  2483. conid reduce using rule 62
  2484. qident reduce using rule 62
  2485. qconid reduce using rule 62
  2486. qdotid reduce using rule 62
  2487. hole reduce using rule 62
  2488. int reduce using rule 62
  2489. float reduce using rule 62
  2490. string reduce using rule 62
  2491.  
  2492.  
  2493. State 69
  2494.  
  2495. Operator -> opid . (rule 63)
  2496.  
  2497. '_' reduce using rule 63
  2498. let reduce using rule 63
  2499. fun reduce using rule 63
  2500. if reduce using rule 63
  2501. begin reduce using rule 63
  2502. true reduce using rule 63
  2503. false reduce using rule 63
  2504. match reduce using rule 63
  2505. function reduce using rule 63
  2506. lazy reduce using rule 63
  2507. ',' reduce using rule 63
  2508. '(' reduce using rule 63
  2509. ')' reduce using rule 63
  2510. '@{' reduce using rule 63
  2511. '?' reduce using rule 63
  2512. '{' reduce using rule 63
  2513. ident reduce using rule 63
  2514. conid reduce using rule 63
  2515. qident reduce using rule 63
  2516. qconid reduce using rule 63
  2517. qdotid reduce using rule 63
  2518. hole reduce using rule 63
  2519. int reduce using rule 63
  2520. float reduce using rule 63
  2521. string reduce using rule 63
  2522.  
  2523.  
  2524. State 70
  2525.  
  2526. Operator -> qopid . (rule 64)
  2527.  
  2528. '_' reduce using rule 64
  2529. let reduce using rule 64
  2530. fun reduce using rule 64
  2531. if reduce using rule 64
  2532. begin reduce using rule 64
  2533. true reduce using rule 64
  2534. false reduce using rule 64
  2535. match reduce using rule 64
  2536. function reduce using rule 64
  2537. lazy reduce using rule 64
  2538. ',' reduce using rule 64
  2539. '(' reduce using rule 64
  2540. ')' reduce using rule 64
  2541. '@{' reduce using rule 64
  2542. '?' reduce using rule 64
  2543. '{' reduce using rule 64
  2544. ident reduce using rule 64
  2545. conid reduce using rule 64
  2546. qident reduce using rule 64
  2547. qconid reduce using rule 64
  2548. qdotid reduce using rule 64
  2549. hole reduce using rule 64
  2550. int reduce using rule 64
  2551. float reduce using rule 64
  2552. string reduce using rule 64
  2553.  
  2554.  
  2555. State 71
  2556.  
  2557. Section -> access . (rule 66)
  2558.  
  2559. ',' reduce using rule 66
  2560. ')' reduce using rule 66
  2561.  
  2562.  
  2563. State 72
  2564.  
  2565. Expr0 -> lazy Atom . (rule 39)
  2566. Atom -> Atom . access (rule 54)
  2567.  
  2568. '|' reduce using rule 39
  2569. '*' reduce using rule 39
  2570. '~' reduce using rule 39
  2571. '_' reduce using rule 39
  2572. then reduce using rule 39
  2573. else reduce using rule 39
  2574. begin reduce using rule 39
  2575. end reduce using rule 39
  2576. true reduce using rule 39
  2577. false reduce using rule 39
  2578. with reduce using rule 39
  2579. ',' reduce using rule 39
  2580. ':' reduce using rule 39
  2581. ';;' reduce using rule 39
  2582. ';' reduce using rule 39
  2583. '(' reduce using rule 39
  2584. ')' reduce using rule 39
  2585. '@{' reduce using rule 39
  2586. '?' reduce using rule 39
  2587. '{' reduce using rule 39
  2588. '}' reduce using rule 39
  2589. op reduce using rule 39
  2590. ident reduce using rule 39
  2591. opid reduce using rule 39
  2592. conid reduce using rule 39
  2593. qident reduce using rule 39
  2594. qopid reduce using rule 39
  2595. qconid reduce using rule 39
  2596. access shift, and enter state 101
  2597. hole reduce using rule 39
  2598. int reduce using rule 39
  2599. float reduce using rule 39
  2600. string reduce using rule 39
  2601. '$end' reduce using rule 39
  2602. '$sep' reduce using rule 39
  2603. %eof reduce using rule 39
  2604.  
  2605.  
  2606. State 73
  2607.  
  2608. ListE1__Arm__ -> Arm . (rule 148)
  2609. ListE1__Arm__ -> Arm . ListE1__Arm__ (rule 149)
  2610.  
  2611. '|' shift, and enter state 75
  2612. '$end' reduce using rule 148
  2613.  
  2614. Arm goto state 73
  2615. ListE1__Arm__ goto state 166
  2616.  
  2617. State 74
  2618.  
  2619. Expr0 -> function ListE1__Arm__ . '$end' (rule 37)
  2620.  
  2621. '$end' shift, and enter state 165
  2622.  
  2623.  
  2624. State 75
  2625.  
  2626. Arm -> '|' . List1__MPattern__','__ '->' ExprBlock (rule 107)
  2627.  
  2628. '_' shift, and enter state 86
  2629. true shift, and enter state 24
  2630. false shift, and enter state 25
  2631. '(' shift, and enter state 87
  2632. '{' shift, and enter state 89
  2633. ident shift, and enter state 90
  2634. conid shift, and enter state 34
  2635. qconid shift, and enter state 36
  2636. int shift, and enter state 39
  2637. float shift, and enter state 40
  2638. string shift, and enter state 41
  2639.  
  2640. Con goto state 161
  2641. Lit goto state 82
  2642. MPattern goto state 162
  2643. ArgP goto state 163
  2644. List1__MPattern__','__goto state 164
  2645.  
  2646. State 76
  2647.  
  2648. Expr -> Expr . Operator ExprApp (rule 27)
  2649. List1__Expr__','__ -> Expr . (rule 134)
  2650. List1__Expr__','__ -> Expr . ',' List1__Expr__','__ (rule 135)
  2651.  
  2652. '*' shift, and enter state 65
  2653. '~' shift, and enter state 66
  2654. with reduce using rule 134
  2655. ',' shift, and enter state 160
  2656. op shift, and enter state 68
  2657. opid shift, and enter state 69
  2658. qopid shift, and enter state 70
  2659.  
  2660. Operator goto state 105
  2661.  
  2662. State 77
  2663.  
  2664. Expr0 -> match List1__Expr__','__ . with ListE1__Arm__ '$end' (rule 35)
  2665. Expr0 -> match List1__Expr__','__ . with '(' ')' (rule 36)
  2666.  
  2667. with shift, and enter state 159
  2668.  
  2669.  
  2670. State 78
  2671.  
  2672. Expr -> Expr . Operator ExprApp (rule 27)
  2673. List1__Expr__ExprSep__ -> Expr . (rule 136)
  2674. List1__Expr__ExprSep__ -> Expr . ExprSep List1__Expr__ExprSep__ (rule 137)
  2675.  
  2676. '|' reduce using rule 136
  2677. '*' shift, and enter state 65
  2678. '~' shift, and enter state 66
  2679. else reduce using rule 136
  2680. end reduce using rule 136
  2681. ';' shift, and enter state 157
  2682. op shift, and enter state 68
  2683. opid shift, and enter state 69
  2684. qopid shift, and enter state 70
  2685. '$end' reduce using rule 136
  2686. '$sep' shift, and enter state 158
  2687.  
  2688. ExprSep goto state 156
  2689. Operator goto state 105
  2690.  
  2691. State 79
  2692.  
  2693. Atom -> begin List1__Expr__ExprSep__ . end (rule 46)
  2694.  
  2695. end shift, and enter state 155
  2696.  
  2697.  
  2698. State 80
  2699.  
  2700. Expr -> Expr . Operator ExprApp (rule 27)
  2701. Expr0 -> if Expr . then ExprBlock else ExprBlock '$end' (rule 34)
  2702.  
  2703. '*' shift, and enter state 65
  2704. '~' shift, and enter state 66
  2705. then shift, and enter state 154
  2706. op shift, and enter state 68
  2707. opid shift, and enter state 69
  2708. qopid shift, and enter state 70
  2709.  
  2710. Operator goto state 105
  2711.  
  2712. State 81
  2713.  
  2714. ArgP -> Con . (rule 103)
  2715.  
  2716. '->' reduce using rule 103
  2717. '=' reduce using rule 103
  2718. '*' reduce using rule 103
  2719. '~' reduce using rule 103
  2720. '_' reduce using rule 103
  2721. true reduce using rule 103
  2722. false reduce using rule 103
  2723. ',' reduce using rule 103
  2724. ':' reduce using rule 103
  2725. '(' reduce using rule 103
  2726. '?(' reduce using rule 103
  2727. ')' reduce using rule 103
  2728. '{' reduce using rule 103
  2729. '}' reduce using rule 103
  2730. op reduce using rule 103
  2731. ident reduce using rule 103
  2732. iident reduce using rule 103
  2733. opid reduce using rule 103
  2734. conid reduce using rule 103
  2735. qconid reduce using rule 103
  2736. int reduce using rule 103
  2737. float reduce using rule 103
  2738. string reduce using rule 103
  2739.  
  2740.  
  2741. State 82
  2742.  
  2743. ArgP -> Lit . (rule 106)
  2744.  
  2745. '->' reduce using rule 106
  2746. '=' reduce using rule 106
  2747. '*' reduce using rule 106
  2748. '~' reduce using rule 106
  2749. '_' reduce using rule 106
  2750. true reduce using rule 106
  2751. false reduce using rule 106
  2752. ',' reduce using rule 106
  2753. ':' reduce using rule 106
  2754. '(' reduce using rule 106
  2755. '?(' reduce using rule 106
  2756. ')' reduce using rule 106
  2757. '{' reduce using rule 106
  2758. '}' reduce using rule 106
  2759. op reduce using rule 106
  2760. ident reduce using rule 106
  2761. iident reduce using rule 106
  2762. opid reduce using rule 106
  2763. conid reduce using rule 106
  2764. qconid reduce using rule 106
  2765. int reduce using rule 106
  2766. float reduce using rule 106
  2767. string reduce using rule 106
  2768.  
  2769.  
  2770. State 83
  2771.  
  2772. Parameter -> ArgP . (rule 108)
  2773.  
  2774. '->' reduce using rule 108
  2775. '=' reduce using rule 108
  2776. '_' reduce using rule 108
  2777. true reduce using rule 108
  2778. false reduce using rule 108
  2779. ':' reduce using rule 108
  2780. '(' reduce using rule 108
  2781. '?(' reduce using rule 108
  2782. '{' reduce using rule 108
  2783. ident reduce using rule 108
  2784. iident reduce using rule 108
  2785. conid reduce using rule 108
  2786. qconid reduce using rule 108
  2787. int reduce using rule 108
  2788. float reduce using rule 108
  2789. string reduce using rule 108
  2790.  
  2791.  
  2792. State 84
  2793.  
  2794. ListE1__Parameter__ -> Parameter . (rule 152)
  2795. ListE1__Parameter__ -> Parameter . ListE1__Parameter__ (rule 153)
  2796.  
  2797. '->' reduce using rule 152
  2798. '=' reduce using rule 152
  2799. '_' shift, and enter state 86
  2800. true shift, and enter state 24
  2801. false shift, and enter state 25
  2802. ':' reduce using rule 152
  2803. '(' shift, and enter state 87
  2804. '?(' shift, and enter state 88
  2805. '{' shift, and enter state 89
  2806. ident shift, and enter state 90
  2807. iident shift, and enter state 91
  2808. conid shift, and enter state 34
  2809. qconid shift, and enter state 36
  2810. int shift, and enter state 39
  2811. float shift, and enter state 40
  2812. string shift, and enter state 41
  2813.  
  2814. Con goto state 81
  2815. Lit goto state 82
  2816. ArgP goto state 83
  2817. Parameter goto state 84
  2818. ListE1__Parameter__goto state 153
  2819.  
  2820. State 85
  2821.  
  2822. Expr0 -> fun ListE1__Parameter__ . '->' ExprBlock '$end' (rule 31)
  2823.  
  2824. '->' shift, and enter state 152
  2825.  
  2826.  
  2827. State 86
  2828.  
  2829. ArgP -> '_' . (rule 102)
  2830.  
  2831. '->' reduce using rule 102
  2832. '=' reduce using rule 102
  2833. '*' reduce using rule 102
  2834. '~' reduce using rule 102
  2835. '_' reduce using rule 102
  2836. true reduce using rule 102
  2837. false reduce using rule 102
  2838. ',' reduce using rule 102
  2839. ':' reduce using rule 102
  2840. '(' reduce using rule 102
  2841. '?(' reduce using rule 102
  2842. ')' reduce using rule 102
  2843. '{' reduce using rule 102
  2844. '}' reduce using rule 102
  2845. op reduce using rule 102
  2846. ident reduce using rule 102
  2847. iident reduce using rule 102
  2848. opid reduce using rule 102
  2849. conid reduce using rule 102
  2850. qconid reduce using rule 102
  2851. int reduce using rule 102
  2852. float reduce using rule 102
  2853. string reduce using rule 102
  2854.  
  2855.  
  2856. State 87
  2857.  
  2858. ArgP -> '(' . List__Pattern__','__ ')' (rule 105)
  2859.  
  2860. '_' shift, and enter state 86
  2861. true shift, and enter state 24
  2862. false shift, and enter state 25
  2863. '(' shift, and enter state 87
  2864. ')' reduce using rule 130
  2865. '{' shift, and enter state 89
  2866. ident shift, and enter state 90
  2867. conid shift, and enter state 34
  2868. qconid shift, and enter state 36
  2869. int shift, and enter state 39
  2870. float shift, and enter state 40
  2871. string shift, and enter state 41
  2872.  
  2873. Con goto state 131
  2874. Lit goto state 82
  2875. Pattern goto state 132
  2876. ArgP goto state 133
  2877. List__Pattern__','__goto state 134
  2878. List1__Pattern__','__goto state 135
  2879.  
  2880. State 88
  2881.  
  2882. Parameter -> '?(' . Pattern ')' (rule 110)
  2883.  
  2884. '_' shift, and enter state 86
  2885. true shift, and enter state 24
  2886. false shift, and enter state 25
  2887. '(' shift, and enter state 87
  2888. '{' shift, and enter state 89
  2889. ident shift, and enter state 90
  2890. conid shift, and enter state 34
  2891. qconid shift, and enter state 36
  2892. int shift, and enter state 39
  2893. float shift, and enter state 40
  2894. string shift, and enter state 41
  2895.  
  2896. Con goto state 131
  2897. Lit goto state 82
  2898. Pattern goto state 151
  2899. ArgP goto state 133
  2900.  
  2901. State 89
  2902.  
  2903. ArgP -> '{' . Rows__'='__Pattern__ '}' (rule 104)
  2904.  
  2905. '}' reduce using rule 162
  2906. ident shift, and enter state 150
  2907.  
  2908. Rows__'='__Pattern__goto state 149
  2909.  
  2910. State 90
  2911.  
  2912. ArgP -> ident . (rule 101)
  2913.  
  2914. '->' reduce using rule 101
  2915. '=' reduce using rule 101
  2916. '_' reduce using rule 101
  2917. true reduce using rule 101
  2918. false reduce using rule 101
  2919. ',' reduce using rule 101
  2920. ':' reduce using rule 101
  2921. '(' reduce using rule 101
  2922. '?(' reduce using rule 101
  2923. ')' reduce using rule 101
  2924. '{' reduce using rule 101
  2925. '}' reduce using rule 101
  2926. ident reduce using rule 101
  2927. iident reduce using rule 101
  2928. conid reduce using rule 101
  2929. qconid reduce using rule 101
  2930. int reduce using rule 101
  2931. float reduce using rule 101
  2932. string reduce using rule 101
  2933.  
  2934.  
  2935. State 91
  2936.  
  2937. Parameter -> iident . (rule 109)
  2938.  
  2939. '->' reduce using rule 109
  2940. '=' reduce using rule 109
  2941. '_' reduce using rule 109
  2942. true reduce using rule 109
  2943. false reduce using rule 109
  2944. ':' reduce using rule 109
  2945. '(' reduce using rule 109
  2946. '?(' reduce using rule 109
  2947. '{' reduce using rule 109
  2948. ident reduce using rule 109
  2949. iident reduce using rule 109
  2950. conid reduce using rule 109
  2951. qconid reduce using rule 109
  2952. int reduce using rule 109
  2953. float reduce using rule 109
  2954. string reduce using rule 109
  2955.  
  2956.  
  2957. State 92
  2958.  
  2959. Top -> let BindGroup . (rule 5)
  2960. Expr0 -> let BindGroup . ExprIn ExprBlock '$end' (rule 32)
  2961. BindGroup -> BindGroup . and Binding (rule 78)
  2962.  
  2963. and shift, and enter state 119
  2964. in shift, and enter state 147
  2965. ';;' reduce using rule 5
  2966. '$in' shift, and enter state 148
  2967. '$sep' reduce using rule 5
  2968. %eof reduce using rule 5
  2969.  
  2970. ExprIn goto state 146
  2971.  
  2972. State 93
  2973.  
  2974. BindGroup -> Binding . (rule 77)
  2975.  
  2976. and reduce using rule 77
  2977. end reduce using rule 77
  2978. in reduce using rule 77
  2979. ';;' reduce using rule 77
  2980. '$end' reduce using rule 77
  2981. '$in' reduce using rule 77
  2982. '$sep' reduce using rule 77
  2983. %eof reduce using rule 77
  2984.  
  2985.  
  2986. State 94
  2987.  
  2988. Binding -> PreBinding . (rule 79)
  2989.  
  2990. and reduce using rule 79
  2991. end reduce using rule 79
  2992. in reduce using rule 79
  2993. ';;' reduce using rule 79
  2994. '$end' reduce using rule 79
  2995. '$in' reduce using rule 79
  2996. '$sep' reduce using rule 79
  2997. %eof reduce using rule 79
  2998.  
  2999.  
  3000. State 95
  3001.  
  3002. PreBinding -> BindName . ListE__Parameter__ '=' ExprBlock '$end' (rule 81)
  3003. PreBinding -> BindName . ListE__Parameter__ ':' Type '=' ExprBlock '$end' (rule 82)
  3004.  
  3005. '=' reduce using rule 144
  3006. '_' shift, and enter state 86
  3007. true shift, and enter state 24
  3008. false shift, and enter state 25
  3009. ':' reduce using rule 144
  3010. '(' shift, and enter state 87
  3011. '?(' shift, and enter state 88
  3012. '{' shift, and enter state 89
  3013. ident shift, and enter state 90
  3014. iident shift, and enter state 91
  3015. conid shift, and enter state 34
  3016. qconid shift, and enter state 36
  3017. int shift, and enter state 39
  3018. float shift, and enter state 40
  3019. string shift, and enter state 41
  3020.  
  3021. Con goto state 81
  3022. Lit goto state 82
  3023. ArgP goto state 83
  3024. Parameter goto state 84
  3025. ListE__Parameter__goto state 144
  3026. ListE1__Parameter__goto state 145
  3027.  
  3028. State 96
  3029.  
  3030. PreBinding -> ArgP . BindOp ArgP '=' ExprBlock '$end' (rule 83)
  3031.  
  3032. '*' shift, and enter state 140
  3033. '~' shift, and enter state 141
  3034. op shift, and enter state 142
  3035. opid shift, and enter state 143
  3036.  
  3037. BindOp goto state 139
  3038.  
  3039. State 97
  3040.  
  3041. Binding -> implicit . PreBinding (rule 80)
  3042.  
  3043. '_' shift, and enter state 86
  3044. true shift, and enter state 24
  3045. false shift, and enter state 25
  3046. '(' shift, and enter state 99
  3047. '{' shift, and enter state 89
  3048. ident shift, and enter state 100
  3049. conid shift, and enter state 34
  3050. qconid shift, and enter state 36
  3051. int shift, and enter state 39
  3052. float shift, and enter state 40
  3053. string shift, and enter state 41
  3054.  
  3055. Con goto state 81
  3056. PreBinding goto state 138
  3057. BindName goto state 95
  3058. Lit goto state 82
  3059. ArgP goto state 96
  3060.  
  3061. State 98
  3062.  
  3063. Expr0 -> let open . Con ExprIn ExprBlock '$end' (rule 33)
  3064.  
  3065. conid shift, and enter state 34
  3066. qconid shift, and enter state 36
  3067.  
  3068. Con goto state 137
  3069.  
  3070. State 99
  3071.  
  3072. BindName -> '(' . op ')' (rule 85)
  3073. ArgP -> '(' . List__Pattern__','__ ')' (rule 105)
  3074.  
  3075. '_' shift, and enter state 86
  3076. true shift, and enter state 24
  3077. false shift, and enter state 25
  3078. '(' shift, and enter state 87
  3079. ')' reduce using rule 130
  3080. '{' shift, and enter state 89
  3081. op shift, and enter state 136
  3082. ident shift, and enter state 90
  3083. conid shift, and enter state 34
  3084. qconid shift, and enter state 36
  3085. int shift, and enter state 39
  3086. float shift, and enter state 40
  3087. string shift, and enter state 41
  3088.  
  3089. Con goto state 131
  3090. Lit goto state 82
  3091. Pattern goto state 132
  3092. ArgP goto state 133
  3093. List__Pattern__','__goto state 134
  3094. List1__Pattern__','__goto state 135
  3095.  
  3096. State 100
  3097.  
  3098. BindName -> ident . (rule 84)
  3099. ArgP -> ident . (rule 101)
  3100.  
  3101. '=' reduce using rule 84
  3102. '*' reduce using rule 101
  3103. '~' reduce using rule 101
  3104. '_' reduce using rule 84
  3105. true reduce using rule 84
  3106. false reduce using rule 84
  3107. ':' reduce using rule 84
  3108. '(' reduce using rule 84
  3109. '?(' reduce using rule 84
  3110. '{' reduce using rule 84
  3111. op reduce using rule 101
  3112. ident reduce using rule 84
  3113. iident reduce using rule 84
  3114. opid reduce using rule 101
  3115. conid reduce using rule 84
  3116. qconid reduce using rule 84
  3117. int reduce using rule 84
  3118. float reduce using rule 84
  3119. string reduce using rule 84
  3120.  
  3121.  
  3122. State 101
  3123.  
  3124. Atom -> Atom access . (rule 54)
  3125.  
  3126. '|' reduce using rule 54
  3127. '*' reduce using rule 54
  3128. '~' reduce using rule 54
  3129. '_' reduce using rule 54
  3130. then reduce using rule 54
  3131. else reduce using rule 54
  3132. begin reduce using rule 54
  3133. end reduce using rule 54
  3134. true reduce using rule 54
  3135. false reduce using rule 54
  3136. with reduce using rule 54
  3137. ',' reduce using rule 54
  3138. ':' reduce using rule 54
  3139. ';;' reduce using rule 54
  3140. ';' reduce using rule 54
  3141. '(' reduce using rule 54
  3142. ')' reduce using rule 54
  3143. '@{' reduce using rule 54
  3144. '?' reduce using rule 54
  3145. '{' reduce using rule 54
  3146. '}' reduce using rule 54
  3147. op reduce using rule 54
  3148. ident reduce using rule 54
  3149. opid reduce using rule 54
  3150. conid reduce using rule 54
  3151. qident reduce using rule 54
  3152. qopid reduce using rule 54
  3153. qconid reduce using rule 54
  3154. access reduce using rule 54
  3155. hole reduce using rule 54
  3156. int reduce using rule 54
  3157. float reduce using rule 54
  3158. string reduce using rule 54
  3159. '$end' reduce using rule 54
  3160. '$sep' reduce using rule 54
  3161. %eof reduce using rule 54
  3162.  
  3163.  
  3164. State 102
  3165.  
  3166. ExprApp -> ExprApp Atom . (rule 29)
  3167. Atom -> Atom . access (rule 54)
  3168.  
  3169. '|' reduce using rule 29
  3170. '*' reduce using rule 29
  3171. '~' reduce using rule 29
  3172. '_' reduce using rule 29
  3173. then reduce using rule 29
  3174. else reduce using rule 29
  3175. begin reduce using rule 29
  3176. end reduce using rule 29
  3177. true reduce using rule 29
  3178. false reduce using rule 29
  3179. with reduce using rule 29
  3180. ',' reduce using rule 29
  3181. ':' reduce using rule 29
  3182. ';;' reduce using rule 29
  3183. ';' reduce using rule 29
  3184. '(' reduce using rule 29
  3185. ')' reduce using rule 29
  3186. '@{' reduce using rule 29
  3187. '?' reduce using rule 29
  3188. '{' reduce using rule 29
  3189. '}' reduce using rule 29
  3190. op reduce using rule 29
  3191. ident reduce using rule 29
  3192. opid reduce using rule 29
  3193. conid reduce using rule 29
  3194. qident reduce using rule 29
  3195. qopid reduce using rule 29
  3196. qconid reduce using rule 29
  3197. access shift, and enter state 101
  3198. hole reduce using rule 29
  3199. int reduce using rule 29
  3200. float reduce using rule 29
  3201. string reduce using rule 29
  3202. '$end' reduce using rule 29
  3203. '$sep' reduce using rule 29
  3204. %eof reduce using rule 29
  3205.  
  3206.  
  3207. State 103
  3208.  
  3209. ExprApp -> ExprApp ':' . Type (rule 30)
  3210.  
  3211. forall shift, and enter state 55
  3212. type shift, and enter state 56
  3213. lazy shift, and enter state 57
  3214. '(' shift, and enter state 58
  3215. '{' shift, and enter state 59
  3216. ident shift, and enter state 33
  3217. conid shift, and enter state 34
  3218. qident shift, and enter state 35
  3219. qconid shift, and enter state 36
  3220. tyvar shift, and enter state 60
  3221.  
  3222. Var goto state 48
  3223. Con goto state 49
  3224. TyVar goto state 50
  3225. Type goto state 130
  3226. TypeProd goto state 52
  3227. TypeApp goto state 53
  3228. TypeAtom goto state 54
  3229.  
  3230. State 104
  3231.  
  3232. Repl -> Expr ReplSep . (rule 22)
  3233.  
  3234. %eof reduce using rule 22
  3235.  
  3236.  
  3237. State 105
  3238.  
  3239. Expr -> Expr Operator . ExprApp (rule 27)
  3240.  
  3241. '_' shift, and enter state 19
  3242. let shift, and enter state 46
  3243. fun shift, and enter state 21
  3244. if shift, and enter state 22
  3245. begin shift, and enter state 23
  3246. true shift, and enter state 24
  3247. false shift, and enter state 25
  3248. match shift, and enter state 26
  3249. function shift, and enter state 27
  3250. lazy shift, and enter state 28
  3251. '(' shift, and enter state 29
  3252. '@{' shift, and enter state 30
  3253. '?' shift, and enter state 31
  3254. '{' shift, and enter state 32
  3255. ident shift, and enter state 33
  3256. conid shift, and enter state 34
  3257. qident shift, and enter state 35
  3258. qconid shift, and enter state 36
  3259. qdotid shift, and enter state 37
  3260. hole shift, and enter state 38
  3261. int shift, and enter state 39
  3262. float shift, and enter state 40
  3263. string shift, and enter state 41
  3264.  
  3265. ExprApp goto state 129
  3266. Expr0 goto state 14
  3267. Atom goto state 15
  3268. Var goto state 16
  3269. Con goto state 17
  3270. Lit goto state 18
  3271.  
  3272. State 106
  3273.  
  3274. ReplSep -> ';;' . (rule 23)
  3275.  
  3276. %eof reduce using rule 23
  3277.  
  3278.  
  3279. State 107
  3280.  
  3281. ReplSep -> '$sep' . (rule 24)
  3282.  
  3283. %eof reduce using rule 24
  3284.  
  3285.  
  3286. State 108
  3287.  
  3288. Repl -> Top ReplSep . (rule 21)
  3289.  
  3290. %eof reduce using rule 21
  3291.  
  3292.  
  3293. State 109
  3294.  
  3295. Top -> open Con . (rule 14)
  3296.  
  3297. end reduce using rule 14
  3298. ';;' reduce using rule 14
  3299. '$end' reduce using rule 14
  3300. '$sep' reduce using rule 14
  3301. %eof reduce using rule 14
  3302.  
  3303.  
  3304. State 110
  3305.  
  3306. Top -> module conid . '=' begin Tops end (rule 11)
  3307. Top -> module conid . '=' '$begin' Tops '$end' (rule 12)
  3308. Top -> module conid . '=' Con (rule 13)
  3309.  
  3310. '=' shift, and enter state 128
  3311.  
  3312.  
  3313. State 111
  3314.  
  3315. Top -> module qconid . '=' begin Tops end (rule 10)
  3316.  
  3317. '=' shift, and enter state 127
  3318.  
  3319.  
  3320. State 112
  3321.  
  3322. Top -> type ident . ListE__TyConArg__ (rule 7)
  3323. Top -> type ident . ListE__TyConArg__ '=' List1__Ctor__'|'__ (rule 8)
  3324. Top -> type ident . ListE__TyConArg__ '=' '|' List1__Ctor__'|'__ (rule 9)
  3325.  
  3326. '=' reduce using rule 146
  3327. end reduce using rule 146
  3328. ';;' reduce using rule 146
  3329. '(' shift, and enter state 125
  3330. '{' shift, and enter state 126
  3331. tyvar shift, and enter state 60
  3332. '$end' reduce using rule 146
  3333. '$sep' reduce using rule 146
  3334. %eof reduce using rule 146
  3335.  
  3336. TyConArg goto state 121
  3337. TyVar goto state 122
  3338. ListE__TyConArg__goto state 123
  3339. ListE1__TyConArg__goto state 124
  3340.  
  3341. State 113
  3342.  
  3343. Top -> external val . ident ':' Type '=' string (rule 6)
  3344.  
  3345. ident shift, and enter state 120
  3346.  
  3347.  
  3348. State 114
  3349.  
  3350. Top -> let BindGroup . (rule 5)
  3351. BindGroup -> BindGroup . and Binding (rule 78)
  3352.  
  3353. and shift, and enter state 119
  3354. end reduce using rule 5
  3355. ';;' reduce using rule 5
  3356. '$end' reduce using rule 5
  3357. '$sep' reduce using rule 5
  3358. %eof reduce using rule 5
  3359.  
  3360.  
  3361. State 115
  3362.  
  3363. List1__Top__TopSep__ -> Top TopSep . List1__Top__TopSep__ (rule 143)
  3364.  
  3365. let shift, and enter state 5
  3366. external shift, and enter state 6
  3367. type shift, and enter state 7
  3368. module shift, and enter state 8
  3369. open shift, and enter state 9
  3370.  
  3371. Top goto state 3
  3372. List1__Top__TopSep__goto state 118
  3373.  
  3374. State 116
  3375.  
  3376. TopSep -> ';;' . (rule 3)
  3377.  
  3378. let reduce using rule 3
  3379. external reduce using rule 3
  3380. type reduce using rule 3
  3381. module reduce using rule 3
  3382. open reduce using rule 3
  3383.  
  3384.  
  3385. State 117
  3386.  
  3387. TopSep -> '$sep' . (rule 4)
  3388.  
  3389. let reduce using rule 4
  3390. external reduce using rule 4
  3391. type reduce using rule 4
  3392. module reduce using rule 4
  3393. open reduce using rule 4
  3394.  
  3395.  
  3396. State 118
  3397.  
  3398. List1__Top__TopSep__ -> Top TopSep List1__Top__TopSep__ . (rule 143)
  3399.  
  3400. end reduce using rule 143
  3401. '$end' reduce using rule 143
  3402. %eof reduce using rule 143
  3403.  
  3404.  
  3405. State 119
  3406.  
  3407. BindGroup -> BindGroup and . Binding (rule 78)
  3408.  
  3409. '_' shift, and enter state 86
  3410. implicit shift, and enter state 97
  3411. true shift, and enter state 24
  3412. false shift, and enter state 25
  3413. '(' shift, and enter state 99
  3414. '{' shift, and enter state 89
  3415. ident shift, and enter state 100
  3416. conid shift, and enter state 34
  3417. qconid shift, and enter state 36
  3418. int shift, and enter state 39
  3419. float shift, and enter state 40
  3420. string shift, and enter state 41
  3421.  
  3422. Con goto state 81
  3423. Binding goto state 241
  3424. PreBinding goto state 94
  3425. BindName goto state 95
  3426. Lit goto state 82
  3427. ArgP goto state 96
  3428.  
  3429. State 120
  3430.  
  3431. Top -> external val ident . ':' Type '=' string (rule 6)
  3432.  
  3433. ':' shift, and enter state 240
  3434.  
  3435.  
  3436. State 121
  3437.  
  3438. ListE1__TyConArg__ -> TyConArg . (rule 167)
  3439. ListE1__TyConArg__ -> TyConArg . ListE1__TyConArg__ (rule 168)
  3440.  
  3441. '=' reduce using rule 167
  3442. end reduce using rule 167
  3443. ';;' reduce using rule 167
  3444. '(' shift, and enter state 125
  3445. '{' shift, and enter state 126
  3446. tyvar shift, and enter state 60
  3447. '$end' reduce using rule 167
  3448. '$sep' reduce using rule 167
  3449. %eof reduce using rule 167
  3450.  
  3451. TyConArg goto state 121
  3452. TyVar goto state 122
  3453. ListE1__TyConArg__goto state 239
  3454.  
  3455. State 122
  3456.  
  3457. TyConArg -> TyVar . (rule 15)
  3458.  
  3459. '=' reduce using rule 15
  3460. end reduce using rule 15
  3461. ';;' reduce using rule 15
  3462. '(' reduce using rule 15
  3463. '{' reduce using rule 15
  3464. tyvar reduce using rule 15
  3465. '$end' reduce using rule 15
  3466. '$sep' reduce using rule 15
  3467. %eof reduce using rule 15
  3468.  
  3469.  
  3470. State 123
  3471.  
  3472. Top -> type ident ListE__TyConArg__ . (rule 7)
  3473. Top -> type ident ListE__TyConArg__ . '=' List1__Ctor__'|'__ (rule 8)
  3474. Top -> type ident ListE__TyConArg__ . '=' '|' List1__Ctor__'|'__ (rule 9)
  3475.  
  3476. '=' shift, and enter state 238
  3477. end reduce using rule 7
  3478. ';;' reduce using rule 7
  3479. '$end' reduce using rule 7
  3480. '$sep' reduce using rule 7
  3481. %eof reduce using rule 7
  3482.  
  3483.  
  3484. State 124
  3485.  
  3486. ListE__TyConArg__ -> ListE1__TyConArg__ . (rule 147)
  3487.  
  3488. '=' reduce using rule 147
  3489. end reduce using rule 147
  3490. ';;' reduce using rule 147
  3491. '$end' reduce using rule 147
  3492. '$sep' reduce using rule 147
  3493. %eof reduce using rule 147
  3494.  
  3495.  
  3496. State 125
  3497.  
  3498. TyConArg -> '(' . TyVar ':' Type ')' (rule 16)
  3499.  
  3500. tyvar shift, and enter state 60
  3501.  
  3502. TyVar goto state 237
  3503.  
  3504. State 126
  3505.  
  3506. TyConArg -> '{' . TyVar ':' Type '}' (rule 17)
  3507.  
  3508. tyvar shift, and enter state 60
  3509.  
  3510. TyVar goto state 236
  3511.  
  3512. State 127
  3513.  
  3514. Top -> module qconid '=' . begin Tops end (rule 10)
  3515.  
  3516. begin shift, and enter state 235
  3517.  
  3518.  
  3519. State 128
  3520.  
  3521. Top -> module conid '=' . begin Tops end (rule 11)
  3522. Top -> module conid '=' . '$begin' Tops '$end' (rule 12)
  3523. Top -> module conid '=' . Con (rule 13)
  3524.  
  3525. begin shift, and enter state 233
  3526. conid shift, and enter state 34
  3527. qconid shift, and enter state 36
  3528. '$begin' shift, and enter state 234
  3529.  
  3530. Con goto state 232
  3531.  
  3532. State 129
  3533.  
  3534. Expr -> Expr Operator ExprApp . (rule 27)
  3535. ExprApp -> ExprApp . Atom (rule 29)
  3536. ExprApp -> ExprApp . ':' Type (rule 30)
  3537.  
  3538. '|' reduce using rule 27
  3539. '*' reduce using rule 27
  3540. '~' reduce using rule 27
  3541. '_' shift, and enter state 19
  3542. then reduce using rule 27
  3543. else reduce using rule 27
  3544. begin shift, and enter state 23
  3545. end reduce using rule 27
  3546. true shift, and enter state 24
  3547. false shift, and enter state 25
  3548. with reduce using rule 27
  3549. ',' reduce using rule 27
  3550. ':' shift, and enter state 103
  3551. ';;' reduce using rule 27
  3552. ';' reduce using rule 27
  3553. '(' shift, and enter state 29
  3554. ')' reduce using rule 27
  3555. '@{' shift, and enter state 30
  3556. '?' shift, and enter state 31
  3557. '{' shift, and enter state 32
  3558. '}' reduce using rule 27
  3559. op reduce using rule 27
  3560. ident shift, and enter state 33
  3561. opid reduce using rule 27
  3562. conid shift, and enter state 34
  3563. qident shift, and enter state 35
  3564. qopid reduce using rule 27
  3565. qconid shift, and enter state 36
  3566. hole shift, and enter state 38
  3567. int shift, and enter state 39
  3568. float shift, and enter state 40
  3569. string shift, and enter state 41
  3570. '$end' reduce using rule 27
  3571. '$sep' reduce using rule 27
  3572. %eof reduce using rule 27
  3573.  
  3574. Atom goto state 102
  3575. Var goto state 16
  3576. Con goto state 17
  3577. Lit goto state 18
  3578.  
  3579. State 130
  3580.  
  3581. ExprApp -> ExprApp ':' Type . (rule 30)
  3582.  
  3583. '|' reduce using rule 30
  3584. '*' reduce using rule 30
  3585. '~' reduce using rule 30
  3586. '_' reduce using rule 30
  3587. then reduce using rule 30
  3588. else reduce using rule 30
  3589. begin reduce using rule 30
  3590. end reduce using rule 30
  3591. true reduce using rule 30
  3592. false reduce using rule 30
  3593. with reduce using rule 30
  3594. ',' reduce using rule 30
  3595. ':' reduce using rule 30
  3596. ';;' reduce using rule 30
  3597. ';' reduce using rule 30
  3598. '(' reduce using rule 30
  3599. ')' reduce using rule 30
  3600. '@{' reduce using rule 30
  3601. '?' reduce using rule 30
  3602. '{' reduce using rule 30
  3603. '}' reduce using rule 30
  3604. op reduce using rule 30
  3605. ident reduce using rule 30
  3606. opid reduce using rule 30
  3607. conid reduce using rule 30
  3608. qident reduce using rule 30
  3609. qopid reduce using rule 30
  3610. qconid reduce using rule 30
  3611. hole reduce using rule 30
  3612. int reduce using rule 30
  3613. float reduce using rule 30
  3614. string reduce using rule 30
  3615. '$end' reduce using rule 30
  3616. '$sep' reduce using rule 30
  3617. %eof reduce using rule 30
  3618.  
  3619.  
  3620. State 131
  3621.  
  3622. Pattern -> Con . ArgP (rule 99)
  3623. ArgP -> Con . (rule 103)
  3624.  
  3625. '_' shift, and enter state 86
  3626. true shift, and enter state 24
  3627. false shift, and enter state 25
  3628. ',' reduce using rule 103
  3629. ':' reduce using rule 103
  3630. '(' shift, and enter state 87
  3631. ')' reduce using rule 103
  3632. '{' shift, and enter state 89
  3633. '}' reduce using rule 103
  3634. ident shift, and enter state 90
  3635. conid shift, and enter state 34
  3636. qconid shift, and enter state 36
  3637. int shift, and enter state 39
  3638. float shift, and enter state 40
  3639. string shift, and enter state 41
  3640.  
  3641. Con goto state 81
  3642. Lit goto state 82
  3643. ArgP goto state 231
  3644.  
  3645. State 132
  3646.  
  3647. Pattern -> Pattern . ':' Type (rule 100)
  3648. List1__Pattern__','__ -> Pattern . (rule 165)
  3649. List1__Pattern__','__ -> Pattern . ',' List1__Pattern__','__ (rule 166)
  3650.  
  3651. ',' shift, and enter state 230
  3652. ':' shift, and enter state 219
  3653. ')' reduce using rule 165
  3654.  
  3655.  
  3656. State 133
  3657.  
  3658. Pattern -> ArgP . (rule 98)
  3659.  
  3660. ',' reduce using rule 98
  3661. ':' reduce using rule 98
  3662. ')' reduce using rule 98
  3663. '}' reduce using rule 98
  3664.  
  3665.  
  3666. State 134
  3667.  
  3668. ArgP -> '(' List__Pattern__','__ . ')' (rule 105)
  3669.  
  3670. ')' shift, and enter state 229
  3671.  
  3672.  
  3673. State 135
  3674.  
  3675. List__Pattern__','__ -> List1__Pattern__','__ . (rule 131)
  3676.  
  3677. ')' reduce using rule 131
  3678.  
  3679.  
  3680. State 136
  3681.  
  3682. BindName -> '(' op . ')' (rule 85)
  3683.  
  3684. ')' shift, and enter state 228
  3685.  
  3686.  
  3687. State 137
  3688.  
  3689. Expr0 -> let open Con . ExprIn ExprBlock '$end' (rule 33)
  3690.  
  3691. in shift, and enter state 147
  3692. '$in' shift, and enter state 148
  3693.  
  3694. ExprIn goto state 227
  3695.  
  3696. State 138
  3697.  
  3698. Binding -> implicit PreBinding . (rule 80)
  3699.  
  3700. and reduce using rule 80
  3701. end reduce using rule 80
  3702. in reduce using rule 80
  3703. ';;' reduce using rule 80
  3704. '$end' reduce using rule 80
  3705. '$in' reduce using rule 80
  3706. '$sep' reduce using rule 80
  3707. %eof reduce using rule 80
  3708.  
  3709.  
  3710. State 139
  3711.  
  3712. PreBinding -> ArgP BindOp . ArgP '=' ExprBlock '$end' (rule 83)
  3713.  
  3714. '_' shift, and enter state 86
  3715. true shift, and enter state 24
  3716. false shift, and enter state 25
  3717. '(' shift, and enter state 87
  3718. '{' shift, and enter state 89
  3719. ident shift, and enter state 90
  3720. conid shift, and enter state 34
  3721. qconid shift, and enter state 36
  3722. int shift, and enter state 39
  3723. float shift, and enter state 40
  3724. string shift, and enter state 41
  3725.  
  3726. Con goto state 81
  3727. Lit goto state 82
  3728. ArgP goto state 226
  3729.  
  3730. State 140
  3731.  
  3732. BindOp -> '*' . (rule 86)
  3733.  
  3734. '_' reduce using rule 86
  3735. true reduce using rule 86
  3736. false reduce using rule 86
  3737. '(' reduce using rule 86
  3738. '{' reduce using rule 86
  3739. ident reduce using rule 86
  3740. conid reduce using rule 86
  3741. qconid reduce using rule 86
  3742. int reduce using rule 86
  3743. float reduce using rule 86
  3744. string reduce using rule 86
  3745.  
  3746.  
  3747. State 141
  3748.  
  3749. BindOp -> '~' . (rule 87)
  3750.  
  3751. '_' reduce using rule 87
  3752. true reduce using rule 87
  3753. false reduce using rule 87
  3754. '(' reduce using rule 87
  3755. '{' reduce using rule 87
  3756. ident reduce using rule 87
  3757. conid reduce using rule 87
  3758. qconid reduce using rule 87
  3759. int reduce using rule 87
  3760. float reduce using rule 87
  3761. string reduce using rule 87
  3762.  
  3763.  
  3764. State 142
  3765.  
  3766. BindOp -> op . (rule 88)
  3767.  
  3768. '_' reduce using rule 88
  3769. true reduce using rule 88
  3770. false reduce using rule 88
  3771. '(' reduce using rule 88
  3772. '{' reduce using rule 88
  3773. ident reduce using rule 88
  3774. conid reduce using rule 88
  3775. qconid reduce using rule 88
  3776. int reduce using rule 88
  3777. float reduce using rule 88
  3778. string reduce using rule 88
  3779.  
  3780.  
  3781. State 143
  3782.  
  3783. BindOp -> opid . (rule 89)
  3784.  
  3785. '_' reduce using rule 89
  3786. true reduce using rule 89
  3787. false reduce using rule 89
  3788. '(' reduce using rule 89
  3789. '{' reduce using rule 89
  3790. ident reduce using rule 89
  3791. conid reduce using rule 89
  3792. qconid reduce using rule 89
  3793. int reduce using rule 89
  3794. float reduce using rule 89
  3795. string reduce using rule 89
  3796.  
  3797.  
  3798. State 144
  3799.  
  3800. PreBinding -> BindName ListE__Parameter__ . '=' ExprBlock '$end' (rule 81)
  3801. PreBinding -> BindName ListE__Parameter__ . ':' Type '=' ExprBlock '$end' (rule 82)
  3802.  
  3803. '=' shift, and enter state 224
  3804. ':' shift, and enter state 225
  3805.  
  3806.  
  3807. State 145
  3808.  
  3809. ListE__Parameter__ -> ListE1__Parameter__ . (rule 145)
  3810.  
  3811. '=' reduce using rule 145
  3812. ':' reduce using rule 145
  3813.  
  3814.  
  3815. State 146
  3816.  
  3817. Expr0 -> let BindGroup ExprIn . ExprBlock '$end' (rule 32)
  3818.  
  3819. '_' shift, and enter state 19
  3820. let shift, and enter state 46
  3821. fun shift, and enter state 21
  3822. if shift, and enter state 22
  3823. begin shift, and enter state 23
  3824. true shift, and enter state 24
  3825. false shift, and enter state 25
  3826. match shift, and enter state 26
  3827. function shift, and enter state 27
  3828. lazy shift, and enter state 28
  3829. '(' shift, and enter state 29
  3830. '@{' shift, and enter state 30
  3831. '?' shift, and enter state 31
  3832. '{' shift, and enter state 32
  3833. ident shift, and enter state 33
  3834. conid shift, and enter state 34
  3835. qident shift, and enter state 35
  3836. qconid shift, and enter state 36
  3837. qdotid shift, and enter state 37
  3838. hole shift, and enter state 38
  3839. int shift, and enter state 39
  3840. float shift, and enter state 40
  3841. string shift, and enter state 41
  3842.  
  3843. Expr goto state 78
  3844. ExprApp goto state 13
  3845. Expr0 goto state 14
  3846. Atom goto state 15
  3847. ExprBlock goto state 223
  3848. Var goto state 16
  3849. Con goto state 17
  3850. Lit goto state 18
  3851. List1__Expr__ExprSep__goto state 217
  3852.  
  3853. State 147
  3854.  
  3855. ExprIn -> in . (rule 58)
  3856.  
  3857. '_' reduce using rule 58
  3858. let reduce using rule 58
  3859. fun reduce using rule 58
  3860. if reduce using rule 58
  3861. begin reduce using rule 58
  3862. true reduce using rule 58
  3863. false reduce using rule 58
  3864. match reduce using rule 58
  3865. function reduce using rule 58
  3866. lazy reduce using rule 58
  3867. '(' reduce using rule 58
  3868. '@{' reduce using rule 58
  3869. '?' reduce using rule 58
  3870. '{' reduce using rule 58
  3871. ident reduce using rule 58
  3872. conid reduce using rule 58
  3873. qident reduce using rule 58
  3874. qconid reduce using rule 58
  3875. qdotid reduce using rule 58
  3876. hole reduce using rule 58
  3877. int reduce using rule 58
  3878. float reduce using rule 58
  3879. string reduce using rule 58
  3880.  
  3881.  
  3882. State 148
  3883.  
  3884. ExprIn -> '$in' . (rule 59)
  3885.  
  3886. '_' reduce using rule 59
  3887. let reduce using rule 59
  3888. fun reduce using rule 59
  3889. if reduce using rule 59
  3890. begin reduce using rule 59
  3891. true reduce using rule 59
  3892. false reduce using rule 59
  3893. match reduce using rule 59
  3894. function reduce using rule 59
  3895. lazy reduce using rule 59
  3896. '(' reduce using rule 59
  3897. '@{' reduce using rule 59
  3898. '?' reduce using rule 59
  3899. '{' reduce using rule 59
  3900. ident reduce using rule 59
  3901. conid reduce using rule 59
  3902. qident reduce using rule 59
  3903. qconid reduce using rule 59
  3904. qdotid reduce using rule 59
  3905. hole reduce using rule 59
  3906. int reduce using rule 59
  3907. float reduce using rule 59
  3908. string reduce using rule 59
  3909.  
  3910.  
  3911. State 149
  3912.  
  3913. ArgP -> '{' Rows__'='__Pattern__ . '}' (rule 104)
  3914.  
  3915. '}' shift, and enter state 222
  3916.  
  3917.  
  3918. State 150
  3919.  
  3920. Rows__'='__Pattern__ -> ident . '=' Pattern ',' Rows__'='__Pattern__ (rule 163)
  3921. Rows__'='__Pattern__ -> ident . '=' Pattern (rule 164)
  3922.  
  3923. '=' shift, and enter state 221
  3924.  
  3925.  
  3926. State 151
  3927.  
  3928. Pattern -> Pattern . ':' Type (rule 100)
  3929. Parameter -> '?(' Pattern . ')' (rule 110)
  3930.  
  3931. ':' shift, and enter state 219
  3932. ')' shift, and enter state 220
  3933.  
  3934.  
  3935. State 152
  3936.  
  3937. Expr0 -> fun ListE1__Parameter__ '->' . ExprBlock '$end' (rule 31)
  3938.  
  3939. '_' shift, and enter state 19
  3940. let shift, and enter state 46
  3941. fun shift, and enter state 21
  3942. if shift, and enter state 22
  3943. begin shift, and enter state 23
  3944. true shift, and enter state 24
  3945. false shift, and enter state 25
  3946. match shift, and enter state 26
  3947. function shift, and enter state 27
  3948. lazy shift, and enter state 28
  3949. '(' shift, and enter state 29
  3950. '@{' shift, and enter state 30
  3951. '?' shift, and enter state 31
  3952. '{' shift, and enter state 32
  3953. ident shift, and enter state 33
  3954. conid shift, and enter state 34
  3955. qident shift, and enter state 35
  3956. qconid shift, and enter state 36
  3957. qdotid shift, and enter state 37
  3958. hole shift, and enter state 38
  3959. int shift, and enter state 39
  3960. float shift, and enter state 40
  3961. string shift, and enter state 41
  3962.  
  3963. Expr goto state 78
  3964. ExprApp goto state 13
  3965. Expr0 goto state 14
  3966. Atom goto state 15
  3967. ExprBlock goto state 218
  3968. Var goto state 16
  3969. Con goto state 17
  3970. Lit goto state 18
  3971. List1__Expr__ExprSep__goto state 217
  3972.  
  3973. State 153
  3974.  
  3975. ListE1__Parameter__ -> Parameter ListE1__Parameter__ . (rule 153)
  3976.  
  3977. '->' reduce using rule 153
  3978. '=' reduce using rule 153
  3979. ':' reduce using rule 153
  3980.  
  3981.  
  3982. State 154
  3983.  
  3984. Expr0 -> if Expr then . ExprBlock else ExprBlock '$end' (rule 34)
  3985.  
  3986. '_' shift, and enter state 19
  3987. let shift, and enter state 46
  3988. fun shift, and enter state 21
  3989. if shift, and enter state 22
  3990. begin shift, and enter state 23
  3991. true shift, and enter state 24
  3992. false shift, and enter state 25
  3993. match shift, and enter state 26
  3994. function shift, and enter state 27
  3995. lazy shift, and enter state 28
  3996. '(' shift, and enter state 29
  3997. '@{' shift, and enter state 30
  3998. '?' shift, and enter state 31
  3999. '{' shift, and enter state 32
  4000. ident shift, and enter state 33
  4001. conid shift, and enter state 34
  4002. qident shift, and enter state 35
  4003. qconid shift, and enter state 36
  4004. qdotid shift, and enter state 37
  4005. hole shift, and enter state 38
  4006. int shift, and enter state 39
  4007. float shift, and enter state 40
  4008. string shift, and enter state 41
  4009.  
  4010. Expr goto state 78
  4011. ExprApp goto state 13
  4012. Expr0 goto state 14
  4013. Atom goto state 15
  4014. ExprBlock goto state 216
  4015. Var goto state 16
  4016. Con goto state 17
  4017. Lit goto state 18
  4018. List1__Expr__ExprSep__goto state 217
  4019.  
  4020. State 155
  4021.  
  4022. Atom -> begin List1__Expr__ExprSep__ end . (rule 46)
  4023.  
  4024. '|' reduce using rule 46
  4025. '*' reduce using rule 46
  4026. '~' reduce using rule 46
  4027. '_' reduce using rule 46
  4028. then reduce using rule 46
  4029. else reduce using rule 46
  4030. begin reduce using rule 46
  4031. end reduce using rule 46
  4032. true reduce using rule 46
  4033. false reduce using rule 46
  4034. with reduce using rule 46
  4035. ',' reduce using rule 46
  4036. ':' reduce using rule 46
  4037. ';;' reduce using rule 46
  4038. ';' reduce using rule 46
  4039. '(' reduce using rule 46
  4040. ')' reduce using rule 46
  4041. '@{' reduce using rule 46
  4042. '?' reduce using rule 46
  4043. '{' reduce using rule 46
  4044. '}' reduce using rule 46
  4045. op reduce using rule 46
  4046. ident reduce using rule 46
  4047. opid reduce using rule 46
  4048. conid reduce using rule 46
  4049. qident reduce using rule 46
  4050. qopid reduce using rule 46
  4051. qconid reduce using rule 46
  4052. access reduce using rule 46
  4053. hole reduce using rule 46
  4054. int reduce using rule 46
  4055. float reduce using rule 46
  4056. string reduce using rule 46
  4057. '$end' reduce using rule 46
  4058. '$sep' reduce using rule 46
  4059. %eof reduce using rule 46
  4060.  
  4061.  
  4062. State 156
  4063.  
  4064. List1__Expr__ExprSep__ -> Expr ExprSep . List1__Expr__ExprSep__ (rule 137)
  4065.  
  4066. '_' shift, and enter state 19
  4067. let shift, and enter state 46
  4068. fun shift, and enter state 21
  4069. if shift, and enter state 22
  4070. begin shift, and enter state 23
  4071. true shift, and enter state 24
  4072. false shift, and enter state 25
  4073. match shift, and enter state 26
  4074. function shift, and enter state 27
  4075. lazy shift, and enter state 28
  4076. '(' shift, and enter state 29
  4077. '@{' shift, and enter state 30
  4078. '?' shift, and enter state 31
  4079. '{' shift, and enter state 32
  4080. ident shift, and enter state 33
  4081. conid shift, and enter state 34
  4082. qident shift, and enter state 35
  4083. qconid shift, and enter state 36
  4084. qdotid shift, and enter state 37
  4085. hole shift, and enter state 38
  4086. int shift, and enter state 39
  4087. float shift, and enter state 40
  4088. string shift, and enter state 41
  4089.  
  4090. Expr goto state 78
  4091. ExprApp goto state 13
  4092. Expr0 goto state 14
  4093. Atom goto state 15
  4094. Var goto state 16
  4095. Con goto state 17
  4096. Lit goto state 18
  4097. List1__Expr__ExprSep__goto state 215
  4098.  
  4099. State 157
  4100.  
  4101. ExprSep -> ';' . (rule 56)
  4102.  
  4103. '_' reduce using rule 56
  4104. let reduce using rule 56
  4105. fun reduce using rule 56
  4106. if reduce using rule 56
  4107. begin reduce using rule 56
  4108. true reduce using rule 56
  4109. false reduce using rule 56
  4110. match reduce using rule 56
  4111. function reduce using rule 56
  4112. lazy reduce using rule 56
  4113. '(' reduce using rule 56
  4114. '@{' reduce using rule 56
  4115. '?' reduce using rule 56
  4116. '{' reduce using rule 56
  4117. ident reduce using rule 56
  4118. conid reduce using rule 56
  4119. qident reduce using rule 56
  4120. qconid reduce using rule 56
  4121. qdotid reduce using rule 56
  4122. hole reduce using rule 56
  4123. int reduce using rule 56
  4124. float reduce using rule 56
  4125. string reduce using rule 56
  4126.  
  4127.  
  4128. State 158
  4129.  
  4130. ExprSep -> '$sep' . (rule 57)
  4131.  
  4132. '_' reduce using rule 57
  4133. let reduce using rule 57
  4134. fun reduce using rule 57
  4135. if reduce using rule 57
  4136. begin reduce using rule 57
  4137. true reduce using rule 57
  4138. false reduce using rule 57
  4139. match reduce using rule 57
  4140. function reduce using rule 57
  4141. lazy reduce using rule 57
  4142. '(' reduce using rule 57
  4143. '@{' reduce using rule 57
  4144. '?' reduce using rule 57
  4145. '{' reduce using rule 57
  4146. ident reduce using rule 57
  4147. conid reduce using rule 57
  4148. qident reduce using rule 57
  4149. qconid reduce using rule 57
  4150. qdotid reduce using rule 57
  4151. hole reduce using rule 57
  4152. int reduce using rule 57
  4153. float reduce using rule 57
  4154. string reduce using rule 57
  4155.  
  4156.  
  4157. State 159
  4158.  
  4159. Expr0 -> match List1__Expr__','__ with . ListE1__Arm__ '$end' (rule 35)
  4160. Expr0 -> match List1__Expr__','__ with . '(' ')' (rule 36)
  4161.  
  4162. '|' shift, and enter state 75
  4163. '(' shift, and enter state 214
  4164.  
  4165. Arm goto state 73
  4166. ListE1__Arm__ goto state 213
  4167.  
  4168. State 160
  4169.  
  4170. List1__Expr__','__ -> Expr ',' . List1__Expr__','__ (rule 135)
  4171.  
  4172. '_' shift, and enter state 19
  4173. let shift, and enter state 46
  4174. fun shift, and enter state 21
  4175. if shift, and enter state 22
  4176. begin shift, and enter state 23
  4177. true shift, and enter state 24
  4178. false shift, and enter state 25
  4179. match shift, and enter state 26
  4180. function shift, and enter state 27
  4181. lazy shift, and enter state 28
  4182. '(' shift, and enter state 29
  4183. '@{' shift, and enter state 30
  4184. '?' shift, and enter state 31
  4185. '{' shift, and enter state 32
  4186. ident shift, and enter state 33
  4187. conid shift, and enter state 34
  4188. qident shift, and enter state 35
  4189. qconid shift, and enter state 36
  4190. qdotid shift, and enter state 37
  4191. hole shift, and enter state 38
  4192. int shift, and enter state 39
  4193. float shift, and enter state 40
  4194. string shift, and enter state 41
  4195.  
  4196. Expr goto state 76
  4197. ExprApp goto state 13
  4198. Expr0 goto state 14
  4199. Atom goto state 15
  4200. Var goto state 16
  4201. Con goto state 17
  4202. Lit goto state 18
  4203. List1__Expr__','__goto state 212
  4204.  
  4205. State 161
  4206.  
  4207. MPattern -> Con . ArgP (rule 96)
  4208. ArgP -> Con . (rule 103)
  4209.  
  4210. '->' reduce using rule 103
  4211. '_' shift, and enter state 86
  4212. true shift, and enter state 24
  4213. false shift, and enter state 25
  4214. ',' reduce using rule 103
  4215. ':' reduce using rule 103
  4216. '(' shift, and enter state 87
  4217. '{' shift, and enter state 89
  4218. ident shift, and enter state 90
  4219. conid shift, and enter state 34
  4220. qconid shift, and enter state 36
  4221. int shift, and enter state 39
  4222. float shift, and enter state 40
  4223. string shift, and enter state 41
  4224.  
  4225. Con goto state 81
  4226. Lit goto state 82
  4227. ArgP goto state 211
  4228.  
  4229. State 162
  4230.  
  4231. MPattern -> MPattern . ':' TypeProd (rule 97)
  4232. List1__MPattern__','__ -> MPattern . (rule 138)
  4233. List1__MPattern__','__ -> MPattern . ',' List1__MPattern__','__ (rule 139)
  4234.  
  4235. '->' reduce using rule 138
  4236. ',' shift, and enter state 209
  4237. ':' shift, and enter state 210
  4238.  
  4239.  
  4240. State 163
  4241.  
  4242. MPattern -> ArgP . (rule 95)
  4243.  
  4244. '->' reduce using rule 95
  4245. ',' reduce using rule 95
  4246. ':' reduce using rule 95
  4247.  
  4248.  
  4249. State 164
  4250.  
  4251. Arm -> '|' List1__MPattern__','__ . '->' ExprBlock (rule 107)
  4252.  
  4253. '->' shift, and enter state 208
  4254.  
  4255.  
  4256. State 165
  4257.  
  4258. Expr0 -> function ListE1__Arm__ '$end' . (rule 37)
  4259.  
  4260. '|' reduce using rule 37
  4261. '*' reduce using rule 37
  4262. '~' reduce using rule 37
  4263. '_' reduce using rule 37
  4264. then reduce using rule 37
  4265. else reduce using rule 37
  4266. begin reduce using rule 37
  4267. end reduce using rule 37
  4268. true reduce using rule 37
  4269. false reduce using rule 37
  4270. with reduce using rule 37
  4271. ',' reduce using rule 37
  4272. ':' reduce using rule 37
  4273. ';;' reduce using rule 37
  4274. ';' reduce using rule 37
  4275. '(' reduce using rule 37
  4276. ')' reduce using rule 37
  4277. '@{' reduce using rule 37
  4278. '?' reduce using rule 37
  4279. '{' reduce using rule 37
  4280. '}' reduce using rule 37
  4281. op reduce using rule 37
  4282. ident reduce using rule 37
  4283. opid reduce using rule 37
  4284. conid reduce using rule 37
  4285. qident reduce using rule 37
  4286. qopid reduce using rule 37
  4287. qconid reduce using rule 37
  4288. hole reduce using rule 37
  4289. int reduce using rule 37
  4290. float reduce using rule 37
  4291. string reduce using rule 37
  4292. '$end' reduce using rule 37
  4293. '$sep' reduce using rule 37
  4294. %eof reduce using rule 37
  4295.  
  4296.  
  4297. State 166
  4298.  
  4299. ListE1__Arm__ -> Arm ListE1__Arm__ . (rule 149)
  4300.  
  4301. '$end' reduce using rule 149
  4302.  
  4303.  
  4304. State 167
  4305.  
  4306. Atom -> '(' NullSection ',' . List1__NullSection__','__ ')' (rule 49)
  4307.  
  4308. '*' shift, and enter state 65
  4309. '~' shift, and enter state 66
  4310. '_' shift, and enter state 19
  4311. let shift, and enter state 46
  4312. fun shift, and enter state 21
  4313. if shift, and enter state 22
  4314. begin shift, and enter state 23
  4315. true shift, and enter state 24
  4316. false shift, and enter state 25
  4317. match shift, and enter state 26
  4318. function shift, and enter state 27
  4319. lazy shift, and enter state 28
  4320. ',' reduce using rule 70
  4321. '(' shift, and enter state 29
  4322. ')' reduce using rule 70
  4323. '@{' shift, and enter state 30
  4324. '?' shift, and enter state 31
  4325. '{' shift, and enter state 32
  4326. op shift, and enter state 68
  4327. ident shift, and enter state 33
  4328. opid shift, and enter state 69
  4329. conid shift, and enter state 34
  4330. qident shift, and enter state 35
  4331. qopid shift, and enter state 70
  4332. qconid shift, and enter state 36
  4333. qdotid shift, and enter state 37
  4334. access shift, and enter state 71
  4335. hole shift, and enter state 38
  4336. int shift, and enter state 39
  4337. float shift, and enter state 40
  4338. string shift, and enter state 41
  4339.  
  4340. Expr goto state 61
  4341. ExprApp goto state 13
  4342. Expr0 goto state 14
  4343. Atom goto state 15
  4344. Operator goto state 62
  4345. Section goto state 205
  4346. NullSection goto state 206
  4347. Var goto state 16
  4348. Con goto state 17
  4349. Lit goto state 18
  4350. List1__NullSection__','__goto state 207
  4351.  
  4352. State 168
  4353.  
  4354. Atom -> '(' Section ')' . (rule 48)
  4355.  
  4356. '|' reduce using rule 48
  4357. '*' reduce using rule 48
  4358. '~' reduce using rule 48
  4359. '_' reduce using rule 48
  4360. then reduce using rule 48
  4361. else reduce using rule 48
  4362. begin reduce using rule 48
  4363. end reduce using rule 48
  4364. true reduce using rule 48
  4365. false reduce using rule 48
  4366. with reduce using rule 48
  4367. ',' reduce using rule 48
  4368. ':' reduce using rule 48
  4369. ';;' reduce using rule 48
  4370. ';' reduce using rule 48
  4371. '(' reduce using rule 48
  4372. ')' reduce using rule 48
  4373. '@{' reduce using rule 48
  4374. '?' reduce using rule 48
  4375. '{' reduce using rule 48
  4376. '}' reduce using rule 48
  4377. op reduce using rule 48
  4378. ident reduce using rule 48
  4379. opid reduce using rule 48
  4380. conid reduce using rule 48
  4381. qident reduce using rule 48
  4382. qopid reduce using rule 48
  4383. qconid reduce using rule 48
  4384. access reduce using rule 48
  4385. hole reduce using rule 48
  4386. int reduce using rule 48
  4387. float reduce using rule 48
  4388. string reduce using rule 48
  4389. '$end' reduce using rule 48
  4390. '$sep' reduce using rule 48
  4391. %eof reduce using rule 48
  4392.  
  4393.  
  4394. State 169
  4395.  
  4396. Expr -> Expr . Operator ExprApp (rule 27)
  4397. Section -> Operator Expr . (rule 69)
  4398.  
  4399. '*' shift, and enter state 65
  4400. '~' shift, and enter state 66
  4401. ',' reduce using rule 69
  4402. ')' reduce using rule 69
  4403. op shift, and enter state 68
  4404. opid shift, and enter state 69
  4405. qopid shift, and enter state 70
  4406.  
  4407. Operator goto state 105
  4408.  
  4409. State 170
  4410.  
  4411. Expr -> Expr Operator . ExprApp (rule 27)
  4412. Section -> Expr Operator . (rule 68)
  4413.  
  4414. '_' shift, and enter state 19
  4415. let shift, and enter state 46
  4416. fun shift, and enter state 21
  4417. if shift, and enter state 22
  4418. begin shift, and enter state 23
  4419. true shift, and enter state 24
  4420. false shift, and enter state 25
  4421. match shift, and enter state 26
  4422. function shift, and enter state 27
  4423. lazy shift, and enter state 28
  4424. ',' reduce using rule 68
  4425. '(' shift, and enter state 29
  4426. ')' reduce using rule 68
  4427. '@{' shift, and enter state 30
  4428. '?' shift, and enter state 31
  4429. '{' shift, and enter state 32
  4430. ident shift, and enter state 33
  4431. conid shift, and enter state 34
  4432. qident shift, and enter state 35
  4433. qconid shift, and enter state 36
  4434. qdotid shift, and enter state 37
  4435. hole shift, and enter state 38
  4436. int shift, and enter state 39
  4437. float shift, and enter state 40
  4438. string shift, and enter state 41
  4439.  
  4440. ExprApp goto state 129
  4441. Expr0 goto state 14
  4442. Atom goto state 15
  4443. Var goto state 16
  4444. Con goto state 17
  4445. Lit goto state 18
  4446.  
  4447. State 171
  4448.  
  4449. TypeAtom -> '{' Type . '|' Rows__':'__Type__ '}' (rule 129)
  4450.  
  4451. '|' shift, and enter state 204
  4452.  
  4453.  
  4454. State 172
  4455.  
  4456. TypeAtom -> '{' Rows__':'__Type__ . '}' (rule 128)
  4457.  
  4458. '}' shift, and enter state 203
  4459.  
  4460.  
  4461. State 173
  4462.  
  4463. Var -> ident . (rule 72)
  4464. Rows__':'__Type__ -> ident . ':' Type ',' Rows__':'__Type__ (rule 157)
  4465. Rows__':'__Type__ -> ident . ':' Type (rule 158)
  4466.  
  4467. '->' reduce using rule 72
  4468. '=>' reduce using rule 72
  4469. '|' reduce using rule 72
  4470. '*' reduce using rule 72
  4471. type reduce using rule 72
  4472. lazy reduce using rule 72
  4473. ':' shift, and enter state 202
  4474. '(' reduce using rule 72
  4475. '{' reduce using rule 72
  4476. ident reduce using rule 72
  4477. conid reduce using rule 72
  4478. qident reduce using rule 72
  4479. qconid reduce using rule 72
  4480. tyvar reduce using rule 72
  4481.  
  4482.  
  4483. State 174
  4484.  
  4485. TypeAtom -> '(' Type . ')' (rule 127)
  4486.  
  4487. ')' shift, and enter state 201
  4488.  
  4489.  
  4490. State 175
  4491.  
  4492. TypeAtom -> '(' ')' . (rule 126)
  4493.  
  4494. '->' reduce using rule 126
  4495. '=' reduce using rule 126
  4496. '=>' reduce using rule 126
  4497. '|' reduce using rule 126
  4498. '*' reduce using rule 126
  4499. '~' reduce using rule 126
  4500. '_' reduce using rule 126
  4501. then reduce using rule 126
  4502. else reduce using rule 126
  4503. begin reduce using rule 126
  4504. end reduce using rule 126
  4505. true reduce using rule 126
  4506. false reduce using rule 126
  4507. with reduce using rule 126
  4508. type reduce using rule 126
  4509. lazy reduce using rule 126
  4510. ',' reduce using rule 126
  4511. ':' reduce using rule 126
  4512. ';;' reduce using rule 126
  4513. ';' reduce using rule 126
  4514. '(' reduce using rule 126
  4515. ')' reduce using rule 126
  4516. '@{' reduce using rule 126
  4517. '?' reduce using rule 126
  4518. '{' reduce using rule 126
  4519. '}' reduce using rule 126
  4520. op reduce using rule 126
  4521. ident reduce using rule 126
  4522. opid reduce using rule 126
  4523. conid reduce using rule 126
  4524. qident reduce using rule 126
  4525. qopid reduce using rule 126
  4526. qconid reduce using rule 126
  4527. tyvar reduce using rule 126
  4528. hole reduce using rule 126
  4529. int reduce using rule 126
  4530. float reduce using rule 126
  4531. string reduce using rule 126
  4532. '$end' reduce using rule 126
  4533. '$sep' reduce using rule 126
  4534. %eof reduce using rule 126
  4535.  
  4536.  
  4537. State 176
  4538.  
  4539. ListE1__BoundTv__ -> BoundTv . (rule 150)
  4540. ListE1__BoundTv__ -> BoundTv . ListE1__BoundTv__ (rule 151)
  4541.  
  4542. '->' reduce using rule 150
  4543. '(' shift, and enter state 179
  4544.  
  4545. BoundTv goto state 176
  4546. ListE1__BoundTv__goto state 200
  4547.  
  4548. State 177
  4549.  
  4550. Type -> forall ListE1__BoundTv__ . '->' Type (rule 115)
  4551.  
  4552. '->' shift, and enter state 199
  4553.  
  4554.  
  4555. State 178
  4556.  
  4557. Type -> forall ListE1__tyvar__ . '.' Type (rule 114)
  4558.  
  4559. '.' shift, and enter state 198
  4560.  
  4561.  
  4562. State 179
  4563.  
  4564. BoundTv -> '(' . tyvar ':' Type ')' (rule 116)
  4565.  
  4566. tyvar shift, and enter state 197
  4567.  
  4568.  
  4569. State 180
  4570.  
  4571. ListE1__tyvar__ -> tyvar . (rule 154)
  4572. ListE1__tyvar__ -> tyvar . ListE1__tyvar__ (rule 155)
  4573.  
  4574. '.' reduce using rule 154
  4575. tyvar shift, and enter state 180
  4576.  
  4577. ListE1__tyvar__goto state 196
  4578.  
  4579. State 181
  4580.  
  4581. TypeApp -> TypeApp TypeAtom . (rule 120)
  4582.  
  4583. '->' reduce using rule 120
  4584. '=' reduce using rule 120
  4585. '=>' reduce using rule 120
  4586. '|' reduce using rule 120
  4587. '*' reduce using rule 120
  4588. '~' reduce using rule 120
  4589. '_' reduce using rule 120
  4590. then reduce using rule 120
  4591. else reduce using rule 120
  4592. begin reduce using rule 120
  4593. end reduce using rule 120
  4594. true reduce using rule 120
  4595. false reduce using rule 120
  4596. with reduce using rule 120
  4597. type reduce using rule 120
  4598. lazy reduce using rule 120
  4599. ',' reduce using rule 120
  4600. ':' reduce using rule 120
  4601. ';;' reduce using rule 120
  4602. ';' reduce using rule 120
  4603. '(' reduce using rule 120
  4604. ')' reduce using rule 120
  4605. '@{' reduce using rule 120
  4606. '?' reduce using rule 120
  4607. '{' reduce using rule 120
  4608. '}' reduce using rule 120
  4609. op reduce using rule 120
  4610. ident reduce using rule 120
  4611. opid reduce using rule 120
  4612. conid reduce using rule 120
  4613. qident reduce using rule 120
  4614. qopid reduce using rule 120
  4615. qconid reduce using rule 120
  4616. tyvar reduce using rule 120
  4617. hole reduce using rule 120
  4618. int reduce using rule 120
  4619. float reduce using rule 120
  4620. string reduce using rule 120
  4621. '$end' reduce using rule 120
  4622. '$sep' reduce using rule 120
  4623. %eof reduce using rule 120
  4624.  
  4625.  
  4626. State 182
  4627.  
  4628. TypeProd -> TypeApp '*' . TypeProd (rule 118)
  4629.  
  4630. type shift, and enter state 56
  4631. lazy shift, and enter state 57
  4632. '(' shift, and enter state 58
  4633. '{' shift, and enter state 59
  4634. ident shift, and enter state 33
  4635. conid shift, and enter state 34
  4636. qident shift, and enter state 35
  4637. qconid shift, and enter state 36
  4638. tyvar shift, and enter state 60
  4639.  
  4640. Var goto state 48
  4641. Con goto state 49
  4642. TyVar goto state 50
  4643. TypeProd goto state 195
  4644. TypeApp goto state 53
  4645. TypeAtom goto state 54
  4646.  
  4647. State 183
  4648.  
  4649. Type -> TypeProd '->' . Type (rule 112)
  4650.  
  4651. forall shift, and enter state 55
  4652. type shift, and enter state 56
  4653. lazy shift, and enter state 57
  4654. '(' shift, and enter state 58
  4655. '{' shift, and enter state 59
  4656. ident shift, and enter state 33
  4657. conid shift, and enter state 34
  4658. qident shift, and enter state 35
  4659. qconid shift, and enter state 36
  4660. tyvar shift, and enter state 60
  4661.  
  4662. Var goto state 48
  4663. Con goto state 49
  4664. TyVar goto state 50
  4665. Type goto state 194
  4666. TypeProd goto state 52
  4667. TypeApp goto state 53
  4668. TypeAtom goto state 54
  4669.  
  4670. State 184
  4671.  
  4672. Type -> TypeProd '=>' . Type (rule 113)
  4673.  
  4674. forall shift, and enter state 55
  4675. type shift, and enter state 56
  4676. lazy shift, and enter state 57
  4677. '(' shift, and enter state 58
  4678. '{' shift, and enter state 59
  4679. ident shift, and enter state 33
  4680. conid shift, and enter state 34
  4681. qident shift, and enter state 35
  4682. qconid shift, and enter state 36
  4683. tyvar shift, and enter state 60
  4684.  
  4685. Var goto state 48
  4686. Con goto state 49
  4687. TyVar goto state 50
  4688. Type goto state 193
  4689. TypeProd goto state 52
  4690. TypeApp goto state 53
  4691. TypeAtom goto state 54
  4692.  
  4693. State 185
  4694.  
  4695. Atom -> '@{' Type '}' . (rule 53)
  4696.  
  4697. '|' reduce using rule 53
  4698. '*' reduce using rule 53
  4699. '~' reduce using rule 53
  4700. '_' reduce using rule 53
  4701. then reduce using rule 53
  4702. else reduce using rule 53
  4703. begin reduce using rule 53
  4704. end reduce using rule 53
  4705. true reduce using rule 53
  4706. false reduce using rule 53
  4707. with reduce using rule 53
  4708. ',' reduce using rule 53
  4709. ':' reduce using rule 53
  4710. ';;' reduce using rule 53
  4711. ';' reduce using rule 53
  4712. '(' reduce using rule 53
  4713. ')' reduce using rule 53
  4714. '@{' reduce using rule 53
  4715. '?' reduce using rule 53
  4716. '{' reduce using rule 53
  4717. '}' reduce using rule 53
  4718. op reduce using rule 53
  4719. ident reduce using rule 53
  4720. opid reduce using rule 53
  4721. conid reduce using rule 53
  4722. qident reduce using rule 53
  4723. qopid reduce using rule 53
  4724. qconid reduce using rule 53
  4725. access reduce using rule 53
  4726. hole reduce using rule 53
  4727. int reduce using rule 53
  4728. float reduce using rule 53
  4729. string reduce using rule 53
  4730. '$end' reduce using rule 53
  4731. '$sep' reduce using rule 53
  4732. %eof reduce using rule 53
  4733.  
  4734.  
  4735. State 186
  4736.  
  4737. Rows__'='__Expr__ -> ident '=' . Expr ',' Rows__'='__Expr__ (rule 160)
  4738. Rows__'='__Expr__ -> ident '=' . Expr (rule 161)
  4739.  
  4740. '_' shift, and enter state 19
  4741. let shift, and enter state 46
  4742. fun shift, and enter state 21
  4743. if shift, and enter state 22
  4744. begin shift, and enter state 23
  4745. true shift, and enter state 24
  4746. false shift, and enter state 25
  4747. match shift, and enter state 26
  4748. function shift, and enter state 27
  4749. lazy shift, and enter state 28
  4750. '(' shift, and enter state 29
  4751. '@{' shift, and enter state 30
  4752. '?' shift, and enter state 31
  4753. '{' shift, and enter state 32
  4754. ident shift, and enter state 33
  4755. conid shift, and enter state 34
  4756. qident shift, and enter state 35
  4757. qconid shift, and enter state 36
  4758. qdotid shift, and enter state 37
  4759. hole shift, and enter state 38
  4760. int shift, and enter state 39
  4761. float shift, and enter state 40
  4762. string shift, and enter state 41
  4763.  
  4764. Expr goto state 192
  4765. ExprApp goto state 13
  4766. Expr0 goto state 14
  4767. Atom goto state 15
  4768. Var goto state 16
  4769. Con goto state 17
  4770. Lit goto state 18
  4771.  
  4772. State 187
  4773.  
  4774. Expr0 -> let BindGroup . ExprIn ExprBlock '$end' (rule 32)
  4775. BindGroup -> BindGroup . and Binding (rule 78)
  4776.  
  4777. and shift, and enter state 119
  4778. in shift, and enter state 147
  4779. '$in' shift, and enter state 148
  4780.  
  4781. ExprIn goto state 146
  4782.  
  4783. State 188
  4784.  
  4785. Atom -> '{' Rows__'='__Expr__ '}' . (rule 50)
  4786.  
  4787. '|' reduce using rule 50
  4788. '*' reduce using rule 50
  4789. '~' reduce using rule 50
  4790. '_' reduce using rule 50
  4791. then reduce using rule 50
  4792. else reduce using rule 50
  4793. begin reduce using rule 50
  4794. end reduce using rule 50
  4795. true reduce using rule 50
  4796. false reduce using rule 50
  4797. with reduce using rule 50
  4798. ',' reduce using rule 50
  4799. ':' reduce using rule 50
  4800. ';;' reduce using rule 50
  4801. ';' reduce using rule 50
  4802. '(' reduce using rule 50
  4803. ')' reduce using rule 50
  4804. '@{' reduce using rule 50
  4805. '?' reduce using rule 50
  4806. '{' reduce using rule 50
  4807. '}' reduce using rule 50
  4808. op reduce using rule 50
  4809. ident reduce using rule 50
  4810. opid reduce using rule 50
  4811. conid reduce using rule 50
  4812. qident reduce using rule 50
  4813. qopid reduce using rule 50
  4814. qconid reduce using rule 50
  4815. access reduce using rule 50
  4816. hole reduce using rule 50
  4817. int reduce using rule 50
  4818. float reduce using rule 50
  4819. string reduce using rule 50
  4820. '$end' reduce using rule 50
  4821. '$sep' reduce using rule 50
  4822. %eof reduce using rule 50
  4823.  
  4824.  
  4825. State 189
  4826.  
  4827. Atom -> '{' Expr with . Rows__'='__Expr__ '}' (rule 51)
  4828.  
  4829. '}' reduce using rule 159
  4830. ident shift, and enter state 191
  4831.  
  4832. Rows__'='__Expr__goto state 190
  4833.  
  4834. State 190
  4835.  
  4836. Atom -> '{' Expr with Rows__'='__Expr__ . '}' (rule 51)
  4837.  
  4838. '}' shift, and enter state 276
  4839.  
  4840.  
  4841. State 191
  4842.  
  4843. Rows__'='__Expr__ -> ident . '=' Expr ',' Rows__'='__Expr__ (rule 160)
  4844. Rows__'='__Expr__ -> ident . '=' Expr (rule 161)
  4845.  
  4846. '=' shift, and enter state 186
  4847.  
  4848.  
  4849. State 192
  4850.  
  4851. Expr -> Expr . Operator ExprApp (rule 27)
  4852. Rows__'='__Expr__ -> ident '=' Expr . ',' Rows__'='__Expr__ (rule 160)
  4853. Rows__'='__Expr__ -> ident '=' Expr . (rule 161)
  4854.  
  4855. '*' shift, and enter state 65
  4856. '~' shift, and enter state 66
  4857. ',' shift, and enter state 275
  4858. '}' reduce using rule 161
  4859. op shift, and enter state 68
  4860. opid shift, and enter state 69
  4861. qopid shift, and enter state 70
  4862.  
  4863. Operator goto state 105
  4864.  
  4865. State 193
  4866.  
  4867. Type -> TypeProd '=>' Type . (rule 113)
  4868.  
  4869. '=' reduce using rule 113
  4870. '|' reduce using rule 113
  4871. '*' reduce using rule 113
  4872. '~' reduce using rule 113
  4873. '_' reduce using rule 113
  4874. then reduce using rule 113
  4875. else reduce using rule 113
  4876. begin reduce using rule 113
  4877. end reduce using rule 113
  4878. true reduce using rule 113
  4879. false reduce using rule 113
  4880. with reduce using rule 113
  4881. ',' reduce using rule 113
  4882. ':' reduce using rule 113
  4883. ';;' reduce using rule 113
  4884. ';' reduce using rule 113
  4885. '(' reduce using rule 113
  4886. ')' reduce using rule 113
  4887. '@{' reduce using rule 113
  4888. '?' reduce using rule 113
  4889. '{' reduce using rule 113
  4890. '}' reduce using rule 113
  4891. op reduce using rule 113
  4892. ident reduce using rule 113
  4893. opid reduce using rule 113
  4894. conid reduce using rule 113
  4895. qident reduce using rule 113
  4896. qopid reduce using rule 113
  4897. qconid reduce using rule 113
  4898. hole reduce using rule 113
  4899. int reduce using rule 113
  4900. float reduce using rule 113
  4901. string reduce using rule 113
  4902. '$end' reduce using rule 113
  4903. '$sep' reduce using rule 113
  4904. %eof reduce using rule 113
  4905.  
  4906.  
  4907. State 194
  4908.  
  4909. Type -> TypeProd '->' Type . (rule 112)
  4910.  
  4911. '=' reduce using rule 112
  4912. '|' reduce using rule 112
  4913. '*' reduce using rule 112
  4914. '~' reduce using rule 112
  4915. '_' reduce using rule 112
  4916. then reduce using rule 112
  4917. else reduce using rule 112
  4918. begin reduce using rule 112
  4919. end reduce using rule 112
  4920. true reduce using rule 112
  4921. false reduce using rule 112
  4922. with reduce using rule 112
  4923. ',' reduce using rule 112
  4924. ':' reduce using rule 112
  4925. ';;' reduce using rule 112
  4926. ';' reduce using rule 112
  4927. '(' reduce using rule 112
  4928. ')' reduce using rule 112
  4929. '@{' reduce using rule 112
  4930. '?' reduce using rule 112
  4931. '{' reduce using rule 112
  4932. '}' reduce using rule 112
  4933. op reduce using rule 112
  4934. ident reduce using rule 112
  4935. opid reduce using rule 112
  4936. conid reduce using rule 112
  4937. qident reduce using rule 112
  4938. qopid reduce using rule 112
  4939. qconid reduce using rule 112
  4940. hole reduce using rule 112
  4941. int reduce using rule 112
  4942. float reduce using rule 112
  4943. string reduce using rule 112
  4944. '$end' reduce using rule 112
  4945. '$sep' reduce using rule 112
  4946. %eof reduce using rule 112
  4947.  
  4948.  
  4949. State 195
  4950.  
  4951. TypeProd -> TypeApp '*' TypeProd . (rule 118)
  4952.  
  4953. '->' reduce using rule 118
  4954. '=' reduce using rule 118
  4955. '=>' reduce using rule 118
  4956. '|' reduce using rule 118
  4957. '*' reduce using rule 118
  4958. '~' reduce using rule 118
  4959. '_' reduce using rule 118
  4960. then reduce using rule 118
  4961. else reduce using rule 118
  4962. begin reduce using rule 118
  4963. end reduce using rule 118
  4964. true reduce using rule 118
  4965. false reduce using rule 118
  4966. with reduce using rule 118
  4967. ',' reduce using rule 118
  4968. ':' reduce using rule 118
  4969. ';;' reduce using rule 118
  4970. ';' reduce using rule 118
  4971. '(' reduce using rule 118
  4972. ')' reduce using rule 118
  4973. '@{' reduce using rule 118
  4974. '?' reduce using rule 118
  4975. '{' reduce using rule 118
  4976. '}' reduce using rule 118
  4977. op reduce using rule 118
  4978. ident reduce using rule 118
  4979. opid reduce using rule 118
  4980. conid reduce using rule 118
  4981. qident reduce using rule 118
  4982. qopid reduce using rule 118
  4983. qconid reduce using rule 118
  4984. hole reduce using rule 118
  4985. int reduce using rule 118
  4986. float reduce using rule 118
  4987. string reduce using rule 118
  4988. '$end' reduce using rule 118
  4989. '$sep' reduce using rule 118
  4990. %eof reduce using rule 118
  4991.  
  4992.  
  4993. State 196
  4994.  
  4995. ListE1__tyvar__ -> tyvar ListE1__tyvar__ . (rule 155)
  4996.  
  4997. '.' reduce using rule 155
  4998.  
  4999.  
  5000. State 197
  5001.  
  5002. BoundTv -> '(' tyvar . ':' Type ')' (rule 116)
  5003.  
  5004. ':' shift, and enter state 274
  5005.  
  5006.  
  5007. State 198
  5008.  
  5009. Type -> forall ListE1__tyvar__ '.' . Type (rule 114)
  5010.  
  5011. forall shift, and enter state 55
  5012. type shift, and enter state 56
  5013. lazy shift, and enter state 57
  5014. '(' shift, and enter state 58
  5015. '{' shift, and enter state 59
  5016. ident shift, and enter state 33
  5017. conid shift, and enter state 34
  5018. qident shift, and enter state 35
  5019. qconid shift, and enter state 36
  5020. tyvar shift, and enter state 60
  5021.  
  5022. Var goto state 48
  5023. Con goto state 49
  5024. TyVar goto state 50
  5025. Type goto state 273
  5026. TypeProd goto state 52
  5027. TypeApp goto state 53
  5028. TypeAtom goto state 54
  5029.  
  5030. State 199
  5031.  
  5032. Type -> forall ListE1__BoundTv__ '->' . Type (rule 115)
  5033.  
  5034. forall shift, and enter state 55
  5035. type shift, and enter state 56
  5036. lazy shift, and enter state 57
  5037. '(' shift, and enter state 58
  5038. '{' shift, and enter state 59
  5039. ident shift, and enter state 33
  5040. conid shift, and enter state 34
  5041. qident shift, and enter state 35
  5042. qconid shift, and enter state 36
  5043. tyvar shift, and enter state 60
  5044.  
  5045. Var goto state 48
  5046. Con goto state 49
  5047. TyVar goto state 50
  5048. Type goto state 272
  5049. TypeProd goto state 52
  5050. TypeApp goto state 53
  5051. TypeAtom goto state 54
  5052.  
  5053. State 200
  5054.  
  5055. ListE1__BoundTv__ -> BoundTv ListE1__BoundTv__ . (rule 151)
  5056.  
  5057. '->' reduce using rule 151
  5058.  
  5059.  
  5060. State 201
  5061.  
  5062. TypeAtom -> '(' Type ')' . (rule 127)
  5063.  
  5064. '->' reduce using rule 127
  5065. '=' reduce using rule 127
  5066. '=>' reduce using rule 127
  5067. '|' reduce using rule 127
  5068. '*' reduce using rule 127
  5069. '~' reduce using rule 127
  5070. '_' reduce using rule 127
  5071. then reduce using rule 127
  5072. else reduce using rule 127
  5073. begin reduce using rule 127
  5074. end reduce using rule 127
  5075. true reduce using rule 127
  5076. false reduce using rule 127
  5077. with reduce using rule 127
  5078. type reduce using rule 127
  5079. lazy reduce using rule 127
  5080. ',' reduce using rule 127
  5081. ':' reduce using rule 127
  5082. ';;' reduce using rule 127
  5083. ';' reduce using rule 127
  5084. '(' reduce using rule 127
  5085. ')' reduce using rule 127
  5086. '@{' reduce using rule 127
  5087. '?' reduce using rule 127
  5088. '{' reduce using rule 127
  5089. '}' reduce using rule 127
  5090. op reduce using rule 127
  5091. ident reduce using rule 127
  5092. opid reduce using rule 127
  5093. conid reduce using rule 127
  5094. qident reduce using rule 127
  5095. qopid reduce using rule 127
  5096. qconid reduce using rule 127
  5097. tyvar reduce using rule 127
  5098. hole reduce using rule 127
  5099. int reduce using rule 127
  5100. float reduce using rule 127
  5101. string reduce using rule 127
  5102. '$end' reduce using rule 127
  5103. '$sep' reduce using rule 127
  5104. %eof reduce using rule 127
  5105.  
  5106.  
  5107. State 202
  5108.  
  5109. Rows__':'__Type__ -> ident ':' . Type ',' Rows__':'__Type__ (rule 157)
  5110. Rows__':'__Type__ -> ident ':' . Type (rule 158)
  5111.  
  5112. forall shift, and enter state 55
  5113. type shift, and enter state 56
  5114. lazy shift, and enter state 57
  5115. '(' shift, and enter state 58
  5116. '{' shift, and enter state 59
  5117. ident shift, and enter state 33
  5118. conid shift, and enter state 34
  5119. qident shift, and enter state 35
  5120. qconid shift, and enter state 36
  5121. tyvar shift, and enter state 60
  5122.  
  5123. Var goto state 48
  5124. Con goto state 49
  5125. TyVar goto state 50
  5126. Type goto state 271
  5127. TypeProd goto state 52
  5128. TypeApp goto state 53
  5129. TypeAtom goto state 54
  5130.  
  5131. State 203
  5132.  
  5133. TypeAtom -> '{' Rows__':'__Type__ '}' . (rule 128)
  5134.  
  5135. '->' reduce using rule 128
  5136. '=' reduce using rule 128
  5137. '=>' reduce using rule 128
  5138. '|' reduce using rule 128
  5139. '*' reduce using rule 128
  5140. '~' reduce using rule 128
  5141. '_' reduce using rule 128
  5142. then reduce using rule 128
  5143. else reduce using rule 128
  5144. begin reduce using rule 128
  5145. end reduce using rule 128
  5146. true reduce using rule 128
  5147. false reduce using rule 128
  5148. with reduce using rule 128
  5149. type reduce using rule 128
  5150. lazy reduce using rule 128
  5151. ',' reduce using rule 128
  5152. ':' reduce using rule 128
  5153. ';;' reduce using rule 128
  5154. ';' reduce using rule 128
  5155. '(' reduce using rule 128
  5156. ')' reduce using rule 128
  5157. '@{' reduce using rule 128
  5158. '?' reduce using rule 128
  5159. '{' reduce using rule 128
  5160. '}' reduce using rule 128
  5161. op reduce using rule 128
  5162. ident reduce using rule 128
  5163. opid reduce using rule 128
  5164. conid reduce using rule 128
  5165. qident reduce using rule 128
  5166. qopid reduce using rule 128
  5167. qconid reduce using rule 128
  5168. tyvar reduce using rule 128
  5169. hole reduce using rule 128
  5170. int reduce using rule 128
  5171. float reduce using rule 128
  5172. string reduce using rule 128
  5173. '$end' reduce using rule 128
  5174. '$sep' reduce using rule 128
  5175. %eof reduce using rule 128
  5176.  
  5177.  
  5178. State 204
  5179.  
  5180. TypeAtom -> '{' Type '|' . Rows__':'__Type__ '}' (rule 129)
  5181.  
  5182. '}' reduce using rule 156
  5183. ident shift, and enter state 270
  5184.  
  5185. Rows__':'__Type__goto state 269
  5186.  
  5187. State 205
  5188.  
  5189. NullSection -> Section . (rule 71)
  5190.  
  5191. ',' reduce using rule 71
  5192. ')' reduce using rule 71
  5193.  
  5194.  
  5195. State 206
  5196.  
  5197. List1__NullSection__','__ -> NullSection . (rule 140)
  5198. List1__NullSection__','__ -> NullSection . ',' List1__NullSection__','__ (rule 141)
  5199.  
  5200. ',' shift, and enter state 268
  5201. ')' reduce using rule 140
  5202.  
  5203.  
  5204. State 207
  5205.  
  5206. Atom -> '(' NullSection ',' List1__NullSection__','__ . ')' (rule 49)
  5207.  
  5208. ')' shift, and enter state 267
  5209.  
  5210.  
  5211. State 208
  5212.  
  5213. Arm -> '|' List1__MPattern__','__ '->' . ExprBlock (rule 107)
  5214.  
  5215. '_' shift, and enter state 19
  5216. let shift, and enter state 46
  5217. fun shift, and enter state 21
  5218. if shift, and enter state 22
  5219. begin shift, and enter state 23
  5220. true shift, and enter state 24
  5221. false shift, and enter state 25
  5222. match shift, and enter state 26
  5223. function shift, and enter state 27
  5224. lazy shift, and enter state 28
  5225. '(' shift, and enter state 29
  5226. '@{' shift, and enter state 30
  5227. '?' shift, and enter state 31
  5228. '{' shift, and enter state 32
  5229. ident shift, and enter state 33
  5230. conid shift, and enter state 34
  5231. qident shift, and enter state 35
  5232. qconid shift, and enter state 36
  5233. qdotid shift, and enter state 37
  5234. hole shift, and enter state 38
  5235. int shift, and enter state 39
  5236. float shift, and enter state 40
  5237. string shift, and enter state 41
  5238.  
  5239. Expr goto state 78
  5240. ExprApp goto state 13
  5241. Expr0 goto state 14
  5242. Atom goto state 15
  5243. ExprBlock goto state 266
  5244. Var goto state 16
  5245. Con goto state 17
  5246. Lit goto state 18
  5247. List1__Expr__ExprSep__goto state 217
  5248.  
  5249. State 209
  5250.  
  5251. List1__MPattern__','__ -> MPattern ',' . List1__MPattern__','__ (rule 139)
  5252.  
  5253. '_' shift, and enter state 86
  5254. true shift, and enter state 24
  5255. false shift, and enter state 25
  5256. '(' shift, and enter state 87
  5257. '{' shift, and enter state 89
  5258. ident shift, and enter state 90
  5259. conid shift, and enter state 34
  5260. qconid shift, and enter state 36
  5261. int shift, and enter state 39
  5262. float shift, and enter state 40
  5263. string shift, and enter state 41
  5264.  
  5265. Con goto state 161
  5266. Lit goto state 82
  5267. MPattern goto state 162
  5268. ArgP goto state 163
  5269. List1__MPattern__','__goto state 265
  5270.  
  5271. State 210
  5272.  
  5273. MPattern -> MPattern ':' . TypeProd (rule 97)
  5274.  
  5275. type shift, and enter state 56
  5276. lazy shift, and enter state 57
  5277. '(' shift, and enter state 58
  5278. '{' shift, and enter state 59
  5279. ident shift, and enter state 33
  5280. conid shift, and enter state 34
  5281. qident shift, and enter state 35
  5282. qconid shift, and enter state 36
  5283. tyvar shift, and enter state 60
  5284.  
  5285. Var goto state 48
  5286. Con goto state 49
  5287. TyVar goto state 50
  5288. TypeProd goto state 264
  5289. TypeApp goto state 53
  5290. TypeAtom goto state 54
  5291.  
  5292. State 211
  5293.  
  5294. MPattern -> Con ArgP . (rule 96)
  5295.  
  5296. '->' reduce using rule 96
  5297. ',' reduce using rule 96
  5298. ':' reduce using rule 96
  5299.  
  5300.  
  5301. State 212
  5302.  
  5303. List1__Expr__','__ -> Expr ',' List1__Expr__','__ . (rule 135)
  5304.  
  5305. with reduce using rule 135
  5306.  
  5307.  
  5308. State 213
  5309.  
  5310. Expr0 -> match List1__Expr__','__ with ListE1__Arm__ . '$end' (rule 35)
  5311.  
  5312. '$end' shift, and enter state 263
  5313.  
  5314.  
  5315. State 214
  5316.  
  5317. Expr0 -> match List1__Expr__','__ with '(' . ')' (rule 36)
  5318.  
  5319. ')' shift, and enter state 262
  5320.  
  5321.  
  5322. State 215
  5323.  
  5324. List1__Expr__ExprSep__ -> Expr ExprSep List1__Expr__ExprSep__ . (rule 137)
  5325.  
  5326. '|' reduce using rule 137
  5327. else reduce using rule 137
  5328. end reduce using rule 137
  5329. '$end' reduce using rule 137
  5330.  
  5331.  
  5332. State 216
  5333.  
  5334. Expr0 -> if Expr then ExprBlock . else ExprBlock '$end' (rule 34)
  5335.  
  5336. else shift, and enter state 261
  5337.  
  5338.  
  5339. State 217
  5340.  
  5341. ExprBlock -> List1__Expr__ExprSep__ . (rule 55)
  5342.  
  5343. '|' reduce using rule 55
  5344. else reduce using rule 55
  5345. '$end' reduce using rule 55
  5346.  
  5347.  
  5348. State 218
  5349.  
  5350. Expr0 -> fun ListE1__Parameter__ '->' ExprBlock . '$end' (rule 31)
  5351.  
  5352. '$end' shift, and enter state 260
  5353.  
  5354.  
  5355. State 219
  5356.  
  5357. Pattern -> Pattern ':' . Type (rule 100)
  5358.  
  5359. forall shift, and enter state 55
  5360. type shift, and enter state 56
  5361. lazy shift, and enter state 57
  5362. '(' shift, and enter state 58
  5363. '{' shift, and enter state 59
  5364. ident shift, and enter state 33
  5365. conid shift, and enter state 34
  5366. qident shift, and enter state 35
  5367. qconid shift, and enter state 36
  5368. tyvar shift, and enter state 60
  5369.  
  5370. Var goto state 48
  5371. Con goto state 49
  5372. TyVar goto state 50
  5373. Type goto state 259
  5374. TypeProd goto state 52
  5375. TypeApp goto state 53
  5376. TypeAtom goto state 54
  5377.  
  5378. State 220
  5379.  
  5380. Parameter -> '?(' Pattern ')' . (rule 110)
  5381.  
  5382. '->' reduce using rule 110
  5383. '=' reduce using rule 110
  5384. '_' reduce using rule 110
  5385. true reduce using rule 110
  5386. false reduce using rule 110
  5387. ':' reduce using rule 110
  5388. '(' reduce using rule 110
  5389. '?(' reduce using rule 110
  5390. '{' reduce using rule 110
  5391. ident reduce using rule 110
  5392. iident reduce using rule 110
  5393. conid reduce using rule 110
  5394. qconid reduce using rule 110
  5395. int reduce using rule 110
  5396. float reduce using rule 110
  5397. string reduce using rule 110
  5398.  
  5399.  
  5400. State 221
  5401.  
  5402. Rows__'='__Pattern__ -> ident '=' . Pattern ',' Rows__'='__Pattern__ (rule 163)
  5403. Rows__'='__Pattern__ -> ident '=' . Pattern (rule 164)
  5404.  
  5405. '_' shift, and enter state 86
  5406. true shift, and enter state 24
  5407. false shift, and enter state 25
  5408. '(' shift, and enter state 87
  5409. '{' shift, and enter state 89
  5410. ident shift, and enter state 90
  5411. conid shift, and enter state 34
  5412. qconid shift, and enter state 36
  5413. int shift, and enter state 39
  5414. float shift, and enter state 40
  5415. string shift, and enter state 41
  5416.  
  5417. Con goto state 131
  5418. Lit goto state 82
  5419. Pattern goto state 258
  5420. ArgP goto state 133
  5421.  
  5422. State 222
  5423.  
  5424. ArgP -> '{' Rows__'='__Pattern__ '}' . (rule 104)
  5425.  
  5426. '->' reduce using rule 104
  5427. '=' reduce using rule 104
  5428. '*' reduce using rule 104
  5429. '~' reduce using rule 104
  5430. '_' reduce using rule 104
  5431. true reduce using rule 104
  5432. false reduce using rule 104
  5433. ',' reduce using rule 104
  5434. ':' reduce using rule 104
  5435. '(' reduce using rule 104
  5436. '?(' reduce using rule 104
  5437. ')' reduce using rule 104
  5438. '{' reduce using rule 104
  5439. '}' reduce using rule 104
  5440. op reduce using rule 104
  5441. ident reduce using rule 104
  5442. iident reduce using rule 104
  5443. opid reduce using rule 104
  5444. conid reduce using rule 104
  5445. qconid reduce using rule 104
  5446. int reduce using rule 104
  5447. float reduce using rule 104
  5448. string reduce using rule 104
  5449.  
  5450.  
  5451. State 223
  5452.  
  5453. Expr0 -> let BindGroup ExprIn ExprBlock . '$end' (rule 32)
  5454.  
  5455. '$end' shift, and enter state 257
  5456.  
  5457.  
  5458. State 224
  5459.  
  5460. PreBinding -> BindName ListE__Parameter__ '=' . ExprBlock '$end' (rule 81)
  5461.  
  5462. '_' shift, and enter state 19
  5463. let shift, and enter state 46
  5464. fun shift, and enter state 21
  5465. if shift, and enter state 22
  5466. begin shift, and enter state 23
  5467. true shift, and enter state 24
  5468. false shift, and enter state 25
  5469. match shift, and enter state 26
  5470. function shift, and enter state 27
  5471. lazy shift, and enter state 28
  5472. '(' shift, and enter state 29
  5473. '@{' shift, and enter state 30
  5474. '?' shift, and enter state 31
  5475. '{' shift, and enter state 32
  5476. ident shift, and enter state 33
  5477. conid shift, and enter state 34
  5478. qident shift, and enter state 35
  5479. qconid shift, and enter state 36
  5480. qdotid shift, and enter state 37
  5481. hole shift, and enter state 38
  5482. int shift, and enter state 39
  5483. float shift, and enter state 40
  5484. string shift, and enter state 41
  5485.  
  5486. Expr goto state 78
  5487. ExprApp goto state 13
  5488. Expr0 goto state 14
  5489. Atom goto state 15
  5490. ExprBlock goto state 256
  5491. Var goto state 16
  5492. Con goto state 17
  5493. Lit goto state 18
  5494. List1__Expr__ExprSep__goto state 217
  5495.  
  5496. State 225
  5497.  
  5498. PreBinding -> BindName ListE__Parameter__ ':' . Type '=' ExprBlock '$end' (rule 82)
  5499.  
  5500. forall shift, and enter state 55
  5501. type shift, and enter state 56
  5502. lazy shift, and enter state 57
  5503. '(' shift, and enter state 58
  5504. '{' shift, and enter state 59
  5505. ident shift, and enter state 33
  5506. conid shift, and enter state 34
  5507. qident shift, and enter state 35
  5508. qconid shift, and enter state 36
  5509. tyvar shift, and enter state 60
  5510.  
  5511. Var goto state 48
  5512. Con goto state 49
  5513. TyVar goto state 50
  5514. Type goto state 255
  5515. TypeProd goto state 52
  5516. TypeApp goto state 53
  5517. TypeAtom goto state 54
  5518.  
  5519. State 226
  5520.  
  5521. PreBinding -> ArgP BindOp ArgP . '=' ExprBlock '$end' (rule 83)
  5522.  
  5523. '=' shift, and enter state 254
  5524.  
  5525.  
  5526. State 227
  5527.  
  5528. Expr0 -> let open Con ExprIn . ExprBlock '$end' (rule 33)
  5529.  
  5530. '_' shift, and enter state 19
  5531. let shift, and enter state 46
  5532. fun shift, and enter state 21
  5533. if shift, and enter state 22
  5534. begin shift, and enter state 23
  5535. true shift, and enter state 24
  5536. false shift, and enter state 25
  5537. match shift, and enter state 26
  5538. function shift, and enter state 27
  5539. lazy shift, and enter state 28
  5540. '(' shift, and enter state 29
  5541. '@{' shift, and enter state 30
  5542. '?' shift, and enter state 31
  5543. '{' shift, and enter state 32
  5544. ident shift, and enter state 33
  5545. conid shift, and enter state 34
  5546. qident shift, and enter state 35
  5547. qconid shift, and enter state 36
  5548. qdotid shift, and enter state 37
  5549. hole shift, and enter state 38
  5550. int shift, and enter state 39
  5551. float shift, and enter state 40
  5552. string shift, and enter state 41
  5553.  
  5554. Expr goto state 78
  5555. ExprApp goto state 13
  5556. Expr0 goto state 14
  5557. Atom goto state 15
  5558. ExprBlock goto state 253
  5559. Var goto state 16
  5560. Con goto state 17
  5561. Lit goto state 18
  5562. List1__Expr__ExprSep__goto state 217
  5563.  
  5564. State 228
  5565.  
  5566. BindName -> '(' op ')' . (rule 85)
  5567.  
  5568. '=' reduce using rule 85
  5569. '_' reduce using rule 85
  5570. true reduce using rule 85
  5571. false reduce using rule 85
  5572. ':' reduce using rule 85
  5573. '(' reduce using rule 85
  5574. '?(' reduce using rule 85
  5575. '{' reduce using rule 85
  5576. ident reduce using rule 85
  5577. iident reduce using rule 85
  5578. conid reduce using rule 85
  5579. qconid reduce using rule 85
  5580. int reduce using rule 85
  5581. float reduce using rule 85
  5582. string reduce using rule 85
  5583.  
  5584.  
  5585. State 229
  5586.  
  5587. ArgP -> '(' List__Pattern__','__ ')' . (rule 105)
  5588.  
  5589. '->' reduce using rule 105
  5590. '=' reduce using rule 105
  5591. '*' reduce using rule 105
  5592. '~' reduce using rule 105
  5593. '_' reduce using rule 105
  5594. true reduce using rule 105
  5595. false reduce using rule 105
  5596. ',' reduce using rule 105
  5597. ':' reduce using rule 105
  5598. '(' reduce using rule 105
  5599. '?(' reduce using rule 105
  5600. ')' reduce using rule 105
  5601. '{' reduce using rule 105
  5602. '}' reduce using rule 105
  5603. op reduce using rule 105
  5604. ident reduce using rule 105
  5605. iident reduce using rule 105
  5606. opid reduce using rule 105
  5607. conid reduce using rule 105
  5608. qconid reduce using rule 105
  5609. int reduce using rule 105
  5610. float reduce using rule 105
  5611. string reduce using rule 105
  5612.  
  5613.  
  5614. State 230
  5615.  
  5616. List1__Pattern__','__ -> Pattern ',' . List1__Pattern__','__ (rule 166)
  5617.  
  5618. '_' shift, and enter state 86
  5619. true shift, and enter state 24
  5620. false shift, and enter state 25
  5621. '(' shift, and enter state 87
  5622. '{' shift, and enter state 89
  5623. ident shift, and enter state 90
  5624. conid shift, and enter state 34
  5625. qconid shift, and enter state 36
  5626. int shift, and enter state 39
  5627. float shift, and enter state 40
  5628. string shift, and enter state 41
  5629.  
  5630. Con goto state 131
  5631. Lit goto state 82
  5632. Pattern goto state 132
  5633. ArgP goto state 133
  5634. List1__Pattern__','__goto state 252
  5635.  
  5636. State 231
  5637.  
  5638. Pattern -> Con ArgP . (rule 99)
  5639.  
  5640. ',' reduce using rule 99
  5641. ':' reduce using rule 99
  5642. ')' reduce using rule 99
  5643. '}' reduce using rule 99
  5644.  
  5645.  
  5646. State 232
  5647.  
  5648. Top -> module conid '=' Con . (rule 13)
  5649.  
  5650. end reduce using rule 13
  5651. ';;' reduce using rule 13
  5652. '$end' reduce using rule 13
  5653. '$sep' reduce using rule 13
  5654. %eof reduce using rule 13
  5655.  
  5656.  
  5657. State 233
  5658.  
  5659. Top -> module conid '=' begin . Tops end (rule 11)
  5660.  
  5661. let shift, and enter state 5
  5662. external shift, and enter state 6
  5663. type shift, and enter state 7
  5664. module shift, and enter state 8
  5665. open shift, and enter state 9
  5666.  
  5667. Tops goto state 251
  5668. Top goto state 3
  5669. List1__Top__TopSep__goto state 4
  5670.  
  5671. State 234
  5672.  
  5673. Top -> module conid '=' '$begin' . Tops '$end' (rule 12)
  5674.  
  5675. let shift, and enter state 5
  5676. external shift, and enter state 6
  5677. type shift, and enter state 7
  5678. module shift, and enter state 8
  5679. open shift, and enter state 9
  5680.  
  5681. Tops goto state 250
  5682. Top goto state 3
  5683. List1__Top__TopSep__goto state 4
  5684.  
  5685. State 235
  5686.  
  5687. Top -> module qconid '=' begin . Tops end (rule 10)
  5688.  
  5689. let shift, and enter state 5
  5690. external shift, and enter state 6
  5691. type shift, and enter state 7
  5692. module shift, and enter state 8
  5693. open shift, and enter state 9
  5694.  
  5695. Tops goto state 249
  5696. Top goto state 3
  5697. List1__Top__TopSep__goto state 4
  5698.  
  5699. State 236
  5700.  
  5701. TyConArg -> '{' TyVar . ':' Type '}' (rule 17)
  5702.  
  5703. ':' shift, and enter state 248
  5704.  
  5705.  
  5706. State 237
  5707.  
  5708. TyConArg -> '(' TyVar . ':' Type ')' (rule 16)
  5709.  
  5710. ':' shift, and enter state 247
  5711.  
  5712.  
  5713. State 238
  5714.  
  5715. Top -> type ident ListE__TyConArg__ '=' . List1__Ctor__'|'__ (rule 8)
  5716. Top -> type ident ListE__TyConArg__ '=' . '|' List1__Ctor__'|'__ (rule 9)
  5717.  
  5718. '|' shift, and enter state 245
  5719. conid shift, and enter state 246
  5720.  
  5721. Ctor goto state 243
  5722. List1__Ctor__'|'__goto state 244
  5723.  
  5724. State 239
  5725.  
  5726. ListE1__TyConArg__ -> TyConArg ListE1__TyConArg__ . (rule 168)
  5727.  
  5728. '=' reduce using rule 168
  5729. end reduce using rule 168
  5730. ';;' reduce using rule 168
  5731. '$end' reduce using rule 168
  5732. '$sep' reduce using rule 168
  5733. %eof reduce using rule 168
  5734.  
  5735.  
  5736. State 240
  5737.  
  5738. Top -> external val ident ':' . Type '=' string (rule 6)
  5739.  
  5740. forall shift, and enter state 55
  5741. type shift, and enter state 56
  5742. lazy shift, and enter state 57
  5743. '(' shift, and enter state 58
  5744. '{' shift, and enter state 59
  5745. ident shift, and enter state 33
  5746. conid shift, and enter state 34
  5747. qident shift, and enter state 35
  5748. qconid shift, and enter state 36
  5749. tyvar shift, and enter state 60
  5750.  
  5751. Var goto state 48
  5752. Con goto state 49
  5753. TyVar goto state 50
  5754. Type goto state 242
  5755. TypeProd goto state 52
  5756. TypeApp goto state 53
  5757. TypeAtom goto state 54
  5758.  
  5759. State 241
  5760.  
  5761. BindGroup -> BindGroup and Binding . (rule 78)
  5762.  
  5763. and reduce using rule 78
  5764. end reduce using rule 78
  5765. in reduce using rule 78
  5766. ';;' reduce using rule 78
  5767. '$end' reduce using rule 78
  5768. '$in' reduce using rule 78
  5769. '$sep' reduce using rule 78
  5770. %eof reduce using rule 78
  5771.  
  5772.  
  5773. State 242
  5774.  
  5775. Top -> external val ident ':' Type . '=' string (rule 6)
  5776.  
  5777. '=' shift, and enter state 297
  5778.  
  5779.  
  5780. State 243
  5781.  
  5782. List1__Ctor__'|'__ -> Ctor . (rule 132)
  5783. List1__Ctor__'|'__ -> Ctor . '|' List1__Ctor__'|'__ (rule 133)
  5784.  
  5785. '|' shift, and enter state 296
  5786. end reduce using rule 132
  5787. ';;' reduce using rule 132
  5788. '$end' reduce using rule 132
  5789. '$sep' reduce using rule 132
  5790. %eof reduce using rule 132
  5791.  
  5792.  
  5793. State 244
  5794.  
  5795. Top -> type ident ListE__TyConArg__ '=' List1__Ctor__'|'__ . (rule 8)
  5796.  
  5797. end reduce using rule 8
  5798. ';;' reduce using rule 8
  5799. '$end' reduce using rule 8
  5800. '$sep' reduce using rule 8
  5801. %eof reduce using rule 8
  5802.  
  5803.  
  5804. State 245
  5805.  
  5806. Top -> type ident ListE__TyConArg__ '=' '|' . List1__Ctor__'|'__ (rule 9)
  5807.  
  5808. conid shift, and enter state 246
  5809.  
  5810. Ctor goto state 243
  5811. List1__Ctor__'|'__goto state 295
  5812.  
  5813. State 246
  5814.  
  5815. Ctor -> conid . (rule 18)
  5816. Ctor -> conid . of Type (rule 19)
  5817. Ctor -> conid . ':' Type (rule 20)
  5818.  
  5819. '|' reduce using rule 18
  5820. end reduce using rule 18
  5821. of shift, and enter state 293
  5822. ':' shift, and enter state 294
  5823. ';;' reduce using rule 18
  5824. '$end' reduce using rule 18
  5825. '$sep' reduce using rule 18
  5826. %eof reduce using rule 18
  5827.  
  5828.  
  5829. State 247
  5830.  
  5831. TyConArg -> '(' TyVar ':' . Type ')' (rule 16)
  5832.  
  5833. forall shift, and enter state 55
  5834. type shift, and enter state 56
  5835. lazy shift, and enter state 57
  5836. '(' shift, and enter state 58
  5837. '{' shift, and enter state 59
  5838. ident shift, and enter state 33
  5839. conid shift, and enter state 34
  5840. qident shift, and enter state 35
  5841. qconid shift, and enter state 36
  5842. tyvar shift, and enter state 60
  5843.  
  5844. Var goto state 48
  5845. Con goto state 49
  5846. TyVar goto state 50
  5847. Type goto state 292
  5848. TypeProd goto state 52
  5849. TypeApp goto state 53
  5850. TypeAtom goto state 54
  5851.  
  5852. State 248
  5853.  
  5854. TyConArg -> '{' TyVar ':' . Type '}' (rule 17)
  5855.  
  5856. forall shift, and enter state 55
  5857. type shift, and enter state 56
  5858. lazy shift, and enter state 57
  5859. '(' shift, and enter state 58
  5860. '{' shift, and enter state 59
  5861. ident shift, and enter state 33
  5862. conid shift, and enter state 34
  5863. qident shift, and enter state 35
  5864. qconid shift, and enter state 36
  5865. tyvar shift, and enter state 60
  5866.  
  5867. Var goto state 48
  5868. Con goto state 49
  5869. TyVar goto state 50
  5870. Type goto state 291
  5871. TypeProd goto state 52
  5872. TypeApp goto state 53
  5873. TypeAtom goto state 54
  5874.  
  5875. State 249
  5876.  
  5877. Top -> module qconid '=' begin Tops . end (rule 10)
  5878.  
  5879. end shift, and enter state 290
  5880.  
  5881.  
  5882. State 250
  5883.  
  5884. Top -> module conid '=' '$begin' Tops . '$end' (rule 12)
  5885.  
  5886. '$end' shift, and enter state 289
  5887.  
  5888.  
  5889. State 251
  5890.  
  5891. Top -> module conid '=' begin Tops . end (rule 11)
  5892.  
  5893. end shift, and enter state 288
  5894.  
  5895.  
  5896. State 252
  5897.  
  5898. List1__Pattern__','__ -> Pattern ',' List1__Pattern__','__ . (rule 166)
  5899.  
  5900. ')' reduce using rule 166
  5901.  
  5902.  
  5903. State 253
  5904.  
  5905. Expr0 -> let open Con ExprIn ExprBlock . '$end' (rule 33)
  5906.  
  5907. '$end' shift, and enter state 287
  5908.  
  5909.  
  5910. State 254
  5911.  
  5912. PreBinding -> ArgP BindOp ArgP '=' . ExprBlock '$end' (rule 83)
  5913.  
  5914. '_' shift, and enter state 19
  5915. let shift, and enter state 46
  5916. fun shift, and enter state 21
  5917. if shift, and enter state 22
  5918. begin shift, and enter state 23
  5919. true shift, and enter state 24
  5920. false shift, and enter state 25
  5921. match shift, and enter state 26
  5922. function shift, and enter state 27
  5923. lazy shift, and enter state 28
  5924. '(' shift, and enter state 29
  5925. '@{' shift, and enter state 30
  5926. '?' shift, and enter state 31
  5927. '{' shift, and enter state 32
  5928. ident shift, and enter state 33
  5929. conid shift, and enter state 34
  5930. qident shift, and enter state 35
  5931. qconid shift, and enter state 36
  5932. qdotid shift, and enter state 37
  5933. hole shift, and enter state 38
  5934. int shift, and enter state 39
  5935. float shift, and enter state 40
  5936. string shift, and enter state 41
  5937.  
  5938. Expr goto state 78
  5939. ExprApp goto state 13
  5940. Expr0 goto state 14
  5941. Atom goto state 15
  5942. ExprBlock goto state 286
  5943. Var goto state 16
  5944. Con goto state 17
  5945. Lit goto state 18
  5946. List1__Expr__ExprSep__goto state 217
  5947.  
  5948. State 255
  5949.  
  5950. PreBinding -> BindName ListE__Parameter__ ':' Type . '=' ExprBlock '$end' (rule 82)
  5951.  
  5952. '=' shift, and enter state 285
  5953.  
  5954.  
  5955. State 256
  5956.  
  5957. PreBinding -> BindName ListE__Parameter__ '=' ExprBlock . '$end' (rule 81)
  5958.  
  5959. '$end' shift, and enter state 284
  5960.  
  5961.  
  5962. State 257
  5963.  
  5964. Expr0 -> let BindGroup ExprIn ExprBlock '$end' . (rule 32)
  5965.  
  5966. '|' reduce using rule 32
  5967. '*' reduce using rule 32
  5968. '~' reduce using rule 32
  5969. '_' reduce using rule 32
  5970. then reduce using rule 32
  5971. else reduce using rule 32
  5972. begin reduce using rule 32
  5973. end reduce using rule 32
  5974. true reduce using rule 32
  5975. false reduce using rule 32
  5976. with reduce using rule 32
  5977. ',' reduce using rule 32
  5978. ':' reduce using rule 32
  5979. ';;' reduce using rule 32
  5980. ';' reduce using rule 32
  5981. '(' reduce using rule 32
  5982. ')' reduce using rule 32
  5983. '@{' reduce using rule 32
  5984. '?' reduce using rule 32
  5985. '{' reduce using rule 32
  5986. '}' reduce using rule 32
  5987. op reduce using rule 32
  5988. ident reduce using rule 32
  5989. opid reduce using rule 32
  5990. conid reduce using rule 32
  5991. qident reduce using rule 32
  5992. qopid reduce using rule 32
  5993. qconid reduce using rule 32
  5994. hole reduce using rule 32
  5995. int reduce using rule 32
  5996. float reduce using rule 32
  5997. string reduce using rule 32
  5998. '$end' reduce using rule 32
  5999. '$sep' reduce using rule 32
  6000. %eof reduce using rule 32
  6001.  
  6002.  
  6003. State 258
  6004.  
  6005. Pattern -> Pattern . ':' Type (rule 100)
  6006. Rows__'='__Pattern__ -> ident '=' Pattern . ',' Rows__'='__Pattern__ (rule 163)
  6007. Rows__'='__Pattern__ -> ident '=' Pattern . (rule 164)
  6008.  
  6009. ',' shift, and enter state 283
  6010. ':' shift, and enter state 219
  6011. '}' reduce using rule 164
  6012.  
  6013.  
  6014. State 259
  6015.  
  6016. Pattern -> Pattern ':' Type . (rule 100)
  6017.  
  6018. ',' reduce using rule 100
  6019. ':' reduce using rule 100
  6020. ')' reduce using rule 100
  6021. '}' reduce using rule 100
  6022.  
  6023.  
  6024. State 260
  6025.  
  6026. Expr0 -> fun ListE1__Parameter__ '->' ExprBlock '$end' . (rule 31)
  6027.  
  6028. '|' reduce using rule 31
  6029. '*' reduce using rule 31
  6030. '~' reduce using rule 31
  6031. '_' reduce using rule 31
  6032. then reduce using rule 31
  6033. else reduce using rule 31
  6034. begin reduce using rule 31
  6035. end reduce using rule 31
  6036. true reduce using rule 31
  6037. false reduce using rule 31
  6038. with reduce using rule 31
  6039. ',' reduce using rule 31
  6040. ':' reduce using rule 31
  6041. ';;' reduce using rule 31
  6042. ';' reduce using rule 31
  6043. '(' reduce using rule 31
  6044. ')' reduce using rule 31
  6045. '@{' reduce using rule 31
  6046. '?' reduce using rule 31
  6047. '{' reduce using rule 31
  6048. '}' reduce using rule 31
  6049. op reduce using rule 31
  6050. ident reduce using rule 31
  6051. opid reduce using rule 31
  6052. conid reduce using rule 31
  6053. qident reduce using rule 31
  6054. qopid reduce using rule 31
  6055. qconid reduce using rule 31
  6056. hole reduce using rule 31
  6057. int reduce using rule 31
  6058. float reduce using rule 31
  6059. string reduce using rule 31
  6060. '$end' reduce using rule 31
  6061. '$sep' reduce using rule 31
  6062. %eof reduce using rule 31
  6063.  
  6064.  
  6065. State 261
  6066.  
  6067. Expr0 -> if Expr then ExprBlock else . ExprBlock '$end' (rule 34)
  6068.  
  6069. '_' shift, and enter state 19
  6070. let shift, and enter state 46
  6071. fun shift, and enter state 21
  6072. if shift, and enter state 22
  6073. begin shift, and enter state 23
  6074. true shift, and enter state 24
  6075. false shift, and enter state 25
  6076. match shift, and enter state 26
  6077. function shift, and enter state 27
  6078. lazy shift, and enter state 28
  6079. '(' shift, and enter state 29
  6080. '@{' shift, and enter state 30
  6081. '?' shift, and enter state 31
  6082. '{' shift, and enter state 32
  6083. ident shift, and enter state 33
  6084. conid shift, and enter state 34
  6085. qident shift, and enter state 35
  6086. qconid shift, and enter state 36
  6087. qdotid shift, and enter state 37
  6088. hole shift, and enter state 38
  6089. int shift, and enter state 39
  6090. float shift, and enter state 40
  6091. string shift, and enter state 41
  6092.  
  6093. Expr goto state 78
  6094. ExprApp goto state 13
  6095. Expr0 goto state 14
  6096. Atom goto state 15
  6097. ExprBlock goto state 282
  6098. Var goto state 16
  6099. Con goto state 17
  6100. Lit goto state 18
  6101. List1__Expr__ExprSep__goto state 217
  6102.  
  6103. State 262
  6104.  
  6105. Expr0 -> match List1__Expr__','__ with '(' ')' . (rule 36)
  6106.  
  6107. '|' reduce using rule 36
  6108. '*' reduce using rule 36
  6109. '~' reduce using rule 36
  6110. '_' reduce using rule 36
  6111. then reduce using rule 36
  6112. else reduce using rule 36
  6113. begin reduce using rule 36
  6114. end reduce using rule 36
  6115. true reduce using rule 36
  6116. false reduce using rule 36
  6117. with reduce using rule 36
  6118. ',' reduce using rule 36
  6119. ':' reduce using rule 36
  6120. ';;' reduce using rule 36
  6121. ';' reduce using rule 36
  6122. '(' reduce using rule 36
  6123. ')' reduce using rule 36
  6124. '@{' reduce using rule 36
  6125. '?' reduce using rule 36
  6126. '{' reduce using rule 36
  6127. '}' reduce using rule 36
  6128. op reduce using rule 36
  6129. ident reduce using rule 36
  6130. opid reduce using rule 36
  6131. conid reduce using rule 36
  6132. qident reduce using rule 36
  6133. qopid reduce using rule 36
  6134. qconid reduce using rule 36
  6135. hole reduce using rule 36
  6136. int reduce using rule 36
  6137. float reduce using rule 36
  6138. string reduce using rule 36
  6139. '$end' reduce using rule 36
  6140. '$sep' reduce using rule 36
  6141. %eof reduce using rule 36
  6142.  
  6143.  
  6144. State 263
  6145.  
  6146. Expr0 -> match List1__Expr__','__ with ListE1__Arm__ '$end' . (rule 35)
  6147.  
  6148. '|' reduce using rule 35
  6149. '*' reduce using rule 35
  6150. '~' reduce using rule 35
  6151. '_' reduce using rule 35
  6152. then reduce using rule 35
  6153. else reduce using rule 35
  6154. begin reduce using rule 35
  6155. end reduce using rule 35
  6156. true reduce using rule 35
  6157. false reduce using rule 35
  6158. with reduce using rule 35
  6159. ',' reduce using rule 35
  6160. ':' reduce using rule 35
  6161. ';;' reduce using rule 35
  6162. ';' reduce using rule 35
  6163. '(' reduce using rule 35
  6164. ')' reduce using rule 35
  6165. '@{' reduce using rule 35
  6166. '?' reduce using rule 35
  6167. '{' reduce using rule 35
  6168. '}' reduce using rule 35
  6169. op reduce using rule 35
  6170. ident reduce using rule 35
  6171. opid reduce using rule 35
  6172. conid reduce using rule 35
  6173. qident reduce using rule 35
  6174. qopid reduce using rule 35
  6175. qconid reduce using rule 35
  6176. hole reduce using rule 35
  6177. int reduce using rule 35
  6178. float reduce using rule 35
  6179. string reduce using rule 35
  6180. '$end' reduce using rule 35
  6181. '$sep' reduce using rule 35
  6182. %eof reduce using rule 35
  6183.  
  6184.  
  6185. State 264
  6186.  
  6187. MPattern -> MPattern ':' TypeProd . (rule 97)
  6188.  
  6189. '->' reduce using rule 97
  6190. ',' reduce using rule 97
  6191. ':' reduce using rule 97
  6192.  
  6193.  
  6194. State 265
  6195.  
  6196. List1__MPattern__','__ -> MPattern ',' List1__MPattern__','__ . (rule 139)
  6197.  
  6198. '->' reduce using rule 139
  6199.  
  6200.  
  6201. State 266
  6202.  
  6203. Arm -> '|' List1__MPattern__','__ '->' ExprBlock . (rule 107)
  6204.  
  6205. '|' reduce using rule 107
  6206. '$end' reduce using rule 107
  6207.  
  6208.  
  6209. State 267
  6210.  
  6211. Atom -> '(' NullSection ',' List1__NullSection__','__ ')' . (rule 49)
  6212.  
  6213. '|' reduce using rule 49
  6214. '*' reduce using rule 49
  6215. '~' reduce using rule 49
  6216. '_' reduce using rule 49
  6217. then reduce using rule 49
  6218. else reduce using rule 49
  6219. begin reduce using rule 49
  6220. end reduce using rule 49
  6221. true reduce using rule 49
  6222. false reduce using rule 49
  6223. with reduce using rule 49
  6224. ',' reduce using rule 49
  6225. ':' reduce using rule 49
  6226. ';;' reduce using rule 49
  6227. ';' reduce using rule 49
  6228. '(' reduce using rule 49
  6229. ')' reduce using rule 49
  6230. '@{' reduce using rule 49
  6231. '?' reduce using rule 49
  6232. '{' reduce using rule 49
  6233. '}' reduce using rule 49
  6234. op reduce using rule 49
  6235. ident reduce using rule 49
  6236. opid reduce using rule 49
  6237. conid reduce using rule 49
  6238. qident reduce using rule 49
  6239. qopid reduce using rule 49
  6240. qconid reduce using rule 49
  6241. access reduce using rule 49
  6242. hole reduce using rule 49
  6243. int reduce using rule 49
  6244. float reduce using rule 49
  6245. string reduce using rule 49
  6246. '$end' reduce using rule 49
  6247. '$sep' reduce using rule 49
  6248. %eof reduce using rule 49
  6249.  
  6250.  
  6251. State 268
  6252.  
  6253. List1__NullSection__','__ -> NullSection ',' . List1__NullSection__','__ (rule 141)
  6254.  
  6255. '*' shift, and enter state 65
  6256. '~' shift, and enter state 66
  6257. '_' shift, and enter state 19
  6258. let shift, and enter state 46
  6259. fun shift, and enter state 21
  6260. if shift, and enter state 22
  6261. begin shift, and enter state 23
  6262. true shift, and enter state 24
  6263. false shift, and enter state 25
  6264. match shift, and enter state 26
  6265. function shift, and enter state 27
  6266. lazy shift, and enter state 28
  6267. ',' reduce using rule 70
  6268. '(' shift, and enter state 29
  6269. ')' reduce using rule 70
  6270. '@{' shift, and enter state 30
  6271. '?' shift, and enter state 31
  6272. '{' shift, and enter state 32
  6273. op shift, and enter state 68
  6274. ident shift, and enter state 33
  6275. opid shift, and enter state 69
  6276. conid shift, and enter state 34
  6277. qident shift, and enter state 35
  6278. qopid shift, and enter state 70
  6279. qconid shift, and enter state 36
  6280. qdotid shift, and enter state 37
  6281. access shift, and enter state 71
  6282. hole shift, and enter state 38
  6283. int shift, and enter state 39
  6284. float shift, and enter state 40
  6285. string shift, and enter state 41
  6286.  
  6287. Expr goto state 61
  6288. ExprApp goto state 13
  6289. Expr0 goto state 14
  6290. Atom goto state 15
  6291. Operator goto state 62
  6292. Section goto state 205
  6293. NullSection goto state 206
  6294. Var goto state 16
  6295. Con goto state 17
  6296. Lit goto state 18
  6297. List1__NullSection__','__goto state 281
  6298.  
  6299. State 269
  6300.  
  6301. TypeAtom -> '{' Type '|' Rows__':'__Type__ . '}' (rule 129)
  6302.  
  6303. '}' shift, and enter state 280
  6304.  
  6305.  
  6306. State 270
  6307.  
  6308. Rows__':'__Type__ -> ident . ':' Type ',' Rows__':'__Type__ (rule 157)
  6309. Rows__':'__Type__ -> ident . ':' Type (rule 158)
  6310.  
  6311. ':' shift, and enter state 202
  6312.  
  6313.  
  6314. State 271
  6315.  
  6316. Rows__':'__Type__ -> ident ':' Type . ',' Rows__':'__Type__ (rule 157)
  6317. Rows__':'__Type__ -> ident ':' Type . (rule 158)
  6318.  
  6319. ',' shift, and enter state 279
  6320. '}' reduce using rule 158
  6321.  
  6322.  
  6323. State 272
  6324.  
  6325. Type -> forall ListE1__BoundTv__ '->' Type . (rule 115)
  6326.  
  6327. '=' reduce using rule 115
  6328. '|' reduce using rule 115
  6329. '*' reduce using rule 115
  6330. '~' reduce using rule 115
  6331. '_' reduce using rule 115
  6332. then reduce using rule 115
  6333. else reduce using rule 115
  6334. begin reduce using rule 115
  6335. end reduce using rule 115
  6336. true reduce using rule 115
  6337. false reduce using rule 115
  6338. with reduce using rule 115
  6339. ',' reduce using rule 115
  6340. ':' reduce using rule 115
  6341. ';;' reduce using rule 115
  6342. ';' reduce using rule 115
  6343. '(' reduce using rule 115
  6344. ')' reduce using rule 115
  6345. '@{' reduce using rule 115
  6346. '?' reduce using rule 115
  6347. '{' reduce using rule 115
  6348. '}' reduce using rule 115
  6349. op reduce using rule 115
  6350. ident reduce using rule 115
  6351. opid reduce using rule 115
  6352. conid reduce using rule 115
  6353. qident reduce using rule 115
  6354. qopid reduce using rule 115
  6355. qconid reduce using rule 115
  6356. hole reduce using rule 115
  6357. int reduce using rule 115
  6358. float reduce using rule 115
  6359. string reduce using rule 115
  6360. '$end' reduce using rule 115
  6361. '$sep' reduce using rule 115
  6362. %eof reduce using rule 115
  6363.  
  6364.  
  6365. State 273
  6366.  
  6367. Type -> forall ListE1__tyvar__ '.' Type . (rule 114)
  6368.  
  6369. '=' reduce using rule 114
  6370. '|' reduce using rule 114
  6371. '*' reduce using rule 114
  6372. '~' reduce using rule 114
  6373. '_' reduce using rule 114
  6374. then reduce using rule 114
  6375. else reduce using rule 114
  6376. begin reduce using rule 114
  6377. end reduce using rule 114
  6378. true reduce using rule 114
  6379. false reduce using rule 114
  6380. with reduce using rule 114
  6381. ',' reduce using rule 114
  6382. ':' reduce using rule 114
  6383. ';;' reduce using rule 114
  6384. ';' reduce using rule 114
  6385. '(' reduce using rule 114
  6386. ')' reduce using rule 114
  6387. '@{' reduce using rule 114
  6388. '?' reduce using rule 114
  6389. '{' reduce using rule 114
  6390. '}' reduce using rule 114
  6391. op reduce using rule 114
  6392. ident reduce using rule 114
  6393. opid reduce using rule 114
  6394. conid reduce using rule 114
  6395. qident reduce using rule 114
  6396. qopid reduce using rule 114
  6397. qconid reduce using rule 114
  6398. hole reduce using rule 114
  6399. int reduce using rule 114
  6400. float reduce using rule 114
  6401. string reduce using rule 114
  6402. '$end' reduce using rule 114
  6403. '$sep' reduce using rule 114
  6404. %eof reduce using rule 114
  6405.  
  6406.  
  6407. State 274
  6408.  
  6409. BoundTv -> '(' tyvar ':' . Type ')' (rule 116)
  6410.  
  6411. forall shift, and enter state 55
  6412. type shift, and enter state 56
  6413. lazy shift, and enter state 57
  6414. '(' shift, and enter state 58
  6415. '{' shift, and enter state 59
  6416. ident shift, and enter state 33
  6417. conid shift, and enter state 34
  6418. qident shift, and enter state 35
  6419. qconid shift, and enter state 36
  6420. tyvar shift, and enter state 60
  6421.  
  6422. Var goto state 48
  6423. Con goto state 49
  6424. TyVar goto state 50
  6425. Type goto state 278
  6426. TypeProd goto state 52
  6427. TypeApp goto state 53
  6428. TypeAtom goto state 54
  6429.  
  6430. State 275
  6431.  
  6432. Rows__'='__Expr__ -> ident '=' Expr ',' . Rows__'='__Expr__ (rule 160)
  6433.  
  6434. '}' reduce using rule 159
  6435. ident shift, and enter state 191
  6436.  
  6437. Rows__'='__Expr__goto state 277
  6438.  
  6439. State 276
  6440.  
  6441. Atom -> '{' Expr with Rows__'='__Expr__ '}' . (rule 51)
  6442.  
  6443. '|' reduce using rule 51
  6444. '*' reduce using rule 51
  6445. '~' reduce using rule 51
  6446. '_' reduce using rule 51
  6447. then reduce using rule 51
  6448. else reduce using rule 51
  6449. begin reduce using rule 51
  6450. end reduce using rule 51
  6451. true reduce using rule 51
  6452. false reduce using rule 51
  6453. with reduce using rule 51
  6454. ',' reduce using rule 51
  6455. ':' reduce using rule 51
  6456. ';;' reduce using rule 51
  6457. ';' reduce using rule 51
  6458. '(' reduce using rule 51
  6459. ')' reduce using rule 51
  6460. '@{' reduce using rule 51
  6461. '?' reduce using rule 51
  6462. '{' reduce using rule 51
  6463. '}' reduce using rule 51
  6464. op reduce using rule 51
  6465. ident reduce using rule 51
  6466. opid reduce using rule 51
  6467. conid reduce using rule 51
  6468. qident reduce using rule 51
  6469. qopid reduce using rule 51
  6470. qconid reduce using rule 51
  6471. access reduce using rule 51
  6472. hole reduce using rule 51
  6473. int reduce using rule 51
  6474. float reduce using rule 51
  6475. string reduce using rule 51
  6476. '$end' reduce using rule 51
  6477. '$sep' reduce using rule 51
  6478. %eof reduce using rule 51
  6479.  
  6480.  
  6481. State 277
  6482.  
  6483. Rows__'='__Expr__ -> ident '=' Expr ',' Rows__'='__Expr__ . (rule 160)
  6484.  
  6485. '}' reduce using rule 160
  6486.  
  6487.  
  6488. State 278
  6489.  
  6490. BoundTv -> '(' tyvar ':' Type . ')' (rule 116)
  6491.  
  6492. ')' shift, and enter state 309
  6493.  
  6494.  
  6495. State 279
  6496.  
  6497. Rows__':'__Type__ -> ident ':' Type ',' . Rows__':'__Type__ (rule 157)
  6498.  
  6499. '}' reduce using rule 156
  6500. ident shift, and enter state 270
  6501.  
  6502. Rows__':'__Type__goto state 308
  6503.  
  6504. State 280
  6505.  
  6506. TypeAtom -> '{' Type '|' Rows__':'__Type__ '}' . (rule 129)
  6507.  
  6508. '->' reduce using rule 129
  6509. '=' reduce using rule 129
  6510. '=>' reduce using rule 129
  6511. '|' reduce using rule 129
  6512. '*' reduce using rule 129
  6513. '~' reduce using rule 129
  6514. '_' reduce using rule 129
  6515. then reduce using rule 129
  6516. else reduce using rule 129
  6517. begin reduce using rule 129
  6518. end reduce using rule 129
  6519. true reduce using rule 129
  6520. false reduce using rule 129
  6521. with reduce using rule 129
  6522. type reduce using rule 129
  6523. lazy reduce using rule 129
  6524. ',' reduce using rule 129
  6525. ':' reduce using rule 129
  6526. ';;' reduce using rule 129
  6527. ';' reduce using rule 129
  6528. '(' reduce using rule 129
  6529. ')' reduce using rule 129
  6530. '@{' reduce using rule 129
  6531. '?' reduce using rule 129
  6532. '{' reduce using rule 129
  6533. '}' reduce using rule 129
  6534. op reduce using rule 129
  6535. ident reduce using rule 129
  6536. opid reduce using rule 129
  6537. conid reduce using rule 129
  6538. qident reduce using rule 129
  6539. qopid reduce using rule 129
  6540. qconid reduce using rule 129
  6541. tyvar reduce using rule 129
  6542. hole reduce using rule 129
  6543. int reduce using rule 129
  6544. float reduce using rule 129
  6545. string reduce using rule 129
  6546. '$end' reduce using rule 129
  6547. '$sep' reduce using rule 129
  6548. %eof reduce using rule 129
  6549.  
  6550.  
  6551. State 281
  6552.  
  6553. List1__NullSection__','__ -> NullSection ',' List1__NullSection__','__ . (rule 141)
  6554.  
  6555. ')' reduce using rule 141
  6556.  
  6557.  
  6558. State 282
  6559.  
  6560. Expr0 -> if Expr then ExprBlock else ExprBlock . '$end' (rule 34)
  6561.  
  6562. '$end' shift, and enter state 307
  6563.  
  6564.  
  6565. State 283
  6566.  
  6567. Rows__'='__Pattern__ -> ident '=' Pattern ',' . Rows__'='__Pattern__ (rule 163)
  6568.  
  6569. '}' reduce using rule 162
  6570. ident shift, and enter state 150
  6571.  
  6572. Rows__'='__Pattern__goto state 306
  6573.  
  6574. State 284
  6575.  
  6576. PreBinding -> BindName ListE__Parameter__ '=' ExprBlock '$end' . (rule 81)
  6577.  
  6578. and reduce using rule 81
  6579. end reduce using rule 81
  6580. in reduce using rule 81
  6581. ';;' reduce using rule 81
  6582. '$end' reduce using rule 81
  6583. '$in' reduce using rule 81
  6584. '$sep' reduce using rule 81
  6585. %eof reduce using rule 81
  6586.  
  6587.  
  6588. State 285
  6589.  
  6590. PreBinding -> BindName ListE__Parameter__ ':' Type '=' . ExprBlock '$end' (rule 82)
  6591.  
  6592. '_' shift, and enter state 19
  6593. let shift, and enter state 46
  6594. fun shift, and enter state 21
  6595. if shift, and enter state 22
  6596. begin shift, and enter state 23
  6597. true shift, and enter state 24
  6598. false shift, and enter state 25
  6599. match shift, and enter state 26
  6600. function shift, and enter state 27
  6601. lazy shift, and enter state 28
  6602. '(' shift, and enter state 29
  6603. '@{' shift, and enter state 30
  6604. '?' shift, and enter state 31
  6605. '{' shift, and enter state 32
  6606. ident shift, and enter state 33
  6607. conid shift, and enter state 34
  6608. qident shift, and enter state 35
  6609. qconid shift, and enter state 36
  6610. qdotid shift, and enter state 37
  6611. hole shift, and enter state 38
  6612. int shift, and enter state 39
  6613. float shift, and enter state 40
  6614. string shift, and enter state 41
  6615.  
  6616. Expr goto state 78
  6617. ExprApp goto state 13
  6618. Expr0 goto state 14
  6619. Atom goto state 15
  6620. ExprBlock goto state 305
  6621. Var goto state 16
  6622. Con goto state 17
  6623. Lit goto state 18
  6624. List1__Expr__ExprSep__goto state 217
  6625.  
  6626. State 286
  6627.  
  6628. PreBinding -> ArgP BindOp ArgP '=' ExprBlock . '$end' (rule 83)
  6629.  
  6630. '$end' shift, and enter state 304
  6631.  
  6632.  
  6633. State 287
  6634.  
  6635. Expr0 -> let open Con ExprIn ExprBlock '$end' . (rule 33)
  6636.  
  6637. '|' reduce using rule 33
  6638. '*' reduce using rule 33
  6639. '~' reduce using rule 33
  6640. '_' reduce using rule 33
  6641. then reduce using rule 33
  6642. else reduce using rule 33
  6643. begin reduce using rule 33
  6644. end reduce using rule 33
  6645. true reduce using rule 33
  6646. false reduce using rule 33
  6647. with reduce using rule 33
  6648. ',' reduce using rule 33
  6649. ':' reduce using rule 33
  6650. ';;' reduce using rule 33
  6651. ';' reduce using rule 33
  6652. '(' reduce using rule 33
  6653. ')' reduce using rule 33
  6654. '@{' reduce using rule 33
  6655. '?' reduce using rule 33
  6656. '{' reduce using rule 33
  6657. '}' reduce using rule 33
  6658. op reduce using rule 33
  6659. ident reduce using rule 33
  6660. opid reduce using rule 33
  6661. conid reduce using rule 33
  6662. qident reduce using rule 33
  6663. qopid reduce using rule 33
  6664. qconid reduce using rule 33
  6665. hole reduce using rule 33
  6666. int reduce using rule 33
  6667. float reduce using rule 33
  6668. string reduce using rule 33
  6669. '$end' reduce using rule 33
  6670. '$sep' reduce using rule 33
  6671. %eof reduce using rule 33
  6672.  
  6673.  
  6674. State 288
  6675.  
  6676. Top -> module conid '=' begin Tops end . (rule 11)
  6677.  
  6678. end reduce using rule 11
  6679. ';;' reduce using rule 11
  6680. '$end' reduce using rule 11
  6681. '$sep' reduce using rule 11
  6682. %eof reduce using rule 11
  6683.  
  6684.  
  6685. State 289
  6686.  
  6687. Top -> module conid '=' '$begin' Tops '$end' . (rule 12)
  6688.  
  6689. end reduce using rule 12
  6690. ';;' reduce using rule 12
  6691. '$end' reduce using rule 12
  6692. '$sep' reduce using rule 12
  6693. %eof reduce using rule 12
  6694.  
  6695.  
  6696. State 290
  6697.  
  6698. Top -> module qconid '=' begin Tops end . (rule 10)
  6699.  
  6700. end reduce using rule 10
  6701. ';;' reduce using rule 10
  6702. '$end' reduce using rule 10
  6703. '$sep' reduce using rule 10
  6704. %eof reduce using rule 10
  6705.  
  6706.  
  6707. State 291
  6708.  
  6709. TyConArg -> '{' TyVar ':' Type . '}' (rule 17)
  6710.  
  6711. '}' shift, and enter state 303
  6712.  
  6713.  
  6714. State 292
  6715.  
  6716. TyConArg -> '(' TyVar ':' Type . ')' (rule 16)
  6717.  
  6718. ')' shift, and enter state 302
  6719.  
  6720.  
  6721. State 293
  6722.  
  6723. Ctor -> conid of . Type (rule 19)
  6724.  
  6725. forall shift, and enter state 55
  6726. type shift, and enter state 56
  6727. lazy shift, and enter state 57
  6728. '(' shift, and enter state 58
  6729. '{' shift, and enter state 59
  6730. ident shift, and enter state 33
  6731. conid shift, and enter state 34
  6732. qident shift, and enter state 35
  6733. qconid shift, and enter state 36
  6734. tyvar shift, and enter state 60
  6735.  
  6736. Var goto state 48
  6737. Con goto state 49
  6738. TyVar goto state 50
  6739. Type goto state 301
  6740. TypeProd goto state 52
  6741. TypeApp goto state 53
  6742. TypeAtom goto state 54
  6743.  
  6744. State 294
  6745.  
  6746. Ctor -> conid ':' . Type (rule 20)
  6747.  
  6748. forall shift, and enter state 55
  6749. type shift, and enter state 56
  6750. lazy shift, and enter state 57
  6751. '(' shift, and enter state 58
  6752. '{' shift, and enter state 59
  6753. ident shift, and enter state 33
  6754. conid shift, and enter state 34
  6755. qident shift, and enter state 35
  6756. qconid shift, and enter state 36
  6757. tyvar shift, and enter state 60
  6758.  
  6759. Var goto state 48
  6760. Con goto state 49
  6761. TyVar goto state 50
  6762. Type goto state 300
  6763. TypeProd goto state 52
  6764. TypeApp goto state 53
  6765. TypeAtom goto state 54
  6766.  
  6767. State 295
  6768.  
  6769. Top -> type ident ListE__TyConArg__ '=' '|' List1__Ctor__'|'__ . (rule 9)
  6770.  
  6771. end reduce using rule 9
  6772. ';;' reduce using rule 9
  6773. '$end' reduce using rule 9
  6774. '$sep' reduce using rule 9
  6775. %eof reduce using rule 9
  6776.  
  6777.  
  6778. State 296
  6779.  
  6780. List1__Ctor__'|'__ -> Ctor '|' . List1__Ctor__'|'__ (rule 133)
  6781.  
  6782. conid shift, and enter state 246
  6783.  
  6784. Ctor goto state 243
  6785. List1__Ctor__'|'__goto state 299
  6786.  
  6787. State 297
  6788.  
  6789. Top -> external val ident ':' Type '=' . string (rule 6)
  6790.  
  6791. string shift, and enter state 298
  6792.  
  6793.  
  6794. State 298
  6795.  
  6796. Top -> external val ident ':' Type '=' string . (rule 6)
  6797.  
  6798. end reduce using rule 6
  6799. ';;' reduce using rule 6
  6800. '$end' reduce using rule 6
  6801. '$sep' reduce using rule 6
  6802. %eof reduce using rule 6
  6803.  
  6804.  
  6805. State 299
  6806.  
  6807. List1__Ctor__'|'__ -> Ctor '|' List1__Ctor__'|'__ . (rule 133)
  6808.  
  6809. end reduce using rule 133
  6810. ';;' reduce using rule 133
  6811. '$end' reduce using rule 133
  6812. '$sep' reduce using rule 133
  6813. %eof reduce using rule 133
  6814.  
  6815.  
  6816. State 300
  6817.  
  6818. Ctor -> conid ':' Type . (rule 20)
  6819.  
  6820. '|' reduce using rule 20
  6821. end reduce using rule 20
  6822. ';;' reduce using rule 20
  6823. '$end' reduce using rule 20
  6824. '$sep' reduce using rule 20
  6825. %eof reduce using rule 20
  6826.  
  6827.  
  6828. State 301
  6829.  
  6830. Ctor -> conid of Type . (rule 19)
  6831.  
  6832. '|' reduce using rule 19
  6833. end reduce using rule 19
  6834. ';;' reduce using rule 19
  6835. '$end' reduce using rule 19
  6836. '$sep' reduce using rule 19
  6837. %eof reduce using rule 19
  6838.  
  6839.  
  6840. State 302
  6841.  
  6842. TyConArg -> '(' TyVar ':' Type ')' . (rule 16)
  6843.  
  6844. '=' reduce using rule 16
  6845. end reduce using rule 16
  6846. ';;' reduce using rule 16
  6847. '(' reduce using rule 16
  6848. '{' reduce using rule 16
  6849. tyvar reduce using rule 16
  6850. '$end' reduce using rule 16
  6851. '$sep' reduce using rule 16
  6852. %eof reduce using rule 16
  6853.  
  6854.  
  6855. State 303
  6856.  
  6857. TyConArg -> '{' TyVar ':' Type '}' . (rule 17)
  6858.  
  6859. '=' reduce using rule 17
  6860. end reduce using rule 17
  6861. ';;' reduce using rule 17
  6862. '(' reduce using rule 17
  6863. '{' reduce using rule 17
  6864. tyvar reduce using rule 17
  6865. '$end' reduce using rule 17
  6866. '$sep' reduce using rule 17
  6867. %eof reduce using rule 17
  6868.  
  6869.  
  6870. State 304
  6871.  
  6872. PreBinding -> ArgP BindOp ArgP '=' ExprBlock '$end' . (rule 83)
  6873.  
  6874. and reduce using rule 83
  6875. end reduce using rule 83
  6876. in reduce using rule 83
  6877. ';;' reduce using rule 83
  6878. '$end' reduce using rule 83
  6879. '$in' reduce using rule 83
  6880. '$sep' reduce using rule 83
  6881. %eof reduce using rule 83
  6882.  
  6883.  
  6884. State 305
  6885.  
  6886. PreBinding -> BindName ListE__Parameter__ ':' Type '=' ExprBlock . '$end' (rule 82)
  6887.  
  6888. '$end' shift, and enter state 310
  6889.  
  6890.  
  6891. State 306
  6892.  
  6893. Rows__'='__Pattern__ -> ident '=' Pattern ',' Rows__'='__Pattern__ . (rule 163)
  6894.  
  6895. '}' reduce using rule 163
  6896.  
  6897.  
  6898. State 307
  6899.  
  6900. Expr0 -> if Expr then ExprBlock else ExprBlock '$end' . (rule 34)
  6901.  
  6902. '|' reduce using rule 34
  6903. '*' reduce using rule 34
  6904. '~' reduce using rule 34
  6905. '_' reduce using rule 34
  6906. then reduce using rule 34
  6907. else reduce using rule 34
  6908. begin reduce using rule 34
  6909. end reduce using rule 34
  6910. true reduce using rule 34
  6911. false reduce using rule 34
  6912. with reduce using rule 34
  6913. ',' reduce using rule 34
  6914. ':' reduce using rule 34
  6915. ';;' reduce using rule 34
  6916. ';' reduce using rule 34
  6917. '(' reduce using rule 34
  6918. ')' reduce using rule 34
  6919. '@{' reduce using rule 34
  6920. '?' reduce using rule 34
  6921. '{' reduce using rule 34
  6922. '}' reduce using rule 34
  6923. op reduce using rule 34
  6924. ident reduce using rule 34
  6925. opid reduce using rule 34
  6926. conid reduce using rule 34
  6927. qident reduce using rule 34
  6928. qopid reduce using rule 34
  6929. qconid reduce using rule 34
  6930. hole reduce using rule 34
  6931. int reduce using rule 34
  6932. float reduce using rule 34
  6933. string reduce using rule 34
  6934. '$end' reduce using rule 34
  6935. '$sep' reduce using rule 34
  6936. %eof reduce using rule 34
  6937.  
  6938.  
  6939. State 308
  6940.  
  6941. Rows__':'__Type__ -> ident ':' Type ',' Rows__':'__Type__ . (rule 157)
  6942.  
  6943. '}' reduce using rule 157
  6944.  
  6945.  
  6946. State 309
  6947.  
  6948. BoundTv -> '(' tyvar ':' Type ')' . (rule 116)
  6949.  
  6950. '->' reduce using rule 116
  6951. '(' reduce using rule 116
  6952.  
  6953.  
  6954. State 310
  6955.  
  6956. PreBinding -> BindName ListE__Parameter__ ':' Type '=' ExprBlock '$end' . (rule 82)
  6957.  
  6958. and reduce using rule 82
  6959. end reduce using rule 82
  6960. in reduce using rule 82
  6961. ';;' reduce using rule 82
  6962. '$end' reduce using rule 82
  6963. '$in' reduce using rule 82
  6964. '$sep' reduce using rule 82
  6965. %eof reduce using rule 82
  6966.  
  6967.  
  6968. -----------------------------------------------------------------------------
  6969. Grammar Totals
  6970. -----------------------------------------------------------------------------
  6971. Number of rules: 169
  6972. Number of terminals: 63
  6973. Number of non-terminals: 56
  6974. Number of states: 311
Add Comment
Please, Sign In to add comment