From 73045ffdf5d3407153cebdea6d657ff80a8258b9 Mon Sep 17 00:00:00 2001 From: Jason Evans Date: Mon, 18 May 2026 23:12:52 -0700 Subject: [PATCH] Update `Hocc` grammar test --- bootstrap/test/hocc/Hocc.expected | 16 +- bootstrap/test/hocc/Hocc.expected.hmh | 16 +- bootstrap/test/hocc/Hocc.expected.txt | 6569 +++++++++++++------------ bootstrap/test/hocc/Hocc.hmh | 16 +- 4 files changed, 3515 insertions(+), 3102 deletions(-) diff --git a/bootstrap/test/hocc/Hocc.expected b/bootstrap/test/hocc/Hocc.expected index 93f3c6695..e602ab97c 100644 --- a/bootstrap/test/hocc/Hocc.expected +++ b/bootstrap/test/hocc/Hocc.expected @@ -1,15 +1,15 @@ hocc: Parsing "./Hocc.hmh" hocc: Generating APLR(1) specification -hocc: 5 precedences, 42 tokens, 48 non-terminals (2 starts), 158 productions +hocc: 7 precedences, 42 tokens, 48 non-terminals (2 starts), 158 productions hocc: LR(1) item set compatibility: lr -hocc: Generating LR(1) item set closures (workq/total) 0/860 -hocc: Generating 860 LR(1) states -hocc: Tracing automaton (.+=actions[+gotos])+.+.....+...+....+..+..+....+..+..+..+.+...+.++.+.+.++ +hocc: Generating LR(1) item set closures (workq/total) 0/912 +hocc: Generating 912 LR(1) states +hocc: Tracing automaton (.+=actions[+gotos])+.+.....+...+....+..+..+....+..+..+..+.+..+.+++.+++ hocc: 1 unreachable state -hocc: Reindexing 859 LR(1) states -hocc: Searching for remergeable states: 601/601 -hocc: Remerging 601 LR(1) states -hocc: Reindexing 258 LR(1) states +hocc: Reindexing 911 LR(1) states +hocc: Searching for remergeable states: 648/652 +hocc: Remerging 648 LR(1) states +hocc: Reindexing 263 LR(1) states hocc: 0 unresolvable conflicts hocc: Generating text report hocc: Generating hocc report diff --git a/bootstrap/test/hocc/Hocc.expected.hmh b/bootstrap/test/hocc/Hocc.expected.hmh index 4f8b297d1..57dcc889e 100644 --- a/bootstrap/test/hocc/Hocc.expected.hmh +++ b/bootstrap/test/hocc/Hocc.expected.hmh @@ -1,4 +1,6 @@ hocc + neutral pCodeTlEpsilon + neutral pPrec < pCodeTlEpsilon neutral pCIDENT left pDOT left pCOMMA < pCIDENT @@ -13,7 +15,7 @@ hocc token LEFT "left" token RIGHT "right" token NONASSOC "nonassoc" - token PREC "prec" + token PREC "prec" prec pPrec token UIDENT token CIDENT token USCORE "_" @@ -73,16 +75,16 @@ hocc | CIDENT "." SymbolTypeQualifier | epsilon nonterm SymbolType ::= "of" SymbolTypeQualifier Uident - nonterm SymbolType0 ::= - | SymbolType - | epsilon nonterm PrecRef ::= | "prec" Uident | epsilon - nonterm TokenAlias ::= + nonterm Alias ::= | ISTRING | epsilon - nonterm Token ::= "token" CIDENT TokenAlias SymbolType0 PrecRef + nonterm TokenType ::= + | SymbolType Code + | epsilon + nonterm Token ::= "token" CIDENT Alias TokenType PrecRef nonterm Sep ::= | LINE_DELIM | ";" @@ -119,7 +121,7 @@ hocc nonterm CodeTl ::= | Delimited CodeTl | CodeToken CodeTl - | epsilon + | epsilon prec pCodeTlEpsilon nonterm Code ::= | Delimited CodeTl | CodeToken CodeTl diff --git a/bootstrap/test/hocc/Hocc.expected.txt b/bootstrap/test/hocc/Hocc.expected.txt index 93f0aff63..83ee99386 100644 --- a/bootstrap/test/hocc/Hocc.expected.txt +++ b/bootstrap/test/hocc/Hocc.expected.txt @@ -1,6 +1,8 @@ Hocc grammar Precedences + neutral pCodeTlEpsilon + neutral pPrec < pCodeTlEpsilon neutral pCIDENT left pDOT left pCOMMA < pCIDENT @@ -40,7 +42,7 @@ Tokens token NONASSOC "nonassoc" First: {"nonassoc"} Follow: {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN, EOI} - token PREC "prec" + token PREC "prec" prec pPrec First: {"prec"} Follow: {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN, EOI} token UIDENT @@ -187,32 +189,32 @@ Non-terminals SymbolTypeQualifier ::= epsilon nonterm SymbolType First: {"of"} - Follow: {"prec", "::=", LINE_DELIM, DEDENT} + Follow: {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN} Productions SymbolType ::= "of" SymbolTypeQualifier Uident - nonterm SymbolType0 - First: {"ε", "of"} - Follow: {"prec", LINE_DELIM, DEDENT} - Productions - SymbolType0 ::= SymbolType - SymbolType0 ::= epsilon nonterm PrecRef First: {"ε", "prec"} Follow: {"::=", "->", "|", LINE_DELIM, DEDENT} Productions PrecRef ::= "prec" Uident PrecRef ::= epsilon - nonterm TokenAlias + nonterm Alias First: {"ε", ISTRING} Follow: {"prec", "of", LINE_DELIM, DEDENT} Productions - TokenAlias ::= ISTRING - TokenAlias ::= epsilon + Alias ::= ISTRING + Alias ::= epsilon + nonterm TokenType + First: {"ε", "of"} + Follow: {"prec", LINE_DELIM, DEDENT} + Productions + TokenType ::= SymbolType Code + TokenType ::= epsilon nonterm Token First: {"token"} Follow: {LINE_DELIM, DEDENT} Productions - Token ::= "token" CIDENT TokenAlias SymbolType0 PrecRef + Token ::= "token" CIDENT Alias TokenType PrecRef nonterm Sep First: {"|", ";", LINE_DELIM} Follow: {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN, EOI} @@ -267,14 +269,14 @@ Non-terminals CodeToken ::= "," nonterm CodeTl First: {"ε", "hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN} - Follow: {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"} + Follow: {"prec", "|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"} Productions CodeTl ::= Delimited CodeTl CodeTl ::= CodeToken CodeTl - CodeTl ::= epsilon + CodeTl ::= epsilon prec pCodeTlEpsilon nonterm Code First: {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN} - Follow: {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"} + Follow: {"prec", "|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"} Productions Code ::= Delimited CodeTl Code ::= CodeToken CodeTl @@ -541,7 +543,7 @@ APLR(1) States "left" : ShiftPrefix 7 "right" : ShiftPrefix 8 "nonassoc" : ShiftPrefix 9 - "prec" : ShiftPrefix 10 + "prec" : ShiftPrefix 10 prec pPrec UIDENT : ShiftPrefix 11 CIDENT : ShiftPrefix 12 "_" : ShiftPrefix 13 @@ -632,7 +634,7 @@ APLR(1) States "left" : ShiftPrefix 7 "right" : ShiftPrefix 8 "nonassoc" : ShiftPrefix 9 - "prec" : ShiftPrefix 10 + "prec" : ShiftPrefix 10 prec pPrec UIDENT : ShiftPrefix 11 CIDENT : ShiftPrefix 12 "_" : ShiftPrefix 13 @@ -2438,7 +2440,7 @@ APLR(1) States "left" : ShiftPrefix 7 "right" : ShiftPrefix 8 "nonassoc" : ShiftPrefix 9 - "prec" : ShiftPrefix 10 + "prec" : ShiftPrefix 10 prec pPrec UIDENT : ShiftPrefix 11 CIDENT : ShiftPrefix 12 "_" : ShiftPrefix 13 @@ -2562,7 +2564,7 @@ APLR(1) States "left" : ShiftPrefix 7 "right" : ShiftPrefix 8 "nonassoc" : ShiftPrefix 9 - "prec" : ShiftPrefix 10 + "prec" : ShiftPrefix 10 prec pPrec UIDENT : ShiftPrefix 11 CIDENT : ShiftPrefix 12 "_" : ShiftPrefix 13 @@ -2656,7 +2658,7 @@ APLR(1) States "left" : ShiftPrefix 7 "right" : ShiftPrefix 8 "nonassoc" : ShiftPrefix 9 - "prec" : ShiftPrefix 10 + "prec" : ShiftPrefix 10 prec pPrec UIDENT : ShiftPrefix 11 CIDENT : ShiftPrefix 12 "_" : ShiftPrefix 13 @@ -2705,7 +2707,7 @@ APLR(1) States [PrecType ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT}] [PrecType ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT}] [PrecSet ::= · PrecType Precs PrecRels, {LINE_DELIM, DEDENT}] - [Token ::= · "token" CIDENT TokenAlias SymbolType0 PrecRef, {LINE_DELIM, DEDENT}] + [Token ::= · "token" CIDENT Alias TokenType PrecRef, {LINE_DELIM, DEDENT}] [NontermType ::= · "nonterm", {CIDENT}] [NontermType ::= · "start", {CIDENT}] [Nonterm ::= · NontermType CIDENT PrecRef "::=" Prods, {LINE_DELIM, DEDENT}] @@ -2752,7 +2754,7 @@ APLR(1) States CIDENT : Reduce NontermType ::= "start" State 57 [57.0] Kernel - [Token ::= "token" · CIDENT TokenAlias SymbolType0 PrecRef, {LINE_DELIM, DEDENT}] + [Token ::= "token" · CIDENT Alias TokenType PrecRef, {LINE_DELIM, DEDENT}] Actions CIDENT : ShiftPrefix 71 State 58 [58.0] @@ -2841,7 +2843,7 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 Gotos Uident : 83 @@ -2898,18 +2900,18 @@ APLR(1) States "⊥" : Reduce Hmhi ::= Matter "hocc" Matter EOI State 71 [71.0] Kernel - [Token ::= "token" CIDENT · TokenAlias SymbolType0 PrecRef, {LINE_DELIM, DEDENT}] + [Token ::= "token" CIDENT · Alias TokenType PrecRef, {LINE_DELIM, DEDENT}] Added - [TokenAlias ::= · ISTRING, {"prec", "of", LINE_DELIM, DEDENT}] - [TokenAlias ::= ·, {"prec", "of", LINE_DELIM, DEDENT}] + [Alias ::= · ISTRING, {"prec", "of", LINE_DELIM, DEDENT}] + [Alias ::= ·, {"prec", "of", LINE_DELIM, DEDENT}] Actions - "prec" : Reduce TokenAlias ::= epsilon + "prec" : Reduce Alias ::= epsilon ISTRING : ShiftPrefix 89 - "of" : Reduce TokenAlias ::= epsilon - LINE_DELIM : Reduce TokenAlias ::= epsilon - DEDENT : Reduce TokenAlias ::= epsilon + "of" : Reduce Alias ::= epsilon + LINE_DELIM : Reduce Alias ::= epsilon + DEDENT : Reduce Alias ::= epsilon Gotos - TokenAlias : 90 + Alias : 90 State 72 [72.0] Kernel [Uident ::= "hocc" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] @@ -3417,7 +3419,7 @@ APLR(1) States [PrecRef ::= · "prec" Uident, {"::="}] [PrecRef ::= ·, {"::="}] Actions - "prec" : ShiftPrefix 95 + "prec" : ShiftPrefix 95 prec pPrec "::=" : Reduce PrecRef ::= epsilon "of" : ShiftPrefix 96 Gotos @@ -3432,7 +3434,7 @@ APLR(1) States [PrecType ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT}] [PrecType ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT}] [PrecSet ::= · PrecType Precs PrecRels, {LINE_DELIM, DEDENT}] - [Token ::= · "token" CIDENT TokenAlias SymbolType0 PrecRef, {LINE_DELIM, DEDENT}] + [Token ::= · "token" CIDENT Alias TokenType PrecRef, {LINE_DELIM, DEDENT}] [NontermType ::= · "nonterm", {CIDENT}] [NontermType ::= · "start", {CIDENT}] [Nonterm ::= · NontermType CIDENT PrecRef "::=" Prods, {LINE_DELIM, DEDENT}] @@ -3505,27 +3507,27 @@ APLR(1) States EOI : Reduce Hocc ::= "hocc" INDENT Stmts DEDENT State 89 [89.0] Kernel - [TokenAlias ::= ISTRING ·, {"prec", "of", LINE_DELIM, DEDENT}] + [Alias ::= ISTRING ·, {"prec", "of", LINE_DELIM, DEDENT}] Actions - "prec" : Reduce TokenAlias ::= ISTRING - "of" : Reduce TokenAlias ::= ISTRING - LINE_DELIM : Reduce TokenAlias ::= ISTRING - DEDENT : Reduce TokenAlias ::= ISTRING + "prec" : Reduce Alias ::= ISTRING + "of" : Reduce Alias ::= ISTRING + LINE_DELIM : Reduce Alias ::= ISTRING + DEDENT : Reduce Alias ::= ISTRING State 90 [90.0] Kernel - [Token ::= "token" CIDENT TokenAlias · SymbolType0 PrecRef, {LINE_DELIM, DEDENT}] + [Token ::= "token" CIDENT Alias · TokenType PrecRef, {LINE_DELIM, DEDENT}] Added - [SymbolType ::= · "of" SymbolTypeQualifier Uident, {"prec", LINE_DELIM, DEDENT}] - [SymbolType0 ::= · SymbolType, {"prec", LINE_DELIM, DEDENT}] - [SymbolType0 ::= ·, {"prec", LINE_DELIM, DEDENT}] + [SymbolType ::= · "of" SymbolTypeQualifier Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [TokenType ::= · SymbolType Code, {"prec", LINE_DELIM, DEDENT}] + [TokenType ::= ·, {"prec", LINE_DELIM, DEDENT}] Actions - "prec" : Reduce SymbolType0 ::= epsilon + "prec" : Reduce TokenType ::= epsilon "of" : ShiftPrefix 96 - LINE_DELIM : Reduce SymbolType0 ::= epsilon - DEDENT : Reduce SymbolType0 ::= epsilon + LINE_DELIM : Reduce TokenType ::= epsilon + DEDENT : Reduce TokenType ::= epsilon Gotos SymbolType : 100 - SymbolType0 : 101 + TokenType : 101 State 91 [91.0] Kernel [PrecsTl ::= "," · Uident PrecsTl, {"<", LINE_DELIM, DEDENT}] @@ -3551,7 +3553,7 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 Gotos Uident : 102 @@ -3588,7 +3590,7 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 Gotos Uident : 83 @@ -3624,13 +3626,13 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 Gotos Uident : 104 State 96 [96.0] Kernel - [SymbolType ::= "of" · SymbolTypeQualifier Uident, {"prec", "::=", LINE_DELIM, DEDENT}] + [SymbolType ::= "of" · SymbolTypeQualifier Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] Added [SymbolTypeQualifier ::= · CIDENT "." SymbolTypeQualifier, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT}] [SymbolTypeQualifier ::= ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT}] @@ -3656,7 +3658,7 @@ APLR(1) States [PrecRef ::= · "prec" Uident, {"::="}] [PrecRef ::= ·, {"::="}] Actions - "prec" : ShiftPrefix 95 + "prec" : ShiftPrefix 95 prec pPrec "::=" : Reduce PrecRef ::= epsilon Gotos PrecRef : 107 @@ -3678,23 +3680,89 @@ APLR(1) States StmtsTl : 109 State 100 [100.0] Kernel - [SymbolType0 ::= SymbolType ·, {"prec", LINE_DELIM, DEDENT}] + [TokenType ::= SymbolType · Code, {"prec", LINE_DELIM, DEDENT}] + Added + [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Code ::= · Delimited CodeTl, {"prec", LINE_DELIM, DEDENT}] + [Code ::= · CodeToken CodeTl, {"prec", LINE_DELIM, DEDENT}] Actions - "prec" : Reduce SymbolType0 ::= SymbolType - LINE_DELIM : Reduce SymbolType0 ::= SymbolType - DEDENT : Reduce SymbolType0 ::= SymbolType + "hocc" : ShiftPrefix 72 + "nonterm" : ShiftPrefix 73 + "epsilon" : ShiftPrefix 74 + "start" : ShiftPrefix 75 + "token" : ShiftPrefix 76 + "neutral" : ShiftPrefix 77 + "left" : ShiftPrefix 78 + "right" : ShiftPrefix 79 + "nonassoc" : ShiftPrefix 80 + "prec" : ShiftPrefix 81 prec pPrec + UIDENT : ShiftPrefix 82 + CIDENT : ShiftPrefix 110 + "_" : ShiftPrefix 111 + ISTRING : ShiftPrefix 112 + "::=" : ShiftPrefix 113 + "of" : ShiftPrefix 114 + ":" : ShiftPrefix 115 + "." : ShiftPrefix 116 prec pDOT + "->" : ShiftPrefix 117 + "<" : ShiftPrefix 118 + "=" : ShiftPrefix 119 + "," : ShiftPrefix 120 prec pCOMMA + "as" : ShiftPrefix 121 prec pAS + INDENT : ShiftPrefix 122 + "(" : ShiftPrefix 123 + "(|" : ShiftPrefix 124 + "[" : ShiftPrefix 125 + "[|" : ShiftPrefix 126 + "{" : ShiftPrefix 127 + OTHER_TOKEN : ShiftPrefix 128 + Gotos + Uident : 129 + Delimited : 130 + CodeToken : 131 + Code : 132 State 101 [101.0] Kernel - [Token ::= "token" CIDENT TokenAlias SymbolType0 · PrecRef, {LINE_DELIM, DEDENT}] + [Token ::= "token" CIDENT Alias TokenType · PrecRef, {LINE_DELIM, DEDENT}] Added [PrecRef ::= · "prec" Uident, {LINE_DELIM, DEDENT}] [PrecRef ::= ·, {LINE_DELIM, DEDENT}] Actions - "prec" : ShiftPrefix 95 + "prec" : ShiftPrefix 95 prec pPrec LINE_DELIM : Reduce PrecRef ::= epsilon DEDENT : Reduce PrecRef ::= epsilon Gotos - PrecRef : 110 + PrecRef : 133 State 102 [102.0] Kernel [PrecsTl ::= "," Uident · PrecsTl, {"<", LINE_DELIM, DEDENT}] @@ -3707,7 +3775,7 @@ APLR(1) States LINE_DELIM : Reduce PrecsTl ::= epsilon DEDENT : Reduce PrecsTl ::= epsilon Gotos - PrecsTl : 111 + PrecsTl : 134 State 103 [103.0] Kernel [PrecRels ::= "<" Precs ·, {LINE_DELIM, DEDENT}] @@ -3727,22 +3795,22 @@ APLR(1) States Kernel [SymbolTypeQualifier ::= CIDENT · "." SymbolTypeQualifier, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT}] Actions - "." : ShiftPrefix 112 prec pDOT + "." : ShiftPrefix 135 prec pDOT State 106 [106.0] Kernel - [SymbolType ::= "of" SymbolTypeQualifier · Uident, {"prec", "::=", LINE_DELIM, DEDENT}] + [SymbolType ::= "of" SymbolTypeQualifier · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] Added - [Uident ::= · "hocc", {"prec", "::=", LINE_DELIM, DEDENT}] - [Uident ::= · "nonterm", {"prec", "::=", LINE_DELIM, DEDENT}] - [Uident ::= · "epsilon", {"prec", "::=", LINE_DELIM, DEDENT}] - [Uident ::= · "start", {"prec", "::=", LINE_DELIM, DEDENT}] - [Uident ::= · "token", {"prec", "::=", LINE_DELIM, DEDENT}] - [Uident ::= · "neutral", {"prec", "::=", LINE_DELIM, DEDENT}] - [Uident ::= · "left", {"prec", "::=", LINE_DELIM, DEDENT}] - [Uident ::= · "right", {"prec", "::=", LINE_DELIM, DEDENT}] - [Uident ::= · "nonassoc", {"prec", "::=", LINE_DELIM, DEDENT}] - [Uident ::= · "prec", {"prec", "::=", LINE_DELIM, DEDENT}] - [Uident ::= · UIDENT, {"prec", "::=", LINE_DELIM, DEDENT}] + [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 @@ -3753,15 +3821,15 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 Gotos - Uident : 113 + Uident : 136 State 107 [107.0] Kernel [Nonterm ::= NontermType CIDENT SymbolType PrecRef · "::=" Reductions, {LINE_DELIM, DEDENT}] Actions - "::=" : ShiftPrefix 114 + "::=" : ShiftPrefix 137 State 108 [108.0] Kernel [Nonterm ::= NontermType CIDENT PrecRef "::=" · Prods, {LINE_DELIM, DEDENT}] @@ -3797,30 +3865,30 @@ APLR(1) States Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 - "epsilon" : ShiftPrefix 115 + "epsilon" : ShiftPrefix 138 "start" : ShiftPrefix 75 "token" : ShiftPrefix 76 "neutral" : ShiftPrefix 77 "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 116 - "_" : ShiftPrefix 117 - ISTRING : ShiftPrefix 118 - "|" : ShiftPrefix 119 - "(" : ShiftPrefix 120 - "{" : ShiftPrefix 121 + CIDENT : ShiftPrefix 139 + "_" : ShiftPrefix 140 + ISTRING : ShiftPrefix 141 + "|" : ShiftPrefix 142 + "(" : ShiftPrefix 143 + "{" : ShiftPrefix 144 Gotos - Uident : 122 - ModulePath : 123 - ProdParamSymbol : 124 - ProdParam : 125 - ProdParams : 126 - ProdPattern : 127 - Prod : 128 - Prods : 129 + Uident : 145 + ModulePath : 146 + ProdParamSymbol : 147 + ProdParam : 148 + ProdParams : 149 + ProdPattern : 150 + Prod : 151 + Prods : 152 State 109 [109.0] Kernel [StmtsTl ::= LINE_DELIM Stmt StmtsTl ·, {DEDENT}] @@ -3828,261 +3896,635 @@ APLR(1) States DEDENT : Reduce StmtsTl ::= LINE_DELIM Stmt StmtsTl State 110 [110.0] Kernel - [Token ::= "token" CIDENT TokenAlias SymbolType0 PrecRef ·, {LINE_DELIM, DEDENT}] + [CodeToken ::= CIDENT ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] Actions - LINE_DELIM : Reduce Token ::= "token" CIDENT TokenAlias SymbolType0 PrecRef - DEDENT : Reduce Token ::= "token" CIDENT TokenAlias SymbolType0 PrecRef + "hocc" : Reduce CodeToken ::= CIDENT + "nonterm" : Reduce CodeToken ::= CIDENT + "epsilon" : Reduce CodeToken ::= CIDENT + "start" : Reduce CodeToken ::= CIDENT + "token" : Reduce CodeToken ::= CIDENT + "neutral" : Reduce CodeToken ::= CIDENT + "left" : Reduce CodeToken ::= CIDENT + "right" : Reduce CodeToken ::= CIDENT + "nonassoc" : Reduce CodeToken ::= CIDENT + "prec" : Reduce CodeToken ::= CIDENT + UIDENT : Reduce CodeToken ::= CIDENT + CIDENT : Reduce CodeToken ::= CIDENT + "_" : Reduce CodeToken ::= CIDENT + ISTRING : Reduce CodeToken ::= CIDENT + "::=" : Reduce CodeToken ::= CIDENT + "of" : Reduce CodeToken ::= CIDENT + ":" : Reduce CodeToken ::= CIDENT + "." : Reduce CodeToken ::= CIDENT + "->" : Reduce CodeToken ::= CIDENT + "|" : Reduce CodeToken ::= CIDENT + "<" : Reduce CodeToken ::= CIDENT + "=" : Reduce CodeToken ::= CIDENT + "," : Reduce CodeToken ::= CIDENT + ";" : Reduce CodeToken ::= CIDENT + "as" : Reduce CodeToken ::= CIDENT + LINE_DELIM : Reduce CodeToken ::= CIDENT + INDENT : Reduce CodeToken ::= CIDENT + DEDENT : Reduce CodeToken ::= CIDENT + "(" : Reduce CodeToken ::= CIDENT + ")" : Reduce CodeToken ::= CIDENT + "(|" : Reduce CodeToken ::= CIDENT + "|)" : Reduce CodeToken ::= CIDENT + "[" : Reduce CodeToken ::= CIDENT + "]" : Reduce CodeToken ::= CIDENT + "[|" : Reduce CodeToken ::= CIDENT + "|]" : Reduce CodeToken ::= CIDENT + "{" : Reduce CodeToken ::= CIDENT + "}" : Reduce CodeToken ::= CIDENT + OTHER_TOKEN : Reduce CodeToken ::= CIDENT State 111 [111.0] Kernel - [PrecsTl ::= "," Uident PrecsTl ·, {"<", LINE_DELIM, DEDENT}] + [CodeToken ::= "_" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] Actions - "<" : Reduce PrecsTl ::= "," Uident PrecsTl - LINE_DELIM : Reduce PrecsTl ::= "," Uident PrecsTl - DEDENT : Reduce PrecsTl ::= "," Uident PrecsTl + "hocc" : Reduce CodeToken ::= "_" + "nonterm" : Reduce CodeToken ::= "_" + "epsilon" : Reduce CodeToken ::= "_" + "start" : Reduce CodeToken ::= "_" + "token" : Reduce CodeToken ::= "_" + "neutral" : Reduce CodeToken ::= "_" + "left" : Reduce CodeToken ::= "_" + "right" : Reduce CodeToken ::= "_" + "nonassoc" : Reduce CodeToken ::= "_" + "prec" : Reduce CodeToken ::= "_" + UIDENT : Reduce CodeToken ::= "_" + CIDENT : Reduce CodeToken ::= "_" + "_" : Reduce CodeToken ::= "_" + ISTRING : Reduce CodeToken ::= "_" + "::=" : Reduce CodeToken ::= "_" + "of" : Reduce CodeToken ::= "_" + ":" : Reduce CodeToken ::= "_" + "." : Reduce CodeToken ::= "_" + "->" : Reduce CodeToken ::= "_" + "|" : Reduce CodeToken ::= "_" + "<" : Reduce CodeToken ::= "_" + "=" : Reduce CodeToken ::= "_" + "," : Reduce CodeToken ::= "_" + ";" : Reduce CodeToken ::= "_" + "as" : Reduce CodeToken ::= "_" + LINE_DELIM : Reduce CodeToken ::= "_" + INDENT : Reduce CodeToken ::= "_" + DEDENT : Reduce CodeToken ::= "_" + "(" : Reduce CodeToken ::= "_" + ")" : Reduce CodeToken ::= "_" + "(|" : Reduce CodeToken ::= "_" + "|)" : Reduce CodeToken ::= "_" + "[" : Reduce CodeToken ::= "_" + "]" : Reduce CodeToken ::= "_" + "[|" : Reduce CodeToken ::= "_" + "|]" : Reduce CodeToken ::= "_" + "{" : Reduce CodeToken ::= "_" + "}" : Reduce CodeToken ::= "_" + OTHER_TOKEN : Reduce CodeToken ::= "_" State 112 [112.0] Kernel - [SymbolTypeQualifier ::= CIDENT "." · SymbolTypeQualifier, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT}] - Added - [SymbolTypeQualifier ::= · CIDENT "." SymbolTypeQualifier, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT}] - [SymbolTypeQualifier ::= ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT}] + [CodeToken ::= ISTRING ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] Actions - "hocc" : Reduce SymbolTypeQualifier ::= epsilon - "nonterm" : Reduce SymbolTypeQualifier ::= epsilon - "epsilon" : Reduce SymbolTypeQualifier ::= epsilon - "start" : Reduce SymbolTypeQualifier ::= epsilon - "token" : Reduce SymbolTypeQualifier ::= epsilon - "neutral" : Reduce SymbolTypeQualifier ::= epsilon - "left" : Reduce SymbolTypeQualifier ::= epsilon - "right" : Reduce SymbolTypeQualifier ::= epsilon - "nonassoc" : Reduce SymbolTypeQualifier ::= epsilon - "prec" : Reduce SymbolTypeQualifier ::= epsilon - UIDENT : Reduce SymbolTypeQualifier ::= epsilon - CIDENT : ShiftPrefix 105 - Gotos - SymbolTypeQualifier : 130 + "hocc" : Reduce CodeToken ::= ISTRING + "nonterm" : Reduce CodeToken ::= ISTRING + "epsilon" : Reduce CodeToken ::= ISTRING + "start" : Reduce CodeToken ::= ISTRING + "token" : Reduce CodeToken ::= ISTRING + "neutral" : Reduce CodeToken ::= ISTRING + "left" : Reduce CodeToken ::= ISTRING + "right" : Reduce CodeToken ::= ISTRING + "nonassoc" : Reduce CodeToken ::= ISTRING + "prec" : Reduce CodeToken ::= ISTRING + UIDENT : Reduce CodeToken ::= ISTRING + CIDENT : Reduce CodeToken ::= ISTRING + "_" : Reduce CodeToken ::= ISTRING + ISTRING : Reduce CodeToken ::= ISTRING + "::=" : Reduce CodeToken ::= ISTRING + "of" : Reduce CodeToken ::= ISTRING + ":" : Reduce CodeToken ::= ISTRING + "." : Reduce CodeToken ::= ISTRING + "->" : Reduce CodeToken ::= ISTRING + "|" : Reduce CodeToken ::= ISTRING + "<" : Reduce CodeToken ::= ISTRING + "=" : Reduce CodeToken ::= ISTRING + "," : Reduce CodeToken ::= ISTRING + ";" : Reduce CodeToken ::= ISTRING + "as" : Reduce CodeToken ::= ISTRING + LINE_DELIM : Reduce CodeToken ::= ISTRING + INDENT : Reduce CodeToken ::= ISTRING + DEDENT : Reduce CodeToken ::= ISTRING + "(" : Reduce CodeToken ::= ISTRING + ")" : Reduce CodeToken ::= ISTRING + "(|" : Reduce CodeToken ::= ISTRING + "|)" : Reduce CodeToken ::= ISTRING + "[" : Reduce CodeToken ::= ISTRING + "]" : Reduce CodeToken ::= ISTRING + "[|" : Reduce CodeToken ::= ISTRING + "|]" : Reduce CodeToken ::= ISTRING + "{" : Reduce CodeToken ::= ISTRING + "}" : Reduce CodeToken ::= ISTRING + OTHER_TOKEN : Reduce CodeToken ::= ISTRING State 113 [113.0] Kernel - [SymbolType ::= "of" SymbolTypeQualifier Uident ·, {"prec", "::=", LINE_DELIM, DEDENT}] + [CodeToken ::= "::=" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] Actions - "prec" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident - "::=" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident - LINE_DELIM : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident - DEDENT : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "hocc" : Reduce CodeToken ::= "::=" + "nonterm" : Reduce CodeToken ::= "::=" + "epsilon" : Reduce CodeToken ::= "::=" + "start" : Reduce CodeToken ::= "::=" + "token" : Reduce CodeToken ::= "::=" + "neutral" : Reduce CodeToken ::= "::=" + "left" : Reduce CodeToken ::= "::=" + "right" : Reduce CodeToken ::= "::=" + "nonassoc" : Reduce CodeToken ::= "::=" + "prec" : Reduce CodeToken ::= "::=" + UIDENT : Reduce CodeToken ::= "::=" + CIDENT : Reduce CodeToken ::= "::=" + "_" : Reduce CodeToken ::= "::=" + ISTRING : Reduce CodeToken ::= "::=" + "::=" : Reduce CodeToken ::= "::=" + "of" : Reduce CodeToken ::= "::=" + ":" : Reduce CodeToken ::= "::=" + "." : Reduce CodeToken ::= "::=" + "->" : Reduce CodeToken ::= "::=" + "|" : Reduce CodeToken ::= "::=" + "<" : Reduce CodeToken ::= "::=" + "=" : Reduce CodeToken ::= "::=" + "," : Reduce CodeToken ::= "::=" + ";" : Reduce CodeToken ::= "::=" + "as" : Reduce CodeToken ::= "::=" + LINE_DELIM : Reduce CodeToken ::= "::=" + INDENT : Reduce CodeToken ::= "::=" + DEDENT : Reduce CodeToken ::= "::=" + "(" : Reduce CodeToken ::= "::=" + ")" : Reduce CodeToken ::= "::=" + "(|" : Reduce CodeToken ::= "::=" + "|)" : Reduce CodeToken ::= "::=" + "[" : Reduce CodeToken ::= "::=" + "]" : Reduce CodeToken ::= "::=" + "[|" : Reduce CodeToken ::= "::=" + "|]" : Reduce CodeToken ::= "::=" + "{" : Reduce CodeToken ::= "::=" + "}" : Reduce CodeToken ::= "::=" + OTHER_TOKEN : Reduce CodeToken ::= "::=" State 114 [114.0] Kernel - [Nonterm ::= NontermType CIDENT SymbolType PrecRef "::=" · Reductions, {LINE_DELIM, DEDENT}] - Added - [Uident ::= · "hocc", {":"}] - [Uident ::= · "nonterm", {":"}] - [Uident ::= · "epsilon", {":"}] - [Uident ::= · "start", {":"}] - [Uident ::= · "token", {":"}] - [Uident ::= · "neutral", {":"}] - [Uident ::= · "left", {":"}] - [Uident ::= · "right", {":"}] - [Uident ::= · "nonassoc", {":"}] - [Uident ::= · "prec", {":"}] - [Uident ::= · UIDENT, {":"}] - [ModulePath ::= · CIDENT, {"."}] - [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT - [ProdParamSymbol ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] - [ProdParamSymbol ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] - [ProdParam ::= · Uident ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] - [ProdParam ::= · "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] - [ProdParam ::= · ModulePath "." "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] - [ProdParam ::= · "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] - [ProdParam ::= · ModulePath "." "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] - [ProdParam ::= · "_" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] - [ProdParam ::= · ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] - [ProdParams ::= · ProdParam ProdParamsTl, {"->", "|"}] - [ProdPattern ::= · ProdParams, {"->", "|"}] - [ProdPattern ::= · "epsilon" PrecRef, {"->", "|"}] - [Prod ::= · ProdPattern, {"->", "|"}] - [Prods ::= · "|" Prod ProdsTl, {"->"}] - [Prods ::= · Prod ProdsTl, {"->"}] - [Reduction ::= · Prods "->" Code, {"|", LINE_DELIM, DEDENT}] - [Reductions ::= · Reduction ReductionsTl, {LINE_DELIM, DEDENT}] - Actions - "hocc" : ShiftPrefix 72 - "nonterm" : ShiftPrefix 73 - "epsilon" : ShiftPrefix 115 - "start" : ShiftPrefix 75 - "token" : ShiftPrefix 76 - "neutral" : ShiftPrefix 77 - "left" : ShiftPrefix 78 - "right" : ShiftPrefix 79 - "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 - UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 116 - "_" : ShiftPrefix 117 - ISTRING : ShiftPrefix 118 - "|" : ShiftPrefix 119 - "(" : ShiftPrefix 120 - "{" : ShiftPrefix 121 - Gotos - Uident : 122 - ModulePath : 123 - ProdParamSymbol : 124 - ProdParam : 125 - ProdParams : 126 - ProdPattern : 127 - Prod : 128 - Prods : 131 - Reduction : 132 - Reductions : 133 - State 115 [115.0] - Kernel - [Uident ::= "epsilon" ·, {":"}] - [ProdPattern ::= "epsilon" · PrecRef, {"->", "|", LINE_DELIM, DEDENT}] - Added - [PrecRef ::= · "prec" Uident, {"->", "|", LINE_DELIM, DEDENT}] - [PrecRef ::= ·, {"->", "|", LINE_DELIM, DEDENT}] + [CodeToken ::= "of" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] Actions - "prec" : ShiftPrefix 95 - ":" : Reduce Uident ::= "epsilon" - "->" : Reduce PrecRef ::= epsilon - "|" : Reduce PrecRef ::= epsilon - LINE_DELIM : Reduce PrecRef ::= epsilon - DEDENT : Reduce PrecRef ::= epsilon - Gotos - PrecRef : 134 + "hocc" : Reduce CodeToken ::= "of" + "nonterm" : Reduce CodeToken ::= "of" + "epsilon" : Reduce CodeToken ::= "of" + "start" : Reduce CodeToken ::= "of" + "token" : Reduce CodeToken ::= "of" + "neutral" : Reduce CodeToken ::= "of" + "left" : Reduce CodeToken ::= "of" + "right" : Reduce CodeToken ::= "of" + "nonassoc" : Reduce CodeToken ::= "of" + "prec" : Reduce CodeToken ::= "of" + UIDENT : Reduce CodeToken ::= "of" + CIDENT : Reduce CodeToken ::= "of" + "_" : Reduce CodeToken ::= "of" + ISTRING : Reduce CodeToken ::= "of" + "::=" : Reduce CodeToken ::= "of" + "of" : Reduce CodeToken ::= "of" + ":" : Reduce CodeToken ::= "of" + "." : Reduce CodeToken ::= "of" + "->" : Reduce CodeToken ::= "of" + "|" : Reduce CodeToken ::= "of" + "<" : Reduce CodeToken ::= "of" + "=" : Reduce CodeToken ::= "of" + "," : Reduce CodeToken ::= "of" + ";" : Reduce CodeToken ::= "of" + "as" : Reduce CodeToken ::= "of" + LINE_DELIM : Reduce CodeToken ::= "of" + INDENT : Reduce CodeToken ::= "of" + DEDENT : Reduce CodeToken ::= "of" + "(" : Reduce CodeToken ::= "of" + ")" : Reduce CodeToken ::= "of" + "(|" : Reduce CodeToken ::= "of" + "|)" : Reduce CodeToken ::= "of" + "[" : Reduce CodeToken ::= "of" + "]" : Reduce CodeToken ::= "of" + "[|" : Reduce CodeToken ::= "of" + "|]" : Reduce CodeToken ::= "of" + "{" : Reduce CodeToken ::= "of" + "}" : Reduce CodeToken ::= "of" + OTHER_TOKEN : Reduce CodeToken ::= "of" + State 115 [115.0] + Kernel + [CodeToken ::= ":" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + Actions + "hocc" : Reduce CodeToken ::= ":" + "nonterm" : Reduce CodeToken ::= ":" + "epsilon" : Reduce CodeToken ::= ":" + "start" : Reduce CodeToken ::= ":" + "token" : Reduce CodeToken ::= ":" + "neutral" : Reduce CodeToken ::= ":" + "left" : Reduce CodeToken ::= ":" + "right" : Reduce CodeToken ::= ":" + "nonassoc" : Reduce CodeToken ::= ":" + "prec" : Reduce CodeToken ::= ":" + UIDENT : Reduce CodeToken ::= ":" + CIDENT : Reduce CodeToken ::= ":" + "_" : Reduce CodeToken ::= ":" + ISTRING : Reduce CodeToken ::= ":" + "::=" : Reduce CodeToken ::= ":" + "of" : Reduce CodeToken ::= ":" + ":" : Reduce CodeToken ::= ":" + "." : Reduce CodeToken ::= ":" + "->" : Reduce CodeToken ::= ":" + "|" : Reduce CodeToken ::= ":" + "<" : Reduce CodeToken ::= ":" + "=" : Reduce CodeToken ::= ":" + "," : Reduce CodeToken ::= ":" + ";" : Reduce CodeToken ::= ":" + "as" : Reduce CodeToken ::= ":" + LINE_DELIM : Reduce CodeToken ::= ":" + INDENT : Reduce CodeToken ::= ":" + DEDENT : Reduce CodeToken ::= ":" + "(" : Reduce CodeToken ::= ":" + ")" : Reduce CodeToken ::= ":" + "(|" : Reduce CodeToken ::= ":" + "|)" : Reduce CodeToken ::= ":" + "[" : Reduce CodeToken ::= ":" + "]" : Reduce CodeToken ::= ":" + "[|" : Reduce CodeToken ::= ":" + "|]" : Reduce CodeToken ::= ":" + "{" : Reduce CodeToken ::= ":" + "}" : Reduce CodeToken ::= ":" + OTHER_TOKEN : Reduce CodeToken ::= ":" State 116 [116.0] Kernel - [ModulePath ::= CIDENT ·, {"."}] - [ProdParamSymbol ::= CIDENT ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [CodeToken ::= "." ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] Actions - "hocc" : Reduce ProdParamSymbol ::= CIDENT - "nonterm" : Reduce ProdParamSymbol ::= CIDENT - "epsilon" : Reduce ProdParamSymbol ::= CIDENT - "start" : Reduce ProdParamSymbol ::= CIDENT - "token" : Reduce ProdParamSymbol ::= CIDENT - "neutral" : Reduce ProdParamSymbol ::= CIDENT - "left" : Reduce ProdParamSymbol ::= CIDENT - "right" : Reduce ProdParamSymbol ::= CIDENT - "nonassoc" : Reduce ProdParamSymbol ::= CIDENT - "prec" : Reduce ProdParamSymbol ::= CIDENT - UIDENT : Reduce ProdParamSymbol ::= CIDENT - CIDENT : Reduce ProdParamSymbol ::= CIDENT - "_" : Reduce ProdParamSymbol ::= CIDENT - ISTRING : Reduce ProdParamSymbol ::= CIDENT - "." : Reduce ModulePath ::= CIDENT - "->" : Reduce ProdParamSymbol ::= CIDENT - "|" : Reduce ProdParamSymbol ::= CIDENT - LINE_DELIM : Reduce ProdParamSymbol ::= CIDENT - DEDENT : Reduce ProdParamSymbol ::= CIDENT - "(" : Reduce ProdParamSymbol ::= CIDENT - "{" : Reduce ProdParamSymbol ::= CIDENT + "hocc" : Reduce CodeToken ::= "." + "nonterm" : Reduce CodeToken ::= "." + "epsilon" : Reduce CodeToken ::= "." + "start" : Reduce CodeToken ::= "." + "token" : Reduce CodeToken ::= "." + "neutral" : Reduce CodeToken ::= "." + "left" : Reduce CodeToken ::= "." + "right" : Reduce CodeToken ::= "." + "nonassoc" : Reduce CodeToken ::= "." + "prec" : Reduce CodeToken ::= "." + UIDENT : Reduce CodeToken ::= "." + CIDENT : Reduce CodeToken ::= "." + "_" : Reduce CodeToken ::= "." + ISTRING : Reduce CodeToken ::= "." + "::=" : Reduce CodeToken ::= "." + "of" : Reduce CodeToken ::= "." + ":" : Reduce CodeToken ::= "." + "." : Reduce CodeToken ::= "." + "->" : Reduce CodeToken ::= "." + "|" : Reduce CodeToken ::= "." + "<" : Reduce CodeToken ::= "." + "=" : Reduce CodeToken ::= "." + "," : Reduce CodeToken ::= "." + ";" : Reduce CodeToken ::= "." + "as" : Reduce CodeToken ::= "." + LINE_DELIM : Reduce CodeToken ::= "." + INDENT : Reduce CodeToken ::= "." + DEDENT : Reduce CodeToken ::= "." + "(" : Reduce CodeToken ::= "." + ")" : Reduce CodeToken ::= "." + "(|" : Reduce CodeToken ::= "." + "|)" : Reduce CodeToken ::= "." + "[" : Reduce CodeToken ::= "." + "]" : Reduce CodeToken ::= "." + "[|" : Reduce CodeToken ::= "." + "|]" : Reduce CodeToken ::= "." + "{" : Reduce CodeToken ::= "." + "}" : Reduce CodeToken ::= "." + OTHER_TOKEN : Reduce CodeToken ::= "." State 117 [117.0] Kernel - [ProdParam ::= "_" · ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [CodeToken ::= "->" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] Actions - ":" : ShiftPrefix 135 + "hocc" : Reduce CodeToken ::= "->" + "nonterm" : Reduce CodeToken ::= "->" + "epsilon" : Reduce CodeToken ::= "->" + "start" : Reduce CodeToken ::= "->" + "token" : Reduce CodeToken ::= "->" + "neutral" : Reduce CodeToken ::= "->" + "left" : Reduce CodeToken ::= "->" + "right" : Reduce CodeToken ::= "->" + "nonassoc" : Reduce CodeToken ::= "->" + "prec" : Reduce CodeToken ::= "->" + UIDENT : Reduce CodeToken ::= "->" + CIDENT : Reduce CodeToken ::= "->" + "_" : Reduce CodeToken ::= "->" + ISTRING : Reduce CodeToken ::= "->" + "::=" : Reduce CodeToken ::= "->" + "of" : Reduce CodeToken ::= "->" + ":" : Reduce CodeToken ::= "->" + "." : Reduce CodeToken ::= "->" + "->" : Reduce CodeToken ::= "->" + "|" : Reduce CodeToken ::= "->" + "<" : Reduce CodeToken ::= "->" + "=" : Reduce CodeToken ::= "->" + "," : Reduce CodeToken ::= "->" + ";" : Reduce CodeToken ::= "->" + "as" : Reduce CodeToken ::= "->" + LINE_DELIM : Reduce CodeToken ::= "->" + INDENT : Reduce CodeToken ::= "->" + DEDENT : Reduce CodeToken ::= "->" + "(" : Reduce CodeToken ::= "->" + ")" : Reduce CodeToken ::= "->" + "(|" : Reduce CodeToken ::= "->" + "|)" : Reduce CodeToken ::= "->" + "[" : Reduce CodeToken ::= "->" + "]" : Reduce CodeToken ::= "->" + "[|" : Reduce CodeToken ::= "->" + "|]" : Reduce CodeToken ::= "->" + "{" : Reduce CodeToken ::= "->" + "}" : Reduce CodeToken ::= "->" + OTHER_TOKEN : Reduce CodeToken ::= "->" State 118 [118.0] Kernel - [ProdParamSymbol ::= ISTRING ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [CodeToken ::= "<" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] Actions - "hocc" : Reduce ProdParamSymbol ::= ISTRING - "nonterm" : Reduce ProdParamSymbol ::= ISTRING - "epsilon" : Reduce ProdParamSymbol ::= ISTRING - "start" : Reduce ProdParamSymbol ::= ISTRING - "token" : Reduce ProdParamSymbol ::= ISTRING - "neutral" : Reduce ProdParamSymbol ::= ISTRING - "left" : Reduce ProdParamSymbol ::= ISTRING - "right" : Reduce ProdParamSymbol ::= ISTRING - "nonassoc" : Reduce ProdParamSymbol ::= ISTRING - "prec" : Reduce ProdParamSymbol ::= ISTRING - UIDENT : Reduce ProdParamSymbol ::= ISTRING - CIDENT : Reduce ProdParamSymbol ::= ISTRING - "_" : Reduce ProdParamSymbol ::= ISTRING - ISTRING : Reduce ProdParamSymbol ::= ISTRING - "->" : Reduce ProdParamSymbol ::= ISTRING - "|" : Reduce ProdParamSymbol ::= ISTRING - LINE_DELIM : Reduce ProdParamSymbol ::= ISTRING - DEDENT : Reduce ProdParamSymbol ::= ISTRING - "(" : Reduce ProdParamSymbol ::= ISTRING - "{" : Reduce ProdParamSymbol ::= ISTRING + "hocc" : Reduce CodeToken ::= "<" + "nonterm" : Reduce CodeToken ::= "<" + "epsilon" : Reduce CodeToken ::= "<" + "start" : Reduce CodeToken ::= "<" + "token" : Reduce CodeToken ::= "<" + "neutral" : Reduce CodeToken ::= "<" + "left" : Reduce CodeToken ::= "<" + "right" : Reduce CodeToken ::= "<" + "nonassoc" : Reduce CodeToken ::= "<" + "prec" : Reduce CodeToken ::= "<" + UIDENT : Reduce CodeToken ::= "<" + CIDENT : Reduce CodeToken ::= "<" + "_" : Reduce CodeToken ::= "<" + ISTRING : Reduce CodeToken ::= "<" + "::=" : Reduce CodeToken ::= "<" + "of" : Reduce CodeToken ::= "<" + ":" : Reduce CodeToken ::= "<" + "." : Reduce CodeToken ::= "<" + "->" : Reduce CodeToken ::= "<" + "|" : Reduce CodeToken ::= "<" + "<" : Reduce CodeToken ::= "<" + "=" : Reduce CodeToken ::= "<" + "," : Reduce CodeToken ::= "<" + ";" : Reduce CodeToken ::= "<" + "as" : Reduce CodeToken ::= "<" + LINE_DELIM : Reduce CodeToken ::= "<" + INDENT : Reduce CodeToken ::= "<" + DEDENT : Reduce CodeToken ::= "<" + "(" : Reduce CodeToken ::= "<" + ")" : Reduce CodeToken ::= "<" + "(|" : Reduce CodeToken ::= "<" + "|)" : Reduce CodeToken ::= "<" + "[" : Reduce CodeToken ::= "<" + "]" : Reduce CodeToken ::= "<" + "[|" : Reduce CodeToken ::= "<" + "|]" : Reduce CodeToken ::= "<" + "{" : Reduce CodeToken ::= "<" + "}" : Reduce CodeToken ::= "<" + OTHER_TOKEN : Reduce CodeToken ::= "<" State 119 [119.0] Kernel - [Prods ::= "|" · Prod ProdsTl, {"->", LINE_DELIM, DEDENT}] - Added - [Uident ::= · "hocc", {":"}] - [Uident ::= · "nonterm", {":"}] - [Uident ::= · "epsilon", {":"}] - [Uident ::= · "start", {":"}] - [Uident ::= · "token", {":"}] - [Uident ::= · "neutral", {":"}] - [Uident ::= · "left", {":"}] - [Uident ::= · "right", {":"}] - [Uident ::= · "nonassoc", {":"}] - [Uident ::= · "prec", {":"}] - [Uident ::= · UIDENT, {":"}] - [ModulePath ::= · CIDENT, {"."}] - [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT - [ProdParamSymbol ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParamSymbol ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= · Uident ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= · "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= · ModulePath "." "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= · "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= · ModulePath "." "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= · "_" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= · ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParams ::= · ProdParam ProdParamsTl, {"->", "|", LINE_DELIM, DEDENT}] - [ProdPattern ::= · ProdParams, {"->", "|", LINE_DELIM, DEDENT}] - [ProdPattern ::= · "epsilon" PrecRef, {"->", "|", LINE_DELIM, DEDENT}] - [Prod ::= · ProdPattern, {"->", "|", LINE_DELIM, DEDENT}] + [CodeToken ::= "=" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + Actions + "hocc" : Reduce CodeToken ::= "=" + "nonterm" : Reduce CodeToken ::= "=" + "epsilon" : Reduce CodeToken ::= "=" + "start" : Reduce CodeToken ::= "=" + "token" : Reduce CodeToken ::= "=" + "neutral" : Reduce CodeToken ::= "=" + "left" : Reduce CodeToken ::= "=" + "right" : Reduce CodeToken ::= "=" + "nonassoc" : Reduce CodeToken ::= "=" + "prec" : Reduce CodeToken ::= "=" + UIDENT : Reduce CodeToken ::= "=" + CIDENT : Reduce CodeToken ::= "=" + "_" : Reduce CodeToken ::= "=" + ISTRING : Reduce CodeToken ::= "=" + "::=" : Reduce CodeToken ::= "=" + "of" : Reduce CodeToken ::= "=" + ":" : Reduce CodeToken ::= "=" + "." : Reduce CodeToken ::= "=" + "->" : Reduce CodeToken ::= "=" + "|" : Reduce CodeToken ::= "=" + "<" : Reduce CodeToken ::= "=" + "=" : Reduce CodeToken ::= "=" + "," : Reduce CodeToken ::= "=" + ";" : Reduce CodeToken ::= "=" + "as" : Reduce CodeToken ::= "=" + LINE_DELIM : Reduce CodeToken ::= "=" + INDENT : Reduce CodeToken ::= "=" + DEDENT : Reduce CodeToken ::= "=" + "(" : Reduce CodeToken ::= "=" + ")" : Reduce CodeToken ::= "=" + "(|" : Reduce CodeToken ::= "=" + "|)" : Reduce CodeToken ::= "=" + "[" : Reduce CodeToken ::= "=" + "]" : Reduce CodeToken ::= "=" + "[|" : Reduce CodeToken ::= "=" + "|]" : Reduce CodeToken ::= "=" + "{" : Reduce CodeToken ::= "=" + "}" : Reduce CodeToken ::= "=" + OTHER_TOKEN : Reduce CodeToken ::= "=" + State 120 [120.0] + Kernel + [CodeToken ::= "," ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + Actions + "hocc" : Reduce CodeToken ::= "," + "nonterm" : Reduce CodeToken ::= "," + "epsilon" : Reduce CodeToken ::= "," + "start" : Reduce CodeToken ::= "," + "token" : Reduce CodeToken ::= "," + "neutral" : Reduce CodeToken ::= "," + "left" : Reduce CodeToken ::= "," + "right" : Reduce CodeToken ::= "," + "nonassoc" : Reduce CodeToken ::= "," + "prec" : Reduce CodeToken ::= "," + UIDENT : Reduce CodeToken ::= "," + CIDENT : Reduce CodeToken ::= "," + "_" : Reduce CodeToken ::= "," + ISTRING : Reduce CodeToken ::= "," + "::=" : Reduce CodeToken ::= "," + "of" : Reduce CodeToken ::= "," + ":" : Reduce CodeToken ::= "," + "." : Reduce CodeToken ::= "," + "->" : Reduce CodeToken ::= "," + "|" : Reduce CodeToken ::= "," + "<" : Reduce CodeToken ::= "," + "=" : Reduce CodeToken ::= "," + "," : Reduce CodeToken ::= "," + ";" : Reduce CodeToken ::= "," + "as" : Reduce CodeToken ::= "," + LINE_DELIM : Reduce CodeToken ::= "," + INDENT : Reduce CodeToken ::= "," + DEDENT : Reduce CodeToken ::= "," + "(" : Reduce CodeToken ::= "," + ")" : Reduce CodeToken ::= "," + "(|" : Reduce CodeToken ::= "," + "|)" : Reduce CodeToken ::= "," + "[" : Reduce CodeToken ::= "," + "]" : Reduce CodeToken ::= "," + "[|" : Reduce CodeToken ::= "," + "|]" : Reduce CodeToken ::= "," + "{" : Reduce CodeToken ::= "," + "}" : Reduce CodeToken ::= "," + OTHER_TOKEN : Reduce CodeToken ::= "," + State 121 [121.0] + Kernel + [CodeToken ::= "as" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + Actions + "hocc" : Reduce CodeToken ::= "as" + "nonterm" : Reduce CodeToken ::= "as" + "epsilon" : Reduce CodeToken ::= "as" + "start" : Reduce CodeToken ::= "as" + "token" : Reduce CodeToken ::= "as" + "neutral" : Reduce CodeToken ::= "as" + "left" : Reduce CodeToken ::= "as" + "right" : Reduce CodeToken ::= "as" + "nonassoc" : Reduce CodeToken ::= "as" + "prec" : Reduce CodeToken ::= "as" + UIDENT : Reduce CodeToken ::= "as" + CIDENT : Reduce CodeToken ::= "as" + "_" : Reduce CodeToken ::= "as" + ISTRING : Reduce CodeToken ::= "as" + "::=" : Reduce CodeToken ::= "as" + "of" : Reduce CodeToken ::= "as" + ":" : Reduce CodeToken ::= "as" + "." : Reduce CodeToken ::= "as" + "->" : Reduce CodeToken ::= "as" + "|" : Reduce CodeToken ::= "as" + "<" : Reduce CodeToken ::= "as" + "=" : Reduce CodeToken ::= "as" + "," : Reduce CodeToken ::= "as" + ";" : Reduce CodeToken ::= "as" + "as" : Reduce CodeToken ::= "as" + LINE_DELIM : Reduce CodeToken ::= "as" + INDENT : Reduce CodeToken ::= "as" + DEDENT : Reduce CodeToken ::= "as" + "(" : Reduce CodeToken ::= "as" + ")" : Reduce CodeToken ::= "as" + "(|" : Reduce CodeToken ::= "as" + "|)" : Reduce CodeToken ::= "as" + "[" : Reduce CodeToken ::= "as" + "]" : Reduce CodeToken ::= "as" + "[|" : Reduce CodeToken ::= "as" + "|]" : Reduce CodeToken ::= "as" + "{" : Reduce CodeToken ::= "as" + "}" : Reduce CodeToken ::= "as" + OTHER_TOKEN : Reduce CodeToken ::= "as" + State 122 [122.0] + Kernel + [Delimited ::= INDENT · Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + Added + [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Codes ::= · Code CodesTl, {DEDENT}] + [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Code ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, DEDENT}] + [Code ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, DEDENT}] Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 - "epsilon" : ShiftPrefix 115 + "epsilon" : ShiftPrefix 74 "start" : ShiftPrefix 75 "token" : ShiftPrefix 76 "neutral" : ShiftPrefix 77 "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 116 - "_" : ShiftPrefix 117 - ISTRING : ShiftPrefix 118 - "(" : ShiftPrefix 120 - "{" : ShiftPrefix 121 + CIDENT : ShiftPrefix 110 + "_" : ShiftPrefix 111 + ISTRING : ShiftPrefix 112 + "::=" : ShiftPrefix 113 + "of" : ShiftPrefix 114 + ":" : ShiftPrefix 115 + "." : ShiftPrefix 116 prec pDOT + "->" : ShiftPrefix 117 + "<" : ShiftPrefix 118 + "=" : ShiftPrefix 119 + "," : ShiftPrefix 120 prec pCOMMA + "as" : ShiftPrefix 121 prec pAS + INDENT : ShiftPrefix 122 + "(" : ShiftPrefix 123 + "(|" : ShiftPrefix 124 + "[" : ShiftPrefix 125 + "[|" : ShiftPrefix 126 + "{" : ShiftPrefix 127 + OTHER_TOKEN : ShiftPrefix 128 Gotos - Uident : 122 - ModulePath : 123 - ProdParamSymbol : 124 - ProdParam : 125 - ProdParams : 126 - ProdPattern : 127 - Prod : 136 - State 120 [120.0] + Uident : 129 + Codes : 153 + Delimited : 154 + CodeToken : 155 + Code : 156 + State 123 [123.0] Kernel - [ProdParam ::= "(" · Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [Delimited ::= "(" · Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] Added - [Uident ::= · "hocc", {",", "as", ")"}] - [Uident ::= · "nonterm", {",", "as", ")"}] - [Uident ::= · "epsilon", {",", "as", ")"}] - [Uident ::= · "start", {",", "as", ")"}] - [Uident ::= · "token", {",", "as", ")"}] - [Uident ::= · "neutral", {",", "as", ")"}] - [Uident ::= · "left", {",", "as", ")"}] - [Uident ::= · "right", {",", "as", ")"}] - [Uident ::= · "nonassoc", {",", "as", ")"}] - [Uident ::= · "prec", {",", "as", ")"}] - [Uident ::= · UIDENT, {",", "as", ")"}] - [ModulePath ::= · CIDENT, {"."}] - [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT - [Pattern ::= · "_", {",", "as", ")"}] - [Pattern ::= · Uident, {",", "as", ")"}] - [Pattern ::= · Pattern "as" Uident, {",", "as", ")"}] - [Pattern ::= · "(" Pattern ")", {",", "as", ")"}] - [Pattern ::= · CIDENT Pattern, {",", "as", ")"}] prec pCIDENT - [Pattern ::= · ModulePath "." "(" Pattern ")", {",", "as", ")"}] - [Pattern ::= · Pattern "," Pattern, {",", "as", ")"}] prec pCOMMA - [Pattern ::= · "{" PatternFields SemiSuffix "}", {",", "as", ")"}] - [Pattern ::= · ModulePath "." "{" PatternFields SemiSuffix "}", {",", "as", ")"}] + [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Codes ::= · Code CodesTl, {")"}] + [Codes0 ::= · Codes, {")"}] + [Codes0 ::= ·, {")"}] + [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Code ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, ")"}] + [Code ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, ")"}] Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 @@ -4093,36 +4535,75 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 137 - "_" : ShiftPrefix 138 - "(" : ShiftPrefix 139 - "{" : ShiftPrefix 140 + CIDENT : ShiftPrefix 110 + "_" : ShiftPrefix 111 + ISTRING : ShiftPrefix 112 + "::=" : ShiftPrefix 113 + "of" : ShiftPrefix 114 + ":" : ShiftPrefix 115 + "." : ShiftPrefix 116 prec pDOT + "->" : ShiftPrefix 117 + "<" : ShiftPrefix 118 + "=" : ShiftPrefix 119 + "," : ShiftPrefix 120 prec pCOMMA + "as" : ShiftPrefix 121 prec pAS + INDENT : ShiftPrefix 122 + "(" : ShiftPrefix 123 + ")" : Reduce Codes0 ::= epsilon + "(|" : ShiftPrefix 124 + "[" : ShiftPrefix 125 + "[|" : ShiftPrefix 126 + "{" : ShiftPrefix 127 + OTHER_TOKEN : ShiftPrefix 128 Gotos - Uident : 141 - ModulePath : 142 - Pattern : 143 - State 121 [121.0] + Uident : 129 + Codes : 157 + Codes0 : 158 + Delimited : 154 + CodeToken : 155 + Code : 156 + State 124 [124.0] Kernel - [ProdParam ::= "{" · PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [Delimited ::= "(|" · Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] Added - [Uident ::= · "hocc", {"=", ";", "}"}] - [Uident ::= · "nonterm", {"=", ";", "}"}] - [Uident ::= · "epsilon", {"=", ";", "}"}] - [Uident ::= · "start", {"=", ";", "}"}] - [Uident ::= · "token", {"=", ";", "}"}] - [Uident ::= · "neutral", {"=", ";", "}"}] - [Uident ::= · "left", {"=", ";", "}"}] - [Uident ::= · "right", {"=", ";", "}"}] - [Uident ::= · "nonassoc", {"=", ";", "}"}] - [Uident ::= · "prec", {"=", ";", "}"}] - [Uident ::= · UIDENT, {"=", ";", "}"}] - [PatternField ::= · Uident, {";", "}"}] - [PatternField ::= · Uident "=" Pattern, {";", "}"}] - [PatternFields ::= · PatternField, {";", "}"}] prec pSEMI - [PatternFields ::= · PatternField ";" "_", {";", "}"}] - [PatternFields ::= · PatternField ";" PatternFields, {";", "}"}] + [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [Codes ::= · Code CodesTl, {"|)"}] + [Codes0 ::= · Codes, {"|)"}] + [Codes0 ::= ·, {"|)"}] + [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] + [Code ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, "|)"}] + [Code ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, "|)"}] Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 @@ -4133,78 +4614,75 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 + CIDENT : ShiftPrefix 110 + "_" : ShiftPrefix 111 + ISTRING : ShiftPrefix 112 + "::=" : ShiftPrefix 113 + "of" : ShiftPrefix 114 + ":" : ShiftPrefix 115 + "." : ShiftPrefix 116 prec pDOT + "->" : ShiftPrefix 117 + "<" : ShiftPrefix 118 + "=" : ShiftPrefix 119 + "," : ShiftPrefix 120 prec pCOMMA + "as" : ShiftPrefix 121 prec pAS + INDENT : ShiftPrefix 122 + "(" : ShiftPrefix 123 + "(|" : ShiftPrefix 124 + "|)" : Reduce Codes0 ::= epsilon + "[" : ShiftPrefix 125 + "[|" : ShiftPrefix 126 + "{" : ShiftPrefix 127 + OTHER_TOKEN : ShiftPrefix 128 Gotos - Uident : 144 - PatternField : 145 - PatternFields : 146 - State 122 [122.0] - Kernel - [ProdParam ::= Uident · ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - Actions - ":" : ShiftPrefix 147 - State 123 [123.0] - Kernel - [ModulePath ::= ModulePath · "." ModulePath, {"."}] prec pDOT - [ProdParam ::= ModulePath · "." "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= ModulePath · "." "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - Actions - "." : ShiftPrefix 148 prec pDOT - State 124 [124.0] - Kernel - [ProdParam ::= ProdParamSymbol ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - Actions - "hocc" : Reduce ProdParam ::= ProdParamSymbol - "nonterm" : Reduce ProdParam ::= ProdParamSymbol - "epsilon" : Reduce ProdParam ::= ProdParamSymbol - "start" : Reduce ProdParam ::= ProdParamSymbol - "token" : Reduce ProdParam ::= ProdParamSymbol - "neutral" : Reduce ProdParam ::= ProdParamSymbol - "left" : Reduce ProdParam ::= ProdParamSymbol - "right" : Reduce ProdParam ::= ProdParamSymbol - "nonassoc" : Reduce ProdParam ::= ProdParamSymbol - "prec" : Reduce ProdParam ::= ProdParamSymbol - UIDENT : Reduce ProdParam ::= ProdParamSymbol - CIDENT : Reduce ProdParam ::= ProdParamSymbol - "_" : Reduce ProdParam ::= ProdParamSymbol - ISTRING : Reduce ProdParam ::= ProdParamSymbol - "->" : Reduce ProdParam ::= ProdParamSymbol - "|" : Reduce ProdParam ::= ProdParamSymbol - LINE_DELIM : Reduce ProdParam ::= ProdParamSymbol - DEDENT : Reduce ProdParam ::= ProdParamSymbol - "(" : Reduce ProdParam ::= ProdParamSymbol - "{" : Reduce ProdParam ::= ProdParamSymbol + Uident : 129 + Codes : 157 + Codes0 : 159 + Delimited : 154 + CodeToken : 155 + Code : 156 State 125 [125.0] Kernel - [ProdParams ::= ProdParam · ProdParamsTl, {"->", "|", LINE_DELIM, DEDENT}] + [Delimited ::= "[" · Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] Added - [Uident ::= · "hocc", {":"}] - [Uident ::= · "nonterm", {":"}] - [Uident ::= · "epsilon", {":"}] - [Uident ::= · "start", {":"}] - [Uident ::= · "token", {":"}] - [Uident ::= · "neutral", {":"}] - [Uident ::= · "left", {":"}] - [Uident ::= · "right", {":"}] - [Uident ::= · "nonassoc", {":"}] - [Uident ::= · "prec", {":"}] - [Uident ::= · UIDENT, {":"}] - [PrecRef ::= · "prec" Uident, {"->", "|", LINE_DELIM, DEDENT}] - [PrecRef ::= ·, {"->", "|", LINE_DELIM, DEDENT}] - [ModulePath ::= · CIDENT, {"."}] - [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT - [ProdParamSymbol ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParamSymbol ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= · Uident ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= · "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= · ModulePath "." "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= · "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= · ModulePath "." "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= · "_" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= · ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParamsTl ::= · ProdParam ProdParamsTl, {"->", "|", LINE_DELIM, DEDENT}] - [ProdParamsTl ::= · PrecRef, {"->", "|", LINE_DELIM, DEDENT}] + [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [Codes ::= · Code CodesTl, {"]"}] + [Codes0 ::= · Codes, {"]"}] + [Codes0 ::= ·, {"]"}] + [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] + [Code ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, "]"}] + [Code ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, "]"}] Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 @@ -4215,156 +4693,154 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 149 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 116 - "_" : ShiftPrefix 117 - ISTRING : ShiftPrefix 118 - "->" : Reduce PrecRef ::= epsilon - "|" : Reduce PrecRef ::= epsilon - LINE_DELIM : Reduce PrecRef ::= epsilon - DEDENT : Reduce PrecRef ::= epsilon - "(" : ShiftPrefix 120 - "{" : ShiftPrefix 121 + CIDENT : ShiftPrefix 110 + "_" : ShiftPrefix 111 + ISTRING : ShiftPrefix 112 + "::=" : ShiftPrefix 113 + "of" : ShiftPrefix 114 + ":" : ShiftPrefix 115 + "." : ShiftPrefix 116 prec pDOT + "->" : ShiftPrefix 117 + "<" : ShiftPrefix 118 + "=" : ShiftPrefix 119 + "," : ShiftPrefix 120 prec pCOMMA + "as" : ShiftPrefix 121 prec pAS + INDENT : ShiftPrefix 122 + "(" : ShiftPrefix 123 + "(|" : ShiftPrefix 124 + "[" : ShiftPrefix 125 + "]" : Reduce Codes0 ::= epsilon + "[|" : ShiftPrefix 126 + "{" : ShiftPrefix 127 + OTHER_TOKEN : ShiftPrefix 128 Gotos - Uident : 122 - PrecRef : 150 - ModulePath : 123 - ProdParamSymbol : 124 - ProdParam : 151 - ProdParamsTl : 152 + Uident : 129 + Codes : 157 + Codes0 : 160 + Delimited : 154 + CodeToken : 155 + Code : 156 State 126 [126.0] Kernel - [ProdPattern ::= ProdParams ·, {"->", "|", LINE_DELIM, DEDENT}] - Actions - "->" : Reduce ProdPattern ::= ProdParams - "|" : Reduce ProdPattern ::= ProdParams - LINE_DELIM : Reduce ProdPattern ::= ProdParams - DEDENT : Reduce ProdPattern ::= ProdParams - State 127 [127.0] - Kernel - [Prod ::= ProdPattern ·, {"->", "|", LINE_DELIM, DEDENT}] - Actions - "->" : Reduce Prod ::= ProdPattern - "|" : Reduce Prod ::= ProdPattern - LINE_DELIM : Reduce Prod ::= ProdPattern - DEDENT : Reduce Prod ::= ProdPattern - State 128 [128.0] - Kernel - [Prods ::= Prod · ProdsTl, {"->", LINE_DELIM, DEDENT}] + [Delimited ::= "[|" · Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] Added - [ProdsTl ::= · "|" Prod ProdsTl, {"->", LINE_DELIM, DEDENT}] - [ProdsTl ::= ·, {"->", LINE_DELIM, DEDENT}] + [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [Codes ::= · Code CodesTl, {"|]"}] + [Codes0 ::= · Codes, {"|]"}] + [Codes0 ::= ·, {"|]"}] + [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] + [Code ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, "|]"}] + [Code ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, "|]"}] Actions - "->" : Reduce ProdsTl ::= epsilon - "|" : ShiftPrefix 153 - LINE_DELIM : Reduce ProdsTl ::= epsilon - DEDENT : Reduce ProdsTl ::= epsilon + "hocc" : ShiftPrefix 72 + "nonterm" : ShiftPrefix 73 + "epsilon" : ShiftPrefix 74 + "start" : ShiftPrefix 75 + "token" : ShiftPrefix 76 + "neutral" : ShiftPrefix 77 + "left" : ShiftPrefix 78 + "right" : ShiftPrefix 79 + "nonassoc" : ShiftPrefix 80 + "prec" : ShiftPrefix 81 prec pPrec + UIDENT : ShiftPrefix 82 + CIDENT : ShiftPrefix 110 + "_" : ShiftPrefix 111 + ISTRING : ShiftPrefix 112 + "::=" : ShiftPrefix 113 + "of" : ShiftPrefix 114 + ":" : ShiftPrefix 115 + "." : ShiftPrefix 116 prec pDOT + "->" : ShiftPrefix 117 + "<" : ShiftPrefix 118 + "=" : ShiftPrefix 119 + "," : ShiftPrefix 120 prec pCOMMA + "as" : ShiftPrefix 121 prec pAS + INDENT : ShiftPrefix 122 + "(" : ShiftPrefix 123 + "(|" : ShiftPrefix 124 + "[" : ShiftPrefix 125 + "[|" : ShiftPrefix 126 + "|]" : Reduce Codes0 ::= epsilon + "{" : ShiftPrefix 127 + OTHER_TOKEN : ShiftPrefix 128 Gotos - ProdsTl : 154 - State 129 [129.0] - Kernel - [Nonterm ::= NontermType CIDENT PrecRef "::=" Prods ·, {LINE_DELIM, DEDENT}] - Actions - LINE_DELIM : Reduce Nonterm ::= NontermType CIDENT PrecRef "::=" Prods - DEDENT : Reduce Nonterm ::= NontermType CIDENT PrecRef "::=" Prods - State 130 [130.0] - Kernel - [SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT}] - Actions - "hocc" : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier - "nonterm" : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier - "epsilon" : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier - "start" : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier - "token" : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier - "neutral" : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier - "left" : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier - "right" : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier - "nonassoc" : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier - "prec" : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier - UIDENT : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier - State 131 [131.0] - Kernel - [Reduction ::= Prods · "->" Code, {"|", LINE_DELIM, DEDENT}] - Actions - "->" : ShiftPrefix 155 - State 132 [132.0] + Uident : 129 + Codes : 157 + Codes0 : 161 + Delimited : 154 + CodeToken : 155 + Code : 156 + State 127 [127.0] Kernel - [Reductions ::= Reduction · ReductionsTl, {LINE_DELIM, DEDENT}] + [Delimited ::= "{" · Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] Added - [ReductionsTl ::= · "|" Reduction ReductionsTl, {LINE_DELIM, DEDENT}] - [ReductionsTl ::= ·, {LINE_DELIM, DEDENT}] - Actions - "|" : ShiftPrefix 156 - LINE_DELIM : Reduce ReductionsTl ::= epsilon - DEDENT : Reduce ReductionsTl ::= epsilon - Gotos - ReductionsTl : 157 - State 133 [133.0] - Kernel - [Nonterm ::= NontermType CIDENT SymbolType PrecRef "::=" Reductions ·, {LINE_DELIM, DEDENT}] - Actions - LINE_DELIM : Reduce Nonterm ::= NontermType CIDENT SymbolType PrecRef "::=" Reductions - DEDENT : Reduce Nonterm ::= NontermType CIDENT SymbolType PrecRef "::=" Reductions - State 134 [134.0] - Kernel - [ProdPattern ::= "epsilon" PrecRef ·, {"->", "|", LINE_DELIM, DEDENT}] - Actions - "->" : Reduce ProdPattern ::= "epsilon" PrecRef - "|" : Reduce ProdPattern ::= "epsilon" PrecRef - LINE_DELIM : Reduce ProdPattern ::= "epsilon" PrecRef - DEDENT : Reduce ProdPattern ::= "epsilon" PrecRef - State 135 [135.0] - Kernel - [ProdParam ::= "_" ":" · ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - Added - [ProdParamSymbol ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParamSymbol ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - Actions - CIDENT : ShiftPrefix 158 - ISTRING : ShiftPrefix 118 - Gotos - ProdParamSymbol : 159 - State 136 [136.0] - Kernel - [Prods ::= "|" Prod · ProdsTl, {"->", LINE_DELIM, DEDENT}] - Added - [ProdsTl ::= · "|" Prod ProdsTl, {"->", LINE_DELIM, DEDENT}] - [ProdsTl ::= ·, {"->", LINE_DELIM, DEDENT}] - Actions - "->" : Reduce ProdsTl ::= epsilon - "|" : ShiftPrefix 153 - LINE_DELIM : Reduce ProdsTl ::= epsilon - DEDENT : Reduce ProdsTl ::= epsilon - Gotos - ProdsTl : 160 - State 137 [137.0] - Kernel - [ModulePath ::= CIDENT ·, {"."}] - [Pattern ::= CIDENT · Pattern, {",", ";", "as", ")", "}"}] prec pCIDENT - Added - [Uident ::= · "hocc", {",", ";", "as", ")", "}"}] - [Uident ::= · "nonterm", {",", ";", "as", ")", "}"}] - [Uident ::= · "epsilon", {",", ";", "as", ")", "}"}] - [Uident ::= · "start", {",", ";", "as", ")", "}"}] - [Uident ::= · "token", {",", ";", "as", ")", "}"}] - [Uident ::= · "neutral", {",", ";", "as", ")", "}"}] - [Uident ::= · "left", {",", ";", "as", ")", "}"}] - [Uident ::= · "right", {",", ";", "as", ")", "}"}] - [Uident ::= · "nonassoc", {",", ";", "as", ")", "}"}] - [Uident ::= · "prec", {",", ";", "as", ")", "}"}] - [Uident ::= · UIDENT, {",", ";", "as", ")", "}"}] - [ModulePath ::= · CIDENT, {"."}] - [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT - [Pattern ::= · "_", {",", ";", "as", ")", "}"}] - [Pattern ::= · Uident, {",", ";", "as", ")", "}"}] - [Pattern ::= · Pattern "as" Uident, {",", ";", "as", ")", "}"}] - [Pattern ::= · "(" Pattern ")", {",", ";", "as", ")", "}"}] - [Pattern ::= · CIDENT Pattern, {",", ";", "as", ")", "}"}] prec pCIDENT - [Pattern ::= · ModulePath "." "(" Pattern ")", {",", ";", "as", ")", "}"}] - [Pattern ::= · Pattern "," Pattern, {",", ";", "as", ")", "}"}] prec pCOMMA - [Pattern ::= · "{" PatternFields SemiSuffix "}", {",", ";", "as", ")", "}"}] - [Pattern ::= · ModulePath "." "{" PatternFields SemiSuffix "}", {",", ";", "as", ")", "}"}] + [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [Codes ::= · Code CodesTl, {"}"}] + [Codes0 ::= · Codes, {"}"}] + [Codes0 ::= ·, {"}"}] + [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] + [Code ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, "}"}] + [Code ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, "}"}] Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 @@ -4375,52 +4851,159 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 137 - "_" : ShiftPrefix 138 - "." : Reduce ModulePath ::= CIDENT - "(" : ShiftPrefix 139 - "{" : ShiftPrefix 140 + CIDENT : ShiftPrefix 110 + "_" : ShiftPrefix 111 + ISTRING : ShiftPrefix 112 + "::=" : ShiftPrefix 113 + "of" : ShiftPrefix 114 + ":" : ShiftPrefix 115 + "." : ShiftPrefix 116 prec pDOT + "->" : ShiftPrefix 117 + "<" : ShiftPrefix 118 + "=" : ShiftPrefix 119 + "," : ShiftPrefix 120 prec pCOMMA + "as" : ShiftPrefix 121 prec pAS + INDENT : ShiftPrefix 122 + "(" : ShiftPrefix 123 + "(|" : ShiftPrefix 124 + "[" : ShiftPrefix 125 + "[|" : ShiftPrefix 126 + "{" : ShiftPrefix 127 + "}" : Reduce Codes0 ::= epsilon + OTHER_TOKEN : ShiftPrefix 128 Gotos - Uident : 141 - ModulePath : 142 - Pattern : 161 - State 138 [138.0] + Uident : 129 + Codes : 157 + Codes0 : 162 + Delimited : 154 + CodeToken : 155 + Code : 156 + State 128 [128.0] Kernel - [Pattern ::= "_" ·, {",", ";", "as", ")", "}"}] + [CodeToken ::= OTHER_TOKEN ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] Actions - "," : Reduce Pattern ::= "_" - ";" : Reduce Pattern ::= "_" - "as" : Reduce Pattern ::= "_" - ")" : Reduce Pattern ::= "_" - "}" : Reduce Pattern ::= "_" - State 139 [139.0] + "hocc" : Reduce CodeToken ::= OTHER_TOKEN + "nonterm" : Reduce CodeToken ::= OTHER_TOKEN + "epsilon" : Reduce CodeToken ::= OTHER_TOKEN + "start" : Reduce CodeToken ::= OTHER_TOKEN + "token" : Reduce CodeToken ::= OTHER_TOKEN + "neutral" : Reduce CodeToken ::= OTHER_TOKEN + "left" : Reduce CodeToken ::= OTHER_TOKEN + "right" : Reduce CodeToken ::= OTHER_TOKEN + "nonassoc" : Reduce CodeToken ::= OTHER_TOKEN + "prec" : Reduce CodeToken ::= OTHER_TOKEN + UIDENT : Reduce CodeToken ::= OTHER_TOKEN + CIDENT : Reduce CodeToken ::= OTHER_TOKEN + "_" : Reduce CodeToken ::= OTHER_TOKEN + ISTRING : Reduce CodeToken ::= OTHER_TOKEN + "::=" : Reduce CodeToken ::= OTHER_TOKEN + "of" : Reduce CodeToken ::= OTHER_TOKEN + ":" : Reduce CodeToken ::= OTHER_TOKEN + "." : Reduce CodeToken ::= OTHER_TOKEN + "->" : Reduce CodeToken ::= OTHER_TOKEN + "|" : Reduce CodeToken ::= OTHER_TOKEN + "<" : Reduce CodeToken ::= OTHER_TOKEN + "=" : Reduce CodeToken ::= OTHER_TOKEN + "," : Reduce CodeToken ::= OTHER_TOKEN + ";" : Reduce CodeToken ::= OTHER_TOKEN + "as" : Reduce CodeToken ::= OTHER_TOKEN + LINE_DELIM : Reduce CodeToken ::= OTHER_TOKEN + INDENT : Reduce CodeToken ::= OTHER_TOKEN + DEDENT : Reduce CodeToken ::= OTHER_TOKEN + "(" : Reduce CodeToken ::= OTHER_TOKEN + ")" : Reduce CodeToken ::= OTHER_TOKEN + "(|" : Reduce CodeToken ::= OTHER_TOKEN + "|)" : Reduce CodeToken ::= OTHER_TOKEN + "[" : Reduce CodeToken ::= OTHER_TOKEN + "]" : Reduce CodeToken ::= OTHER_TOKEN + "[|" : Reduce CodeToken ::= OTHER_TOKEN + "|]" : Reduce CodeToken ::= OTHER_TOKEN + "{" : Reduce CodeToken ::= OTHER_TOKEN + "}" : Reduce CodeToken ::= OTHER_TOKEN + OTHER_TOKEN : Reduce CodeToken ::= OTHER_TOKEN + State 129 [129.0] Kernel - [Pattern ::= "(" · Pattern ")", {",", ";", "as", ")", "}"}] + [CodeToken ::= Uident ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + Actions + "hocc" : Reduce CodeToken ::= Uident + "nonterm" : Reduce CodeToken ::= Uident + "epsilon" : Reduce CodeToken ::= Uident + "start" : Reduce CodeToken ::= Uident + "token" : Reduce CodeToken ::= Uident + "neutral" : Reduce CodeToken ::= Uident + "left" : Reduce CodeToken ::= Uident + "right" : Reduce CodeToken ::= Uident + "nonassoc" : Reduce CodeToken ::= Uident + "prec" : Reduce CodeToken ::= Uident + UIDENT : Reduce CodeToken ::= Uident + CIDENT : Reduce CodeToken ::= Uident + "_" : Reduce CodeToken ::= Uident + ISTRING : Reduce CodeToken ::= Uident + "::=" : Reduce CodeToken ::= Uident + "of" : Reduce CodeToken ::= Uident + ":" : Reduce CodeToken ::= Uident + "." : Reduce CodeToken ::= Uident + "->" : Reduce CodeToken ::= Uident + "|" : Reduce CodeToken ::= Uident + "<" : Reduce CodeToken ::= Uident + "=" : Reduce CodeToken ::= Uident + "," : Reduce CodeToken ::= Uident + ";" : Reduce CodeToken ::= Uident + "as" : Reduce CodeToken ::= Uident + LINE_DELIM : Reduce CodeToken ::= Uident + INDENT : Reduce CodeToken ::= Uident + DEDENT : Reduce CodeToken ::= Uident + "(" : Reduce CodeToken ::= Uident + ")" : Reduce CodeToken ::= Uident + "(|" : Reduce CodeToken ::= Uident + "|)" : Reduce CodeToken ::= Uident + "[" : Reduce CodeToken ::= Uident + "]" : Reduce CodeToken ::= Uident + "[|" : Reduce CodeToken ::= Uident + "|]" : Reduce CodeToken ::= Uident + "{" : Reduce CodeToken ::= Uident + "}" : Reduce CodeToken ::= Uident + OTHER_TOKEN : Reduce CodeToken ::= Uident + State 130 [130.0] + Kernel + [Code ::= Delimited · CodeTl, {"prec", LINE_DELIM, DEDENT}] Added - [Uident ::= · "hocc", {",", "as", ")"}] - [Uident ::= · "nonterm", {",", "as", ")"}] - [Uident ::= · "epsilon", {",", "as", ")"}] - [Uident ::= · "start", {",", "as", ")"}] - [Uident ::= · "token", {",", "as", ")"}] - [Uident ::= · "neutral", {",", "as", ")"}] - [Uident ::= · "left", {",", "as", ")"}] - [Uident ::= · "right", {",", "as", ")"}] - [Uident ::= · "nonassoc", {",", "as", ")"}] - [Uident ::= · "prec", {",", "as", ")"}] - [Uident ::= · UIDENT, {",", "as", ")"}] - [ModulePath ::= · CIDENT, {"."}] - [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT - [Pattern ::= · "_", {",", "as", ")"}] - [Pattern ::= · Uident, {",", "as", ")"}] - [Pattern ::= · Pattern "as" Uident, {",", "as", ")"}] - [Pattern ::= · "(" Pattern ")", {",", "as", ")"}] - [Pattern ::= · CIDENT Pattern, {",", "as", ")"}] prec pCIDENT - [Pattern ::= · ModulePath "." "(" Pattern ")", {",", "as", ")"}] - [Pattern ::= · Pattern "," Pattern, {",", "as", ")"}] prec pCOMMA - [Pattern ::= · "{" PatternFields SemiSuffix "}", {",", "as", ")"}] - [Pattern ::= · ModulePath "." "{" PatternFields SemiSuffix "}", {",", "as", ")"}] + [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeTl ::= · Delimited CodeTl, {"prec", LINE_DELIM, DEDENT}] + [CodeTl ::= · CodeToken CodeTl, {"prec", LINE_DELIM, DEDENT}] + [CodeTl ::= ·, {"prec", LINE_DELIM, DEDENT}] prec pCodeTlEpsilon Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 @@ -4431,36 +5014,72 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 137 - "_" : ShiftPrefix 138 - "(" : ShiftPrefix 139 - "{" : ShiftPrefix 140 + CIDENT : ShiftPrefix 110 + "_" : ShiftPrefix 111 + ISTRING : ShiftPrefix 112 + "::=" : ShiftPrefix 113 + "of" : ShiftPrefix 114 + ":" : ShiftPrefix 115 + "." : ShiftPrefix 116 prec pDOT + "->" : ShiftPrefix 117 + "<" : ShiftPrefix 118 + "=" : ShiftPrefix 119 + "," : ShiftPrefix 120 prec pCOMMA + "as" : ShiftPrefix 121 prec pAS + LINE_DELIM : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + INDENT : ShiftPrefix 122 + DEDENT : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "(" : ShiftPrefix 123 + "(|" : ShiftPrefix 124 + "[" : ShiftPrefix 125 + "[|" : ShiftPrefix 126 + "{" : ShiftPrefix 127 + OTHER_TOKEN : ShiftPrefix 128 Gotos - Uident : 141 - ModulePath : 142 - Pattern : 162 - State 140 [140.0] + Uident : 129 + Delimited : 163 + CodeToken : 164 + CodeTl : 165 + State 131 [131.0] Kernel - [Pattern ::= "{" · PatternFields SemiSuffix "}", {",", ";", "as", ")", "}"}] + [Code ::= CodeToken · CodeTl, {"prec", LINE_DELIM, DEDENT}] Added - [Uident ::= · "hocc", {"=", ";", "}"}] - [Uident ::= · "nonterm", {"=", ";", "}"}] - [Uident ::= · "epsilon", {"=", ";", "}"}] - [Uident ::= · "start", {"=", ";", "}"}] - [Uident ::= · "token", {"=", ";", "}"}] - [Uident ::= · "neutral", {"=", ";", "}"}] - [Uident ::= · "left", {"=", ";", "}"}] - [Uident ::= · "right", {"=", ";", "}"}] - [Uident ::= · "nonassoc", {"=", ";", "}"}] - [Uident ::= · "prec", {"=", ";", "}"}] - [Uident ::= · UIDENT, {"=", ";", "}"}] - [PatternField ::= · Uident, {";", "}"}] - [PatternField ::= · Uident "=" Pattern, {";", "}"}] - [PatternFields ::= · PatternField, {";", "}"}] prec pSEMI - [PatternFields ::= · PatternField ";" "_", {";", "}"}] - [PatternFields ::= · PatternField ";" PatternFields, {";", "}"}] + [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeTl ::= · Delimited CodeTl, {"prec", LINE_DELIM, DEDENT}] + [CodeTl ::= · CodeToken CodeTl, {"prec", LINE_DELIM, DEDENT}] + [CodeTl ::= ·, {"prec", LINE_DELIM, DEDENT}] prec pCodeTlEpsilon Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 @@ -4471,131 +5090,112 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon UIDENT : ShiftPrefix 82 + CIDENT : ShiftPrefix 110 + "_" : ShiftPrefix 111 + ISTRING : ShiftPrefix 112 + "::=" : ShiftPrefix 113 + "of" : ShiftPrefix 114 + ":" : ShiftPrefix 115 + "." : ShiftPrefix 116 prec pDOT + "->" : ShiftPrefix 117 + "<" : ShiftPrefix 118 + "=" : ShiftPrefix 119 + "," : ShiftPrefix 120 prec pCOMMA + "as" : ShiftPrefix 121 prec pAS + LINE_DELIM : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + INDENT : ShiftPrefix 122 + DEDENT : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "(" : ShiftPrefix 123 + "(|" : ShiftPrefix 124 + "[" : ShiftPrefix 125 + "[|" : ShiftPrefix 126 + "{" : ShiftPrefix 127 + OTHER_TOKEN : ShiftPrefix 128 Gotos - Uident : 144 - PatternField : 145 - PatternFields : 163 - State 141 [141.0] + Uident : 129 + Delimited : 163 + CodeToken : 164 + CodeTl : 166 + State 132 [132.0] Kernel - [Pattern ::= Uident ·, {",", ";", "as", ")", "}"}] + [TokenType ::= SymbolType Code ·, {"prec", LINE_DELIM, DEDENT}] Actions - "," : Reduce Pattern ::= Uident - ";" : Reduce Pattern ::= Uident - "as" : Reduce Pattern ::= Uident - ")" : Reduce Pattern ::= Uident - "}" : Reduce Pattern ::= Uident - State 142 [142.0] + "prec" : Reduce TokenType ::= SymbolType Code + LINE_DELIM : Reduce TokenType ::= SymbolType Code + DEDENT : Reduce TokenType ::= SymbolType Code + State 133 [133.0] Kernel - [ModulePath ::= ModulePath · "." ModulePath, {"."}] prec pDOT - [Pattern ::= ModulePath · "." "(" Pattern ")", {",", ";", "as", ")", "}"}] - [Pattern ::= ModulePath · "." "{" PatternFields SemiSuffix "}", {",", ";", "as", ")", "}"}] + [Token ::= "token" CIDENT Alias TokenType PrecRef ·, {LINE_DELIM, DEDENT}] Actions - "." : ShiftPrefix 164 prec pDOT - State 143 [143.0] + LINE_DELIM : Reduce Token ::= "token" CIDENT Alias TokenType PrecRef + DEDENT : Reduce Token ::= "token" CIDENT Alias TokenType PrecRef + State 134 [134.0] Kernel - [Pattern ::= Pattern · "as" Uident, {",", "as", ")"}] - [Pattern ::= Pattern · "," Pattern, {",", "as", ")"}] prec pCOMMA - [ProdParam ::= "(" Pattern · ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [PrecsTl ::= "," Uident PrecsTl ·, {"<", LINE_DELIM, DEDENT}] Actions - "," : ShiftPrefix 165 prec pCOMMA - "as" : ShiftPrefix 166 prec pAS - ")" : ShiftPrefix 167 - State 144 [144.0] - Kernel - [PatternField ::= Uident ·, {";", "}"}] - [PatternField ::= Uident · "=" Pattern, {";", "}"}] - Actions - "=" : ShiftPrefix 168 - ";" : Reduce PatternField ::= Uident - "}" : Reduce PatternField ::= Uident - State 145 [145.0] - Kernel - [PatternFields ::= PatternField ·, {";", "}"}] prec pSEMI - [PatternFields ::= PatternField · ";" "_", {";", "}"}] - [PatternFields ::= PatternField · ";" PatternFields, {";", "}"}] - Actions - ";" : ShiftPrefix 169 prec pSEMI - "}" : Reduce PatternFields ::= PatternField prec pSEMI - State 146 [146.0] - Kernel - [ProdParam ::= "{" PatternFields · SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - Added - [SemiSuffix ::= · ";", {"}"}] - [SemiSuffix ::= ·, {"}"}] - Actions - ";" : ShiftPrefix 170 prec pSEMI - "}" : Reduce SemiSuffix ::= epsilon - Gotos - SemiSuffix : 171 - State 147 [147.0] - Kernel - [ProdParam ::= Uident ":" · ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - Added - [ProdParamSymbol ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParamSymbol ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - Actions - CIDENT : ShiftPrefix 158 - ISTRING : ShiftPrefix 118 - Gotos - ProdParamSymbol : 172 - State 148 [148.0] - Kernel - [ModulePath ::= ModulePath "." · ModulePath, {"."}] prec pDOT - [ProdParam ::= ModulePath "." · "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= ModulePath "." · "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - Added - [ModulePath ::= · CIDENT, {"."}] - [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT - Actions - CIDENT : ShiftPrefix 173 - "(" : ShiftPrefix 174 - "{" : ShiftPrefix 175 - Gotos - ModulePath : 176 - State 149 [149.0] + "<" : Reduce PrecsTl ::= "," Uident PrecsTl + LINE_DELIM : Reduce PrecsTl ::= "," Uident PrecsTl + DEDENT : Reduce PrecsTl ::= "," Uident PrecsTl + State 135 [135.0] Kernel - [Uident ::= "prec" ·, {":"}] - [PrecRef ::= "prec" · Uident, {"->", "|", LINE_DELIM, DEDENT}] + [SymbolTypeQualifier ::= CIDENT "." · SymbolTypeQualifier, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT}] Added - [Uident ::= · "hocc", {"->", "|", LINE_DELIM, DEDENT}] - [Uident ::= · "nonterm", {"->", "|", LINE_DELIM, DEDENT}] - [Uident ::= · "epsilon", {"->", "|", LINE_DELIM, DEDENT}] - [Uident ::= · "start", {"->", "|", LINE_DELIM, DEDENT}] - [Uident ::= · "token", {"->", "|", LINE_DELIM, DEDENT}] - [Uident ::= · "neutral", {"->", "|", LINE_DELIM, DEDENT}] - [Uident ::= · "left", {"->", "|", LINE_DELIM, DEDENT}] - [Uident ::= · "right", {"->", "|", LINE_DELIM, DEDENT}] - [Uident ::= · "nonassoc", {"->", "|", LINE_DELIM, DEDENT}] - [Uident ::= · "prec", {"->", "|", LINE_DELIM, DEDENT}] - [Uident ::= · UIDENT, {"->", "|", LINE_DELIM, DEDENT}] + [SymbolTypeQualifier ::= · CIDENT "." SymbolTypeQualifier, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT}] + [SymbolTypeQualifier ::= ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT}] Actions - "hocc" : ShiftPrefix 72 - "nonterm" : ShiftPrefix 73 - "epsilon" : ShiftPrefix 74 - "start" : ShiftPrefix 75 - "token" : ShiftPrefix 76 - "neutral" : ShiftPrefix 77 - "left" : ShiftPrefix 78 - "right" : ShiftPrefix 79 - "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 - UIDENT : ShiftPrefix 82 - ":" : Reduce Uident ::= "prec" + "hocc" : Reduce SymbolTypeQualifier ::= epsilon + "nonterm" : Reduce SymbolTypeQualifier ::= epsilon + "epsilon" : Reduce SymbolTypeQualifier ::= epsilon + "start" : Reduce SymbolTypeQualifier ::= epsilon + "token" : Reduce SymbolTypeQualifier ::= epsilon + "neutral" : Reduce SymbolTypeQualifier ::= epsilon + "left" : Reduce SymbolTypeQualifier ::= epsilon + "right" : Reduce SymbolTypeQualifier ::= epsilon + "nonassoc" : Reduce SymbolTypeQualifier ::= epsilon + "prec" : Reduce SymbolTypeQualifier ::= epsilon + UIDENT : Reduce SymbolTypeQualifier ::= epsilon + CIDENT : ShiftPrefix 105 Gotos - Uident : 104 - State 150 [150.0] + SymbolTypeQualifier : 167 + State 136 [136.0] Kernel - [ProdParamsTl ::= PrecRef ·, {"->", "|", LINE_DELIM, DEDENT}] - Actions - "->" : Reduce ProdParamsTl ::= PrecRef - "|" : Reduce ProdParamsTl ::= PrecRef - LINE_DELIM : Reduce ProdParamsTl ::= PrecRef - DEDENT : Reduce ProdParamsTl ::= PrecRef - State 151 [151.0] + [SymbolType ::= "of" SymbolTypeQualifier Uident ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + Actions + "hocc" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "nonterm" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "epsilon" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "start" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "token" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "neutral" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "left" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "right" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "nonassoc" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "prec" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + UIDENT : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + CIDENT : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "_" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + ISTRING : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "::=" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "of" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + ":" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "." : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "->" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "<" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "=" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "," : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "as" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + INDENT : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "(" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "(|" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "[" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "[|" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + "{" : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + OTHER_TOKEN : Reduce SymbolType ::= "of" SymbolTypeQualifier Uident + State 137 [137.0] Kernel - [ProdParamsTl ::= ProdParam · ProdParamsTl, {"->", "|", LINE_DELIM, DEDENT}] + [Nonterm ::= NontermType CIDENT SymbolType PrecRef "::=" · Reductions, {LINE_DELIM, DEDENT}] Added [Uident ::= · "hocc", {":"}] [Uident ::= · "nonterm", {":"}] @@ -4608,60 +5208,128 @@ APLR(1) States [Uident ::= · "nonassoc", {":"}] [Uident ::= · "prec", {":"}] [Uident ::= · UIDENT, {":"}] - [PrecRef ::= · "prec" Uident, {"->", "|", LINE_DELIM, DEDENT}] - [PrecRef ::= ·, {"->", "|", LINE_DELIM, DEDENT}] [ModulePath ::= · CIDENT, {"."}] [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT - [ProdParamSymbol ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParamSymbol ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= · Uident ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= · "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= · ModulePath "." "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= · "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= · ModulePath "." "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= · "_" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParam ::= · ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParamsTl ::= · ProdParam ProdParamsTl, {"->", "|", LINE_DELIM, DEDENT}] - [ProdParamsTl ::= · PrecRef, {"->", "|", LINE_DELIM, DEDENT}] + [ProdParamSymbol ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] + [ProdParamSymbol ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] + [ProdParam ::= · Uident ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] + [ProdParam ::= · "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] + [ProdParam ::= · ModulePath "." "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] + [ProdParam ::= · "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] + [ProdParam ::= · ModulePath "." "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] + [ProdParam ::= · "_" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] + [ProdParam ::= · ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] + [ProdParams ::= · ProdParam ProdParamsTl, {"->", "|"}] + [ProdPattern ::= · ProdParams, {"->", "|"}] + [ProdPattern ::= · "epsilon" PrecRef, {"->", "|"}] + [Prod ::= · ProdPattern, {"->", "|"}] + [Prods ::= · "|" Prod ProdsTl, {"->"}] + [Prods ::= · Prod ProdsTl, {"->"}] + [Reduction ::= · Prods "->" Code, {"|", LINE_DELIM, DEDENT}] + [Reductions ::= · Reduction ReductionsTl, {LINE_DELIM, DEDENT}] Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 - "epsilon" : ShiftPrefix 74 + "epsilon" : ShiftPrefix 138 "start" : ShiftPrefix 75 "token" : ShiftPrefix 76 "neutral" : ShiftPrefix 77 "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 149 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 116 - "_" : ShiftPrefix 117 - ISTRING : ShiftPrefix 118 + CIDENT : ShiftPrefix 139 + "_" : ShiftPrefix 140 + ISTRING : ShiftPrefix 141 + "|" : ShiftPrefix 142 + "(" : ShiftPrefix 143 + "{" : ShiftPrefix 144 + Gotos + Uident : 145 + ModulePath : 146 + ProdParamSymbol : 147 + ProdParam : 148 + ProdParams : 149 + ProdPattern : 150 + Prod : 151 + Prods : 168 + Reduction : 169 + Reductions : 170 + State 138 [138.0] + Kernel + [Uident ::= "epsilon" ·, {":"}] + [ProdPattern ::= "epsilon" · PrecRef, {"->", "|", LINE_DELIM, DEDENT}] + Added + [PrecRef ::= · "prec" Uident, {"->", "|", LINE_DELIM, DEDENT}] + [PrecRef ::= ·, {"->", "|", LINE_DELIM, DEDENT}] + Actions + "prec" : ShiftPrefix 95 prec pPrec + ":" : Reduce Uident ::= "epsilon" "->" : Reduce PrecRef ::= epsilon "|" : Reduce PrecRef ::= epsilon LINE_DELIM : Reduce PrecRef ::= epsilon DEDENT : Reduce PrecRef ::= epsilon - "(" : ShiftPrefix 120 - "{" : ShiftPrefix 121 Gotos - Uident : 122 - PrecRef : 150 - ModulePath : 123 - ProdParamSymbol : 124 - ProdParam : 151 - ProdParamsTl : 177 - State 152 [152.0] + PrecRef : 171 + State 139 [139.0] Kernel - [ProdParams ::= ProdParam ProdParamsTl ·, {"->", "|", LINE_DELIM, DEDENT}] + [ModulePath ::= CIDENT ·, {"."}] + [ProdParamSymbol ::= CIDENT ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Actions - "->" : Reduce ProdParams ::= ProdParam ProdParamsTl - "|" : Reduce ProdParams ::= ProdParam ProdParamsTl - LINE_DELIM : Reduce ProdParams ::= ProdParam ProdParamsTl - DEDENT : Reduce ProdParams ::= ProdParam ProdParamsTl - State 153 [153.0] + "hocc" : Reduce ProdParamSymbol ::= CIDENT + "nonterm" : Reduce ProdParamSymbol ::= CIDENT + "epsilon" : Reduce ProdParamSymbol ::= CIDENT + "start" : Reduce ProdParamSymbol ::= CIDENT + "token" : Reduce ProdParamSymbol ::= CIDENT + "neutral" : Reduce ProdParamSymbol ::= CIDENT + "left" : Reduce ProdParamSymbol ::= CIDENT + "right" : Reduce ProdParamSymbol ::= CIDENT + "nonassoc" : Reduce ProdParamSymbol ::= CIDENT + "prec" : Reduce ProdParamSymbol ::= CIDENT + UIDENT : Reduce ProdParamSymbol ::= CIDENT + CIDENT : Reduce ProdParamSymbol ::= CIDENT + "_" : Reduce ProdParamSymbol ::= CIDENT + ISTRING : Reduce ProdParamSymbol ::= CIDENT + "." : Reduce ModulePath ::= CIDENT + "->" : Reduce ProdParamSymbol ::= CIDENT + "|" : Reduce ProdParamSymbol ::= CIDENT + LINE_DELIM : Reduce ProdParamSymbol ::= CIDENT + DEDENT : Reduce ProdParamSymbol ::= CIDENT + "(" : Reduce ProdParamSymbol ::= CIDENT + "{" : Reduce ProdParamSymbol ::= CIDENT + State 140 [140.0] Kernel - [ProdsTl ::= "|" · Prod ProdsTl, {"->", LINE_DELIM, DEDENT}] + [ProdParam ::= "_" · ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + Actions + ":" : ShiftPrefix 172 + State 141 [141.0] + Kernel + [ProdParamSymbol ::= ISTRING ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + Actions + "hocc" : Reduce ProdParamSymbol ::= ISTRING + "nonterm" : Reduce ProdParamSymbol ::= ISTRING + "epsilon" : Reduce ProdParamSymbol ::= ISTRING + "start" : Reduce ProdParamSymbol ::= ISTRING + "token" : Reduce ProdParamSymbol ::= ISTRING + "neutral" : Reduce ProdParamSymbol ::= ISTRING + "left" : Reduce ProdParamSymbol ::= ISTRING + "right" : Reduce ProdParamSymbol ::= ISTRING + "nonassoc" : Reduce ProdParamSymbol ::= ISTRING + "prec" : Reduce ProdParamSymbol ::= ISTRING + UIDENT : Reduce ProdParamSymbol ::= ISTRING + CIDENT : Reduce ProdParamSymbol ::= ISTRING + "_" : Reduce ProdParamSymbol ::= ISTRING + ISTRING : Reduce ProdParamSymbol ::= ISTRING + "->" : Reduce ProdParamSymbol ::= ISTRING + "|" : Reduce ProdParamSymbol ::= ISTRING + LINE_DELIM : Reduce ProdParamSymbol ::= ISTRING + DEDENT : Reduce ProdParamSymbol ::= ISTRING + "(" : Reduce ProdParamSymbol ::= ISTRING + "{" : Reduce ProdParamSymbol ::= ISTRING + State 142 [142.0] + Kernel + [Prods ::= "|" · Prod ProdsTl, {"->", LINE_DELIM, DEDENT}] Added [Uident ::= · "hocc", {":"}] [Uident ::= · "nonterm", {":"}] @@ -4692,72 +5360,94 @@ APLR(1) States Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 - "epsilon" : ShiftPrefix 115 + "epsilon" : ShiftPrefix 138 "start" : ShiftPrefix 75 "token" : ShiftPrefix 76 "neutral" : ShiftPrefix 77 "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 116 - "_" : ShiftPrefix 117 - ISTRING : ShiftPrefix 118 - "(" : ShiftPrefix 120 - "{" : ShiftPrefix 121 + CIDENT : ShiftPrefix 139 + "_" : ShiftPrefix 140 + ISTRING : ShiftPrefix 141 + "(" : ShiftPrefix 143 + "{" : ShiftPrefix 144 Gotos - Uident : 122 - ModulePath : 123 - ProdParamSymbol : 124 - ProdParam : 125 - ProdParams : 126 - ProdPattern : 127 - Prod : 178 - State 154 [154.0] + Uident : 145 + ModulePath : 146 + ProdParamSymbol : 147 + ProdParam : 148 + ProdParams : 149 + ProdPattern : 150 + Prod : 173 + State 143 [143.0] Kernel - [Prods ::= Prod ProdsTl ·, {"->", LINE_DELIM, DEDENT}] + [ProdParam ::= "(" · Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + Added + [Uident ::= · "hocc", {",", "as", ")"}] + [Uident ::= · "nonterm", {",", "as", ")"}] + [Uident ::= · "epsilon", {",", "as", ")"}] + [Uident ::= · "start", {",", "as", ")"}] + [Uident ::= · "token", {",", "as", ")"}] + [Uident ::= · "neutral", {",", "as", ")"}] + [Uident ::= · "left", {",", "as", ")"}] + [Uident ::= · "right", {",", "as", ")"}] + [Uident ::= · "nonassoc", {",", "as", ")"}] + [Uident ::= · "prec", {",", "as", ")"}] + [Uident ::= · UIDENT, {",", "as", ")"}] + [ModulePath ::= · CIDENT, {"."}] + [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT + [Pattern ::= · "_", {",", "as", ")"}] + [Pattern ::= · Uident, {",", "as", ")"}] + [Pattern ::= · Pattern "as" Uident, {",", "as", ")"}] + [Pattern ::= · "(" Pattern ")", {",", "as", ")"}] + [Pattern ::= · CIDENT Pattern, {",", "as", ")"}] prec pCIDENT + [Pattern ::= · ModulePath "." "(" Pattern ")", {",", "as", ")"}] + [Pattern ::= · Pattern "," Pattern, {",", "as", ")"}] prec pCOMMA + [Pattern ::= · "{" PatternFields SemiSuffix "}", {",", "as", ")"}] + [Pattern ::= · ModulePath "." "{" PatternFields SemiSuffix "}", {",", "as", ")"}] Actions - "->" : Reduce Prods ::= Prod ProdsTl - LINE_DELIM : Reduce Prods ::= Prod ProdsTl - DEDENT : Reduce Prods ::= Prod ProdsTl - State 155 [155.0] + "hocc" : ShiftPrefix 72 + "nonterm" : ShiftPrefix 73 + "epsilon" : ShiftPrefix 74 + "start" : ShiftPrefix 75 + "token" : ShiftPrefix 76 + "neutral" : ShiftPrefix 77 + "left" : ShiftPrefix 78 + "right" : ShiftPrefix 79 + "nonassoc" : ShiftPrefix 80 + "prec" : ShiftPrefix 81 prec pPrec + UIDENT : ShiftPrefix 82 + CIDENT : ShiftPrefix 174 + "_" : ShiftPrefix 175 + "(" : ShiftPrefix 176 + "{" : ShiftPrefix 177 + Gotos + Uident : 178 + ModulePath : 179 + Pattern : 180 + State 144 [144.0] Kernel - [Reduction ::= Prods "->" · Code, {"|", LINE_DELIM, DEDENT}] + [ProdParam ::= "{" · PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Added - [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Code ::= · Delimited CodeTl, {"|", LINE_DELIM, DEDENT}] - [Code ::= · CodeToken CodeTl, {"|", LINE_DELIM, DEDENT}] + [Uident ::= · "hocc", {"=", ";", "}"}] + [Uident ::= · "nonterm", {"=", ";", "}"}] + [Uident ::= · "epsilon", {"=", ";", "}"}] + [Uident ::= · "start", {"=", ";", "}"}] + [Uident ::= · "token", {"=", ";", "}"}] + [Uident ::= · "neutral", {"=", ";", "}"}] + [Uident ::= · "left", {"=", ";", "}"}] + [Uident ::= · "right", {"=", ";", "}"}] + [Uident ::= · "nonassoc", {"=", ";", "}"}] + [Uident ::= · "prec", {"=", ";", "}"}] + [Uident ::= · UIDENT, {"=", ";", "}"}] + [PatternField ::= · Uident, {";", "}"}] + [PatternField ::= · Uident "=" Pattern, {";", "}"}] + [PatternFields ::= · PatternField, {";", "}"}] prec pSEMI + [PatternFields ::= · PatternField ";" "_", {";", "}"}] + [PatternFields ::= · PatternField ";" PatternFields, {";", "}"}] Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 @@ -4768,35 +5458,51 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 179 - "_" : ShiftPrefix 180 - ISTRING : ShiftPrefix 181 - "::=" : ShiftPrefix 182 - "of" : ShiftPrefix 183 + Gotos + Uident : 181 + PatternField : 182 + PatternFields : 183 + State 145 [145.0] + Kernel + [ProdParam ::= Uident · ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + Actions ":" : ShiftPrefix 184 + State 146 [146.0] + Kernel + [ModulePath ::= ModulePath · "." ModulePath, {"."}] prec pDOT + [ProdParam ::= ModulePath · "." "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= ModulePath · "." "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + Actions "." : ShiftPrefix 185 prec pDOT - "->" : ShiftPrefix 186 - "<" : ShiftPrefix 187 - "=" : ShiftPrefix 188 - "," : ShiftPrefix 189 prec pCOMMA - "as" : ShiftPrefix 190 prec pAS - INDENT : ShiftPrefix 191 - "(" : ShiftPrefix 192 - "(|" : ShiftPrefix 193 - "[" : ShiftPrefix 194 - "[|" : ShiftPrefix 195 - "{" : ShiftPrefix 196 - OTHER_TOKEN : ShiftPrefix 197 - Gotos - Uident : 198 - Delimited : 199 - CodeToken : 200 - Code : 201 - State 156 [156.0] + State 147 [147.0] Kernel - [ReductionsTl ::= "|" · Reduction ReductionsTl, {LINE_DELIM, DEDENT}] + [ProdParam ::= ProdParamSymbol ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + Actions + "hocc" : Reduce ProdParam ::= ProdParamSymbol + "nonterm" : Reduce ProdParam ::= ProdParamSymbol + "epsilon" : Reduce ProdParam ::= ProdParamSymbol + "start" : Reduce ProdParam ::= ProdParamSymbol + "token" : Reduce ProdParam ::= ProdParamSymbol + "neutral" : Reduce ProdParam ::= ProdParamSymbol + "left" : Reduce ProdParam ::= ProdParamSymbol + "right" : Reduce ProdParam ::= ProdParamSymbol + "nonassoc" : Reduce ProdParam ::= ProdParamSymbol + "prec" : Reduce ProdParam ::= ProdParamSymbol + UIDENT : Reduce ProdParam ::= ProdParamSymbol + CIDENT : Reduce ProdParam ::= ProdParamSymbol + "_" : Reduce ProdParam ::= ProdParamSymbol + ISTRING : Reduce ProdParam ::= ProdParamSymbol + "->" : Reduce ProdParam ::= ProdParamSymbol + "|" : Reduce ProdParam ::= ProdParamSymbol + LINE_DELIM : Reduce ProdParam ::= ProdParamSymbol + DEDENT : Reduce ProdParam ::= ProdParamSymbol + "(" : Reduce ProdParam ::= ProdParamSymbol + "{" : Reduce ProdParam ::= ProdParamSymbol + State 148 [148.0] + Kernel + [ProdParams ::= ProdParam · ProdParamsTl, {"->", "|", LINE_DELIM, DEDENT}] Added [Uident ::= · "hocc", {":"}] [Uident ::= · "nonterm", {":"}] @@ -4809,184 +5515,210 @@ APLR(1) States [Uident ::= · "nonassoc", {":"}] [Uident ::= · "prec", {":"}] [Uident ::= · UIDENT, {":"}] + [PrecRef ::= · "prec" Uident, {"->", "|", LINE_DELIM, DEDENT}] + [PrecRef ::= ·, {"->", "|", LINE_DELIM, DEDENT}] [ModulePath ::= · CIDENT, {"."}] [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT - [ProdParamSymbol ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] - [ProdParamSymbol ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] - [ProdParam ::= · Uident ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] - [ProdParam ::= · "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] - [ProdParam ::= · ModulePath "." "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] - [ProdParam ::= · "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] - [ProdParam ::= · ModulePath "." "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] - [ProdParam ::= · "_" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] - [ProdParam ::= · ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] - [ProdParams ::= · ProdParam ProdParamsTl, {"->", "|"}] - [ProdPattern ::= · ProdParams, {"->", "|"}] - [ProdPattern ::= · "epsilon" PrecRef, {"->", "|"}] - [Prod ::= · ProdPattern, {"->", "|"}] - [Prods ::= · "|" Prod ProdsTl, {"->"}] - [Prods ::= · Prod ProdsTl, {"->"}] - [Reduction ::= · Prods "->" Code, {"|", LINE_DELIM, DEDENT}] + [ProdParamSymbol ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParamSymbol ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= · Uident ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= · "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= · ModulePath "." "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= · "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= · ModulePath "." "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= · "_" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= · ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParamsTl ::= · ProdParam ProdParamsTl, {"->", "|", LINE_DELIM, DEDENT}] + [ProdParamsTl ::= · PrecRef, {"->", "|", LINE_DELIM, DEDENT}] Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 - "epsilon" : ShiftPrefix 115 + "epsilon" : ShiftPrefix 74 "start" : ShiftPrefix 75 "token" : ShiftPrefix 76 "neutral" : ShiftPrefix 77 "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 186 prec pPrec UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 116 - "_" : ShiftPrefix 117 - ISTRING : ShiftPrefix 118 - "|" : ShiftPrefix 119 - "(" : ShiftPrefix 120 - "{" : ShiftPrefix 121 + CIDENT : ShiftPrefix 139 + "_" : ShiftPrefix 140 + ISTRING : ShiftPrefix 141 + "->" : Reduce PrecRef ::= epsilon + "|" : Reduce PrecRef ::= epsilon + LINE_DELIM : Reduce PrecRef ::= epsilon + DEDENT : Reduce PrecRef ::= epsilon + "(" : ShiftPrefix 143 + "{" : ShiftPrefix 144 Gotos - Uident : 122 - ModulePath : 123 - ProdParamSymbol : 124 - ProdParam : 125 - ProdParams : 126 - ProdPattern : 127 - Prod : 128 - Prods : 131 - Reduction : 202 - State 157 [157.0] - Kernel - [Reductions ::= Reduction ReductionsTl ·, {LINE_DELIM, DEDENT}] - Actions - LINE_DELIM : Reduce Reductions ::= Reduction ReductionsTl - DEDENT : Reduce Reductions ::= Reduction ReductionsTl - State 158 [158.0] + Uident : 145 + PrecRef : 187 + ModulePath : 146 + ProdParamSymbol : 147 + ProdParam : 188 + ProdParamsTl : 189 + State 149 [149.0] Kernel - [ProdParamSymbol ::= CIDENT ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdPattern ::= ProdParams ·, {"->", "|", LINE_DELIM, DEDENT}] Actions - "hocc" : Reduce ProdParamSymbol ::= CIDENT - "nonterm" : Reduce ProdParamSymbol ::= CIDENT - "epsilon" : Reduce ProdParamSymbol ::= CIDENT - "start" : Reduce ProdParamSymbol ::= CIDENT - "token" : Reduce ProdParamSymbol ::= CIDENT - "neutral" : Reduce ProdParamSymbol ::= CIDENT - "left" : Reduce ProdParamSymbol ::= CIDENT - "right" : Reduce ProdParamSymbol ::= CIDENT - "nonassoc" : Reduce ProdParamSymbol ::= CIDENT - "prec" : Reduce ProdParamSymbol ::= CIDENT - UIDENT : Reduce ProdParamSymbol ::= CIDENT - CIDENT : Reduce ProdParamSymbol ::= CIDENT - "_" : Reduce ProdParamSymbol ::= CIDENT - ISTRING : Reduce ProdParamSymbol ::= CIDENT - "->" : Reduce ProdParamSymbol ::= CIDENT - "|" : Reduce ProdParamSymbol ::= CIDENT - LINE_DELIM : Reduce ProdParamSymbol ::= CIDENT - DEDENT : Reduce ProdParamSymbol ::= CIDENT - "(" : Reduce ProdParamSymbol ::= CIDENT - "{" : Reduce ProdParamSymbol ::= CIDENT - State 159 [159.0] + "->" : Reduce ProdPattern ::= ProdParams + "|" : Reduce ProdPattern ::= ProdParams + LINE_DELIM : Reduce ProdPattern ::= ProdParams + DEDENT : Reduce ProdPattern ::= ProdParams + State 150 [150.0] Kernel - [ProdParam ::= "_" ":" ProdParamSymbol ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [Prod ::= ProdPattern ·, {"->", "|", LINE_DELIM, DEDENT}] Actions - "hocc" : Reduce ProdParam ::= "_" ":" ProdParamSymbol - "nonterm" : Reduce ProdParam ::= "_" ":" ProdParamSymbol - "epsilon" : Reduce ProdParam ::= "_" ":" ProdParamSymbol - "start" : Reduce ProdParam ::= "_" ":" ProdParamSymbol - "token" : Reduce ProdParam ::= "_" ":" ProdParamSymbol - "neutral" : Reduce ProdParam ::= "_" ":" ProdParamSymbol - "left" : Reduce ProdParam ::= "_" ":" ProdParamSymbol - "right" : Reduce ProdParam ::= "_" ":" ProdParamSymbol - "nonassoc" : Reduce ProdParam ::= "_" ":" ProdParamSymbol - "prec" : Reduce ProdParam ::= "_" ":" ProdParamSymbol - UIDENT : Reduce ProdParam ::= "_" ":" ProdParamSymbol - CIDENT : Reduce ProdParam ::= "_" ":" ProdParamSymbol - "_" : Reduce ProdParam ::= "_" ":" ProdParamSymbol - ISTRING : Reduce ProdParam ::= "_" ":" ProdParamSymbol - "->" : Reduce ProdParam ::= "_" ":" ProdParamSymbol - "|" : Reduce ProdParam ::= "_" ":" ProdParamSymbol - LINE_DELIM : Reduce ProdParam ::= "_" ":" ProdParamSymbol - DEDENT : Reduce ProdParam ::= "_" ":" ProdParamSymbol - "(" : Reduce ProdParam ::= "_" ":" ProdParamSymbol - "{" : Reduce ProdParam ::= "_" ":" ProdParamSymbol - State 160 [160.0] + "->" : Reduce Prod ::= ProdPattern + "|" : Reduce Prod ::= ProdPattern + LINE_DELIM : Reduce Prod ::= ProdPattern + DEDENT : Reduce Prod ::= ProdPattern + State 151 [151.0] Kernel - [Prods ::= "|" Prod ProdsTl ·, {"->", LINE_DELIM, DEDENT}] + [Prods ::= Prod · ProdsTl, {"->", LINE_DELIM, DEDENT}] + Added + [ProdsTl ::= · "|" Prod ProdsTl, {"->", LINE_DELIM, DEDENT}] + [ProdsTl ::= ·, {"->", LINE_DELIM, DEDENT}] Actions - "->" : Reduce Prods ::= "|" Prod ProdsTl - LINE_DELIM : Reduce Prods ::= "|" Prod ProdsTl - DEDENT : Reduce Prods ::= "|" Prod ProdsTl - State 161 [161.0] + "->" : Reduce ProdsTl ::= epsilon + "|" : ShiftPrefix 190 + LINE_DELIM : Reduce ProdsTl ::= epsilon + DEDENT : Reduce ProdsTl ::= epsilon + Gotos + ProdsTl : 191 + State 152 [152.0] Kernel - [Pattern ::= Pattern · "as" Uident, {",", ";", "as", ")", "}"}] - [Pattern ::= CIDENT Pattern ·, {",", ";", "as", ")", "}"}] prec pCIDENT - [Pattern ::= Pattern · "," Pattern, {",", ";", "as", ")", "}"}] prec pCOMMA + [Nonterm ::= NontermType CIDENT PrecRef "::=" Prods ·, {LINE_DELIM, DEDENT}] Actions - "," : Reduce Pattern ::= CIDENT Pattern prec pCIDENT - ";" : Reduce Pattern ::= CIDENT Pattern prec pCIDENT - "as" : Reduce Pattern ::= CIDENT Pattern prec pCIDENT - ")" : Reduce Pattern ::= CIDENT Pattern prec pCIDENT - "}" : Reduce Pattern ::= CIDENT Pattern prec pCIDENT - State 162 [162.0] + LINE_DELIM : Reduce Nonterm ::= NontermType CIDENT PrecRef "::=" Prods + DEDENT : Reduce Nonterm ::= NontermType CIDENT PrecRef "::=" Prods + State 153 [153.0] Kernel - [Pattern ::= Pattern · "as" Uident, {",", "as", ")"}] - [Pattern ::= "(" Pattern · ")", {",", ";", "as", ")", "}"}] - [Pattern ::= Pattern · "," Pattern, {",", "as", ")"}] prec pCOMMA + [Delimited ::= INDENT Codes · DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] Actions - "," : ShiftPrefix 165 prec pCOMMA - "as" : ShiftPrefix 166 prec pAS - ")" : ShiftPrefix 203 - State 163 [163.0] + DEDENT : ShiftPrefix 192 + State 154 [130.1] Kernel - [Pattern ::= "{" PatternFields · SemiSuffix "}", {",", ";", "as", ")", "}"}] + [Code ::= Delimited · CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] Added - [SemiSuffix ::= · ";", {"}"}] - [SemiSuffix ::= ·, {"}"}] + [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeTl ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + [CodeTl ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + [CodeTl ::= ·, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] prec pCodeTlEpsilon Actions - ";" : ShiftPrefix 170 prec pSEMI - "}" : Reduce SemiSuffix ::= epsilon + "hocc" : ShiftPrefix 72 + "nonterm" : ShiftPrefix 73 + "epsilon" : ShiftPrefix 74 + "start" : ShiftPrefix 75 + "token" : ShiftPrefix 76 + "neutral" : ShiftPrefix 77 + "left" : ShiftPrefix 78 + "right" : ShiftPrefix 79 + "nonassoc" : ShiftPrefix 80 + "prec" : ShiftPrefix 81 prec pPrec + UIDENT : ShiftPrefix 82 + CIDENT : ShiftPrefix 110 + "_" : ShiftPrefix 111 + ISTRING : ShiftPrefix 112 + "::=" : ShiftPrefix 113 + "of" : ShiftPrefix 114 + ":" : ShiftPrefix 115 + "." : ShiftPrefix 116 prec pDOT + "->" : ShiftPrefix 117 + "|" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "<" : ShiftPrefix 118 + "=" : ShiftPrefix 119 + "," : ShiftPrefix 120 prec pCOMMA + ";" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "as" : ShiftPrefix 121 prec pAS + LINE_DELIM : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + INDENT : ShiftPrefix 122 + DEDENT : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "(" : ShiftPrefix 123 + ")" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "(|" : ShiftPrefix 124 + "|)" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "[" : ShiftPrefix 125 + "]" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "[|" : ShiftPrefix 126 + "|]" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "{" : ShiftPrefix 127 + "}" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + OTHER_TOKEN : ShiftPrefix 128 Gotos - SemiSuffix : 204 - State 164 [164.0] + Uident : 129 + Delimited : 193 + CodeToken : 194 + CodeTl : 165 + State 155 [131.1] Kernel - [ModulePath ::= ModulePath "." · ModulePath, {"."}] prec pDOT - [Pattern ::= ModulePath "." · "(" Pattern ")", {",", ";", "as", ")", "}"}] - [Pattern ::= ModulePath "." · "{" PatternFields SemiSuffix "}", {",", ";", "as", ")", "}"}] + [Code ::= CodeToken · CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] Added - [ModulePath ::= · CIDENT, {"."}] - [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT - Actions - CIDENT : ShiftPrefix 173 - "(" : ShiftPrefix 205 - "{" : ShiftPrefix 206 - Gotos - ModulePath : 176 - State 165 [165.0] - Kernel - [Pattern ::= Pattern "," · Pattern, {",", ";", "as", ")", "}"}] prec pCOMMA - Added - [Uident ::= · "hocc", {",", ";", "as", ")", "}"}] - [Uident ::= · "nonterm", {",", ";", "as", ")", "}"}] - [Uident ::= · "epsilon", {",", ";", "as", ")", "}"}] - [Uident ::= · "start", {",", ";", "as", ")", "}"}] - [Uident ::= · "token", {",", ";", "as", ")", "}"}] - [Uident ::= · "neutral", {",", ";", "as", ")", "}"}] - [Uident ::= · "left", {",", ";", "as", ")", "}"}] - [Uident ::= · "right", {",", ";", "as", ")", "}"}] - [Uident ::= · "nonassoc", {",", ";", "as", ")", "}"}] - [Uident ::= · "prec", {",", ";", "as", ")", "}"}] - [Uident ::= · UIDENT, {",", ";", "as", ")", "}"}] - [ModulePath ::= · CIDENT, {"."}] - [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT - [Pattern ::= · "_", {",", ";", "as", ")", "}"}] - [Pattern ::= · Uident, {",", ";", "as", ")", "}"}] - [Pattern ::= · Pattern "as" Uident, {",", ";", "as", ")", "}"}] - [Pattern ::= · "(" Pattern ")", {",", ";", "as", ")", "}"}] - [Pattern ::= · CIDENT Pattern, {",", ";", "as", ")", "}"}] prec pCIDENT - [Pattern ::= · ModulePath "." "(" Pattern ")", {",", ";", "as", ")", "}"}] - [Pattern ::= · Pattern "," Pattern, {",", ";", "as", ")", "}"}] prec pCOMMA - [Pattern ::= · "{" PatternFields SemiSuffix "}", {",", ";", "as", ")", "}"}] - [Pattern ::= · ModulePath "." "{" PatternFields SemiSuffix "}", {",", ";", "as", ")", "}"}] + [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeTl ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + [CodeTl ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + [CodeTl ::= ·, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] prec pCodeTlEpsilon Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 @@ -4997,199 +5729,135 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 137 - "_" : ShiftPrefix 138 - "(" : ShiftPrefix 139 - "{" : ShiftPrefix 140 + CIDENT : ShiftPrefix 110 + "_" : ShiftPrefix 111 + ISTRING : ShiftPrefix 112 + "::=" : ShiftPrefix 113 + "of" : ShiftPrefix 114 + ":" : ShiftPrefix 115 + "." : ShiftPrefix 116 prec pDOT + "->" : ShiftPrefix 117 + "|" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "<" : ShiftPrefix 118 + "=" : ShiftPrefix 119 + "," : ShiftPrefix 120 prec pCOMMA + ";" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "as" : ShiftPrefix 121 prec pAS + LINE_DELIM : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + INDENT : ShiftPrefix 122 + DEDENT : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "(" : ShiftPrefix 123 + ")" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "(|" : ShiftPrefix 124 + "|)" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "[" : ShiftPrefix 125 + "]" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "[|" : ShiftPrefix 126 + "|]" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "{" : ShiftPrefix 127 + "}" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + OTHER_TOKEN : ShiftPrefix 128 Gotos - Uident : 141 - ModulePath : 142 - Pattern : 207 - State 166 [166.0] + Uident : 129 + Delimited : 193 + CodeToken : 194 + CodeTl : 166 + State 156 [154.0] Kernel - [Pattern ::= Pattern "as" · Uident, {",", ";", "as", ")", "}"}] + [Codes ::= Code · CodesTl, {DEDENT, ")", "|)", "]", "|]", "}"}] Added - [Uident ::= · "hocc", {",", ";", "as", ")", "}"}] - [Uident ::= · "nonterm", {",", ";", "as", ")", "}"}] - [Uident ::= · "epsilon", {",", ";", "as", ")", "}"}] - [Uident ::= · "start", {",", ";", "as", ")", "}"}] - [Uident ::= · "token", {",", ";", "as", ")", "}"}] - [Uident ::= · "neutral", {",", ";", "as", ")", "}"}] - [Uident ::= · "left", {",", ";", "as", ")", "}"}] - [Uident ::= · "right", {",", ";", "as", ")", "}"}] - [Uident ::= · "nonassoc", {",", ";", "as", ")", "}"}] - [Uident ::= · "prec", {",", ";", "as", ")", "}"}] - [Uident ::= · UIDENT, {",", ";", "as", ")", "}"}] + [Sep ::= · LINE_DELIM, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Sep ::= · ";", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Sep ::= · "|", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodesTl ::= · Sep Code CodesTl, {DEDENT, ")", "|)", "]", "|]", "}"}] + [CodesTl ::= ·, {DEDENT, ")", "|)", "]", "|]", "}"}] Actions - "hocc" : ShiftPrefix 72 - "nonterm" : ShiftPrefix 73 - "epsilon" : ShiftPrefix 74 - "start" : ShiftPrefix 75 - "token" : ShiftPrefix 76 - "neutral" : ShiftPrefix 77 - "left" : ShiftPrefix 78 - "right" : ShiftPrefix 79 - "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 - UIDENT : ShiftPrefix 82 + "|" : ShiftPrefix 20 + ";" : ShiftPrefix 24 prec pSEMI + LINE_DELIM : ShiftPrefix 26 + DEDENT : Reduce CodesTl ::= epsilon + ")" : Reduce CodesTl ::= epsilon + "|)" : Reduce CodesTl ::= epsilon + "]" : Reduce CodesTl ::= epsilon + "|]" : Reduce CodesTl ::= epsilon + "}" : Reduce CodesTl ::= epsilon Gotos - Uident : 208 - State 167 [167.0] - Kernel - [ProdParam ::= "(" Pattern ")" · ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - Actions - ":" : ShiftPrefix 209 - State 168 [168.0] + Sep : 195 + CodesTl : 196 + State 157 [155.0] Kernel - [PatternField ::= Uident "=" · Pattern, {";", "}"}] - Added - [Uident ::= · "hocc", {",", ";", "as", "}"}] - [Uident ::= · "nonterm", {",", ";", "as", "}"}] - [Uident ::= · "epsilon", {",", ";", "as", "}"}] - [Uident ::= · "start", {",", ";", "as", "}"}] - [Uident ::= · "token", {",", ";", "as", "}"}] - [Uident ::= · "neutral", {",", ";", "as", "}"}] - [Uident ::= · "left", {",", ";", "as", "}"}] - [Uident ::= · "right", {",", ";", "as", "}"}] - [Uident ::= · "nonassoc", {",", ";", "as", "}"}] - [Uident ::= · "prec", {",", ";", "as", "}"}] - [Uident ::= · UIDENT, {",", ";", "as", "}"}] - [ModulePath ::= · CIDENT, {"."}] - [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT - [Pattern ::= · "_", {",", ";", "as", "}"}] - [Pattern ::= · Uident, {",", ";", "as", "}"}] - [Pattern ::= · Pattern "as" Uident, {",", ";", "as", "}"}] - [Pattern ::= · "(" Pattern ")", {",", ";", "as", "}"}] - [Pattern ::= · CIDENT Pattern, {",", ";", "as", "}"}] prec pCIDENT - [Pattern ::= · ModulePath "." "(" Pattern ")", {",", ";", "as", "}"}] - [Pattern ::= · Pattern "," Pattern, {",", ";", "as", "}"}] prec pCOMMA - [Pattern ::= · "{" PatternFields SemiSuffix "}", {",", ";", "as", "}"}] - [Pattern ::= · ModulePath "." "{" PatternFields SemiSuffix "}", {",", ";", "as", "}"}] + [Codes0 ::= Codes ·, {")", "|)", "]", "|]", "}"}] Actions - "hocc" : ShiftPrefix 72 - "nonterm" : ShiftPrefix 73 - "epsilon" : ShiftPrefix 74 - "start" : ShiftPrefix 75 - "token" : ShiftPrefix 76 - "neutral" : ShiftPrefix 77 - "left" : ShiftPrefix 78 - "right" : ShiftPrefix 79 - "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 - UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 137 - "_" : ShiftPrefix 138 - "(" : ShiftPrefix 139 - "{" : ShiftPrefix 140 - Gotos - Uident : 141 - ModulePath : 142 - Pattern : 210 - State 169 [169.0] + ")" : Reduce Codes0 ::= Codes + "|)" : Reduce Codes0 ::= Codes + "]" : Reduce Codes0 ::= Codes + "|]" : Reduce Codes0 ::= Codes + "}" : Reduce Codes0 ::= Codes + State 158 [156.0] Kernel - [PatternFields ::= PatternField ";" · "_", {";", "}"}] - [PatternFields ::= PatternField ";" · PatternFields, {";", "}"}] - Added - [Uident ::= · "hocc", {"=", ";", "}"}] - [Uident ::= · "nonterm", {"=", ";", "}"}] - [Uident ::= · "epsilon", {"=", ";", "}"}] - [Uident ::= · "start", {"=", ";", "}"}] - [Uident ::= · "token", {"=", ";", "}"}] - [Uident ::= · "neutral", {"=", ";", "}"}] - [Uident ::= · "left", {"=", ";", "}"}] - [Uident ::= · "right", {"=", ";", "}"}] - [Uident ::= · "nonassoc", {"=", ";", "}"}] - [Uident ::= · "prec", {"=", ";", "}"}] - [Uident ::= · UIDENT, {"=", ";", "}"}] - [PatternField ::= · Uident, {";", "}"}] - [PatternField ::= · Uident "=" Pattern, {";", "}"}] - [PatternFields ::= · PatternField, {";", "}"}] prec pSEMI - [PatternFields ::= · PatternField ";" "_", {";", "}"}] - [PatternFields ::= · PatternField ";" PatternFields, {";", "}"}] + [Delimited ::= "(" Codes0 · ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] Actions - "hocc" : ShiftPrefix 72 - "nonterm" : ShiftPrefix 73 - "epsilon" : ShiftPrefix 74 - "start" : ShiftPrefix 75 - "token" : ShiftPrefix 76 - "neutral" : ShiftPrefix 77 - "left" : ShiftPrefix 78 - "right" : ShiftPrefix 79 - "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 - UIDENT : ShiftPrefix 82 - "_" : ShiftPrefix 211 - Gotos - Uident : 144 - PatternField : 145 - PatternFields : 212 - State 170 [170.0] + ")" : ShiftPrefix 197 + State 159 [157.0] Kernel - [SemiSuffix ::= ";" ·, {"}"}] + [Delimited ::= "(|" Codes0 · "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] Actions - "}" : Reduce SemiSuffix ::= ";" - State 171 [171.0] + "|)" : ShiftPrefix 198 + State 160 [158.0] Kernel - [ProdParam ::= "{" PatternFields SemiSuffix · "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [Delimited ::= "[" Codes0 · "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] Actions - "}" : ShiftPrefix 213 - State 172 [172.0] + "]" : ShiftPrefix 199 + State 161 [159.0] Kernel - [ProdParam ::= Uident ":" ProdParamSymbol ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [Delimited ::= "[|" Codes0 · "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] Actions - "hocc" : Reduce ProdParam ::= Uident ":" ProdParamSymbol - "nonterm" : Reduce ProdParam ::= Uident ":" ProdParamSymbol - "epsilon" : Reduce ProdParam ::= Uident ":" ProdParamSymbol - "start" : Reduce ProdParam ::= Uident ":" ProdParamSymbol - "token" : Reduce ProdParam ::= Uident ":" ProdParamSymbol - "neutral" : Reduce ProdParam ::= Uident ":" ProdParamSymbol - "left" : Reduce ProdParam ::= Uident ":" ProdParamSymbol - "right" : Reduce ProdParam ::= Uident ":" ProdParamSymbol - "nonassoc" : Reduce ProdParam ::= Uident ":" ProdParamSymbol - "prec" : Reduce ProdParam ::= Uident ":" ProdParamSymbol - UIDENT : Reduce ProdParam ::= Uident ":" ProdParamSymbol - CIDENT : Reduce ProdParam ::= Uident ":" ProdParamSymbol - "_" : Reduce ProdParam ::= Uident ":" ProdParamSymbol - ISTRING : Reduce ProdParam ::= Uident ":" ProdParamSymbol - "->" : Reduce ProdParam ::= Uident ":" ProdParamSymbol - "|" : Reduce ProdParam ::= Uident ":" ProdParamSymbol - LINE_DELIM : Reduce ProdParam ::= Uident ":" ProdParamSymbol - DEDENT : Reduce ProdParam ::= Uident ":" ProdParamSymbol - "(" : Reduce ProdParam ::= Uident ":" ProdParamSymbol - "{" : Reduce ProdParam ::= Uident ":" ProdParamSymbol - State 173 [173.0] + "|]" : ShiftPrefix 200 + State 162 [160.0] Kernel - [ModulePath ::= CIDENT ·, {"."}] + [Delimited ::= "{" Codes0 · "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] Actions - "." : Reduce ModulePath ::= CIDENT - State 174 [174.0] + "}" : ShiftPrefix 201 + State 163 [161.0] Kernel - [ProdParam ::= ModulePath "." "(" · Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [CodeTl ::= Delimited · CodeTl, {"prec", LINE_DELIM, DEDENT}] Added - [Uident ::= · "hocc", {",", "as", ")"}] - [Uident ::= · "nonterm", {",", "as", ")"}] - [Uident ::= · "epsilon", {",", "as", ")"}] - [Uident ::= · "start", {",", "as", ")"}] - [Uident ::= · "token", {",", "as", ")"}] - [Uident ::= · "neutral", {",", "as", ")"}] - [Uident ::= · "left", {",", "as", ")"}] - [Uident ::= · "right", {",", "as", ")"}] - [Uident ::= · "nonassoc", {",", "as", ")"}] - [Uident ::= · "prec", {",", "as", ")"}] - [Uident ::= · UIDENT, {",", "as", ")"}] - [ModulePath ::= · CIDENT, {"."}] - [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT - [Pattern ::= · "_", {",", "as", ")"}] - [Pattern ::= · Uident, {",", "as", ")"}] - [Pattern ::= · Pattern "as" Uident, {",", "as", ")"}] - [Pattern ::= · "(" Pattern ")", {",", "as", ")"}] - [Pattern ::= · CIDENT Pattern, {",", "as", ")"}] prec pCIDENT - [Pattern ::= · ModulePath "." "(" Pattern ")", {",", "as", ")"}] - [Pattern ::= · Pattern "," Pattern, {",", "as", ")"}] prec pCOMMA - [Pattern ::= · "{" PatternFields SemiSuffix "}", {",", "as", ")"}] - [Pattern ::= · ModulePath "." "{" PatternFields SemiSuffix "}", {",", "as", ")"}] + [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeTl ::= · Delimited CodeTl, {"prec", LINE_DELIM, DEDENT}] + [CodeTl ::= · CodeToken CodeTl, {"prec", LINE_DELIM, DEDENT}] + [CodeTl ::= ·, {"prec", LINE_DELIM, DEDENT}] prec pCodeTlEpsilon Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 @@ -5200,36 +5868,72 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 137 - "_" : ShiftPrefix 138 - "(" : ShiftPrefix 139 - "{" : ShiftPrefix 140 + CIDENT : ShiftPrefix 110 + "_" : ShiftPrefix 111 + ISTRING : ShiftPrefix 112 + "::=" : ShiftPrefix 113 + "of" : ShiftPrefix 114 + ":" : ShiftPrefix 115 + "." : ShiftPrefix 116 prec pDOT + "->" : ShiftPrefix 117 + "<" : ShiftPrefix 118 + "=" : ShiftPrefix 119 + "," : ShiftPrefix 120 prec pCOMMA + "as" : ShiftPrefix 121 prec pAS + LINE_DELIM : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + INDENT : ShiftPrefix 122 + DEDENT : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "(" : ShiftPrefix 123 + "(|" : ShiftPrefix 124 + "[" : ShiftPrefix 125 + "[|" : ShiftPrefix 126 + "{" : ShiftPrefix 127 + OTHER_TOKEN : ShiftPrefix 128 Gotos - Uident : 141 - ModulePath : 142 - Pattern : 214 - State 175 [175.0] + Uident : 129 + Delimited : 163 + CodeToken : 164 + CodeTl : 202 + State 164 [162.0] Kernel - [ProdParam ::= ModulePath "." "{" · PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [CodeTl ::= CodeToken · CodeTl, {"prec", LINE_DELIM, DEDENT}] Added - [Uident ::= · "hocc", {"=", ";", "}"}] - [Uident ::= · "nonterm", {"=", ";", "}"}] - [Uident ::= · "epsilon", {"=", ";", "}"}] - [Uident ::= · "start", {"=", ";", "}"}] - [Uident ::= · "token", {"=", ";", "}"}] - [Uident ::= · "neutral", {"=", ";", "}"}] - [Uident ::= · "left", {"=", ";", "}"}] - [Uident ::= · "right", {"=", ";", "}"}] - [Uident ::= · "nonassoc", {"=", ";", "}"}] - [Uident ::= · "prec", {"=", ";", "}"}] - [Uident ::= · UIDENT, {"=", ";", "}"}] - [PatternField ::= · Uident, {";", "}"}] - [PatternField ::= · Uident "=" Pattern, {";", "}"}] - [PatternFields ::= · PatternField, {";", "}"}] prec pSEMI - [PatternFields ::= · PatternField ";" "_", {";", "}"}] - [PatternFields ::= · PatternField ";" PatternFields, {";", "}"}] + [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeTl ::= · Delimited CodeTl, {"prec", LINE_DELIM, DEDENT}] + [CodeTl ::= · CodeToken CodeTl, {"prec", LINE_DELIM, DEDENT}] + [CodeTl ::= ·, {"prec", LINE_DELIM, DEDENT}] prec pCodeTlEpsilon Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 @@ -5240,593 +5944,364 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon UIDENT : ShiftPrefix 82 + CIDENT : ShiftPrefix 110 + "_" : ShiftPrefix 111 + ISTRING : ShiftPrefix 112 + "::=" : ShiftPrefix 113 + "of" : ShiftPrefix 114 + ":" : ShiftPrefix 115 + "." : ShiftPrefix 116 prec pDOT + "->" : ShiftPrefix 117 + "<" : ShiftPrefix 118 + "=" : ShiftPrefix 119 + "," : ShiftPrefix 120 prec pCOMMA + "as" : ShiftPrefix 121 prec pAS + LINE_DELIM : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + INDENT : ShiftPrefix 122 + DEDENT : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "(" : ShiftPrefix 123 + "(|" : ShiftPrefix 124 + "[" : ShiftPrefix 125 + "[|" : ShiftPrefix 126 + "{" : ShiftPrefix 127 + OTHER_TOKEN : ShiftPrefix 128 Gotos - Uident : 144 - PatternField : 145 - PatternFields : 215 - State 176 [176.0] + Uident : 129 + Delimited : 163 + CodeToken : 164 + CodeTl : 203 + State 165 [163.0] Kernel - [ModulePath ::= ModulePath · "." ModulePath, {"."}] prec pDOT - [ModulePath ::= ModulePath "." ModulePath ·, {"."}] prec pDOT + [Code ::= Delimited CodeTl ·, {"prec", "|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] Actions - "." : Reduce ModulePath ::= ModulePath "." ModulePath prec pDOT - State 177 [177.0] + "prec" : Reduce Code ::= Delimited CodeTl + "|" : Reduce Code ::= Delimited CodeTl + ";" : Reduce Code ::= Delimited CodeTl + LINE_DELIM : Reduce Code ::= Delimited CodeTl + DEDENT : Reduce Code ::= Delimited CodeTl + ")" : Reduce Code ::= Delimited CodeTl + "|)" : Reduce Code ::= Delimited CodeTl + "]" : Reduce Code ::= Delimited CodeTl + "|]" : Reduce Code ::= Delimited CodeTl + "}" : Reduce Code ::= Delimited CodeTl + State 166 [164.0] Kernel - [ProdParamsTl ::= ProdParam ProdParamsTl ·, {"->", "|", LINE_DELIM, DEDENT}] + [Code ::= CodeToken CodeTl ·, {"prec", "|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] Actions - "->" : Reduce ProdParamsTl ::= ProdParam ProdParamsTl - "|" : Reduce ProdParamsTl ::= ProdParam ProdParamsTl - LINE_DELIM : Reduce ProdParamsTl ::= ProdParam ProdParamsTl - DEDENT : Reduce ProdParamsTl ::= ProdParam ProdParamsTl - State 178 [178.0] + "prec" : Reduce Code ::= CodeToken CodeTl + "|" : Reduce Code ::= CodeToken CodeTl + ";" : Reduce Code ::= CodeToken CodeTl + LINE_DELIM : Reduce Code ::= CodeToken CodeTl + DEDENT : Reduce Code ::= CodeToken CodeTl + ")" : Reduce Code ::= CodeToken CodeTl + "|)" : Reduce Code ::= CodeToken CodeTl + "]" : Reduce Code ::= CodeToken CodeTl + "|]" : Reduce Code ::= CodeToken CodeTl + "}" : Reduce Code ::= CodeToken CodeTl + State 167 [165.0] Kernel - [ProdsTl ::= "|" Prod · ProdsTl, {"->", LINE_DELIM, DEDENT}] + [SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT}] + Actions + "hocc" : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier + "nonterm" : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier + "epsilon" : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier + "start" : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier + "token" : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier + "neutral" : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier + "left" : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier + "right" : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier + "nonassoc" : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier + "prec" : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier + UIDENT : Reduce SymbolTypeQualifier ::= CIDENT "." SymbolTypeQualifier + State 168 [166.0] + Kernel + [Reduction ::= Prods · "->" Code, {"|", LINE_DELIM, DEDENT}] + Actions + "->" : ShiftPrefix 204 + State 169 [167.0] + Kernel + [Reductions ::= Reduction · ReductionsTl, {LINE_DELIM, DEDENT}] + Added + [ReductionsTl ::= · "|" Reduction ReductionsTl, {LINE_DELIM, DEDENT}] + [ReductionsTl ::= ·, {LINE_DELIM, DEDENT}] + Actions + "|" : ShiftPrefix 205 + LINE_DELIM : Reduce ReductionsTl ::= epsilon + DEDENT : Reduce ReductionsTl ::= epsilon + Gotos + ReductionsTl : 206 + State 170 [168.0] + Kernel + [Nonterm ::= NontermType CIDENT SymbolType PrecRef "::=" Reductions ·, {LINE_DELIM, DEDENT}] + Actions + LINE_DELIM : Reduce Nonterm ::= NontermType CIDENT SymbolType PrecRef "::=" Reductions + DEDENT : Reduce Nonterm ::= NontermType CIDENT SymbolType PrecRef "::=" Reductions + State 171 [169.0] + Kernel + [ProdPattern ::= "epsilon" PrecRef ·, {"->", "|", LINE_DELIM, DEDENT}] + Actions + "->" : Reduce ProdPattern ::= "epsilon" PrecRef + "|" : Reduce ProdPattern ::= "epsilon" PrecRef + LINE_DELIM : Reduce ProdPattern ::= "epsilon" PrecRef + DEDENT : Reduce ProdPattern ::= "epsilon" PrecRef + State 172 [170.0] + Kernel + [ProdParam ::= "_" ":" · ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + Added + [ProdParamSymbol ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParamSymbol ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + Actions + CIDENT : ShiftPrefix 207 + ISTRING : ShiftPrefix 141 + Gotos + ProdParamSymbol : 208 + State 173 [171.0] + Kernel + [Prods ::= "|" Prod · ProdsTl, {"->", LINE_DELIM, DEDENT}] Added [ProdsTl ::= · "|" Prod ProdsTl, {"->", LINE_DELIM, DEDENT}] [ProdsTl ::= ·, {"->", LINE_DELIM, DEDENT}] Actions "->" : Reduce ProdsTl ::= epsilon - "|" : ShiftPrefix 153 + "|" : ShiftPrefix 190 LINE_DELIM : Reduce ProdsTl ::= epsilon DEDENT : Reduce ProdsTl ::= epsilon Gotos - ProdsTl : 216 - State 179 [179.0] - Kernel - [CodeToken ::= CIDENT ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - Actions - "hocc" : Reduce CodeToken ::= CIDENT - "nonterm" : Reduce CodeToken ::= CIDENT - "epsilon" : Reduce CodeToken ::= CIDENT - "start" : Reduce CodeToken ::= CIDENT - "token" : Reduce CodeToken ::= CIDENT - "neutral" : Reduce CodeToken ::= CIDENT - "left" : Reduce CodeToken ::= CIDENT - "right" : Reduce CodeToken ::= CIDENT - "nonassoc" : Reduce CodeToken ::= CIDENT - "prec" : Reduce CodeToken ::= CIDENT - UIDENT : Reduce CodeToken ::= CIDENT - CIDENT : Reduce CodeToken ::= CIDENT - "_" : Reduce CodeToken ::= CIDENT - ISTRING : Reduce CodeToken ::= CIDENT - "::=" : Reduce CodeToken ::= CIDENT - "of" : Reduce CodeToken ::= CIDENT - ":" : Reduce CodeToken ::= CIDENT - "." : Reduce CodeToken ::= CIDENT - "->" : Reduce CodeToken ::= CIDENT - "|" : Reduce CodeToken ::= CIDENT - "<" : Reduce CodeToken ::= CIDENT - "=" : Reduce CodeToken ::= CIDENT - "," : Reduce CodeToken ::= CIDENT - ";" : Reduce CodeToken ::= CIDENT - "as" : Reduce CodeToken ::= CIDENT - LINE_DELIM : Reduce CodeToken ::= CIDENT - INDENT : Reduce CodeToken ::= CIDENT - DEDENT : Reduce CodeToken ::= CIDENT - "(" : Reduce CodeToken ::= CIDENT - ")" : Reduce CodeToken ::= CIDENT - "(|" : Reduce CodeToken ::= CIDENT - "|)" : Reduce CodeToken ::= CIDENT - "[" : Reduce CodeToken ::= CIDENT - "]" : Reduce CodeToken ::= CIDENT - "[|" : Reduce CodeToken ::= CIDENT - "|]" : Reduce CodeToken ::= CIDENT - "{" : Reduce CodeToken ::= CIDENT - "}" : Reduce CodeToken ::= CIDENT - OTHER_TOKEN : Reduce CodeToken ::= CIDENT - State 180 [180.0] + ProdsTl : 209 + State 174 [172.0] Kernel - [CodeToken ::= "_" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [ModulePath ::= CIDENT ·, {"."}] + [Pattern ::= CIDENT · Pattern, {",", ";", "as", ")", "}"}] prec pCIDENT + Added + [Uident ::= · "hocc", {",", ";", "as", ")", "}"}] + [Uident ::= · "nonterm", {",", ";", "as", ")", "}"}] + [Uident ::= · "epsilon", {",", ";", "as", ")", "}"}] + [Uident ::= · "start", {",", ";", "as", ")", "}"}] + [Uident ::= · "token", {",", ";", "as", ")", "}"}] + [Uident ::= · "neutral", {",", ";", "as", ")", "}"}] + [Uident ::= · "left", {",", ";", "as", ")", "}"}] + [Uident ::= · "right", {",", ";", "as", ")", "}"}] + [Uident ::= · "nonassoc", {",", ";", "as", ")", "}"}] + [Uident ::= · "prec", {",", ";", "as", ")", "}"}] + [Uident ::= · UIDENT, {",", ";", "as", ")", "}"}] + [ModulePath ::= · CIDENT, {"."}] + [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT + [Pattern ::= · "_", {",", ";", "as", ")", "}"}] + [Pattern ::= · Uident, {",", ";", "as", ")", "}"}] + [Pattern ::= · Pattern "as" Uident, {",", ";", "as", ")", "}"}] + [Pattern ::= · "(" Pattern ")", {",", ";", "as", ")", "}"}] + [Pattern ::= · CIDENT Pattern, {",", ";", "as", ")", "}"}] prec pCIDENT + [Pattern ::= · ModulePath "." "(" Pattern ")", {",", ";", "as", ")", "}"}] + [Pattern ::= · Pattern "," Pattern, {",", ";", "as", ")", "}"}] prec pCOMMA + [Pattern ::= · "{" PatternFields SemiSuffix "}", {",", ";", "as", ")", "}"}] + [Pattern ::= · ModulePath "." "{" PatternFields SemiSuffix "}", {",", ";", "as", ")", "}"}] Actions - "hocc" : Reduce CodeToken ::= "_" - "nonterm" : Reduce CodeToken ::= "_" - "epsilon" : Reduce CodeToken ::= "_" - "start" : Reduce CodeToken ::= "_" - "token" : Reduce CodeToken ::= "_" - "neutral" : Reduce CodeToken ::= "_" - "left" : Reduce CodeToken ::= "_" - "right" : Reduce CodeToken ::= "_" - "nonassoc" : Reduce CodeToken ::= "_" - "prec" : Reduce CodeToken ::= "_" - UIDENT : Reduce CodeToken ::= "_" - CIDENT : Reduce CodeToken ::= "_" - "_" : Reduce CodeToken ::= "_" - ISTRING : Reduce CodeToken ::= "_" - "::=" : Reduce CodeToken ::= "_" - "of" : Reduce CodeToken ::= "_" - ":" : Reduce CodeToken ::= "_" - "." : Reduce CodeToken ::= "_" - "->" : Reduce CodeToken ::= "_" - "|" : Reduce CodeToken ::= "_" - "<" : Reduce CodeToken ::= "_" - "=" : Reduce CodeToken ::= "_" - "," : Reduce CodeToken ::= "_" - ";" : Reduce CodeToken ::= "_" - "as" : Reduce CodeToken ::= "_" - LINE_DELIM : Reduce CodeToken ::= "_" - INDENT : Reduce CodeToken ::= "_" - DEDENT : Reduce CodeToken ::= "_" - "(" : Reduce CodeToken ::= "_" - ")" : Reduce CodeToken ::= "_" - "(|" : Reduce CodeToken ::= "_" - "|)" : Reduce CodeToken ::= "_" - "[" : Reduce CodeToken ::= "_" - "]" : Reduce CodeToken ::= "_" - "[|" : Reduce CodeToken ::= "_" - "|]" : Reduce CodeToken ::= "_" - "{" : Reduce CodeToken ::= "_" - "}" : Reduce CodeToken ::= "_" - OTHER_TOKEN : Reduce CodeToken ::= "_" - State 181 [181.0] + "hocc" : ShiftPrefix 72 + "nonterm" : ShiftPrefix 73 + "epsilon" : ShiftPrefix 74 + "start" : ShiftPrefix 75 + "token" : ShiftPrefix 76 + "neutral" : ShiftPrefix 77 + "left" : ShiftPrefix 78 + "right" : ShiftPrefix 79 + "nonassoc" : ShiftPrefix 80 + "prec" : ShiftPrefix 81 prec pPrec + UIDENT : ShiftPrefix 82 + CIDENT : ShiftPrefix 174 + "_" : ShiftPrefix 175 + "." : Reduce ModulePath ::= CIDENT + "(" : ShiftPrefix 176 + "{" : ShiftPrefix 177 + Gotos + Uident : 178 + ModulePath : 179 + Pattern : 210 + State 175 [173.0] Kernel - [CodeToken ::= ISTRING ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Pattern ::= "_" ·, {",", ";", "as", ")", "}"}] Actions - "hocc" : Reduce CodeToken ::= ISTRING - "nonterm" : Reduce CodeToken ::= ISTRING - "epsilon" : Reduce CodeToken ::= ISTRING - "start" : Reduce CodeToken ::= ISTRING - "token" : Reduce CodeToken ::= ISTRING - "neutral" : Reduce CodeToken ::= ISTRING - "left" : Reduce CodeToken ::= ISTRING - "right" : Reduce CodeToken ::= ISTRING - "nonassoc" : Reduce CodeToken ::= ISTRING - "prec" : Reduce CodeToken ::= ISTRING - UIDENT : Reduce CodeToken ::= ISTRING - CIDENT : Reduce CodeToken ::= ISTRING - "_" : Reduce CodeToken ::= ISTRING - ISTRING : Reduce CodeToken ::= ISTRING - "::=" : Reduce CodeToken ::= ISTRING - "of" : Reduce CodeToken ::= ISTRING - ":" : Reduce CodeToken ::= ISTRING - "." : Reduce CodeToken ::= ISTRING - "->" : Reduce CodeToken ::= ISTRING - "|" : Reduce CodeToken ::= ISTRING - "<" : Reduce CodeToken ::= ISTRING - "=" : Reduce CodeToken ::= ISTRING - "," : Reduce CodeToken ::= ISTRING - ";" : Reduce CodeToken ::= ISTRING - "as" : Reduce CodeToken ::= ISTRING - LINE_DELIM : Reduce CodeToken ::= ISTRING - INDENT : Reduce CodeToken ::= ISTRING - DEDENT : Reduce CodeToken ::= ISTRING - "(" : Reduce CodeToken ::= ISTRING - ")" : Reduce CodeToken ::= ISTRING - "(|" : Reduce CodeToken ::= ISTRING - "|)" : Reduce CodeToken ::= ISTRING - "[" : Reduce CodeToken ::= ISTRING - "]" : Reduce CodeToken ::= ISTRING - "[|" : Reduce CodeToken ::= ISTRING - "|]" : Reduce CodeToken ::= ISTRING - "{" : Reduce CodeToken ::= ISTRING - "}" : Reduce CodeToken ::= ISTRING - OTHER_TOKEN : Reduce CodeToken ::= ISTRING - State 182 [182.0] + "," : Reduce Pattern ::= "_" + ";" : Reduce Pattern ::= "_" + "as" : Reduce Pattern ::= "_" + ")" : Reduce Pattern ::= "_" + "}" : Reduce Pattern ::= "_" + State 176 [174.0] Kernel - [CodeToken ::= "::=" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Pattern ::= "(" · Pattern ")", {",", ";", "as", ")", "}"}] + Added + [Uident ::= · "hocc", {",", "as", ")"}] + [Uident ::= · "nonterm", {",", "as", ")"}] + [Uident ::= · "epsilon", {",", "as", ")"}] + [Uident ::= · "start", {",", "as", ")"}] + [Uident ::= · "token", {",", "as", ")"}] + [Uident ::= · "neutral", {",", "as", ")"}] + [Uident ::= · "left", {",", "as", ")"}] + [Uident ::= · "right", {",", "as", ")"}] + [Uident ::= · "nonassoc", {",", "as", ")"}] + [Uident ::= · "prec", {",", "as", ")"}] + [Uident ::= · UIDENT, {",", "as", ")"}] + [ModulePath ::= · CIDENT, {"."}] + [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT + [Pattern ::= · "_", {",", "as", ")"}] + [Pattern ::= · Uident, {",", "as", ")"}] + [Pattern ::= · Pattern "as" Uident, {",", "as", ")"}] + [Pattern ::= · "(" Pattern ")", {",", "as", ")"}] + [Pattern ::= · CIDENT Pattern, {",", "as", ")"}] prec pCIDENT + [Pattern ::= · ModulePath "." "(" Pattern ")", {",", "as", ")"}] + [Pattern ::= · Pattern "," Pattern, {",", "as", ")"}] prec pCOMMA + [Pattern ::= · "{" PatternFields SemiSuffix "}", {",", "as", ")"}] + [Pattern ::= · ModulePath "." "{" PatternFields SemiSuffix "}", {",", "as", ")"}] Actions - "hocc" : Reduce CodeToken ::= "::=" - "nonterm" : Reduce CodeToken ::= "::=" - "epsilon" : Reduce CodeToken ::= "::=" - "start" : Reduce CodeToken ::= "::=" - "token" : Reduce CodeToken ::= "::=" - "neutral" : Reduce CodeToken ::= "::=" - "left" : Reduce CodeToken ::= "::=" - "right" : Reduce CodeToken ::= "::=" - "nonassoc" : Reduce CodeToken ::= "::=" - "prec" : Reduce CodeToken ::= "::=" - UIDENT : Reduce CodeToken ::= "::=" - CIDENT : Reduce CodeToken ::= "::=" - "_" : Reduce CodeToken ::= "::=" - ISTRING : Reduce CodeToken ::= "::=" - "::=" : Reduce CodeToken ::= "::=" - "of" : Reduce CodeToken ::= "::=" - ":" : Reduce CodeToken ::= "::=" - "." : Reduce CodeToken ::= "::=" - "->" : Reduce CodeToken ::= "::=" - "|" : Reduce CodeToken ::= "::=" - "<" : Reduce CodeToken ::= "::=" - "=" : Reduce CodeToken ::= "::=" - "," : Reduce CodeToken ::= "::=" - ";" : Reduce CodeToken ::= "::=" - "as" : Reduce CodeToken ::= "::=" - LINE_DELIM : Reduce CodeToken ::= "::=" - INDENT : Reduce CodeToken ::= "::=" - DEDENT : Reduce CodeToken ::= "::=" - "(" : Reduce CodeToken ::= "::=" - ")" : Reduce CodeToken ::= "::=" - "(|" : Reduce CodeToken ::= "::=" - "|)" : Reduce CodeToken ::= "::=" - "[" : Reduce CodeToken ::= "::=" - "]" : Reduce CodeToken ::= "::=" - "[|" : Reduce CodeToken ::= "::=" - "|]" : Reduce CodeToken ::= "::=" - "{" : Reduce CodeToken ::= "::=" - "}" : Reduce CodeToken ::= "::=" - OTHER_TOKEN : Reduce CodeToken ::= "::=" - State 183 [183.0] + "hocc" : ShiftPrefix 72 + "nonterm" : ShiftPrefix 73 + "epsilon" : ShiftPrefix 74 + "start" : ShiftPrefix 75 + "token" : ShiftPrefix 76 + "neutral" : ShiftPrefix 77 + "left" : ShiftPrefix 78 + "right" : ShiftPrefix 79 + "nonassoc" : ShiftPrefix 80 + "prec" : ShiftPrefix 81 prec pPrec + UIDENT : ShiftPrefix 82 + CIDENT : ShiftPrefix 174 + "_" : ShiftPrefix 175 + "(" : ShiftPrefix 176 + "{" : ShiftPrefix 177 + Gotos + Uident : 178 + ModulePath : 179 + Pattern : 211 + State 177 [175.0] Kernel - [CodeToken ::= "of" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Pattern ::= "{" · PatternFields SemiSuffix "}", {",", ";", "as", ")", "}"}] + Added + [Uident ::= · "hocc", {"=", ";", "}"}] + [Uident ::= · "nonterm", {"=", ";", "}"}] + [Uident ::= · "epsilon", {"=", ";", "}"}] + [Uident ::= · "start", {"=", ";", "}"}] + [Uident ::= · "token", {"=", ";", "}"}] + [Uident ::= · "neutral", {"=", ";", "}"}] + [Uident ::= · "left", {"=", ";", "}"}] + [Uident ::= · "right", {"=", ";", "}"}] + [Uident ::= · "nonassoc", {"=", ";", "}"}] + [Uident ::= · "prec", {"=", ";", "}"}] + [Uident ::= · UIDENT, {"=", ";", "}"}] + [PatternField ::= · Uident, {";", "}"}] + [PatternField ::= · Uident "=" Pattern, {";", "}"}] + [PatternFields ::= · PatternField, {";", "}"}] prec pSEMI + [PatternFields ::= · PatternField ";" "_", {";", "}"}] + [PatternFields ::= · PatternField ";" PatternFields, {";", "}"}] Actions - "hocc" : Reduce CodeToken ::= "of" - "nonterm" : Reduce CodeToken ::= "of" - "epsilon" : Reduce CodeToken ::= "of" - "start" : Reduce CodeToken ::= "of" - "token" : Reduce CodeToken ::= "of" - "neutral" : Reduce CodeToken ::= "of" - "left" : Reduce CodeToken ::= "of" - "right" : Reduce CodeToken ::= "of" - "nonassoc" : Reduce CodeToken ::= "of" - "prec" : Reduce CodeToken ::= "of" - UIDENT : Reduce CodeToken ::= "of" - CIDENT : Reduce CodeToken ::= "of" - "_" : Reduce CodeToken ::= "of" - ISTRING : Reduce CodeToken ::= "of" - "::=" : Reduce CodeToken ::= "of" - "of" : Reduce CodeToken ::= "of" - ":" : Reduce CodeToken ::= "of" - "." : Reduce CodeToken ::= "of" - "->" : Reduce CodeToken ::= "of" - "|" : Reduce CodeToken ::= "of" - "<" : Reduce CodeToken ::= "of" - "=" : Reduce CodeToken ::= "of" - "," : Reduce CodeToken ::= "of" - ";" : Reduce CodeToken ::= "of" - "as" : Reduce CodeToken ::= "of" - LINE_DELIM : Reduce CodeToken ::= "of" - INDENT : Reduce CodeToken ::= "of" - DEDENT : Reduce CodeToken ::= "of" - "(" : Reduce CodeToken ::= "of" - ")" : Reduce CodeToken ::= "of" - "(|" : Reduce CodeToken ::= "of" - "|)" : Reduce CodeToken ::= "of" - "[" : Reduce CodeToken ::= "of" - "]" : Reduce CodeToken ::= "of" - "[|" : Reduce CodeToken ::= "of" - "|]" : Reduce CodeToken ::= "of" - "{" : Reduce CodeToken ::= "of" - "}" : Reduce CodeToken ::= "of" - OTHER_TOKEN : Reduce CodeToken ::= "of" - State 184 [184.0] + "hocc" : ShiftPrefix 72 + "nonterm" : ShiftPrefix 73 + "epsilon" : ShiftPrefix 74 + "start" : ShiftPrefix 75 + "token" : ShiftPrefix 76 + "neutral" : ShiftPrefix 77 + "left" : ShiftPrefix 78 + "right" : ShiftPrefix 79 + "nonassoc" : ShiftPrefix 80 + "prec" : ShiftPrefix 81 prec pPrec + UIDENT : ShiftPrefix 82 + Gotos + Uident : 181 + PatternField : 182 + PatternFields : 212 + State 178 [176.0] Kernel - [CodeToken ::= ":" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Pattern ::= Uident ·, {",", ";", "as", ")", "}"}] Actions - "hocc" : Reduce CodeToken ::= ":" - "nonterm" : Reduce CodeToken ::= ":" - "epsilon" : Reduce CodeToken ::= ":" - "start" : Reduce CodeToken ::= ":" - "token" : Reduce CodeToken ::= ":" - "neutral" : Reduce CodeToken ::= ":" - "left" : Reduce CodeToken ::= ":" - "right" : Reduce CodeToken ::= ":" - "nonassoc" : Reduce CodeToken ::= ":" - "prec" : Reduce CodeToken ::= ":" - UIDENT : Reduce CodeToken ::= ":" - CIDENT : Reduce CodeToken ::= ":" - "_" : Reduce CodeToken ::= ":" - ISTRING : Reduce CodeToken ::= ":" - "::=" : Reduce CodeToken ::= ":" - "of" : Reduce CodeToken ::= ":" - ":" : Reduce CodeToken ::= ":" - "." : Reduce CodeToken ::= ":" - "->" : Reduce CodeToken ::= ":" - "|" : Reduce CodeToken ::= ":" - "<" : Reduce CodeToken ::= ":" - "=" : Reduce CodeToken ::= ":" - "," : Reduce CodeToken ::= ":" - ";" : Reduce CodeToken ::= ":" - "as" : Reduce CodeToken ::= ":" - LINE_DELIM : Reduce CodeToken ::= ":" - INDENT : Reduce CodeToken ::= ":" - DEDENT : Reduce CodeToken ::= ":" - "(" : Reduce CodeToken ::= ":" - ")" : Reduce CodeToken ::= ":" - "(|" : Reduce CodeToken ::= ":" - "|)" : Reduce CodeToken ::= ":" - "[" : Reduce CodeToken ::= ":" - "]" : Reduce CodeToken ::= ":" - "[|" : Reduce CodeToken ::= ":" - "|]" : Reduce CodeToken ::= ":" - "{" : Reduce CodeToken ::= ":" - "}" : Reduce CodeToken ::= ":" - OTHER_TOKEN : Reduce CodeToken ::= ":" - State 185 [185.0] + "," : Reduce Pattern ::= Uident + ";" : Reduce Pattern ::= Uident + "as" : Reduce Pattern ::= Uident + ")" : Reduce Pattern ::= Uident + "}" : Reduce Pattern ::= Uident + State 179 [177.0] Kernel - [CodeToken ::= "." ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [ModulePath ::= ModulePath · "." ModulePath, {"."}] prec pDOT + [Pattern ::= ModulePath · "." "(" Pattern ")", {",", ";", "as", ")", "}"}] + [Pattern ::= ModulePath · "." "{" PatternFields SemiSuffix "}", {",", ";", "as", ")", "}"}] Actions - "hocc" : Reduce CodeToken ::= "." - "nonterm" : Reduce CodeToken ::= "." - "epsilon" : Reduce CodeToken ::= "." - "start" : Reduce CodeToken ::= "." - "token" : Reduce CodeToken ::= "." - "neutral" : Reduce CodeToken ::= "." - "left" : Reduce CodeToken ::= "." - "right" : Reduce CodeToken ::= "." - "nonassoc" : Reduce CodeToken ::= "." - "prec" : Reduce CodeToken ::= "." - UIDENT : Reduce CodeToken ::= "." - CIDENT : Reduce CodeToken ::= "." - "_" : Reduce CodeToken ::= "." - ISTRING : Reduce CodeToken ::= "." - "::=" : Reduce CodeToken ::= "." - "of" : Reduce CodeToken ::= "." - ":" : Reduce CodeToken ::= "." - "." : Reduce CodeToken ::= "." - "->" : Reduce CodeToken ::= "." - "|" : Reduce CodeToken ::= "." - "<" : Reduce CodeToken ::= "." - "=" : Reduce CodeToken ::= "." - "," : Reduce CodeToken ::= "." - ";" : Reduce CodeToken ::= "." - "as" : Reduce CodeToken ::= "." - LINE_DELIM : Reduce CodeToken ::= "." - INDENT : Reduce CodeToken ::= "." - DEDENT : Reduce CodeToken ::= "." - "(" : Reduce CodeToken ::= "." - ")" : Reduce CodeToken ::= "." - "(|" : Reduce CodeToken ::= "." - "|)" : Reduce CodeToken ::= "." - "[" : Reduce CodeToken ::= "." - "]" : Reduce CodeToken ::= "." - "[|" : Reduce CodeToken ::= "." - "|]" : Reduce CodeToken ::= "." - "{" : Reduce CodeToken ::= "." - "}" : Reduce CodeToken ::= "." - OTHER_TOKEN : Reduce CodeToken ::= "." - State 186 [186.0] + "." : ShiftPrefix 213 prec pDOT + State 180 [178.0] Kernel - [CodeToken ::= "->" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Pattern ::= Pattern · "as" Uident, {",", "as", ")"}] + [Pattern ::= Pattern · "," Pattern, {",", "as", ")"}] prec pCOMMA + [ProdParam ::= "(" Pattern · ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Actions - "hocc" : Reduce CodeToken ::= "->" - "nonterm" : Reduce CodeToken ::= "->" - "epsilon" : Reduce CodeToken ::= "->" - "start" : Reduce CodeToken ::= "->" - "token" : Reduce CodeToken ::= "->" - "neutral" : Reduce CodeToken ::= "->" - "left" : Reduce CodeToken ::= "->" - "right" : Reduce CodeToken ::= "->" - "nonassoc" : Reduce CodeToken ::= "->" - "prec" : Reduce CodeToken ::= "->" - UIDENT : Reduce CodeToken ::= "->" - CIDENT : Reduce CodeToken ::= "->" - "_" : Reduce CodeToken ::= "->" - ISTRING : Reduce CodeToken ::= "->" - "::=" : Reduce CodeToken ::= "->" - "of" : Reduce CodeToken ::= "->" - ":" : Reduce CodeToken ::= "->" - "." : Reduce CodeToken ::= "->" - "->" : Reduce CodeToken ::= "->" - "|" : Reduce CodeToken ::= "->" - "<" : Reduce CodeToken ::= "->" - "=" : Reduce CodeToken ::= "->" - "," : Reduce CodeToken ::= "->" - ";" : Reduce CodeToken ::= "->" - "as" : Reduce CodeToken ::= "->" - LINE_DELIM : Reduce CodeToken ::= "->" - INDENT : Reduce CodeToken ::= "->" - DEDENT : Reduce CodeToken ::= "->" - "(" : Reduce CodeToken ::= "->" - ")" : Reduce CodeToken ::= "->" - "(|" : Reduce CodeToken ::= "->" - "|)" : Reduce CodeToken ::= "->" - "[" : Reduce CodeToken ::= "->" - "]" : Reduce CodeToken ::= "->" - "[|" : Reduce CodeToken ::= "->" - "|]" : Reduce CodeToken ::= "->" - "{" : Reduce CodeToken ::= "->" - "}" : Reduce CodeToken ::= "->" - OTHER_TOKEN : Reduce CodeToken ::= "->" - State 187 [187.0] + "," : ShiftPrefix 214 prec pCOMMA + "as" : ShiftPrefix 215 prec pAS + ")" : ShiftPrefix 216 + State 181 [179.0] Kernel - [CodeToken ::= "<" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [PatternField ::= Uident ·, {";", "}"}] + [PatternField ::= Uident · "=" Pattern, {";", "}"}] Actions - "hocc" : Reduce CodeToken ::= "<" - "nonterm" : Reduce CodeToken ::= "<" - "epsilon" : Reduce CodeToken ::= "<" - "start" : Reduce CodeToken ::= "<" - "token" : Reduce CodeToken ::= "<" - "neutral" : Reduce CodeToken ::= "<" - "left" : Reduce CodeToken ::= "<" - "right" : Reduce CodeToken ::= "<" - "nonassoc" : Reduce CodeToken ::= "<" - "prec" : Reduce CodeToken ::= "<" - UIDENT : Reduce CodeToken ::= "<" - CIDENT : Reduce CodeToken ::= "<" - "_" : Reduce CodeToken ::= "<" - ISTRING : Reduce CodeToken ::= "<" - "::=" : Reduce CodeToken ::= "<" - "of" : Reduce CodeToken ::= "<" - ":" : Reduce CodeToken ::= "<" - "." : Reduce CodeToken ::= "<" - "->" : Reduce CodeToken ::= "<" - "|" : Reduce CodeToken ::= "<" - "<" : Reduce CodeToken ::= "<" - "=" : Reduce CodeToken ::= "<" - "," : Reduce CodeToken ::= "<" - ";" : Reduce CodeToken ::= "<" - "as" : Reduce CodeToken ::= "<" - LINE_DELIM : Reduce CodeToken ::= "<" - INDENT : Reduce CodeToken ::= "<" - DEDENT : Reduce CodeToken ::= "<" - "(" : Reduce CodeToken ::= "<" - ")" : Reduce CodeToken ::= "<" - "(|" : Reduce CodeToken ::= "<" - "|)" : Reduce CodeToken ::= "<" - "[" : Reduce CodeToken ::= "<" - "]" : Reduce CodeToken ::= "<" - "[|" : Reduce CodeToken ::= "<" - "|]" : Reduce CodeToken ::= "<" - "{" : Reduce CodeToken ::= "<" - "}" : Reduce CodeToken ::= "<" - OTHER_TOKEN : Reduce CodeToken ::= "<" - State 188 [188.0] + "=" : ShiftPrefix 217 + ";" : Reduce PatternField ::= Uident + "}" : Reduce PatternField ::= Uident + State 182 [180.0] Kernel - [CodeToken ::= "=" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [PatternFields ::= PatternField ·, {";", "}"}] prec pSEMI + [PatternFields ::= PatternField · ";" "_", {";", "}"}] + [PatternFields ::= PatternField · ";" PatternFields, {";", "}"}] Actions - "hocc" : Reduce CodeToken ::= "=" - "nonterm" : Reduce CodeToken ::= "=" - "epsilon" : Reduce CodeToken ::= "=" - "start" : Reduce CodeToken ::= "=" - "token" : Reduce CodeToken ::= "=" - "neutral" : Reduce CodeToken ::= "=" - "left" : Reduce CodeToken ::= "=" - "right" : Reduce CodeToken ::= "=" - "nonassoc" : Reduce CodeToken ::= "=" - "prec" : Reduce CodeToken ::= "=" - UIDENT : Reduce CodeToken ::= "=" - CIDENT : Reduce CodeToken ::= "=" - "_" : Reduce CodeToken ::= "=" - ISTRING : Reduce CodeToken ::= "=" - "::=" : Reduce CodeToken ::= "=" - "of" : Reduce CodeToken ::= "=" - ":" : Reduce CodeToken ::= "=" - "." : Reduce CodeToken ::= "=" - "->" : Reduce CodeToken ::= "=" - "|" : Reduce CodeToken ::= "=" - "<" : Reduce CodeToken ::= "=" - "=" : Reduce CodeToken ::= "=" - "," : Reduce CodeToken ::= "=" - ";" : Reduce CodeToken ::= "=" - "as" : Reduce CodeToken ::= "=" - LINE_DELIM : Reduce CodeToken ::= "=" - INDENT : Reduce CodeToken ::= "=" - DEDENT : Reduce CodeToken ::= "=" - "(" : Reduce CodeToken ::= "=" - ")" : Reduce CodeToken ::= "=" - "(|" : Reduce CodeToken ::= "=" - "|)" : Reduce CodeToken ::= "=" - "[" : Reduce CodeToken ::= "=" - "]" : Reduce CodeToken ::= "=" - "[|" : Reduce CodeToken ::= "=" - "|]" : Reduce CodeToken ::= "=" - "{" : Reduce CodeToken ::= "=" - "}" : Reduce CodeToken ::= "=" - OTHER_TOKEN : Reduce CodeToken ::= "=" - State 189 [189.0] + ";" : ShiftPrefix 218 prec pSEMI + "}" : Reduce PatternFields ::= PatternField prec pSEMI + State 183 [181.0] Kernel - [CodeToken ::= "," ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [ProdParam ::= "{" PatternFields · SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + Added + [SemiSuffix ::= · ";", {"}"}] + [SemiSuffix ::= ·, {"}"}] Actions - "hocc" : Reduce CodeToken ::= "," - "nonterm" : Reduce CodeToken ::= "," - "epsilon" : Reduce CodeToken ::= "," - "start" : Reduce CodeToken ::= "," - "token" : Reduce CodeToken ::= "," - "neutral" : Reduce CodeToken ::= "," - "left" : Reduce CodeToken ::= "," - "right" : Reduce CodeToken ::= "," - "nonassoc" : Reduce CodeToken ::= "," - "prec" : Reduce CodeToken ::= "," - UIDENT : Reduce CodeToken ::= "," - CIDENT : Reduce CodeToken ::= "," - "_" : Reduce CodeToken ::= "," - ISTRING : Reduce CodeToken ::= "," - "::=" : Reduce CodeToken ::= "," - "of" : Reduce CodeToken ::= "," - ":" : Reduce CodeToken ::= "," - "." : Reduce CodeToken ::= "," - "->" : Reduce CodeToken ::= "," - "|" : Reduce CodeToken ::= "," - "<" : Reduce CodeToken ::= "," - "=" : Reduce CodeToken ::= "," - "," : Reduce CodeToken ::= "," - ";" : Reduce CodeToken ::= "," - "as" : Reduce CodeToken ::= "," - LINE_DELIM : Reduce CodeToken ::= "," - INDENT : Reduce CodeToken ::= "," - DEDENT : Reduce CodeToken ::= "," - "(" : Reduce CodeToken ::= "," - ")" : Reduce CodeToken ::= "," - "(|" : Reduce CodeToken ::= "," - "|)" : Reduce CodeToken ::= "," - "[" : Reduce CodeToken ::= "," - "]" : Reduce CodeToken ::= "," - "[|" : Reduce CodeToken ::= "," - "|]" : Reduce CodeToken ::= "," - "{" : Reduce CodeToken ::= "," - "}" : Reduce CodeToken ::= "," - OTHER_TOKEN : Reduce CodeToken ::= "," - State 190 [190.0] + ";" : ShiftPrefix 219 prec pSEMI + "}" : Reduce SemiSuffix ::= epsilon + Gotos + SemiSuffix : 220 + State 184 [182.0] Kernel - [CodeToken ::= "as" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [ProdParam ::= Uident ":" · ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + Added + [ProdParamSymbol ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParamSymbol ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Actions - "hocc" : Reduce CodeToken ::= "as" - "nonterm" : Reduce CodeToken ::= "as" - "epsilon" : Reduce CodeToken ::= "as" - "start" : Reduce CodeToken ::= "as" - "token" : Reduce CodeToken ::= "as" - "neutral" : Reduce CodeToken ::= "as" - "left" : Reduce CodeToken ::= "as" - "right" : Reduce CodeToken ::= "as" - "nonassoc" : Reduce CodeToken ::= "as" - "prec" : Reduce CodeToken ::= "as" - UIDENT : Reduce CodeToken ::= "as" - CIDENT : Reduce CodeToken ::= "as" - "_" : Reduce CodeToken ::= "as" - ISTRING : Reduce CodeToken ::= "as" - "::=" : Reduce CodeToken ::= "as" - "of" : Reduce CodeToken ::= "as" - ":" : Reduce CodeToken ::= "as" - "." : Reduce CodeToken ::= "as" - "->" : Reduce CodeToken ::= "as" - "|" : Reduce CodeToken ::= "as" - "<" : Reduce CodeToken ::= "as" - "=" : Reduce CodeToken ::= "as" - "," : Reduce CodeToken ::= "as" - ";" : Reduce CodeToken ::= "as" - "as" : Reduce CodeToken ::= "as" - LINE_DELIM : Reduce CodeToken ::= "as" - INDENT : Reduce CodeToken ::= "as" - DEDENT : Reduce CodeToken ::= "as" - "(" : Reduce CodeToken ::= "as" - ")" : Reduce CodeToken ::= "as" - "(|" : Reduce CodeToken ::= "as" - "|)" : Reduce CodeToken ::= "as" - "[" : Reduce CodeToken ::= "as" - "]" : Reduce CodeToken ::= "as" - "[|" : Reduce CodeToken ::= "as" - "|]" : Reduce CodeToken ::= "as" - "{" : Reduce CodeToken ::= "as" - "}" : Reduce CodeToken ::= "as" - OTHER_TOKEN : Reduce CodeToken ::= "as" - State 191 [191.0] + CIDENT : ShiftPrefix 207 + ISTRING : ShiftPrefix 141 + Gotos + ProdParamSymbol : 221 + State 185 [183.0] Kernel - [Delimited ::= INDENT · Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [ModulePath ::= ModulePath "." · ModulePath, {"."}] prec pDOT + [ProdParam ::= ModulePath "." · "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= ModulePath "." · "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Added - [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Codes ::= · Code CodesTl, {DEDENT}] - [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Code ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, DEDENT}] - [Code ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, DEDENT}] + [ModulePath ::= · CIDENT, {"."}] + [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT + Actions + CIDENT : ShiftPrefix 222 + "(" : ShiftPrefix 223 + "{" : ShiftPrefix 224 + Gotos + ModulePath : 225 + State 186 [184.0] + Kernel + [Uident ::= "prec" ·, {":"}] + [PrecRef ::= "prec" · Uident, {"->", "|", LINE_DELIM, DEDENT}] + Added + [Uident ::= · "hocc", {"->", "|", LINE_DELIM, DEDENT}] + [Uident ::= · "nonterm", {"->", "|", LINE_DELIM, DEDENT}] + [Uident ::= · "epsilon", {"->", "|", LINE_DELIM, DEDENT}] + [Uident ::= · "start", {"->", "|", LINE_DELIM, DEDENT}] + [Uident ::= · "token", {"->", "|", LINE_DELIM, DEDENT}] + [Uident ::= · "neutral", {"->", "|", LINE_DELIM, DEDENT}] + [Uident ::= · "left", {"->", "|", LINE_DELIM, DEDENT}] + [Uident ::= · "right", {"->", "|", LINE_DELIM, DEDENT}] + [Uident ::= · "nonassoc", {"->", "|", LINE_DELIM, DEDENT}] + [Uident ::= · "prec", {"->", "|", LINE_DELIM, DEDENT}] + [Uident ::= · UIDENT, {"->", "|", LINE_DELIM, DEDENT}] Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 @@ -5837,73 +6312,49 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 179 - "_" : ShiftPrefix 180 - ISTRING : ShiftPrefix 181 - "::=" : ShiftPrefix 182 - "of" : ShiftPrefix 183 - ":" : ShiftPrefix 184 - "." : ShiftPrefix 185 prec pDOT - "->" : ShiftPrefix 186 - "<" : ShiftPrefix 187 - "=" : ShiftPrefix 188 - "," : ShiftPrefix 189 prec pCOMMA - "as" : ShiftPrefix 190 prec pAS - INDENT : ShiftPrefix 191 - "(" : ShiftPrefix 192 - "(|" : ShiftPrefix 193 - "[" : ShiftPrefix 194 - "[|" : ShiftPrefix 195 - "{" : ShiftPrefix 196 - OTHER_TOKEN : ShiftPrefix 197 + ":" : Reduce Uident ::= "prec" Gotos - Uident : 198 - Codes : 217 - Delimited : 199 - CodeToken : 200 - Code : 218 - State 192 [192.0] + Uident : 104 + State 187 [185.0] Kernel - [Delimited ::= "(" · Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [ProdParamsTl ::= PrecRef ·, {"->", "|", LINE_DELIM, DEDENT}] + Actions + "->" : Reduce ProdParamsTl ::= PrecRef + "|" : Reduce ProdParamsTl ::= PrecRef + LINE_DELIM : Reduce ProdParamsTl ::= PrecRef + DEDENT : Reduce ProdParamsTl ::= PrecRef + State 188 [186.0] + Kernel + [ProdParamsTl ::= ProdParam · ProdParamsTl, {"->", "|", LINE_DELIM, DEDENT}] Added - [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Codes ::= · Code CodesTl, {")"}] - [Codes0 ::= · Codes, {")"}] - [Codes0 ::= ·, {")"}] - [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", ")", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Code ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, ")"}] - [Code ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, ")"}] + [Uident ::= · "hocc", {":"}] + [Uident ::= · "nonterm", {":"}] + [Uident ::= · "epsilon", {":"}] + [Uident ::= · "start", {":"}] + [Uident ::= · "token", {":"}] + [Uident ::= · "neutral", {":"}] + [Uident ::= · "left", {":"}] + [Uident ::= · "right", {":"}] + [Uident ::= · "nonassoc", {":"}] + [Uident ::= · "prec", {":"}] + [Uident ::= · UIDENT, {":"}] + [PrecRef ::= · "prec" Uident, {"->", "|", LINE_DELIM, DEDENT}] + [PrecRef ::= ·, {"->", "|", LINE_DELIM, DEDENT}] + [ModulePath ::= · CIDENT, {"."}] + [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT + [ProdParamSymbol ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParamSymbol ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= · Uident ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= · "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= · ModulePath "." "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= · "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= · ModulePath "." "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= · "_" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= · ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParamsTl ::= · ProdParam ProdParamsTl, {"->", "|", LINE_DELIM, DEDENT}] + [ProdParamsTl ::= · PrecRef, {"->", "|", LINE_DELIM, DEDENT}] Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 @@ -5914,75 +6365,666 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 186 prec pPrec UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 179 - "_" : ShiftPrefix 180 - ISTRING : ShiftPrefix 181 - "::=" : ShiftPrefix 182 - "of" : ShiftPrefix 183 - ":" : ShiftPrefix 184 - "." : ShiftPrefix 185 prec pDOT - "->" : ShiftPrefix 186 - "<" : ShiftPrefix 187 - "=" : ShiftPrefix 188 - "," : ShiftPrefix 189 prec pCOMMA - "as" : ShiftPrefix 190 prec pAS - INDENT : ShiftPrefix 191 - "(" : ShiftPrefix 192 - ")" : Reduce Codes0 ::= epsilon - "(|" : ShiftPrefix 193 - "[" : ShiftPrefix 194 - "[|" : ShiftPrefix 195 - "{" : ShiftPrefix 196 - OTHER_TOKEN : ShiftPrefix 197 + CIDENT : ShiftPrefix 139 + "_" : ShiftPrefix 140 + ISTRING : ShiftPrefix 141 + "->" : Reduce PrecRef ::= epsilon + "|" : Reduce PrecRef ::= epsilon + LINE_DELIM : Reduce PrecRef ::= epsilon + DEDENT : Reduce PrecRef ::= epsilon + "(" : ShiftPrefix 143 + "{" : ShiftPrefix 144 Gotos - Uident : 198 - Codes : 219 - Codes0 : 220 - Delimited : 199 - CodeToken : 200 - Code : 218 - State 193 [193.0] + Uident : 145 + PrecRef : 187 + ModulePath : 146 + ProdParamSymbol : 147 + ProdParam : 188 + ProdParamsTl : 226 + State 189 [187.0] Kernel - [Delimited ::= "(|" · Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [ProdParams ::= ProdParam ProdParamsTl ·, {"->", "|", LINE_DELIM, DEDENT}] + Actions + "->" : Reduce ProdParams ::= ProdParam ProdParamsTl + "|" : Reduce ProdParams ::= ProdParam ProdParamsTl + LINE_DELIM : Reduce ProdParams ::= ProdParam ProdParamsTl + DEDENT : Reduce ProdParams ::= ProdParam ProdParamsTl + State 190 [188.0] + Kernel + [ProdsTl ::= "|" · Prod ProdsTl, {"->", LINE_DELIM, DEDENT}] Added - [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [Codes ::= · Code CodesTl, {"|)"}] - [Codes0 ::= · Codes, {"|)"}] - [Codes0 ::= ·, {"|)"}] - [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "|)", "[", "[|", "{", OTHER_TOKEN}] - [Code ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, "|)"}] - [Code ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, "|)"}] + [Uident ::= · "hocc", {":"}] + [Uident ::= · "nonterm", {":"}] + [Uident ::= · "epsilon", {":"}] + [Uident ::= · "start", {":"}] + [Uident ::= · "token", {":"}] + [Uident ::= · "neutral", {":"}] + [Uident ::= · "left", {":"}] + [Uident ::= · "right", {":"}] + [Uident ::= · "nonassoc", {":"}] + [Uident ::= · "prec", {":"}] + [Uident ::= · UIDENT, {":"}] + [ModulePath ::= · CIDENT, {"."}] + [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT + [ProdParamSymbol ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParamSymbol ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= · Uident ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= · "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= · ModulePath "." "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= · "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= · ModulePath "." "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= · "_" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= · ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParams ::= · ProdParam ProdParamsTl, {"->", "|", LINE_DELIM, DEDENT}] + [ProdPattern ::= · ProdParams, {"->", "|", LINE_DELIM, DEDENT}] + [ProdPattern ::= · "epsilon" PrecRef, {"->", "|", LINE_DELIM, DEDENT}] + [Prod ::= · ProdPattern, {"->", "|", LINE_DELIM, DEDENT}] + Actions + "hocc" : ShiftPrefix 72 + "nonterm" : ShiftPrefix 73 + "epsilon" : ShiftPrefix 138 + "start" : ShiftPrefix 75 + "token" : ShiftPrefix 76 + "neutral" : ShiftPrefix 77 + "left" : ShiftPrefix 78 + "right" : ShiftPrefix 79 + "nonassoc" : ShiftPrefix 80 + "prec" : ShiftPrefix 81 prec pPrec + UIDENT : ShiftPrefix 82 + CIDENT : ShiftPrefix 139 + "_" : ShiftPrefix 140 + ISTRING : ShiftPrefix 141 + "(" : ShiftPrefix 143 + "{" : ShiftPrefix 144 + Gotos + Uident : 145 + ModulePath : 146 + ProdParamSymbol : 147 + ProdParam : 148 + ProdParams : 149 + ProdPattern : 150 + Prod : 227 + State 191 [189.0] + Kernel + [Prods ::= Prod ProdsTl ·, {"->", LINE_DELIM, DEDENT}] + Actions + "->" : Reduce Prods ::= Prod ProdsTl + LINE_DELIM : Reduce Prods ::= Prod ProdsTl + DEDENT : Reduce Prods ::= Prod ProdsTl + State 192 [190.0] + Kernel + [Delimited ::= INDENT Codes DEDENT ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + Actions + "hocc" : Reduce Delimited ::= INDENT Codes DEDENT + "nonterm" : Reduce Delimited ::= INDENT Codes DEDENT + "epsilon" : Reduce Delimited ::= INDENT Codes DEDENT + "start" : Reduce Delimited ::= INDENT Codes DEDENT + "token" : Reduce Delimited ::= INDENT Codes DEDENT + "neutral" : Reduce Delimited ::= INDENT Codes DEDENT + "left" : Reduce Delimited ::= INDENT Codes DEDENT + "right" : Reduce Delimited ::= INDENT Codes DEDENT + "nonassoc" : Reduce Delimited ::= INDENT Codes DEDENT + "prec" : Reduce Delimited ::= INDENT Codes DEDENT + UIDENT : Reduce Delimited ::= INDENT Codes DEDENT + CIDENT : Reduce Delimited ::= INDENT Codes DEDENT + "_" : Reduce Delimited ::= INDENT Codes DEDENT + ISTRING : Reduce Delimited ::= INDENT Codes DEDENT + "::=" : Reduce Delimited ::= INDENT Codes DEDENT + "of" : Reduce Delimited ::= INDENT Codes DEDENT + ":" : Reduce Delimited ::= INDENT Codes DEDENT + "." : Reduce Delimited ::= INDENT Codes DEDENT + "->" : Reduce Delimited ::= INDENT Codes DEDENT + "|" : Reduce Delimited ::= INDENT Codes DEDENT + "<" : Reduce Delimited ::= INDENT Codes DEDENT + "=" : Reduce Delimited ::= INDENT Codes DEDENT + "," : Reduce Delimited ::= INDENT Codes DEDENT + ";" : Reduce Delimited ::= INDENT Codes DEDENT + "as" : Reduce Delimited ::= INDENT Codes DEDENT + LINE_DELIM : Reduce Delimited ::= INDENT Codes DEDENT + INDENT : Reduce Delimited ::= INDENT Codes DEDENT + DEDENT : Reduce Delimited ::= INDENT Codes DEDENT + "(" : Reduce Delimited ::= INDENT Codes DEDENT + ")" : Reduce Delimited ::= INDENT Codes DEDENT + "(|" : Reduce Delimited ::= INDENT Codes DEDENT + "|)" : Reduce Delimited ::= INDENT Codes DEDENT + "[" : Reduce Delimited ::= INDENT Codes DEDENT + "]" : Reduce Delimited ::= INDENT Codes DEDENT + "[|" : Reduce Delimited ::= INDENT Codes DEDENT + "|]" : Reduce Delimited ::= INDENT Codes DEDENT + "{" : Reduce Delimited ::= INDENT Codes DEDENT + "}" : Reduce Delimited ::= INDENT Codes DEDENT + OTHER_TOKEN : Reduce Delimited ::= INDENT Codes DEDENT + State 193 [161.1] + Kernel + [CodeTl ::= Delimited · CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + Added + [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeTl ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + [CodeTl ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + [CodeTl ::= ·, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] prec pCodeTlEpsilon + Actions + "hocc" : ShiftPrefix 72 + "nonterm" : ShiftPrefix 73 + "epsilon" : ShiftPrefix 74 + "start" : ShiftPrefix 75 + "token" : ShiftPrefix 76 + "neutral" : ShiftPrefix 77 + "left" : ShiftPrefix 78 + "right" : ShiftPrefix 79 + "nonassoc" : ShiftPrefix 80 + "prec" : ShiftPrefix 81 prec pPrec + UIDENT : ShiftPrefix 82 + CIDENT : ShiftPrefix 110 + "_" : ShiftPrefix 111 + ISTRING : ShiftPrefix 112 + "::=" : ShiftPrefix 113 + "of" : ShiftPrefix 114 + ":" : ShiftPrefix 115 + "." : ShiftPrefix 116 prec pDOT + "->" : ShiftPrefix 117 + "|" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "<" : ShiftPrefix 118 + "=" : ShiftPrefix 119 + "," : ShiftPrefix 120 prec pCOMMA + ";" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "as" : ShiftPrefix 121 prec pAS + LINE_DELIM : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + INDENT : ShiftPrefix 122 + DEDENT : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "(" : ShiftPrefix 123 + ")" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "(|" : ShiftPrefix 124 + "|)" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "[" : ShiftPrefix 125 + "]" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "[|" : ShiftPrefix 126 + "|]" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "{" : ShiftPrefix 127 + "}" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + OTHER_TOKEN : ShiftPrefix 128 + Gotos + Uident : 129 + Delimited : 193 + CodeToken : 194 + CodeTl : 202 + State 194 [162.1] + Kernel + [CodeTl ::= CodeToken · CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + Added + [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeTl ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + [CodeTl ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + [CodeTl ::= ·, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] prec pCodeTlEpsilon + Actions + "hocc" : ShiftPrefix 72 + "nonterm" : ShiftPrefix 73 + "epsilon" : ShiftPrefix 74 + "start" : ShiftPrefix 75 + "token" : ShiftPrefix 76 + "neutral" : ShiftPrefix 77 + "left" : ShiftPrefix 78 + "right" : ShiftPrefix 79 + "nonassoc" : ShiftPrefix 80 + "prec" : ShiftPrefix 81 prec pPrec + UIDENT : ShiftPrefix 82 + CIDENT : ShiftPrefix 110 + "_" : ShiftPrefix 111 + ISTRING : ShiftPrefix 112 + "::=" : ShiftPrefix 113 + "of" : ShiftPrefix 114 + ":" : ShiftPrefix 115 + "." : ShiftPrefix 116 prec pDOT + "->" : ShiftPrefix 117 + "|" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "<" : ShiftPrefix 118 + "=" : ShiftPrefix 119 + "," : ShiftPrefix 120 prec pCOMMA + ";" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "as" : ShiftPrefix 121 prec pAS + LINE_DELIM : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + INDENT : ShiftPrefix 122 + DEDENT : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "(" : ShiftPrefix 123 + ")" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "(|" : ShiftPrefix 124 + "|)" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "[" : ShiftPrefix 125 + "]" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "[|" : ShiftPrefix 126 + "|]" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + "{" : ShiftPrefix 127 + "}" : Reduce CodeTl ::= epsilon prec pCodeTlEpsilon + OTHER_TOKEN : ShiftPrefix 128 + Gotos + Uident : 129 + Delimited : 193 + CodeToken : 194 + CodeTl : 203 + State 195 [191.0] + Kernel + [CodesTl ::= Sep · Code CodesTl, {DEDENT, ")", "|)", "]", "|]", "}"}] + Added + [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Code ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + [Code ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + Actions + "hocc" : ShiftPrefix 72 + "nonterm" : ShiftPrefix 73 + "epsilon" : ShiftPrefix 74 + "start" : ShiftPrefix 75 + "token" : ShiftPrefix 76 + "neutral" : ShiftPrefix 77 + "left" : ShiftPrefix 78 + "right" : ShiftPrefix 79 + "nonassoc" : ShiftPrefix 80 + "prec" : ShiftPrefix 81 prec pPrec + UIDENT : ShiftPrefix 82 + CIDENT : ShiftPrefix 110 + "_" : ShiftPrefix 111 + ISTRING : ShiftPrefix 112 + "::=" : ShiftPrefix 113 + "of" : ShiftPrefix 114 + ":" : ShiftPrefix 115 + "." : ShiftPrefix 116 prec pDOT + "->" : ShiftPrefix 117 + "<" : ShiftPrefix 118 + "=" : ShiftPrefix 119 + "," : ShiftPrefix 120 prec pCOMMA + "as" : ShiftPrefix 121 prec pAS + INDENT : ShiftPrefix 122 + "(" : ShiftPrefix 123 + "(|" : ShiftPrefix 124 + "[" : ShiftPrefix 125 + "[|" : ShiftPrefix 126 + "{" : ShiftPrefix 127 + OTHER_TOKEN : ShiftPrefix 128 + Gotos + Uident : 129 + Delimited : 154 + CodeToken : 155 + Code : 228 + State 196 [192.0] + Kernel + [Codes ::= Code CodesTl ·, {DEDENT, ")", "|)", "]", "|]", "}"}] + Actions + DEDENT : Reduce Codes ::= Code CodesTl + ")" : Reduce Codes ::= Code CodesTl + "|)" : Reduce Codes ::= Code CodesTl + "]" : Reduce Codes ::= Code CodesTl + "|]" : Reduce Codes ::= Code CodesTl + "}" : Reduce Codes ::= Code CodesTl + State 197 [193.0] + Kernel + [Delimited ::= "(" Codes0 ")" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + Actions + "hocc" : Reduce Delimited ::= "(" Codes0 ")" + "nonterm" : Reduce Delimited ::= "(" Codes0 ")" + "epsilon" : Reduce Delimited ::= "(" Codes0 ")" + "start" : Reduce Delimited ::= "(" Codes0 ")" + "token" : Reduce Delimited ::= "(" Codes0 ")" + "neutral" : Reduce Delimited ::= "(" Codes0 ")" + "left" : Reduce Delimited ::= "(" Codes0 ")" + "right" : Reduce Delimited ::= "(" Codes0 ")" + "nonassoc" : Reduce Delimited ::= "(" Codes0 ")" + "prec" : Reduce Delimited ::= "(" Codes0 ")" + UIDENT : Reduce Delimited ::= "(" Codes0 ")" + CIDENT : Reduce Delimited ::= "(" Codes0 ")" + "_" : Reduce Delimited ::= "(" Codes0 ")" + ISTRING : Reduce Delimited ::= "(" Codes0 ")" + "::=" : Reduce Delimited ::= "(" Codes0 ")" + "of" : Reduce Delimited ::= "(" Codes0 ")" + ":" : Reduce Delimited ::= "(" Codes0 ")" + "." : Reduce Delimited ::= "(" Codes0 ")" + "->" : Reduce Delimited ::= "(" Codes0 ")" + "|" : Reduce Delimited ::= "(" Codes0 ")" + "<" : Reduce Delimited ::= "(" Codes0 ")" + "=" : Reduce Delimited ::= "(" Codes0 ")" + "," : Reduce Delimited ::= "(" Codes0 ")" + ";" : Reduce Delimited ::= "(" Codes0 ")" + "as" : Reduce Delimited ::= "(" Codes0 ")" + LINE_DELIM : Reduce Delimited ::= "(" Codes0 ")" + INDENT : Reduce Delimited ::= "(" Codes0 ")" + DEDENT : Reduce Delimited ::= "(" Codes0 ")" + "(" : Reduce Delimited ::= "(" Codes0 ")" + ")" : Reduce Delimited ::= "(" Codes0 ")" + "(|" : Reduce Delimited ::= "(" Codes0 ")" + "|)" : Reduce Delimited ::= "(" Codes0 ")" + "[" : Reduce Delimited ::= "(" Codes0 ")" + "]" : Reduce Delimited ::= "(" Codes0 ")" + "[|" : Reduce Delimited ::= "(" Codes0 ")" + "|]" : Reduce Delimited ::= "(" Codes0 ")" + "{" : Reduce Delimited ::= "(" Codes0 ")" + "}" : Reduce Delimited ::= "(" Codes0 ")" + OTHER_TOKEN : Reduce Delimited ::= "(" Codes0 ")" + State 198 [194.0] + Kernel + [Delimited ::= "(|" Codes0 "|)" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + Actions + "hocc" : Reduce Delimited ::= "(|" Codes0 "|)" + "nonterm" : Reduce Delimited ::= "(|" Codes0 "|)" + "epsilon" : Reduce Delimited ::= "(|" Codes0 "|)" + "start" : Reduce Delimited ::= "(|" Codes0 "|)" + "token" : Reduce Delimited ::= "(|" Codes0 "|)" + "neutral" : Reduce Delimited ::= "(|" Codes0 "|)" + "left" : Reduce Delimited ::= "(|" Codes0 "|)" + "right" : Reduce Delimited ::= "(|" Codes0 "|)" + "nonassoc" : Reduce Delimited ::= "(|" Codes0 "|)" + "prec" : Reduce Delimited ::= "(|" Codes0 "|)" + UIDENT : Reduce Delimited ::= "(|" Codes0 "|)" + CIDENT : Reduce Delimited ::= "(|" Codes0 "|)" + "_" : Reduce Delimited ::= "(|" Codes0 "|)" + ISTRING : Reduce Delimited ::= "(|" Codes0 "|)" + "::=" : Reduce Delimited ::= "(|" Codes0 "|)" + "of" : Reduce Delimited ::= "(|" Codes0 "|)" + ":" : Reduce Delimited ::= "(|" Codes0 "|)" + "." : Reduce Delimited ::= "(|" Codes0 "|)" + "->" : Reduce Delimited ::= "(|" Codes0 "|)" + "|" : Reduce Delimited ::= "(|" Codes0 "|)" + "<" : Reduce Delimited ::= "(|" Codes0 "|)" + "=" : Reduce Delimited ::= "(|" Codes0 "|)" + "," : Reduce Delimited ::= "(|" Codes0 "|)" + ";" : Reduce Delimited ::= "(|" Codes0 "|)" + "as" : Reduce Delimited ::= "(|" Codes0 "|)" + LINE_DELIM : Reduce Delimited ::= "(|" Codes0 "|)" + INDENT : Reduce Delimited ::= "(|" Codes0 "|)" + DEDENT : Reduce Delimited ::= "(|" Codes0 "|)" + "(" : Reduce Delimited ::= "(|" Codes0 "|)" + ")" : Reduce Delimited ::= "(|" Codes0 "|)" + "(|" : Reduce Delimited ::= "(|" Codes0 "|)" + "|)" : Reduce Delimited ::= "(|" Codes0 "|)" + "[" : Reduce Delimited ::= "(|" Codes0 "|)" + "]" : Reduce Delimited ::= "(|" Codes0 "|)" + "[|" : Reduce Delimited ::= "(|" Codes0 "|)" + "|]" : Reduce Delimited ::= "(|" Codes0 "|)" + "{" : Reduce Delimited ::= "(|" Codes0 "|)" + "}" : Reduce Delimited ::= "(|" Codes0 "|)" + OTHER_TOKEN : Reduce Delimited ::= "(|" Codes0 "|)" + State 199 [195.0] + Kernel + [Delimited ::= "[" Codes0 "]" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + Actions + "hocc" : Reduce Delimited ::= "[" Codes0 "]" + "nonterm" : Reduce Delimited ::= "[" Codes0 "]" + "epsilon" : Reduce Delimited ::= "[" Codes0 "]" + "start" : Reduce Delimited ::= "[" Codes0 "]" + "token" : Reduce Delimited ::= "[" Codes0 "]" + "neutral" : Reduce Delimited ::= "[" Codes0 "]" + "left" : Reduce Delimited ::= "[" Codes0 "]" + "right" : Reduce Delimited ::= "[" Codes0 "]" + "nonassoc" : Reduce Delimited ::= "[" Codes0 "]" + "prec" : Reduce Delimited ::= "[" Codes0 "]" + UIDENT : Reduce Delimited ::= "[" Codes0 "]" + CIDENT : Reduce Delimited ::= "[" Codes0 "]" + "_" : Reduce Delimited ::= "[" Codes0 "]" + ISTRING : Reduce Delimited ::= "[" Codes0 "]" + "::=" : Reduce Delimited ::= "[" Codes0 "]" + "of" : Reduce Delimited ::= "[" Codes0 "]" + ":" : Reduce Delimited ::= "[" Codes0 "]" + "." : Reduce Delimited ::= "[" Codes0 "]" + "->" : Reduce Delimited ::= "[" Codes0 "]" + "|" : Reduce Delimited ::= "[" Codes0 "]" + "<" : Reduce Delimited ::= "[" Codes0 "]" + "=" : Reduce Delimited ::= "[" Codes0 "]" + "," : Reduce Delimited ::= "[" Codes0 "]" + ";" : Reduce Delimited ::= "[" Codes0 "]" + "as" : Reduce Delimited ::= "[" Codes0 "]" + LINE_DELIM : Reduce Delimited ::= "[" Codes0 "]" + INDENT : Reduce Delimited ::= "[" Codes0 "]" + DEDENT : Reduce Delimited ::= "[" Codes0 "]" + "(" : Reduce Delimited ::= "[" Codes0 "]" + ")" : Reduce Delimited ::= "[" Codes0 "]" + "(|" : Reduce Delimited ::= "[" Codes0 "]" + "|)" : Reduce Delimited ::= "[" Codes0 "]" + "[" : Reduce Delimited ::= "[" Codes0 "]" + "]" : Reduce Delimited ::= "[" Codes0 "]" + "[|" : Reduce Delimited ::= "[" Codes0 "]" + "|]" : Reduce Delimited ::= "[" Codes0 "]" + "{" : Reduce Delimited ::= "[" Codes0 "]" + "}" : Reduce Delimited ::= "[" Codes0 "]" + OTHER_TOKEN : Reduce Delimited ::= "[" Codes0 "]" + State 200 [196.0] + Kernel + [Delimited ::= "[|" Codes0 "|]" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + Actions + "hocc" : Reduce Delimited ::= "[|" Codes0 "|]" + "nonterm" : Reduce Delimited ::= "[|" Codes0 "|]" + "epsilon" : Reduce Delimited ::= "[|" Codes0 "|]" + "start" : Reduce Delimited ::= "[|" Codes0 "|]" + "token" : Reduce Delimited ::= "[|" Codes0 "|]" + "neutral" : Reduce Delimited ::= "[|" Codes0 "|]" + "left" : Reduce Delimited ::= "[|" Codes0 "|]" + "right" : Reduce Delimited ::= "[|" Codes0 "|]" + "nonassoc" : Reduce Delimited ::= "[|" Codes0 "|]" + "prec" : Reduce Delimited ::= "[|" Codes0 "|]" + UIDENT : Reduce Delimited ::= "[|" Codes0 "|]" + CIDENT : Reduce Delimited ::= "[|" Codes0 "|]" + "_" : Reduce Delimited ::= "[|" Codes0 "|]" + ISTRING : Reduce Delimited ::= "[|" Codes0 "|]" + "::=" : Reduce Delimited ::= "[|" Codes0 "|]" + "of" : Reduce Delimited ::= "[|" Codes0 "|]" + ":" : Reduce Delimited ::= "[|" Codes0 "|]" + "." : Reduce Delimited ::= "[|" Codes0 "|]" + "->" : Reduce Delimited ::= "[|" Codes0 "|]" + "|" : Reduce Delimited ::= "[|" Codes0 "|]" + "<" : Reduce Delimited ::= "[|" Codes0 "|]" + "=" : Reduce Delimited ::= "[|" Codes0 "|]" + "," : Reduce Delimited ::= "[|" Codes0 "|]" + ";" : Reduce Delimited ::= "[|" Codes0 "|]" + "as" : Reduce Delimited ::= "[|" Codes0 "|]" + LINE_DELIM : Reduce Delimited ::= "[|" Codes0 "|]" + INDENT : Reduce Delimited ::= "[|" Codes0 "|]" + DEDENT : Reduce Delimited ::= "[|" Codes0 "|]" + "(" : Reduce Delimited ::= "[|" Codes0 "|]" + ")" : Reduce Delimited ::= "[|" Codes0 "|]" + "(|" : Reduce Delimited ::= "[|" Codes0 "|]" + "|)" : Reduce Delimited ::= "[|" Codes0 "|]" + "[" : Reduce Delimited ::= "[|" Codes0 "|]" + "]" : Reduce Delimited ::= "[|" Codes0 "|]" + "[|" : Reduce Delimited ::= "[|" Codes0 "|]" + "|]" : Reduce Delimited ::= "[|" Codes0 "|]" + "{" : Reduce Delimited ::= "[|" Codes0 "|]" + "}" : Reduce Delimited ::= "[|" Codes0 "|]" + OTHER_TOKEN : Reduce Delimited ::= "[|" Codes0 "|]" + State 201 [197.0] + Kernel + [Delimited ::= "{" Codes0 "}" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + Actions + "hocc" : Reduce Delimited ::= "{" Codes0 "}" + "nonterm" : Reduce Delimited ::= "{" Codes0 "}" + "epsilon" : Reduce Delimited ::= "{" Codes0 "}" + "start" : Reduce Delimited ::= "{" Codes0 "}" + "token" : Reduce Delimited ::= "{" Codes0 "}" + "neutral" : Reduce Delimited ::= "{" Codes0 "}" + "left" : Reduce Delimited ::= "{" Codes0 "}" + "right" : Reduce Delimited ::= "{" Codes0 "}" + "nonassoc" : Reduce Delimited ::= "{" Codes0 "}" + "prec" : Reduce Delimited ::= "{" Codes0 "}" + UIDENT : Reduce Delimited ::= "{" Codes0 "}" + CIDENT : Reduce Delimited ::= "{" Codes0 "}" + "_" : Reduce Delimited ::= "{" Codes0 "}" + ISTRING : Reduce Delimited ::= "{" Codes0 "}" + "::=" : Reduce Delimited ::= "{" Codes0 "}" + "of" : Reduce Delimited ::= "{" Codes0 "}" + ":" : Reduce Delimited ::= "{" Codes0 "}" + "." : Reduce Delimited ::= "{" Codes0 "}" + "->" : Reduce Delimited ::= "{" Codes0 "}" + "|" : Reduce Delimited ::= "{" Codes0 "}" + "<" : Reduce Delimited ::= "{" Codes0 "}" + "=" : Reduce Delimited ::= "{" Codes0 "}" + "," : Reduce Delimited ::= "{" Codes0 "}" + ";" : Reduce Delimited ::= "{" Codes0 "}" + "as" : Reduce Delimited ::= "{" Codes0 "}" + LINE_DELIM : Reduce Delimited ::= "{" Codes0 "}" + INDENT : Reduce Delimited ::= "{" Codes0 "}" + DEDENT : Reduce Delimited ::= "{" Codes0 "}" + "(" : Reduce Delimited ::= "{" Codes0 "}" + ")" : Reduce Delimited ::= "{" Codes0 "}" + "(|" : Reduce Delimited ::= "{" Codes0 "}" + "|)" : Reduce Delimited ::= "{" Codes0 "}" + "[" : Reduce Delimited ::= "{" Codes0 "}" + "]" : Reduce Delimited ::= "{" Codes0 "}" + "[|" : Reduce Delimited ::= "{" Codes0 "}" + "|]" : Reduce Delimited ::= "{" Codes0 "}" + "{" : Reduce Delimited ::= "{" Codes0 "}" + "}" : Reduce Delimited ::= "{" Codes0 "}" + OTHER_TOKEN : Reduce Delimited ::= "{" Codes0 "}" + State 202 [198.0] + Kernel + [CodeTl ::= Delimited CodeTl ·, {"prec", "|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + Actions + "prec" : Reduce CodeTl ::= Delimited CodeTl + "|" : Reduce CodeTl ::= Delimited CodeTl + ";" : Reduce CodeTl ::= Delimited CodeTl + LINE_DELIM : Reduce CodeTl ::= Delimited CodeTl + DEDENT : Reduce CodeTl ::= Delimited CodeTl + ")" : Reduce CodeTl ::= Delimited CodeTl + "|)" : Reduce CodeTl ::= Delimited CodeTl + "]" : Reduce CodeTl ::= Delimited CodeTl + "|]" : Reduce CodeTl ::= Delimited CodeTl + "}" : Reduce CodeTl ::= Delimited CodeTl + State 203 [199.0] + Kernel + [CodeTl ::= CodeToken CodeTl ·, {"prec", "|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + Actions + "prec" : Reduce CodeTl ::= CodeToken CodeTl + "|" : Reduce CodeTl ::= CodeToken CodeTl + ";" : Reduce CodeTl ::= CodeToken CodeTl + LINE_DELIM : Reduce CodeTl ::= CodeToken CodeTl + DEDENT : Reduce CodeTl ::= CodeToken CodeTl + ")" : Reduce CodeTl ::= CodeToken CodeTl + "|)" : Reduce CodeTl ::= CodeToken CodeTl + "]" : Reduce CodeTl ::= CodeToken CodeTl + "|]" : Reduce CodeTl ::= CodeToken CodeTl + "}" : Reduce CodeTl ::= CodeToken CodeTl + State 204 [200.0] + Kernel + [Reduction ::= Prods "->" · Code, {"|", LINE_DELIM, DEDENT}] + Added + [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", "as", LINE_DELIM, INDENT, DEDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] + [Code ::= · Delimited CodeTl, {"|", LINE_DELIM, DEDENT}] + [Code ::= · CodeToken CodeTl, {"|", LINE_DELIM, DEDENT}] Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 @@ -5993,154 +7035,225 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 179 - "_" : ShiftPrefix 180 - ISTRING : ShiftPrefix 181 - "::=" : ShiftPrefix 182 - "of" : ShiftPrefix 183 - ":" : ShiftPrefix 184 - "." : ShiftPrefix 185 prec pDOT - "->" : ShiftPrefix 186 - "<" : ShiftPrefix 187 - "=" : ShiftPrefix 188 - "," : ShiftPrefix 189 prec pCOMMA - "as" : ShiftPrefix 190 prec pAS - INDENT : ShiftPrefix 191 - "(" : ShiftPrefix 192 - "(|" : ShiftPrefix 193 - "|)" : Reduce Codes0 ::= epsilon - "[" : ShiftPrefix 194 - "[|" : ShiftPrefix 195 - "{" : ShiftPrefix 196 - OTHER_TOKEN : ShiftPrefix 197 + CIDENT : ShiftPrefix 110 + "_" : ShiftPrefix 111 + ISTRING : ShiftPrefix 112 + "::=" : ShiftPrefix 113 + "of" : ShiftPrefix 114 + ":" : ShiftPrefix 115 + "." : ShiftPrefix 116 prec pDOT + "->" : ShiftPrefix 117 + "<" : ShiftPrefix 118 + "=" : ShiftPrefix 119 + "," : ShiftPrefix 120 prec pCOMMA + "as" : ShiftPrefix 121 prec pAS + INDENT : ShiftPrefix 122 + "(" : ShiftPrefix 123 + "(|" : ShiftPrefix 124 + "[" : ShiftPrefix 125 + "[|" : ShiftPrefix 126 + "{" : ShiftPrefix 127 + OTHER_TOKEN : ShiftPrefix 128 Gotos - Uident : 198 - Codes : 219 - Codes0 : 221 - Delimited : 199 - CodeToken : 200 - Code : 218 - State 194 [194.0] + Uident : 129 + Delimited : 154 + CodeToken : 155 + Code : 229 + State 205 [201.0] Kernel - [Delimited ::= "[" · Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [ReductionsTl ::= "|" · Reduction ReductionsTl, {LINE_DELIM, DEDENT}] Added - [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [Codes ::= · Code CodesTl, {"]"}] - [Codes0 ::= · Codes, {"]"}] - [Codes0 ::= ·, {"]"}] - [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "]", "[|", "{", OTHER_TOKEN}] - [Code ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, "]"}] - [Code ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, "]"}] + [Uident ::= · "hocc", {":"}] + [Uident ::= · "nonterm", {":"}] + [Uident ::= · "epsilon", {":"}] + [Uident ::= · "start", {":"}] + [Uident ::= · "token", {":"}] + [Uident ::= · "neutral", {":"}] + [Uident ::= · "left", {":"}] + [Uident ::= · "right", {":"}] + [Uident ::= · "nonassoc", {":"}] + [Uident ::= · "prec", {":"}] + [Uident ::= · UIDENT, {":"}] + [ModulePath ::= · CIDENT, {"."}] + [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT + [ProdParamSymbol ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] + [ProdParamSymbol ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] + [ProdParam ::= · Uident ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] + [ProdParam ::= · "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] + [ProdParam ::= · ModulePath "." "(" Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] + [ProdParam ::= · "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] + [ProdParam ::= · ModulePath "." "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] + [ProdParam ::= · "_" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] + [ProdParam ::= · ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", "(", "{"}] + [ProdParams ::= · ProdParam ProdParamsTl, {"->", "|"}] + [ProdPattern ::= · ProdParams, {"->", "|"}] + [ProdPattern ::= · "epsilon" PrecRef, {"->", "|"}] + [Prod ::= · ProdPattern, {"->", "|"}] + [Prods ::= · "|" Prod ProdsTl, {"->"}] + [Prods ::= · Prod ProdsTl, {"->"}] + [Reduction ::= · Prods "->" Code, {"|", LINE_DELIM, DEDENT}] Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 - "epsilon" : ShiftPrefix 74 + "epsilon" : ShiftPrefix 138 "start" : ShiftPrefix 75 "token" : ShiftPrefix 76 "neutral" : ShiftPrefix 77 "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 179 - "_" : ShiftPrefix 180 - ISTRING : ShiftPrefix 181 - "::=" : ShiftPrefix 182 - "of" : ShiftPrefix 183 - ":" : ShiftPrefix 184 - "." : ShiftPrefix 185 prec pDOT - "->" : ShiftPrefix 186 - "<" : ShiftPrefix 187 - "=" : ShiftPrefix 188 - "," : ShiftPrefix 189 prec pCOMMA - "as" : ShiftPrefix 190 prec pAS - INDENT : ShiftPrefix 191 - "(" : ShiftPrefix 192 - "(|" : ShiftPrefix 193 - "[" : ShiftPrefix 194 - "]" : Reduce Codes0 ::= epsilon - "[|" : ShiftPrefix 195 - "{" : ShiftPrefix 196 - OTHER_TOKEN : ShiftPrefix 197 + CIDENT : ShiftPrefix 139 + "_" : ShiftPrefix 140 + ISTRING : ShiftPrefix 141 + "|" : ShiftPrefix 142 + "(" : ShiftPrefix 143 + "{" : ShiftPrefix 144 Gotos - Uident : 198 - Codes : 219 - Codes0 : 222 - Delimited : 199 - CodeToken : 200 - Code : 218 - State 195 [195.0] + Uident : 145 + ModulePath : 146 + ProdParamSymbol : 147 + ProdParam : 148 + ProdParams : 149 + ProdPattern : 150 + Prod : 151 + Prods : 168 + Reduction : 230 + State 206 [202.0] Kernel - [Delimited ::= "[|" · Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Reductions ::= Reduction ReductionsTl ·, {LINE_DELIM, DEDENT}] + Actions + LINE_DELIM : Reduce Reductions ::= Reduction ReductionsTl + DEDENT : Reduce Reductions ::= Reduction ReductionsTl + State 207 [203.0] + Kernel + [ProdParamSymbol ::= CIDENT ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + Actions + "hocc" : Reduce ProdParamSymbol ::= CIDENT + "nonterm" : Reduce ProdParamSymbol ::= CIDENT + "epsilon" : Reduce ProdParamSymbol ::= CIDENT + "start" : Reduce ProdParamSymbol ::= CIDENT + "token" : Reduce ProdParamSymbol ::= CIDENT + "neutral" : Reduce ProdParamSymbol ::= CIDENT + "left" : Reduce ProdParamSymbol ::= CIDENT + "right" : Reduce ProdParamSymbol ::= CIDENT + "nonassoc" : Reduce ProdParamSymbol ::= CIDENT + "prec" : Reduce ProdParamSymbol ::= CIDENT + UIDENT : Reduce ProdParamSymbol ::= CIDENT + CIDENT : Reduce ProdParamSymbol ::= CIDENT + "_" : Reduce ProdParamSymbol ::= CIDENT + ISTRING : Reduce ProdParamSymbol ::= CIDENT + "->" : Reduce ProdParamSymbol ::= CIDENT + "|" : Reduce ProdParamSymbol ::= CIDENT + LINE_DELIM : Reduce ProdParamSymbol ::= CIDENT + DEDENT : Reduce ProdParamSymbol ::= CIDENT + "(" : Reduce ProdParamSymbol ::= CIDENT + "{" : Reduce ProdParamSymbol ::= CIDENT + State 208 [204.0] + Kernel + [ProdParam ::= "_" ":" ProdParamSymbol ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + Actions + "hocc" : Reduce ProdParam ::= "_" ":" ProdParamSymbol + "nonterm" : Reduce ProdParam ::= "_" ":" ProdParamSymbol + "epsilon" : Reduce ProdParam ::= "_" ":" ProdParamSymbol + "start" : Reduce ProdParam ::= "_" ":" ProdParamSymbol + "token" : Reduce ProdParam ::= "_" ":" ProdParamSymbol + "neutral" : Reduce ProdParam ::= "_" ":" ProdParamSymbol + "left" : Reduce ProdParam ::= "_" ":" ProdParamSymbol + "right" : Reduce ProdParam ::= "_" ":" ProdParamSymbol + "nonassoc" : Reduce ProdParam ::= "_" ":" ProdParamSymbol + "prec" : Reduce ProdParam ::= "_" ":" ProdParamSymbol + UIDENT : Reduce ProdParam ::= "_" ":" ProdParamSymbol + CIDENT : Reduce ProdParam ::= "_" ":" ProdParamSymbol + "_" : Reduce ProdParam ::= "_" ":" ProdParamSymbol + ISTRING : Reduce ProdParam ::= "_" ":" ProdParamSymbol + "->" : Reduce ProdParam ::= "_" ":" ProdParamSymbol + "|" : Reduce ProdParam ::= "_" ":" ProdParamSymbol + LINE_DELIM : Reduce ProdParam ::= "_" ":" ProdParamSymbol + DEDENT : Reduce ProdParam ::= "_" ":" ProdParamSymbol + "(" : Reduce ProdParam ::= "_" ":" ProdParamSymbol + "{" : Reduce ProdParam ::= "_" ":" ProdParamSymbol + State 209 [205.0] + Kernel + [Prods ::= "|" Prod ProdsTl ·, {"->", LINE_DELIM, DEDENT}] + Actions + "->" : Reduce Prods ::= "|" Prod ProdsTl + LINE_DELIM : Reduce Prods ::= "|" Prod ProdsTl + DEDENT : Reduce Prods ::= "|" Prod ProdsTl + State 210 [206.0] + Kernel + [Pattern ::= Pattern · "as" Uident, {",", ";", "as", ")", "}"}] + [Pattern ::= CIDENT Pattern ·, {",", ";", "as", ")", "}"}] prec pCIDENT + [Pattern ::= Pattern · "," Pattern, {",", ";", "as", ")", "}"}] prec pCOMMA + Actions + "," : Reduce Pattern ::= CIDENT Pattern prec pCIDENT + ";" : Reduce Pattern ::= CIDENT Pattern prec pCIDENT + "as" : Reduce Pattern ::= CIDENT Pattern prec pCIDENT + ")" : Reduce Pattern ::= CIDENT Pattern prec pCIDENT + "}" : Reduce Pattern ::= CIDENT Pattern prec pCIDENT + State 211 [207.0] + Kernel + [Pattern ::= Pattern · "as" Uident, {",", "as", ")"}] + [Pattern ::= "(" Pattern · ")", {",", ";", "as", ")", "}"}] + [Pattern ::= Pattern · "," Pattern, {",", "as", ")"}] prec pCOMMA + Actions + "," : ShiftPrefix 214 prec pCOMMA + "as" : ShiftPrefix 215 prec pAS + ")" : ShiftPrefix 231 + State 212 [208.0] + Kernel + [Pattern ::= "{" PatternFields · SemiSuffix "}", {",", ";", "as", ")", "}"}] Added - [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [Codes ::= · Code CodesTl, {"|]"}] - [Codes0 ::= · Codes, {"|]"}] - [Codes0 ::= ·, {"|]"}] - [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "|]", "{", OTHER_TOKEN}] - [Code ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, "|]"}] - [Code ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, "|]"}] + [SemiSuffix ::= · ";", {"}"}] + [SemiSuffix ::= ·, {"}"}] + Actions + ";" : ShiftPrefix 219 prec pSEMI + "}" : Reduce SemiSuffix ::= epsilon + Gotos + SemiSuffix : 232 + State 213 [209.0] + Kernel + [ModulePath ::= ModulePath "." · ModulePath, {"."}] prec pDOT + [Pattern ::= ModulePath "." · "(" Pattern ")", {",", ";", "as", ")", "}"}] + [Pattern ::= ModulePath "." · "{" PatternFields SemiSuffix "}", {",", ";", "as", ")", "}"}] + Added + [ModulePath ::= · CIDENT, {"."}] + [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT + Actions + CIDENT : ShiftPrefix 222 + "(" : ShiftPrefix 233 + "{" : ShiftPrefix 234 + Gotos + ModulePath : 225 + State 214 [210.0] + Kernel + [Pattern ::= Pattern "," · Pattern, {",", ";", "as", ")", "}"}] prec pCOMMA + Added + [Uident ::= · "hocc", {",", ";", "as", ")", "}"}] + [Uident ::= · "nonterm", {",", ";", "as", ")", "}"}] + [Uident ::= · "epsilon", {",", ";", "as", ")", "}"}] + [Uident ::= · "start", {",", ";", "as", ")", "}"}] + [Uident ::= · "token", {",", ";", "as", ")", "}"}] + [Uident ::= · "neutral", {",", ";", "as", ")", "}"}] + [Uident ::= · "left", {",", ";", "as", ")", "}"}] + [Uident ::= · "right", {",", ";", "as", ")", "}"}] + [Uident ::= · "nonassoc", {",", ";", "as", ")", "}"}] + [Uident ::= · "prec", {",", ";", "as", ")", "}"}] + [Uident ::= · UIDENT, {",", ";", "as", ")", "}"}] + [ModulePath ::= · CIDENT, {"."}] + [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT + [Pattern ::= · "_", {",", ";", "as", ")", "}"}] + [Pattern ::= · Uident, {",", ";", "as", ")", "}"}] + [Pattern ::= · Pattern "as" Uident, {",", ";", "as", ")", "}"}] + [Pattern ::= · "(" Pattern ")", {",", ";", "as", ")", "}"}] + [Pattern ::= · CIDENT Pattern, {",", ";", "as", ")", "}"}] prec pCIDENT + [Pattern ::= · ModulePath "." "(" Pattern ")", {",", ";", "as", ")", "}"}] + [Pattern ::= · Pattern "," Pattern, {",", ";", "as", ")", "}"}] prec pCOMMA + [Pattern ::= · "{" PatternFields SemiSuffix "}", {",", ";", "as", ")", "}"}] + [Pattern ::= · ModulePath "." "{" PatternFields SemiSuffix "}", {",", ";", "as", ")", "}"}] Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 @@ -6150,76 +7263,32 @@ APLR(1) States "neutral" : ShiftPrefix 77 "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 - "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 - UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 179 - "_" : ShiftPrefix 180 - ISTRING : ShiftPrefix 181 - "::=" : ShiftPrefix 182 - "of" : ShiftPrefix 183 - ":" : ShiftPrefix 184 - "." : ShiftPrefix 185 prec pDOT - "->" : ShiftPrefix 186 - "<" : ShiftPrefix 187 - "=" : ShiftPrefix 188 - "," : ShiftPrefix 189 prec pCOMMA - "as" : ShiftPrefix 190 prec pAS - INDENT : ShiftPrefix 191 - "(" : ShiftPrefix 192 - "(|" : ShiftPrefix 193 - "[" : ShiftPrefix 194 - "[|" : ShiftPrefix 195 - "|]" : Reduce Codes0 ::= epsilon - "{" : ShiftPrefix 196 - OTHER_TOKEN : ShiftPrefix 197 + "nonassoc" : ShiftPrefix 80 + "prec" : ShiftPrefix 81 prec pPrec + UIDENT : ShiftPrefix 82 + CIDENT : ShiftPrefix 174 + "_" : ShiftPrefix 175 + "(" : ShiftPrefix 176 + "{" : ShiftPrefix 177 Gotos - Uident : 198 - Codes : 219 - Codes0 : 223 - Delimited : 199 - CodeToken : 200 - Code : 218 - State 196 [196.0] + Uident : 178 + ModulePath : 179 + Pattern : 235 + State 215 [211.0] Kernel - [Delimited ::= "{" · Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Pattern ::= Pattern "as" · Uident, {",", ";", "as", ")", "}"}] Added - [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [Codes ::= · Code CodesTl, {"}"}] - [Codes0 ::= · Codes, {"}"}] - [Codes0 ::= ·, {"}"}] - [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, "(", "(|", "[", "[|", "{", "}", OTHER_TOKEN}] - [Code ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, "}"}] - [Code ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, "}"}] + [Uident ::= · "hocc", {",", ";", "as", ")", "}"}] + [Uident ::= · "nonterm", {",", ";", "as", ")", "}"}] + [Uident ::= · "epsilon", {",", ";", "as", ")", "}"}] + [Uident ::= · "start", {",", ";", "as", ")", "}"}] + [Uident ::= · "token", {",", ";", "as", ")", "}"}] + [Uident ::= · "neutral", {",", ";", "as", ")", "}"}] + [Uident ::= · "left", {",", ";", "as", ")", "}"}] + [Uident ::= · "right", {",", ";", "as", ")", "}"}] + [Uident ::= · "nonassoc", {",", ";", "as", ")", "}"}] + [Uident ::= · "prec", {",", ";", "as", ")", "}"}] + [Uident ::= · UIDENT, {",", ";", "as", ")", "}"}] Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 @@ -6230,159 +7299,41 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 179 - "_" : ShiftPrefix 180 - ISTRING : ShiftPrefix 181 - "::=" : ShiftPrefix 182 - "of" : ShiftPrefix 183 - ":" : ShiftPrefix 184 - "." : ShiftPrefix 185 prec pDOT - "->" : ShiftPrefix 186 - "<" : ShiftPrefix 187 - "=" : ShiftPrefix 188 - "," : ShiftPrefix 189 prec pCOMMA - "as" : ShiftPrefix 190 prec pAS - INDENT : ShiftPrefix 191 - "(" : ShiftPrefix 192 - "(|" : ShiftPrefix 193 - "[" : ShiftPrefix 194 - "[|" : ShiftPrefix 195 - "{" : ShiftPrefix 196 - "}" : Reduce Codes0 ::= epsilon - OTHER_TOKEN : ShiftPrefix 197 Gotos - Uident : 198 - Codes : 219 - Codes0 : 224 - Delimited : 199 - CodeToken : 200 - Code : 218 - State 197 [197.0] - Kernel - [CodeToken ::= OTHER_TOKEN ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - Actions - "hocc" : Reduce CodeToken ::= OTHER_TOKEN - "nonterm" : Reduce CodeToken ::= OTHER_TOKEN - "epsilon" : Reduce CodeToken ::= OTHER_TOKEN - "start" : Reduce CodeToken ::= OTHER_TOKEN - "token" : Reduce CodeToken ::= OTHER_TOKEN - "neutral" : Reduce CodeToken ::= OTHER_TOKEN - "left" : Reduce CodeToken ::= OTHER_TOKEN - "right" : Reduce CodeToken ::= OTHER_TOKEN - "nonassoc" : Reduce CodeToken ::= OTHER_TOKEN - "prec" : Reduce CodeToken ::= OTHER_TOKEN - UIDENT : Reduce CodeToken ::= OTHER_TOKEN - CIDENT : Reduce CodeToken ::= OTHER_TOKEN - "_" : Reduce CodeToken ::= OTHER_TOKEN - ISTRING : Reduce CodeToken ::= OTHER_TOKEN - "::=" : Reduce CodeToken ::= OTHER_TOKEN - "of" : Reduce CodeToken ::= OTHER_TOKEN - ":" : Reduce CodeToken ::= OTHER_TOKEN - "." : Reduce CodeToken ::= OTHER_TOKEN - "->" : Reduce CodeToken ::= OTHER_TOKEN - "|" : Reduce CodeToken ::= OTHER_TOKEN - "<" : Reduce CodeToken ::= OTHER_TOKEN - "=" : Reduce CodeToken ::= OTHER_TOKEN - "," : Reduce CodeToken ::= OTHER_TOKEN - ";" : Reduce CodeToken ::= OTHER_TOKEN - "as" : Reduce CodeToken ::= OTHER_TOKEN - LINE_DELIM : Reduce CodeToken ::= OTHER_TOKEN - INDENT : Reduce CodeToken ::= OTHER_TOKEN - DEDENT : Reduce CodeToken ::= OTHER_TOKEN - "(" : Reduce CodeToken ::= OTHER_TOKEN - ")" : Reduce CodeToken ::= OTHER_TOKEN - "(|" : Reduce CodeToken ::= OTHER_TOKEN - "|)" : Reduce CodeToken ::= OTHER_TOKEN - "[" : Reduce CodeToken ::= OTHER_TOKEN - "]" : Reduce CodeToken ::= OTHER_TOKEN - "[|" : Reduce CodeToken ::= OTHER_TOKEN - "|]" : Reduce CodeToken ::= OTHER_TOKEN - "{" : Reduce CodeToken ::= OTHER_TOKEN - "}" : Reduce CodeToken ::= OTHER_TOKEN - OTHER_TOKEN : Reduce CodeToken ::= OTHER_TOKEN - State 198 [198.0] + Uident : 236 + State 216 [212.0] Kernel - [CodeToken ::= Uident ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [ProdParam ::= "(" Pattern ")" · ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Actions - "hocc" : Reduce CodeToken ::= Uident - "nonterm" : Reduce CodeToken ::= Uident - "epsilon" : Reduce CodeToken ::= Uident - "start" : Reduce CodeToken ::= Uident - "token" : Reduce CodeToken ::= Uident - "neutral" : Reduce CodeToken ::= Uident - "left" : Reduce CodeToken ::= Uident - "right" : Reduce CodeToken ::= Uident - "nonassoc" : Reduce CodeToken ::= Uident - "prec" : Reduce CodeToken ::= Uident - UIDENT : Reduce CodeToken ::= Uident - CIDENT : Reduce CodeToken ::= Uident - "_" : Reduce CodeToken ::= Uident - ISTRING : Reduce CodeToken ::= Uident - "::=" : Reduce CodeToken ::= Uident - "of" : Reduce CodeToken ::= Uident - ":" : Reduce CodeToken ::= Uident - "." : Reduce CodeToken ::= Uident - "->" : Reduce CodeToken ::= Uident - "|" : Reduce CodeToken ::= Uident - "<" : Reduce CodeToken ::= Uident - "=" : Reduce CodeToken ::= Uident - "," : Reduce CodeToken ::= Uident - ";" : Reduce CodeToken ::= Uident - "as" : Reduce CodeToken ::= Uident - LINE_DELIM : Reduce CodeToken ::= Uident - INDENT : Reduce CodeToken ::= Uident - DEDENT : Reduce CodeToken ::= Uident - "(" : Reduce CodeToken ::= Uident - ")" : Reduce CodeToken ::= Uident - "(|" : Reduce CodeToken ::= Uident - "|)" : Reduce CodeToken ::= Uident - "[" : Reduce CodeToken ::= Uident - "]" : Reduce CodeToken ::= Uident - "[|" : Reduce CodeToken ::= Uident - "|]" : Reduce CodeToken ::= Uident - "{" : Reduce CodeToken ::= Uident - "}" : Reduce CodeToken ::= Uident - OTHER_TOKEN : Reduce CodeToken ::= Uident - State 199 [199.0] + ":" : ShiftPrefix 237 + State 217 [213.0] Kernel - [Code ::= Delimited · CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + [PatternField ::= Uident "=" · Pattern, {";", "}"}] Added - [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeTl ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] - [CodeTl ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] - [CodeTl ::= ·, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + [Uident ::= · "hocc", {",", ";", "as", "}"}] + [Uident ::= · "nonterm", {",", ";", "as", "}"}] + [Uident ::= · "epsilon", {",", ";", "as", "}"}] + [Uident ::= · "start", {",", ";", "as", "}"}] + [Uident ::= · "token", {",", ";", "as", "}"}] + [Uident ::= · "neutral", {",", ";", "as", "}"}] + [Uident ::= · "left", {",", ";", "as", "}"}] + [Uident ::= · "right", {",", ";", "as", "}"}] + [Uident ::= · "nonassoc", {",", ";", "as", "}"}] + [Uident ::= · "prec", {",", ";", "as", "}"}] + [Uident ::= · UIDENT, {",", ";", "as", "}"}] + [ModulePath ::= · CIDENT, {"."}] + [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT + [Pattern ::= · "_", {",", ";", "as", "}"}] + [Pattern ::= · Uident, {",", ";", "as", "}"}] + [Pattern ::= · Pattern "as" Uident, {",", ";", "as", "}"}] + [Pattern ::= · "(" Pattern ")", {",", ";", "as", "}"}] + [Pattern ::= · CIDENT Pattern, {",", ";", "as", "}"}] prec pCIDENT + [Pattern ::= · ModulePath "." "(" Pattern ")", {",", ";", "as", "}"}] + [Pattern ::= · Pattern "," Pattern, {",", ";", "as", "}"}] prec pCOMMA + [Pattern ::= · "{" PatternFields SemiSuffix "}", {",", ";", "as", "}"}] + [Pattern ::= · ModulePath "." "{" PatternFields SemiSuffix "}", {",", ";", "as", "}"}] Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 @@ -6393,79 +7344,37 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 179 - "_" : ShiftPrefix 180 - ISTRING : ShiftPrefix 181 - "::=" : ShiftPrefix 182 - "of" : ShiftPrefix 183 - ":" : ShiftPrefix 184 - "." : ShiftPrefix 185 prec pDOT - "->" : ShiftPrefix 186 - "|" : Reduce CodeTl ::= epsilon - "<" : ShiftPrefix 187 - "=" : ShiftPrefix 188 - "," : ShiftPrefix 189 prec pCOMMA - ";" : Reduce CodeTl ::= epsilon - "as" : ShiftPrefix 190 prec pAS - LINE_DELIM : Reduce CodeTl ::= epsilon - INDENT : ShiftPrefix 191 - DEDENT : Reduce CodeTl ::= epsilon - "(" : ShiftPrefix 192 - ")" : Reduce CodeTl ::= epsilon - "(|" : ShiftPrefix 193 - "|)" : Reduce CodeTl ::= epsilon - "[" : ShiftPrefix 194 - "]" : Reduce CodeTl ::= epsilon - "[|" : ShiftPrefix 195 - "|]" : Reduce CodeTl ::= epsilon - "{" : ShiftPrefix 196 - "}" : Reduce CodeTl ::= epsilon - OTHER_TOKEN : ShiftPrefix 197 + CIDENT : ShiftPrefix 174 + "_" : ShiftPrefix 175 + "(" : ShiftPrefix 176 + "{" : ShiftPrefix 177 Gotos - Uident : 198 - Delimited : 225 - CodeToken : 226 - CodeTl : 227 - State 200 [200.0] + Uident : 178 + ModulePath : 179 + Pattern : 238 + State 218 [214.0] Kernel - [Code ::= CodeToken · CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + [PatternFields ::= PatternField ";" · "_", {";", "}"}] + [PatternFields ::= PatternField ";" · PatternFields, {";", "}"}] Added - [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeTl ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] - [CodeTl ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] - [CodeTl ::= ·, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + [Uident ::= · "hocc", {"=", ";", "}"}] + [Uident ::= · "nonterm", {"=", ";", "}"}] + [Uident ::= · "epsilon", {"=", ";", "}"}] + [Uident ::= · "start", {"=", ";", "}"}] + [Uident ::= · "token", {"=", ";", "}"}] + [Uident ::= · "neutral", {"=", ";", "}"}] + [Uident ::= · "left", {"=", ";", "}"}] + [Uident ::= · "right", {"=", ";", "}"}] + [Uident ::= · "nonassoc", {"=", ";", "}"}] + [Uident ::= · "prec", {"=", ";", "}"}] + [Uident ::= · UIDENT, {"=", ";", "}"}] + [PatternField ::= · Uident, {";", "}"}] + [PatternField ::= · Uident "=" Pattern, {";", "}"}] + [PatternFields ::= · PatternField, {";", "}"}] prec pSEMI + [PatternFields ::= · PatternField ";" "_", {";", "}"}] + [PatternFields ::= · PatternField ";" PatternFields, {";", "}"}] Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 @@ -6476,77 +7385,55 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 179 - "_" : ShiftPrefix 180 - ISTRING : ShiftPrefix 181 - "::=" : ShiftPrefix 182 - "of" : ShiftPrefix 183 - ":" : ShiftPrefix 184 - "." : ShiftPrefix 185 prec pDOT - "->" : ShiftPrefix 186 - "|" : Reduce CodeTl ::= epsilon - "<" : ShiftPrefix 187 - "=" : ShiftPrefix 188 - "," : ShiftPrefix 189 prec pCOMMA - ";" : Reduce CodeTl ::= epsilon - "as" : ShiftPrefix 190 prec pAS - LINE_DELIM : Reduce CodeTl ::= epsilon - INDENT : ShiftPrefix 191 - DEDENT : Reduce CodeTl ::= epsilon - "(" : ShiftPrefix 192 - ")" : Reduce CodeTl ::= epsilon - "(|" : ShiftPrefix 193 - "|)" : Reduce CodeTl ::= epsilon - "[" : ShiftPrefix 194 - "]" : Reduce CodeTl ::= epsilon - "[|" : ShiftPrefix 195 - "|]" : Reduce CodeTl ::= epsilon - "{" : ShiftPrefix 196 - "}" : Reduce CodeTl ::= epsilon - OTHER_TOKEN : ShiftPrefix 197 + "_" : ShiftPrefix 239 Gotos - Uident : 198 - Delimited : 225 - CodeToken : 226 - CodeTl : 228 - State 201 [201.0] + Uident : 181 + PatternField : 182 + PatternFields : 240 + State 219 [215.0] Kernel - [Reduction ::= Prods "->" Code ·, {"|", LINE_DELIM, DEDENT}] - Actions - "|" : Reduce Reduction ::= Prods "->" Code - LINE_DELIM : Reduce Reduction ::= Prods "->" Code - DEDENT : Reduce Reduction ::= Prods "->" Code - State 202 [202.0] + [SemiSuffix ::= ";" ·, {"}"}] + Actions + "}" : Reduce SemiSuffix ::= ";" + State 220 [216.0] Kernel - [ReductionsTl ::= "|" Reduction · ReductionsTl, {LINE_DELIM, DEDENT}] - Added - [ReductionsTl ::= · "|" Reduction ReductionsTl, {LINE_DELIM, DEDENT}] - [ReductionsTl ::= ·, {LINE_DELIM, DEDENT}] + [ProdParam ::= "{" PatternFields SemiSuffix · "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Actions - "|" : ShiftPrefix 156 - LINE_DELIM : Reduce ReductionsTl ::= epsilon - DEDENT : Reduce ReductionsTl ::= epsilon - Gotos - ReductionsTl : 229 - State 203 [203.0] + "}" : ShiftPrefix 241 + State 221 [217.0] Kernel - [Pattern ::= "(" Pattern ")" ·, {",", ";", "as", ")", "}"}] + [ProdParam ::= Uident ":" ProdParamSymbol ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Actions - "," : Reduce Pattern ::= "(" Pattern ")" - ";" : Reduce Pattern ::= "(" Pattern ")" - "as" : Reduce Pattern ::= "(" Pattern ")" - ")" : Reduce Pattern ::= "(" Pattern ")" - "}" : Reduce Pattern ::= "(" Pattern ")" - State 204 [204.0] + "hocc" : Reduce ProdParam ::= Uident ":" ProdParamSymbol + "nonterm" : Reduce ProdParam ::= Uident ":" ProdParamSymbol + "epsilon" : Reduce ProdParam ::= Uident ":" ProdParamSymbol + "start" : Reduce ProdParam ::= Uident ":" ProdParamSymbol + "token" : Reduce ProdParam ::= Uident ":" ProdParamSymbol + "neutral" : Reduce ProdParam ::= Uident ":" ProdParamSymbol + "left" : Reduce ProdParam ::= Uident ":" ProdParamSymbol + "right" : Reduce ProdParam ::= Uident ":" ProdParamSymbol + "nonassoc" : Reduce ProdParam ::= Uident ":" ProdParamSymbol + "prec" : Reduce ProdParam ::= Uident ":" ProdParamSymbol + UIDENT : Reduce ProdParam ::= Uident ":" ProdParamSymbol + CIDENT : Reduce ProdParam ::= Uident ":" ProdParamSymbol + "_" : Reduce ProdParam ::= Uident ":" ProdParamSymbol + ISTRING : Reduce ProdParam ::= Uident ":" ProdParamSymbol + "->" : Reduce ProdParam ::= Uident ":" ProdParamSymbol + "|" : Reduce ProdParam ::= Uident ":" ProdParamSymbol + LINE_DELIM : Reduce ProdParam ::= Uident ":" ProdParamSymbol + DEDENT : Reduce ProdParam ::= Uident ":" ProdParamSymbol + "(" : Reduce ProdParam ::= Uident ":" ProdParamSymbol + "{" : Reduce ProdParam ::= Uident ":" ProdParamSymbol + State 222 [218.0] Kernel - [Pattern ::= "{" PatternFields SemiSuffix · "}", {",", ";", "as", ")", "}"}] + [ModulePath ::= CIDENT ·, {"."}] Actions - "}" : ShiftPrefix 230 - State 205 [205.0] + "." : Reduce ModulePath ::= CIDENT + State 223 [219.0] Kernel - [Pattern ::= ModulePath "." "(" · Pattern ")", {",", ";", "as", ")", "}"}] + [ProdParam ::= ModulePath "." "(" · Pattern ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Added [Uident ::= · "hocc", {",", "as", ")"}] [Uident ::= · "nonterm", {",", "as", ")"}] @@ -6580,19 +7467,19 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 137 - "_" : ShiftPrefix 138 - "(" : ShiftPrefix 139 - "{" : ShiftPrefix 140 + CIDENT : ShiftPrefix 174 + "_" : ShiftPrefix 175 + "(" : ShiftPrefix 176 + "{" : ShiftPrefix 177 Gotos - Uident : 141 - ModulePath : 142 - Pattern : 231 - State 206 [206.0] + Uident : 178 + ModulePath : 179 + Pattern : 242 + State 224 [220.0] Kernel - [Pattern ::= ModulePath "." "{" · PatternFields SemiSuffix "}", {",", ";", "as", ")", "}"}] + [ProdParam ::= ModulePath "." "{" · PatternFields SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Added [Uident ::= · "hocc", {"=", ";", "}"}] [Uident ::= · "nonterm", {"=", ";", "}"}] @@ -6620,105 +7507,42 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 Gotos - Uident : 144 - PatternField : 145 - PatternFields : 232 - State 207 [207.0] - Kernel - [Pattern ::= Pattern · "as" Uident, {",", ";", "as", ")", "}"}] - [Pattern ::= Pattern · "," Pattern, {",", ";", "as", ")", "}"}] prec pCOMMA - [Pattern ::= Pattern "," Pattern ·, {",", ";", "as", ")", "}"}] prec pCOMMA - Actions - "," : Reduce Pattern ::= Pattern "," Pattern prec pCOMMA - ";" : Reduce Pattern ::= Pattern "," Pattern prec pCOMMA - "as" : Reduce Pattern ::= Pattern "," Pattern prec pCOMMA - ")" : Reduce Pattern ::= Pattern "," Pattern prec pCOMMA - "}" : Reduce Pattern ::= Pattern "," Pattern prec pCOMMA - State 208 [208.0] - Kernel - [Pattern ::= Pattern "as" Uident ·, {",", ";", "as", ")", "}"}] - Actions - "," : Reduce Pattern ::= Pattern "as" Uident - ";" : Reduce Pattern ::= Pattern "as" Uident - "as" : Reduce Pattern ::= Pattern "as" Uident - ")" : Reduce Pattern ::= Pattern "as" Uident - "}" : Reduce Pattern ::= Pattern "as" Uident - State 209 [209.0] - Kernel - [ProdParam ::= "(" Pattern ")" ":" · ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - Added - [ProdParamSymbol ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParamSymbol ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - Actions - CIDENT : ShiftPrefix 158 - ISTRING : ShiftPrefix 118 - Gotos - ProdParamSymbol : 233 - State 210 [210.0] - Kernel - [PatternField ::= Uident "=" Pattern ·, {";", "}"}] - [Pattern ::= Pattern · "as" Uident, {",", ";", "as", "}"}] - [Pattern ::= Pattern · "," Pattern, {",", ";", "as", "}"}] prec pCOMMA - Actions - "," : ShiftPrefix 165 prec pCOMMA - ";" : Reduce PatternField ::= Uident "=" Pattern - "as" : ShiftPrefix 166 prec pAS - "}" : Reduce PatternField ::= Uident "=" Pattern - State 211 [211.0] - Kernel - [PatternFields ::= PatternField ";" "_" ·, {";", "}"}] - Actions - ";" : Reduce PatternFields ::= PatternField ";" "_" - "}" : Reduce PatternFields ::= PatternField ";" "_" - State 212 [212.0] - Kernel - [PatternFields ::= PatternField ";" PatternFields ·, {";", "}"}] - Actions - ";" : Reduce PatternFields ::= PatternField ";" PatternFields - "}" : Reduce PatternFields ::= PatternField ";" PatternFields - State 213 [213.0] + Uident : 181 + PatternField : 182 + PatternFields : 243 + State 225 [221.0] Kernel - [ProdParam ::= "{" PatternFields SemiSuffix "}" · ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ModulePath ::= ModulePath · "." ModulePath, {"."}] prec pDOT + [ModulePath ::= ModulePath "." ModulePath ·, {"."}] prec pDOT Actions - ":" : ShiftPrefix 234 - State 214 [214.0] + "." : Reduce ModulePath ::= ModulePath "." ModulePath prec pDOT + State 226 [222.0] Kernel - [Pattern ::= Pattern · "as" Uident, {",", "as", ")"}] - [Pattern ::= Pattern · "," Pattern, {",", "as", ")"}] prec pCOMMA - [ProdParam ::= ModulePath "." "(" Pattern · ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParamsTl ::= ProdParam ProdParamsTl ·, {"->", "|", LINE_DELIM, DEDENT}] Actions - "," : ShiftPrefix 165 prec pCOMMA - "as" : ShiftPrefix 166 prec pAS - ")" : ShiftPrefix 235 - State 215 [215.0] + "->" : Reduce ProdParamsTl ::= ProdParam ProdParamsTl + "|" : Reduce ProdParamsTl ::= ProdParam ProdParamsTl + LINE_DELIM : Reduce ProdParamsTl ::= ProdParam ProdParamsTl + DEDENT : Reduce ProdParamsTl ::= ProdParam ProdParamsTl + State 227 [223.0] Kernel - [ProdParam ::= ModulePath "." "{" PatternFields · SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdsTl ::= "|" Prod · ProdsTl, {"->", LINE_DELIM, DEDENT}] Added - [SemiSuffix ::= · ";", {"}"}] - [SemiSuffix ::= ·, {"}"}] + [ProdsTl ::= · "|" Prod ProdsTl, {"->", LINE_DELIM, DEDENT}] + [ProdsTl ::= ·, {"->", LINE_DELIM, DEDENT}] Actions - ";" : ShiftPrefix 170 prec pSEMI - "}" : Reduce SemiSuffix ::= epsilon + "->" : Reduce ProdsTl ::= epsilon + "|" : ShiftPrefix 190 + LINE_DELIM : Reduce ProdsTl ::= epsilon + DEDENT : Reduce ProdsTl ::= epsilon Gotos - SemiSuffix : 236 - State 216 [217.0] - Kernel - [ProdsTl ::= "|" Prod ProdsTl ·, {"->", LINE_DELIM, DEDENT}] - Actions - "->" : Reduce ProdsTl ::= "|" Prod ProdsTl - LINE_DELIM : Reduce ProdsTl ::= "|" Prod ProdsTl - DEDENT : Reduce ProdsTl ::= "|" Prod ProdsTl - State 217 [218.0] - Kernel - [Delimited ::= INDENT Codes · DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - Actions - DEDENT : ShiftPrefix 237 - State 218 [219.0] + ProdsTl : 244 + State 228 [224.0] Kernel - [Codes ::= Code · CodesTl, {DEDENT, ")", "|)", "]", "|]", "}"}] + [CodesTl ::= Sep Code · CodesTl, {DEDENT, ")", "|)", "]", "|]", "}"}] Added [Sep ::= · LINE_DELIM, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] [Sep ::= · ";", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] @@ -6736,80 +7560,67 @@ APLR(1) States "|]" : Reduce CodesTl ::= epsilon "}" : Reduce CodesTl ::= epsilon Gotos - Sep : 238 - CodesTl : 239 - State 219 [220.0] - Kernel - [Codes0 ::= Codes ·, {")", "|)", "]", "|]", "}"}] - Actions - ")" : Reduce Codes0 ::= Codes - "|)" : Reduce Codes0 ::= Codes - "]" : Reduce Codes0 ::= Codes - "|]" : Reduce Codes0 ::= Codes - "}" : Reduce Codes0 ::= Codes - State 220 [221.0] - Kernel - [Delimited ::= "(" Codes0 · ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - Actions - ")" : ShiftPrefix 240 - State 221 [222.0] + Sep : 195 + CodesTl : 245 + State 229 [225.0] Kernel - [Delimited ::= "(|" Codes0 · "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Reduction ::= Prods "->" Code ·, {"|", LINE_DELIM, DEDENT}] Actions - "|)" : ShiftPrefix 241 - State 222 [223.0] + "|" : Reduce Reduction ::= Prods "->" Code + LINE_DELIM : Reduce Reduction ::= Prods "->" Code + DEDENT : Reduce Reduction ::= Prods "->" Code + State 230 [226.0] Kernel - [Delimited ::= "[" Codes0 · "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [ReductionsTl ::= "|" Reduction · ReductionsTl, {LINE_DELIM, DEDENT}] + Added + [ReductionsTl ::= · "|" Reduction ReductionsTl, {LINE_DELIM, DEDENT}] + [ReductionsTl ::= ·, {LINE_DELIM, DEDENT}] Actions - "]" : ShiftPrefix 242 - State 223 [224.0] + "|" : ShiftPrefix 205 + LINE_DELIM : Reduce ReductionsTl ::= epsilon + DEDENT : Reduce ReductionsTl ::= epsilon + Gotos + ReductionsTl : 246 + State 231 [227.0] Kernel - [Delimited ::= "[|" Codes0 · "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Pattern ::= "(" Pattern ")" ·, {",", ";", "as", ")", "}"}] Actions - "|]" : ShiftPrefix 243 - State 224 [225.0] + "," : Reduce Pattern ::= "(" Pattern ")" + ";" : Reduce Pattern ::= "(" Pattern ")" + "as" : Reduce Pattern ::= "(" Pattern ")" + ")" : Reduce Pattern ::= "(" Pattern ")" + "}" : Reduce Pattern ::= "(" Pattern ")" + State 232 [228.0] Kernel - [Delimited ::= "{" Codes0 · "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Pattern ::= "{" PatternFields SemiSuffix · "}", {",", ";", "as", ")", "}"}] Actions - "}" : ShiftPrefix 244 - State 225 [226.0] + "}" : ShiftPrefix 247 + State 233 [229.0] Kernel - [CodeTl ::= Delimited · CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + [Pattern ::= ModulePath "." "(" · Pattern ")", {",", ";", "as", ")", "}"}] Added - [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeTl ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] - [CodeTl ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] - [CodeTl ::= ·, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + [Uident ::= · "hocc", {",", "as", ")"}] + [Uident ::= · "nonterm", {",", "as", ")"}] + [Uident ::= · "epsilon", {",", "as", ")"}] + [Uident ::= · "start", {",", "as", ")"}] + [Uident ::= · "token", {",", "as", ")"}] + [Uident ::= · "neutral", {",", "as", ")"}] + [Uident ::= · "left", {",", "as", ")"}] + [Uident ::= · "right", {",", "as", ")"}] + [Uident ::= · "nonassoc", {",", "as", ")"}] + [Uident ::= · "prec", {",", "as", ")"}] + [Uident ::= · UIDENT, {",", "as", ")"}] + [ModulePath ::= · CIDENT, {"."}] + [ModulePath ::= · ModulePath "." ModulePath, {"."}] prec pDOT + [Pattern ::= · "_", {",", "as", ")"}] + [Pattern ::= · Uident, {",", "as", ")"}] + [Pattern ::= · Pattern "as" Uident, {",", "as", ")"}] + [Pattern ::= · "(" Pattern ")", {",", "as", ")"}] + [Pattern ::= · CIDENT Pattern, {",", "as", ")"}] prec pCIDENT + [Pattern ::= · ModulePath "." "(" Pattern ")", {",", "as", ")"}] + [Pattern ::= · Pattern "," Pattern, {",", "as", ")"}] prec pCOMMA + [Pattern ::= · "{" PatternFields SemiSuffix "}", {",", "as", ")"}] + [Pattern ::= · ModulePath "." "{" PatternFields SemiSuffix "}", {",", "as", ")"}] Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 @@ -6820,79 +7631,36 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 179 - "_" : ShiftPrefix 180 - ISTRING : ShiftPrefix 181 - "::=" : ShiftPrefix 182 - "of" : ShiftPrefix 183 - ":" : ShiftPrefix 184 - "." : ShiftPrefix 185 prec pDOT - "->" : ShiftPrefix 186 - "|" : Reduce CodeTl ::= epsilon - "<" : ShiftPrefix 187 - "=" : ShiftPrefix 188 - "," : ShiftPrefix 189 prec pCOMMA - ";" : Reduce CodeTl ::= epsilon - "as" : ShiftPrefix 190 prec pAS - LINE_DELIM : Reduce CodeTl ::= epsilon - INDENT : ShiftPrefix 191 - DEDENT : Reduce CodeTl ::= epsilon - "(" : ShiftPrefix 192 - ")" : Reduce CodeTl ::= epsilon - "(|" : ShiftPrefix 193 - "|)" : Reduce CodeTl ::= epsilon - "[" : ShiftPrefix 194 - "]" : Reduce CodeTl ::= epsilon - "[|" : ShiftPrefix 195 - "|]" : Reduce CodeTl ::= epsilon - "{" : ShiftPrefix 196 - "}" : Reduce CodeTl ::= epsilon - OTHER_TOKEN : ShiftPrefix 197 + CIDENT : ShiftPrefix 174 + "_" : ShiftPrefix 175 + "(" : ShiftPrefix 176 + "{" : ShiftPrefix 177 Gotos - Uident : 198 - Delimited : 225 - CodeToken : 226 - CodeTl : 245 - State 226 [227.0] + Uident : 178 + ModulePath : 179 + Pattern : 248 + State 234 [230.0] Kernel - [CodeTl ::= CodeToken · CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + [Pattern ::= ModulePath "." "{" · PatternFields SemiSuffix "}", {",", ";", "as", ")", "}"}] Added - [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeTl ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] - [CodeTl ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] - [CodeTl ::= ·, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + [Uident ::= · "hocc", {"=", ";", "}"}] + [Uident ::= · "nonterm", {"=", ";", "}"}] + [Uident ::= · "epsilon", {"=", ";", "}"}] + [Uident ::= · "start", {"=", ";", "}"}] + [Uident ::= · "token", {"=", ";", "}"}] + [Uident ::= · "neutral", {"=", ";", "}"}] + [Uident ::= · "left", {"=", ";", "}"}] + [Uident ::= · "right", {"=", ";", "}"}] + [Uident ::= · "nonassoc", {"=", ";", "}"}] + [Uident ::= · "prec", {"=", ";", "}"}] + [Uident ::= · UIDENT, {"=", ";", "}"}] + [PatternField ::= · Uident, {";", "}"}] + [PatternField ::= · Uident "=" Pattern, {";", "}"}] + [PatternFields ::= · PatternField, {";", "}"}] prec pSEMI + [PatternFields ::= · PatternField ";" "_", {";", "}"}] + [PatternFields ::= · PatternField ";" PatternFields, {";", "}"}] Actions "hocc" : ShiftPrefix 72 "nonterm" : ShiftPrefix 73 @@ -6903,515 +7671,188 @@ APLR(1) States "left" : ShiftPrefix 78 "right" : ShiftPrefix 79 "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 + "prec" : ShiftPrefix 81 prec pPrec UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 179 - "_" : ShiftPrefix 180 - ISTRING : ShiftPrefix 181 - "::=" : ShiftPrefix 182 - "of" : ShiftPrefix 183 - ":" : ShiftPrefix 184 - "." : ShiftPrefix 185 prec pDOT - "->" : ShiftPrefix 186 - "|" : Reduce CodeTl ::= epsilon - "<" : ShiftPrefix 187 - "=" : ShiftPrefix 188 - "," : ShiftPrefix 189 prec pCOMMA - ";" : Reduce CodeTl ::= epsilon - "as" : ShiftPrefix 190 prec pAS - LINE_DELIM : Reduce CodeTl ::= epsilon - INDENT : ShiftPrefix 191 - DEDENT : Reduce CodeTl ::= epsilon - "(" : ShiftPrefix 192 - ")" : Reduce CodeTl ::= epsilon - "(|" : ShiftPrefix 193 - "|)" : Reduce CodeTl ::= epsilon - "[" : ShiftPrefix 194 - "]" : Reduce CodeTl ::= epsilon - "[|" : ShiftPrefix 195 - "|]" : Reduce CodeTl ::= epsilon - "{" : ShiftPrefix 196 - "}" : Reduce CodeTl ::= epsilon - OTHER_TOKEN : ShiftPrefix 197 Gotos - Uident : 198 - Delimited : 225 - CodeToken : 226 - CodeTl : 246 - State 227 [228.0] - Kernel - [Code ::= Delimited CodeTl ·, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] - Actions - "|" : Reduce Code ::= Delimited CodeTl - ";" : Reduce Code ::= Delimited CodeTl - LINE_DELIM : Reduce Code ::= Delimited CodeTl - DEDENT : Reduce Code ::= Delimited CodeTl - ")" : Reduce Code ::= Delimited CodeTl - "|)" : Reduce Code ::= Delimited CodeTl - "]" : Reduce Code ::= Delimited CodeTl - "|]" : Reduce Code ::= Delimited CodeTl - "}" : Reduce Code ::= Delimited CodeTl - State 228 [229.0] - Kernel - [Code ::= CodeToken CodeTl ·, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] - Actions - "|" : Reduce Code ::= CodeToken CodeTl - ";" : Reduce Code ::= CodeToken CodeTl - LINE_DELIM : Reduce Code ::= CodeToken CodeTl - DEDENT : Reduce Code ::= CodeToken CodeTl - ")" : Reduce Code ::= CodeToken CodeTl - "|)" : Reduce Code ::= CodeToken CodeTl - "]" : Reduce Code ::= CodeToken CodeTl - "|]" : Reduce Code ::= CodeToken CodeTl - "}" : Reduce Code ::= CodeToken CodeTl - State 229 [230.0] - Kernel - [ReductionsTl ::= "|" Reduction ReductionsTl ·, {LINE_DELIM, DEDENT}] - Actions - LINE_DELIM : Reduce ReductionsTl ::= "|" Reduction ReductionsTl - DEDENT : Reduce ReductionsTl ::= "|" Reduction ReductionsTl - State 230 [231.0] + Uident : 181 + PatternField : 182 + PatternFields : 249 + State 235 [231.0] Kernel - [Pattern ::= "{" PatternFields SemiSuffix "}" ·, {",", ";", "as", ")", "}"}] + [Pattern ::= Pattern · "as" Uident, {",", ";", "as", ")", "}"}] + [Pattern ::= Pattern · "," Pattern, {",", ";", "as", ")", "}"}] prec pCOMMA + [Pattern ::= Pattern "," Pattern ·, {",", ";", "as", ")", "}"}] prec pCOMMA Actions - "," : Reduce Pattern ::= "{" PatternFields SemiSuffix "}" - ";" : Reduce Pattern ::= "{" PatternFields SemiSuffix "}" - "as" : Reduce Pattern ::= "{" PatternFields SemiSuffix "}" - ")" : Reduce Pattern ::= "{" PatternFields SemiSuffix "}" - "}" : Reduce Pattern ::= "{" PatternFields SemiSuffix "}" - State 231 [232.0] + "," : Reduce Pattern ::= Pattern "," Pattern prec pCOMMA + ";" : Reduce Pattern ::= Pattern "," Pattern prec pCOMMA + "as" : Reduce Pattern ::= Pattern "," Pattern prec pCOMMA + ")" : Reduce Pattern ::= Pattern "," Pattern prec pCOMMA + "}" : Reduce Pattern ::= Pattern "," Pattern prec pCOMMA + State 236 [232.0] Kernel - [Pattern ::= Pattern · "as" Uident, {",", "as", ")"}] - [Pattern ::= ModulePath "." "(" Pattern · ")", {",", ";", "as", ")", "}"}] - [Pattern ::= Pattern · "," Pattern, {",", "as", ")"}] prec pCOMMA + [Pattern ::= Pattern "as" Uident ·, {",", ";", "as", ")", "}"}] Actions - "," : ShiftPrefix 165 prec pCOMMA - "as" : ShiftPrefix 166 prec pAS - ")" : ShiftPrefix 247 - State 232 [233.0] + "," : Reduce Pattern ::= Pattern "as" Uident + ";" : Reduce Pattern ::= Pattern "as" Uident + "as" : Reduce Pattern ::= Pattern "as" Uident + ")" : Reduce Pattern ::= Pattern "as" Uident + "}" : Reduce Pattern ::= Pattern "as" Uident + State 237 [233.0] Kernel - [Pattern ::= ModulePath "." "{" PatternFields · SemiSuffix "}", {",", ";", "as", ")", "}"}] + [ProdParam ::= "(" Pattern ")" ":" · ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Added - [SemiSuffix ::= · ";", {"}"}] - [SemiSuffix ::= ·, {"}"}] + [ProdParamSymbol ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParamSymbol ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Actions - ";" : ShiftPrefix 170 prec pSEMI - "}" : Reduce SemiSuffix ::= epsilon + CIDENT : ShiftPrefix 207 + ISTRING : ShiftPrefix 141 Gotos - SemiSuffix : 248 - State 233 [234.0] + ProdParamSymbol : 250 + State 238 [234.0] Kernel - [ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [PatternField ::= Uident "=" Pattern ·, {";", "}"}] + [Pattern ::= Pattern · "as" Uident, {",", ";", "as", "}"}] + [Pattern ::= Pattern · "," Pattern, {",", ";", "as", "}"}] prec pCOMMA Actions - "hocc" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol - "nonterm" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol - "epsilon" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol - "start" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol - "token" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol - "neutral" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol - "left" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol - "right" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol - "nonassoc" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol - "prec" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol - UIDENT : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol - CIDENT : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol - "_" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol - ISTRING : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol - "->" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol - "|" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol - LINE_DELIM : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol - DEDENT : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol - "(" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol - "{" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol - State 234 [235.0] + "," : ShiftPrefix 214 prec pCOMMA + ";" : Reduce PatternField ::= Uident "=" Pattern + "as" : ShiftPrefix 215 prec pAS + "}" : Reduce PatternField ::= Uident "=" Pattern + State 239 [235.0] Kernel - [ProdParam ::= "{" PatternFields SemiSuffix "}" ":" · ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - Added - [ProdParamSymbol ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] - [ProdParamSymbol ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [PatternFields ::= PatternField ";" "_" ·, {";", "}"}] Actions - CIDENT : ShiftPrefix 158 - ISTRING : ShiftPrefix 118 - Gotos - ProdParamSymbol : 249 - State 235 [236.0] + ";" : Reduce PatternFields ::= PatternField ";" "_" + "}" : Reduce PatternFields ::= PatternField ";" "_" + State 240 [236.0] Kernel - [ProdParam ::= ModulePath "." "(" Pattern ")" · ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [PatternFields ::= PatternField ";" PatternFields ·, {";", "}"}] Actions - ":" : ShiftPrefix 250 - State 236 [237.0] + ";" : Reduce PatternFields ::= PatternField ";" PatternFields + "}" : Reduce PatternFields ::= PatternField ";" PatternFields + State 241 [237.0] Kernel - [ProdParam ::= ModulePath "." "{" PatternFields SemiSuffix · "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParam ::= "{" PatternFields SemiSuffix "}" · ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Actions - "}" : ShiftPrefix 251 - State 237 [238.0] + ":" : ShiftPrefix 251 + State 242 [238.0] Kernel - [Delimited ::= INDENT Codes DEDENT ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Pattern ::= Pattern · "as" Uident, {",", "as", ")"}] + [Pattern ::= Pattern · "," Pattern, {",", "as", ")"}] prec pCOMMA + [ProdParam ::= ModulePath "." "(" Pattern · ")" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Actions - "hocc" : Reduce Delimited ::= INDENT Codes DEDENT - "nonterm" : Reduce Delimited ::= INDENT Codes DEDENT - "epsilon" : Reduce Delimited ::= INDENT Codes DEDENT - "start" : Reduce Delimited ::= INDENT Codes DEDENT - "token" : Reduce Delimited ::= INDENT Codes DEDENT - "neutral" : Reduce Delimited ::= INDENT Codes DEDENT - "left" : Reduce Delimited ::= INDENT Codes DEDENT - "right" : Reduce Delimited ::= INDENT Codes DEDENT - "nonassoc" : Reduce Delimited ::= INDENT Codes DEDENT - "prec" : Reduce Delimited ::= INDENT Codes DEDENT - UIDENT : Reduce Delimited ::= INDENT Codes DEDENT - CIDENT : Reduce Delimited ::= INDENT Codes DEDENT - "_" : Reduce Delimited ::= INDENT Codes DEDENT - ISTRING : Reduce Delimited ::= INDENT Codes DEDENT - "::=" : Reduce Delimited ::= INDENT Codes DEDENT - "of" : Reduce Delimited ::= INDENT Codes DEDENT - ":" : Reduce Delimited ::= INDENT Codes DEDENT - "." : Reduce Delimited ::= INDENT Codes DEDENT - "->" : Reduce Delimited ::= INDENT Codes DEDENT - "|" : Reduce Delimited ::= INDENT Codes DEDENT - "<" : Reduce Delimited ::= INDENT Codes DEDENT - "=" : Reduce Delimited ::= INDENT Codes DEDENT - "," : Reduce Delimited ::= INDENT Codes DEDENT - ";" : Reduce Delimited ::= INDENT Codes DEDENT - "as" : Reduce Delimited ::= INDENT Codes DEDENT - LINE_DELIM : Reduce Delimited ::= INDENT Codes DEDENT - INDENT : Reduce Delimited ::= INDENT Codes DEDENT - DEDENT : Reduce Delimited ::= INDENT Codes DEDENT - "(" : Reduce Delimited ::= INDENT Codes DEDENT - ")" : Reduce Delimited ::= INDENT Codes DEDENT - "(|" : Reduce Delimited ::= INDENT Codes DEDENT - "|)" : Reduce Delimited ::= INDENT Codes DEDENT - "[" : Reduce Delimited ::= INDENT Codes DEDENT - "]" : Reduce Delimited ::= INDENT Codes DEDENT - "[|" : Reduce Delimited ::= INDENT Codes DEDENT - "|]" : Reduce Delimited ::= INDENT Codes DEDENT - "{" : Reduce Delimited ::= INDENT Codes DEDENT - "}" : Reduce Delimited ::= INDENT Codes DEDENT - OTHER_TOKEN : Reduce Delimited ::= INDENT Codes DEDENT - State 238 [239.0] + "," : ShiftPrefix 214 prec pCOMMA + "as" : ShiftPrefix 215 prec pAS + ")" : ShiftPrefix 252 + State 243 [239.0] Kernel - [CodesTl ::= Sep · Code CodesTl, {DEDENT, ")", "|)", "]", "|]", "}"}] + [ProdParam ::= ModulePath "." "{" PatternFields · SemiSuffix "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Added - [Uident ::= · "hocc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "nonterm", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "epsilon", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "start", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "token", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "neutral", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "left", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "right", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "nonassoc", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · "prec", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Uident ::= · UIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · INDENT Codes DEDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "(" Codes0 ")", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "(|" Codes0 "|)", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "[" Codes0 "]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "[|" Codes0 "|]", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Delimited ::= · "{" Codes0 "}", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · OTHER_TOKEN, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · Uident, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "_", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "::=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "as", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "of", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ":", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ".", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "->", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "<", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · "=", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [CodeToken ::= · ",", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] - [Code ::= · Delimited CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] - [Code ::= · CodeToken CodeTl, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + [SemiSuffix ::= · ";", {"}"}] + [SemiSuffix ::= ·, {"}"}] Actions - "hocc" : ShiftPrefix 72 - "nonterm" : ShiftPrefix 73 - "epsilon" : ShiftPrefix 74 - "start" : ShiftPrefix 75 - "token" : ShiftPrefix 76 - "neutral" : ShiftPrefix 77 - "left" : ShiftPrefix 78 - "right" : ShiftPrefix 79 - "nonassoc" : ShiftPrefix 80 - "prec" : ShiftPrefix 81 - UIDENT : ShiftPrefix 82 - CIDENT : ShiftPrefix 179 - "_" : ShiftPrefix 180 - ISTRING : ShiftPrefix 181 - "::=" : ShiftPrefix 182 - "of" : ShiftPrefix 183 - ":" : ShiftPrefix 184 - "." : ShiftPrefix 185 prec pDOT - "->" : ShiftPrefix 186 - "<" : ShiftPrefix 187 - "=" : ShiftPrefix 188 - "," : ShiftPrefix 189 prec pCOMMA - "as" : ShiftPrefix 190 prec pAS - INDENT : ShiftPrefix 191 - "(" : ShiftPrefix 192 - "(|" : ShiftPrefix 193 - "[" : ShiftPrefix 194 - "[|" : ShiftPrefix 195 - "{" : ShiftPrefix 196 - OTHER_TOKEN : ShiftPrefix 197 + ";" : ShiftPrefix 219 prec pSEMI + "}" : Reduce SemiSuffix ::= epsilon Gotos - Uident : 198 - Delimited : 199 - CodeToken : 200 - Code : 252 - State 239 [240.0] + SemiSuffix : 253 + State 244 [241.0] Kernel - [Codes ::= Code CodesTl ·, {DEDENT, ")", "|)", "]", "|]", "}"}] + [ProdsTl ::= "|" Prod ProdsTl ·, {"->", LINE_DELIM, DEDENT}] Actions - DEDENT : Reduce Codes ::= Code CodesTl - ")" : Reduce Codes ::= Code CodesTl - "|)" : Reduce Codes ::= Code CodesTl - "]" : Reduce Codes ::= Code CodesTl - "|]" : Reduce Codes ::= Code CodesTl - "}" : Reduce Codes ::= Code CodesTl - State 240 [241.0] + "->" : Reduce ProdsTl ::= "|" Prod ProdsTl + LINE_DELIM : Reduce ProdsTl ::= "|" Prod ProdsTl + DEDENT : Reduce ProdsTl ::= "|" Prod ProdsTl + State 245 [242.0] Kernel - [Delimited ::= "(" Codes0 ")" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [CodesTl ::= Sep Code CodesTl ·, {DEDENT, ")", "|)", "]", "|]", "}"}] Actions - "hocc" : Reduce Delimited ::= "(" Codes0 ")" - "nonterm" : Reduce Delimited ::= "(" Codes0 ")" - "epsilon" : Reduce Delimited ::= "(" Codes0 ")" - "start" : Reduce Delimited ::= "(" Codes0 ")" - "token" : Reduce Delimited ::= "(" Codes0 ")" - "neutral" : Reduce Delimited ::= "(" Codes0 ")" - "left" : Reduce Delimited ::= "(" Codes0 ")" - "right" : Reduce Delimited ::= "(" Codes0 ")" - "nonassoc" : Reduce Delimited ::= "(" Codes0 ")" - "prec" : Reduce Delimited ::= "(" Codes0 ")" - UIDENT : Reduce Delimited ::= "(" Codes0 ")" - CIDENT : Reduce Delimited ::= "(" Codes0 ")" - "_" : Reduce Delimited ::= "(" Codes0 ")" - ISTRING : Reduce Delimited ::= "(" Codes0 ")" - "::=" : Reduce Delimited ::= "(" Codes0 ")" - "of" : Reduce Delimited ::= "(" Codes0 ")" - ":" : Reduce Delimited ::= "(" Codes0 ")" - "." : Reduce Delimited ::= "(" Codes0 ")" - "->" : Reduce Delimited ::= "(" Codes0 ")" - "|" : Reduce Delimited ::= "(" Codes0 ")" - "<" : Reduce Delimited ::= "(" Codes0 ")" - "=" : Reduce Delimited ::= "(" Codes0 ")" - "," : Reduce Delimited ::= "(" Codes0 ")" - ";" : Reduce Delimited ::= "(" Codes0 ")" - "as" : Reduce Delimited ::= "(" Codes0 ")" - LINE_DELIM : Reduce Delimited ::= "(" Codes0 ")" - INDENT : Reduce Delimited ::= "(" Codes0 ")" - DEDENT : Reduce Delimited ::= "(" Codes0 ")" - "(" : Reduce Delimited ::= "(" Codes0 ")" - ")" : Reduce Delimited ::= "(" Codes0 ")" - "(|" : Reduce Delimited ::= "(" Codes0 ")" - "|)" : Reduce Delimited ::= "(" Codes0 ")" - "[" : Reduce Delimited ::= "(" Codes0 ")" - "]" : Reduce Delimited ::= "(" Codes0 ")" - "[|" : Reduce Delimited ::= "(" Codes0 ")" - "|]" : Reduce Delimited ::= "(" Codes0 ")" - "{" : Reduce Delimited ::= "(" Codes0 ")" - "}" : Reduce Delimited ::= "(" Codes0 ")" - OTHER_TOKEN : Reduce Delimited ::= "(" Codes0 ")" - State 241 [242.0] + DEDENT : Reduce CodesTl ::= Sep Code CodesTl + ")" : Reduce CodesTl ::= Sep Code CodesTl + "|)" : Reduce CodesTl ::= Sep Code CodesTl + "]" : Reduce CodesTl ::= Sep Code CodesTl + "|]" : Reduce CodesTl ::= Sep Code CodesTl + "}" : Reduce CodesTl ::= Sep Code CodesTl + State 246 [243.0] Kernel - [Delimited ::= "(|" Codes0 "|)" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [ReductionsTl ::= "|" Reduction ReductionsTl ·, {LINE_DELIM, DEDENT}] Actions - "hocc" : Reduce Delimited ::= "(|" Codes0 "|)" - "nonterm" : Reduce Delimited ::= "(|" Codes0 "|)" - "epsilon" : Reduce Delimited ::= "(|" Codes0 "|)" - "start" : Reduce Delimited ::= "(|" Codes0 "|)" - "token" : Reduce Delimited ::= "(|" Codes0 "|)" - "neutral" : Reduce Delimited ::= "(|" Codes0 "|)" - "left" : Reduce Delimited ::= "(|" Codes0 "|)" - "right" : Reduce Delimited ::= "(|" Codes0 "|)" - "nonassoc" : Reduce Delimited ::= "(|" Codes0 "|)" - "prec" : Reduce Delimited ::= "(|" Codes0 "|)" - UIDENT : Reduce Delimited ::= "(|" Codes0 "|)" - CIDENT : Reduce Delimited ::= "(|" Codes0 "|)" - "_" : Reduce Delimited ::= "(|" Codes0 "|)" - ISTRING : Reduce Delimited ::= "(|" Codes0 "|)" - "::=" : Reduce Delimited ::= "(|" Codes0 "|)" - "of" : Reduce Delimited ::= "(|" Codes0 "|)" - ":" : Reduce Delimited ::= "(|" Codes0 "|)" - "." : Reduce Delimited ::= "(|" Codes0 "|)" - "->" : Reduce Delimited ::= "(|" Codes0 "|)" - "|" : Reduce Delimited ::= "(|" Codes0 "|)" - "<" : Reduce Delimited ::= "(|" Codes0 "|)" - "=" : Reduce Delimited ::= "(|" Codes0 "|)" - "," : Reduce Delimited ::= "(|" Codes0 "|)" - ";" : Reduce Delimited ::= "(|" Codes0 "|)" - "as" : Reduce Delimited ::= "(|" Codes0 "|)" - LINE_DELIM : Reduce Delimited ::= "(|" Codes0 "|)" - INDENT : Reduce Delimited ::= "(|" Codes0 "|)" - DEDENT : Reduce Delimited ::= "(|" Codes0 "|)" - "(" : Reduce Delimited ::= "(|" Codes0 "|)" - ")" : Reduce Delimited ::= "(|" Codes0 "|)" - "(|" : Reduce Delimited ::= "(|" Codes0 "|)" - "|)" : Reduce Delimited ::= "(|" Codes0 "|)" - "[" : Reduce Delimited ::= "(|" Codes0 "|)" - "]" : Reduce Delimited ::= "(|" Codes0 "|)" - "[|" : Reduce Delimited ::= "(|" Codes0 "|)" - "|]" : Reduce Delimited ::= "(|" Codes0 "|)" - "{" : Reduce Delimited ::= "(|" Codes0 "|)" - "}" : Reduce Delimited ::= "(|" Codes0 "|)" - OTHER_TOKEN : Reduce Delimited ::= "(|" Codes0 "|)" - State 242 [243.0] + LINE_DELIM : Reduce ReductionsTl ::= "|" Reduction ReductionsTl + DEDENT : Reduce ReductionsTl ::= "|" Reduction ReductionsTl + State 247 [244.0] Kernel - [Delimited ::= "[" Codes0 "]" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Pattern ::= "{" PatternFields SemiSuffix "}" ·, {",", ";", "as", ")", "}"}] Actions - "hocc" : Reduce Delimited ::= "[" Codes0 "]" - "nonterm" : Reduce Delimited ::= "[" Codes0 "]" - "epsilon" : Reduce Delimited ::= "[" Codes0 "]" - "start" : Reduce Delimited ::= "[" Codes0 "]" - "token" : Reduce Delimited ::= "[" Codes0 "]" - "neutral" : Reduce Delimited ::= "[" Codes0 "]" - "left" : Reduce Delimited ::= "[" Codes0 "]" - "right" : Reduce Delimited ::= "[" Codes0 "]" - "nonassoc" : Reduce Delimited ::= "[" Codes0 "]" - "prec" : Reduce Delimited ::= "[" Codes0 "]" - UIDENT : Reduce Delimited ::= "[" Codes0 "]" - CIDENT : Reduce Delimited ::= "[" Codes0 "]" - "_" : Reduce Delimited ::= "[" Codes0 "]" - ISTRING : Reduce Delimited ::= "[" Codes0 "]" - "::=" : Reduce Delimited ::= "[" Codes0 "]" - "of" : Reduce Delimited ::= "[" Codes0 "]" - ":" : Reduce Delimited ::= "[" Codes0 "]" - "." : Reduce Delimited ::= "[" Codes0 "]" - "->" : Reduce Delimited ::= "[" Codes0 "]" - "|" : Reduce Delimited ::= "[" Codes0 "]" - "<" : Reduce Delimited ::= "[" Codes0 "]" - "=" : Reduce Delimited ::= "[" Codes0 "]" - "," : Reduce Delimited ::= "[" Codes0 "]" - ";" : Reduce Delimited ::= "[" Codes0 "]" - "as" : Reduce Delimited ::= "[" Codes0 "]" - LINE_DELIM : Reduce Delimited ::= "[" Codes0 "]" - INDENT : Reduce Delimited ::= "[" Codes0 "]" - DEDENT : Reduce Delimited ::= "[" Codes0 "]" - "(" : Reduce Delimited ::= "[" Codes0 "]" - ")" : Reduce Delimited ::= "[" Codes0 "]" - "(|" : Reduce Delimited ::= "[" Codes0 "]" - "|)" : Reduce Delimited ::= "[" Codes0 "]" - "[" : Reduce Delimited ::= "[" Codes0 "]" - "]" : Reduce Delimited ::= "[" Codes0 "]" - "[|" : Reduce Delimited ::= "[" Codes0 "]" - "|]" : Reduce Delimited ::= "[" Codes0 "]" - "{" : Reduce Delimited ::= "[" Codes0 "]" - "}" : Reduce Delimited ::= "[" Codes0 "]" - OTHER_TOKEN : Reduce Delimited ::= "[" Codes0 "]" - State 243 [244.0] + "," : Reduce Pattern ::= "{" PatternFields SemiSuffix "}" + ";" : Reduce Pattern ::= "{" PatternFields SemiSuffix "}" + "as" : Reduce Pattern ::= "{" PatternFields SemiSuffix "}" + ")" : Reduce Pattern ::= "{" PatternFields SemiSuffix "}" + "}" : Reduce Pattern ::= "{" PatternFields SemiSuffix "}" + State 248 [245.0] Kernel - [Delimited ::= "[|" Codes0 "|]" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Pattern ::= Pattern · "as" Uident, {",", "as", ")"}] + [Pattern ::= ModulePath "." "(" Pattern · ")", {",", ";", "as", ")", "}"}] + [Pattern ::= Pattern · "," Pattern, {",", "as", ")"}] prec pCOMMA Actions - "hocc" : Reduce Delimited ::= "[|" Codes0 "|]" - "nonterm" : Reduce Delimited ::= "[|" Codes0 "|]" - "epsilon" : Reduce Delimited ::= "[|" Codes0 "|]" - "start" : Reduce Delimited ::= "[|" Codes0 "|]" - "token" : Reduce Delimited ::= "[|" Codes0 "|]" - "neutral" : Reduce Delimited ::= "[|" Codes0 "|]" - "left" : Reduce Delimited ::= "[|" Codes0 "|]" - "right" : Reduce Delimited ::= "[|" Codes0 "|]" - "nonassoc" : Reduce Delimited ::= "[|" Codes0 "|]" - "prec" : Reduce Delimited ::= "[|" Codes0 "|]" - UIDENT : Reduce Delimited ::= "[|" Codes0 "|]" - CIDENT : Reduce Delimited ::= "[|" Codes0 "|]" - "_" : Reduce Delimited ::= "[|" Codes0 "|]" - ISTRING : Reduce Delimited ::= "[|" Codes0 "|]" - "::=" : Reduce Delimited ::= "[|" Codes0 "|]" - "of" : Reduce Delimited ::= "[|" Codes0 "|]" - ":" : Reduce Delimited ::= "[|" Codes0 "|]" - "." : Reduce Delimited ::= "[|" Codes0 "|]" - "->" : Reduce Delimited ::= "[|" Codes0 "|]" - "|" : Reduce Delimited ::= "[|" Codes0 "|]" - "<" : Reduce Delimited ::= "[|" Codes0 "|]" - "=" : Reduce Delimited ::= "[|" Codes0 "|]" - "," : Reduce Delimited ::= "[|" Codes0 "|]" - ";" : Reduce Delimited ::= "[|" Codes0 "|]" - "as" : Reduce Delimited ::= "[|" Codes0 "|]" - LINE_DELIM : Reduce Delimited ::= "[|" Codes0 "|]" - INDENT : Reduce Delimited ::= "[|" Codes0 "|]" - DEDENT : Reduce Delimited ::= "[|" Codes0 "|]" - "(" : Reduce Delimited ::= "[|" Codes0 "|]" - ")" : Reduce Delimited ::= "[|" Codes0 "|]" - "(|" : Reduce Delimited ::= "[|" Codes0 "|]" - "|)" : Reduce Delimited ::= "[|" Codes0 "|]" - "[" : Reduce Delimited ::= "[|" Codes0 "|]" - "]" : Reduce Delimited ::= "[|" Codes0 "|]" - "[|" : Reduce Delimited ::= "[|" Codes0 "|]" - "|]" : Reduce Delimited ::= "[|" Codes0 "|]" - "{" : Reduce Delimited ::= "[|" Codes0 "|]" - "}" : Reduce Delimited ::= "[|" Codes0 "|]" - OTHER_TOKEN : Reduce Delimited ::= "[|" Codes0 "|]" - State 244 [245.0] + "," : ShiftPrefix 214 prec pCOMMA + "as" : ShiftPrefix 215 prec pAS + ")" : ShiftPrefix 254 + State 249 [246.0] Kernel - [Delimited ::= "{" Codes0 "}" ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "|", "<", "=", ",", ";", "as", LINE_DELIM, INDENT, DEDENT, "(", ")", "(|", "|)", "[", "]", "[|", "|]", "{", "}", OTHER_TOKEN}] + [Pattern ::= ModulePath "." "{" PatternFields · SemiSuffix "}", {",", ";", "as", ")", "}"}] + Added + [SemiSuffix ::= · ";", {"}"}] + [SemiSuffix ::= ·, {"}"}] Actions - "hocc" : Reduce Delimited ::= "{" Codes0 "}" - "nonterm" : Reduce Delimited ::= "{" Codes0 "}" - "epsilon" : Reduce Delimited ::= "{" Codes0 "}" - "start" : Reduce Delimited ::= "{" Codes0 "}" - "token" : Reduce Delimited ::= "{" Codes0 "}" - "neutral" : Reduce Delimited ::= "{" Codes0 "}" - "left" : Reduce Delimited ::= "{" Codes0 "}" - "right" : Reduce Delimited ::= "{" Codes0 "}" - "nonassoc" : Reduce Delimited ::= "{" Codes0 "}" - "prec" : Reduce Delimited ::= "{" Codes0 "}" - UIDENT : Reduce Delimited ::= "{" Codes0 "}" - CIDENT : Reduce Delimited ::= "{" Codes0 "}" - "_" : Reduce Delimited ::= "{" Codes0 "}" - ISTRING : Reduce Delimited ::= "{" Codes0 "}" - "::=" : Reduce Delimited ::= "{" Codes0 "}" - "of" : Reduce Delimited ::= "{" Codes0 "}" - ":" : Reduce Delimited ::= "{" Codes0 "}" - "." : Reduce Delimited ::= "{" Codes0 "}" - "->" : Reduce Delimited ::= "{" Codes0 "}" - "|" : Reduce Delimited ::= "{" Codes0 "}" - "<" : Reduce Delimited ::= "{" Codes0 "}" - "=" : Reduce Delimited ::= "{" Codes0 "}" - "," : Reduce Delimited ::= "{" Codes0 "}" - ";" : Reduce Delimited ::= "{" Codes0 "}" - "as" : Reduce Delimited ::= "{" Codes0 "}" - LINE_DELIM : Reduce Delimited ::= "{" Codes0 "}" - INDENT : Reduce Delimited ::= "{" Codes0 "}" - DEDENT : Reduce Delimited ::= "{" Codes0 "}" - "(" : Reduce Delimited ::= "{" Codes0 "}" - ")" : Reduce Delimited ::= "{" Codes0 "}" - "(|" : Reduce Delimited ::= "{" Codes0 "}" - "|)" : Reduce Delimited ::= "{" Codes0 "}" - "[" : Reduce Delimited ::= "{" Codes0 "}" - "]" : Reduce Delimited ::= "{" Codes0 "}" - "[|" : Reduce Delimited ::= "{" Codes0 "}" - "|]" : Reduce Delimited ::= "{" Codes0 "}" - "{" : Reduce Delimited ::= "{" Codes0 "}" - "}" : Reduce Delimited ::= "{" Codes0 "}" - OTHER_TOKEN : Reduce Delimited ::= "{" Codes0 "}" - State 245 [246.0] + ";" : ShiftPrefix 219 prec pSEMI + "}" : Reduce SemiSuffix ::= epsilon + Gotos + SemiSuffix : 255 + State 250 [247.0] Kernel - [CodeTl ::= Delimited CodeTl ·, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + [ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Actions - "|" : Reduce CodeTl ::= Delimited CodeTl - ";" : Reduce CodeTl ::= Delimited CodeTl - LINE_DELIM : Reduce CodeTl ::= Delimited CodeTl - DEDENT : Reduce CodeTl ::= Delimited CodeTl - ")" : Reduce CodeTl ::= Delimited CodeTl - "|)" : Reduce CodeTl ::= Delimited CodeTl - "]" : Reduce CodeTl ::= Delimited CodeTl - "|]" : Reduce CodeTl ::= Delimited CodeTl - "}" : Reduce CodeTl ::= Delimited CodeTl - State 246 [247.0] + "hocc" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol + "nonterm" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol + "epsilon" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol + "start" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol + "token" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol + "neutral" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol + "left" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol + "right" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol + "nonassoc" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol + "prec" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol + UIDENT : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol + CIDENT : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol + "_" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol + ISTRING : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol + "->" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol + "|" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol + LINE_DELIM : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol + DEDENT : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol + "(" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol + "{" : Reduce ProdParam ::= "(" Pattern ")" ":" ProdParamSymbol + State 251 [248.0] Kernel - [CodeTl ::= CodeToken CodeTl ·, {"|", ";", LINE_DELIM, DEDENT, ")", "|)", "]", "|]", "}"}] + [ProdParam ::= "{" PatternFields SemiSuffix "}" ":" · ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + Added + [ProdParamSymbol ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + [ProdParamSymbol ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Actions - "|" : Reduce CodeTl ::= CodeToken CodeTl - ";" : Reduce CodeTl ::= CodeToken CodeTl - LINE_DELIM : Reduce CodeTl ::= CodeToken CodeTl - DEDENT : Reduce CodeTl ::= CodeToken CodeTl - ")" : Reduce CodeTl ::= CodeToken CodeTl - "|)" : Reduce CodeTl ::= CodeToken CodeTl - "]" : Reduce CodeTl ::= CodeToken CodeTl - "|]" : Reduce CodeTl ::= CodeToken CodeTl - "}" : Reduce CodeTl ::= CodeToken CodeTl - State 247 [248.0] + CIDENT : ShiftPrefix 207 + ISTRING : ShiftPrefix 141 + Gotos + ProdParamSymbol : 256 + State 252 [249.0] + Kernel + [ProdParam ::= ModulePath "." "(" Pattern ")" · ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + Actions + ":" : ShiftPrefix 257 + State 253 [250.0] + Kernel + [ProdParam ::= ModulePath "." "{" PatternFields SemiSuffix · "}" ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] + Actions + "}" : ShiftPrefix 258 + State 254 [251.0] Kernel [Pattern ::= ModulePath "." "(" Pattern ")" ·, {",", ";", "as", ")", "}"}] Actions @@ -7420,12 +7861,12 @@ APLR(1) States "as" : Reduce Pattern ::= ModulePath "." "(" Pattern ")" ")" : Reduce Pattern ::= ModulePath "." "(" Pattern ")" "}" : Reduce Pattern ::= ModulePath "." "(" Pattern ")" - State 248 [249.0] + State 255 [252.0] Kernel [Pattern ::= ModulePath "." "{" PatternFields SemiSuffix · "}", {",", ";", "as", ")", "}"}] Actions - "}" : ShiftPrefix 253 - State 249 [250.0] + "}" : ShiftPrefix 259 + State 256 [253.0] Kernel [ProdParam ::= "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Actions @@ -7449,45 +7890,23 @@ APLR(1) States DEDENT : Reduce ProdParam ::= "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol "(" : Reduce ProdParam ::= "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol "{" : Reduce ProdParam ::= "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol - State 250 [251.0] + State 257 [254.0] Kernel [ProdParam ::= ModulePath "." "(" Pattern ")" ":" · ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Added [ProdParamSymbol ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] [ProdParamSymbol ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Actions - CIDENT : ShiftPrefix 158 - ISTRING : ShiftPrefix 118 + CIDENT : ShiftPrefix 207 + ISTRING : ShiftPrefix 141 Gotos - ProdParamSymbol : 254 - State 251 [252.0] + ProdParamSymbol : 260 + State 258 [255.0] Kernel [ProdParam ::= ModulePath "." "{" PatternFields SemiSuffix "}" · ":" ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Actions - ":" : ShiftPrefix 255 - State 252 [253.0] - Kernel - [CodesTl ::= Sep Code · CodesTl, {DEDENT, ")", "|)", "]", "|]", "}"}] - Added - [Sep ::= · LINE_DELIM, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Sep ::= · ";", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [Sep ::= · "|", {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "::=", "of", ":", ".", "->", "<", "=", ",", "as", INDENT, "(", "(|", "[", "[|", "{", OTHER_TOKEN}] - [CodesTl ::= · Sep Code CodesTl, {DEDENT, ")", "|)", "]", "|]", "}"}] - [CodesTl ::= ·, {DEDENT, ")", "|)", "]", "|]", "}"}] - Actions - "|" : ShiftPrefix 20 - ";" : ShiftPrefix 24 prec pSEMI - LINE_DELIM : ShiftPrefix 26 - DEDENT : Reduce CodesTl ::= epsilon - ")" : Reduce CodesTl ::= epsilon - "|)" : Reduce CodesTl ::= epsilon - "]" : Reduce CodesTl ::= epsilon - "|]" : Reduce CodesTl ::= epsilon - "}" : Reduce CodesTl ::= epsilon - Gotos - Sep : 238 - CodesTl : 256 - State 253 [254.0] + ":" : ShiftPrefix 261 + State 259 [256.0] Kernel [Pattern ::= ModulePath "." "{" PatternFields SemiSuffix "}" ·, {",", ";", "as", ")", "}"}] Actions @@ -7496,7 +7915,7 @@ APLR(1) States "as" : Reduce Pattern ::= ModulePath "." "{" PatternFields SemiSuffix "}" ")" : Reduce Pattern ::= ModulePath "." "{" PatternFields SemiSuffix "}" "}" : Reduce Pattern ::= ModulePath "." "{" PatternFields SemiSuffix "}" - State 254 [255.0] + State 260 [257.0] Kernel [ProdParam ::= ModulePath "." "(" Pattern ")" ":" ProdParamSymbol ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Actions @@ -7520,28 +7939,18 @@ APLR(1) States DEDENT : Reduce ProdParam ::= ModulePath "." "(" Pattern ")" ":" ProdParamSymbol "(" : Reduce ProdParam ::= ModulePath "." "(" Pattern ")" ":" ProdParamSymbol "{" : Reduce ProdParam ::= ModulePath "." "(" Pattern ")" ":" ProdParamSymbol - State 255 [256.0] + State 261 [258.0] Kernel [ProdParam ::= ModulePath "." "{" PatternFields SemiSuffix "}" ":" · ProdParamSymbol, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Added [ProdParamSymbol ::= · CIDENT, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] [ProdParamSymbol ::= · ISTRING, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Actions - CIDENT : ShiftPrefix 158 - ISTRING : ShiftPrefix 118 + CIDENT : ShiftPrefix 207 + ISTRING : ShiftPrefix 141 Gotos - ProdParamSymbol : 257 - State 256 [257.0] - Kernel - [CodesTl ::= Sep Code CodesTl ·, {DEDENT, ")", "|)", "]", "|]", "}"}] - Actions - DEDENT : Reduce CodesTl ::= Sep Code CodesTl - ")" : Reduce CodesTl ::= Sep Code CodesTl - "|)" : Reduce CodesTl ::= Sep Code CodesTl - "]" : Reduce CodesTl ::= Sep Code CodesTl - "|]" : Reduce CodesTl ::= Sep Code CodesTl - "}" : Reduce CodesTl ::= Sep Code CodesTl - State 257 [258.0] + ProdParamSymbol : 262 + State 262 [259.0] Kernel [ProdParam ::= ModulePath "." "{" PatternFields SemiSuffix "}" ":" ProdParamSymbol ·, {"hocc", "nonterm", "epsilon", "start", "token", "neutral", "left", "right", "nonassoc", "prec", UIDENT, CIDENT, "_", ISTRING, "->", "|", LINE_DELIM, DEDENT, "(", "{"}] Actions diff --git a/bootstrap/test/hocc/Hocc.hmh b/bootstrap/test/hocc/Hocc.hmh index 4f8b297d1..57dcc889e 100644 --- a/bootstrap/test/hocc/Hocc.hmh +++ b/bootstrap/test/hocc/Hocc.hmh @@ -1,4 +1,6 @@ hocc + neutral pCodeTlEpsilon + neutral pPrec < pCodeTlEpsilon neutral pCIDENT left pDOT left pCOMMA < pCIDENT @@ -13,7 +15,7 @@ hocc token LEFT "left" token RIGHT "right" token NONASSOC "nonassoc" - token PREC "prec" + token PREC "prec" prec pPrec token UIDENT token CIDENT token USCORE "_" @@ -73,16 +75,16 @@ hocc | CIDENT "." SymbolTypeQualifier | epsilon nonterm SymbolType ::= "of" SymbolTypeQualifier Uident - nonterm SymbolType0 ::= - | SymbolType - | epsilon nonterm PrecRef ::= | "prec" Uident | epsilon - nonterm TokenAlias ::= + nonterm Alias ::= | ISTRING | epsilon - nonterm Token ::= "token" CIDENT TokenAlias SymbolType0 PrecRef + nonterm TokenType ::= + | SymbolType Code + | epsilon + nonterm Token ::= "token" CIDENT Alias TokenType PrecRef nonterm Sep ::= | LINE_DELIM | ";" @@ -119,7 +121,7 @@ hocc nonterm CodeTl ::= | Delimited CodeTl | CodeToken CodeTl - | epsilon + | epsilon prec pCodeTlEpsilon nonterm Code ::= | Delimited CodeTl | CodeToken CodeTl