feat/schema: additional literal types

This commit is contained in:
mae
2026-01-28 02:08:12 -06:00
parent 11fcbeb31a
commit dc87bef1c2
11 changed files with 7007 additions and 1484 deletions

View File

@@ -17,7 +17,10 @@ var actionTab = actionTable{
nil, // INVALID
nil, // ␚
nil, // string
nil, // number
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
shift(4), // (
nil, // )
@@ -30,7 +33,10 @@ var actionTab = actionTable{
nil, // INVALID
accept(true), // ␚
nil, // string
nil, // number
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
nil, // (
nil, // )
@@ -43,7 +49,10 @@ var actionTab = actionTable{
nil, // INVALID
reduce(1), // ␚, reduce: Schema
nil, // string
nil, // number
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
shift(4), // (
nil, // )
@@ -56,7 +65,10 @@ var actionTab = actionTable{
nil, // INVALID
reduce(2), // ␚, reduce: ExprList
nil, // string
nil, // number
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
reduce(2), // (, reduce: ExprList
nil, // )
@@ -69,7 +81,10 @@ var actionTab = actionTable{
nil, // INVALID
nil, // ␚
nil, // string
nil, // number
nil, // rune
nil, // int
nil, // float
nil, // imaginary
shift(6), // name
nil, // (
nil, // )
@@ -82,7 +97,10 @@ var actionTab = actionTable{
nil, // INVALID
reduce(3), // ␚, reduce: ExprList
nil, // string
nil, // number
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
reduce(3), // (, reduce: ExprList
nil, // )
@@ -95,10 +113,13 @@ var actionTab = actionTable{
nil, // INVALID
nil, // ␚
shift(10), // string
shift(11), // number
shift(12), // name
shift(13), // (
shift(14), // )
shift(11), // rune
shift(12), // int
shift(13), // float
shift(14), // imaginary
shift(15), // name
shift(16), // (
shift(17), // )
nil, // .
},
},
@@ -108,9 +129,12 @@ var actionTab = actionTable{
nil, // INVALID
nil, // ␚
shift(10), // string
shift(11), // number
shift(12), // name
shift(13), // (
shift(11), // rune
shift(12), // int
shift(13), // float
shift(14), // imaginary
shift(15), // name
shift(16), // (
nil, // )
nil, // .
},
@@ -118,14 +142,17 @@ var actionTab = actionTable{
actionRow{ // S8
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
reduce(9), // string, reduce: Val
reduce(9), // number, reduce: Val
reduce(9), // name, reduce: Val
reduce(9), // (, reduce: Val
reduce(9), // ), reduce: Val
nil, // .
nil, // INVALID
nil, // ␚
reduce(12), // string, reduce: Val
reduce(12), // rune, reduce: Val
reduce(12), // int, reduce: Val
reduce(12), // float, reduce: Val
reduce(12), // imaginary, reduce: Val
reduce(12), // name, reduce: Val
reduce(12), // (, reduce: Val
reduce(12), // ), reduce: Val
nil, // .
},
},
actionRow{ // S9
@@ -133,11 +160,14 @@ var actionTab = actionTable{
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
shift(19), // string
shift(20), // number
shift(21), // name
shift(22), // (
shift(23), // )
shift(22), // string
shift(23), // rune
shift(24), // int
shift(25), // float
shift(26), // imaginary
shift(27), // name
shift(28), // (
shift(29), // )
nil, // .
},
},
@@ -147,7 +177,10 @@ var actionTab = actionTable{
nil, // INVALID
nil, // ␚
reduce(6), // string, reduce: Val
reduce(6), // number, reduce: Val
reduce(6), // rune, reduce: Val
reduce(6), // int, reduce: Val
reduce(6), // float, reduce: Val
reduce(6), // imaginary, reduce: Val
reduce(6), // name, reduce: Val
reduce(6), // (, reduce: Val
reduce(6), // ), reduce: Val
@@ -160,7 +193,10 @@ var actionTab = actionTable{
nil, // INVALID
nil, // ␚
reduce(7), // string, reduce: Val
reduce(7), // number, reduce: Val
reduce(7), // rune, reduce: Val
reduce(7), // int, reduce: Val
reduce(7), // float, reduce: Val
reduce(7), // imaginary, reduce: Val
reduce(7), // name, reduce: Val
reduce(7), // (, reduce: Val
reduce(7), // ), reduce: Val
@@ -173,7 +209,10 @@ var actionTab = actionTable{
nil, // INVALID
nil, // ␚
reduce(8), // string, reduce: Val
reduce(8), // number, reduce: Val
reduce(8), // rune, reduce: Val
reduce(8), // int, reduce: Val
reduce(8), // float, reduce: Val
reduce(8), // imaginary, reduce: Val
reduce(8), // name, reduce: Val
reduce(8), // (, reduce: Val
reduce(8), // ), reduce: Val
@@ -185,38 +224,47 @@ var actionTab = actionTable{
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
nil, // string
nil, // number
shift(24), // name
nil, // (
nil, // )
shift(25), // .
reduce(9), // string, reduce: Val
reduce(9), // rune, reduce: Val
reduce(9), // int, reduce: Val
reduce(9), // float, reduce: Val
reduce(9), // imaginary, reduce: Val
reduce(9), // name, reduce: Val
reduce(9), // (, reduce: Val
reduce(9), // ), reduce: Val
nil, // .
},
},
actionRow{ // S14
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
reduce(12), // ␚, reduce: Expr
nil, // string
nil, // number
nil, // name
reduce(12), // (, reduce: Expr
nil, // )
nil, // ␚
reduce(10), // string, reduce: Val
reduce(10), // rune, reduce: Val
reduce(10), // int, reduce: Val
reduce(10), // float, reduce: Val
reduce(10), // imaginary, reduce: Val
reduce(10), // name, reduce: Val
reduce(10), // (, reduce: Val
reduce(10), // ), reduce: Val
nil, // .
},
},
actionRow{ // S15
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
shift(10), // string
shift(11), // number
shift(12), // name
shift(13), // (
shift(27), // )
nil, // .
nil, // INVALID
nil, // ␚
reduce(11), // string, reduce: Val
reduce(11), // rune, reduce: Val
reduce(11), // int, reduce: Val
reduce(11), // float, reduce: Val
reduce(11), // imaginary, reduce: Val
reduce(11), // name, reduce: Val
reduce(11), // (, reduce: Val
reduce(11), // ), reduce: Val
nil, // .
},
},
actionRow{ // S16
@@ -224,25 +272,31 @@ var actionTab = actionTable{
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
reduce(4), // string, reduce: ValList
reduce(4), // number, reduce: ValList
reduce(4), // name, reduce: ValList
reduce(4), // (, reduce: ValList
reduce(4), // ), reduce: ValList
nil, // .
nil, // string
nil, // rune
nil, // int
nil, // float
nil, // imaginary
shift(30), // name
nil, // (
nil, // )
shift(31), // .
},
},
actionRow{ // S17
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
nil, // string
nil, // number
nil, // name
nil, // (
reduce(9), // ), reduce: Val
nil, // .
nil, // INVALID
reduce(15), // ␚, reduce: Expr
nil, // string
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
reduce(15), // (, reduce: Expr
nil, // )
nil, // .
},
},
actionRow{ // S18
@@ -250,11 +304,14 @@ var actionTab = actionTable{
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
nil, // string
nil, // number
nil, // name
nil, // (
shift(28), // )
shift(10), // string
shift(11), // rune
shift(12), // int
shift(13), // float
shift(14), // imaginary
shift(15), // name
shift(16), // (
shift(33), // )
nil, // .
},
},
@@ -263,25 +320,31 @@ var actionTab = actionTable{
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
nil, // string
nil, // number
nil, // name
nil, // (
reduce(6), // ), reduce: Val
reduce(4), // string, reduce: ValList
reduce(4), // rune, reduce: ValList
reduce(4), // int, reduce: ValList
reduce(4), // float, reduce: ValList
reduce(4), // imaginary, reduce: ValList
reduce(4), // name, reduce: ValList
reduce(4), // (, reduce: ValList
reduce(4), // ), reduce: ValList
nil, // .
},
},
actionRow{ // S20
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
nil, // string
nil, // number
nil, // name
nil, // (
reduce(7), // ), reduce: Val
nil, // .
nil, // INVALID
nil, // ␚
nil, // string
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
nil, // (
reduce(12), // ), reduce: Val
nil, // .
},
},
actionRow{ // S21
@@ -290,10 +353,13 @@ var actionTab = actionTable{
nil, // INVALID
nil, // ␚
nil, // string
nil, // number
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
nil, // (
reduce(8), // ), reduce: Val
shift(34), // )
nil, // .
},
},
@@ -303,24 +369,30 @@ var actionTab = actionTable{
nil, // INVALID
nil, // ␚
nil, // string
nil, // number
shift(29), // name
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
nil, // (
nil, // )
shift(30), // .
reduce(6), // ), reduce: Val
nil, // .
},
},
actionRow{ // S23
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
reduce(11), // ␚, reduce: Expr
nil, // string
nil, // number
nil, // name
reduce(11), // (, reduce: Expr
nil, // )
nil, // .
nil, // INVALID
nil, // ␚
nil, // string
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
nil, // (
reduce(7), // ), reduce: Val
nil, // .
},
},
actionRow{ // S24
@@ -328,11 +400,14 @@ var actionTab = actionTable{
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
shift(10), // string
shift(11), // number
shift(12), // name
shift(13), // (
shift(32), // )
nil, // string
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
nil, // (
reduce(8), // ), reduce: Val
nil, // .
},
},
@@ -341,64 +416,79 @@ var actionTab = actionTable{
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
shift(10), // string
shift(11), // number
shift(12), // name
shift(13), // (
nil, // )
nil, // string
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
nil, // (
reduce(9), // ), reduce: Val
nil, // .
},
},
actionRow{ // S26
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
reduce(5), // string, reduce: ValList
reduce(5), // number, reduce: ValList
reduce(5), // name, reduce: ValList
reduce(5), // (, reduce: ValList
reduce(5), // ), reduce: ValList
nil, // .
nil, // INVALID
nil, // ␚
nil, // string
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
nil, // (
reduce(10), // ), reduce: Val
nil, // .
},
},
actionRow{ // S27
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
reduce(13), // ␚, reduce: Expr
nil, // ␚
nil, // string
nil, // number
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
reduce(13), // (, reduce: Expr
nil, // )
nil, // (
reduce(11), // ), reduce: Val
nil, // .
},
},
actionRow{ // S28
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
reduce(10), // ␚, reduce: Expr
nil, // string
nil, // number
nil, // name
reduce(10), // (, reduce: Expr
nil, // )
nil, // .
nil, // INVALID
nil, // ␚
nil, // string
nil, // rune
nil, // int
nil, // float
nil, // imaginary
shift(35), // name
nil, // (
nil, // )
shift(36), // .
},
},
actionRow{ // S29
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
shift(10), // string
shift(11), // number
shift(12), // name
shift(13), // (
shift(35), // )
nil, // .
nil, // INVALID
reduce(14), // ␚, reduce: Expr
nil, // string
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
reduce(14), // (, reduce: Expr
nil, // )
nil, // .
},
},
actionRow{ // S30
@@ -407,10 +497,13 @@ var actionTab = actionTable{
nil, // INVALID
nil, // ␚
shift(10), // string
shift(11), // number
shift(12), // name
shift(13), // (
nil, // )
shift(11), // rune
shift(12), // int
shift(13), // float
shift(14), // imaginary
shift(15), // name
shift(16), // (
shift(38), // )
nil, // .
},
},
@@ -419,64 +512,79 @@ var actionTab = actionTable{
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
shift(19), // string
shift(20), // number
shift(21), // name
shift(22), // (
shift(38), // )
shift(10), // string
shift(11), // rune
shift(12), // int
shift(13), // float
shift(14), // imaginary
shift(15), // name
shift(16), // (
nil, // )
nil, // .
},
},
actionRow{ // S32
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
reduce(12), // string, reduce: Expr
reduce(12), // number, reduce: Expr
reduce(12), // name, reduce: Expr
reduce(12), // (, reduce: Expr
reduce(12), // ), reduce: Expr
nil, // .
nil, // INVALID
nil, // ␚
reduce(5), // string, reduce: ValList
reduce(5), // rune, reduce: ValList
reduce(5), // int, reduce: ValList
reduce(5), // float, reduce: ValList
reduce(5), // imaginary, reduce: ValList
reduce(5), // name, reduce: ValList
reduce(5), // (, reduce: ValList
reduce(5), // ), reduce: ValList
nil, // .
},
},
actionRow{ // S33
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
shift(10), // string
shift(11), // number
shift(12), // name
shift(13), // (
shift(39), // )
nil, // .
nil, // INVALID
reduce(16), // ␚, reduce: Expr
nil, // string
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
reduce(16), // (, reduce: Expr
nil, // )
nil, // .
},
},
actionRow{ // S34
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
shift(19), // string
shift(20), // number
shift(21), // name
shift(22), // (
shift(41), // )
nil, // .
nil, // INVALID
reduce(13), // ␚, reduce: Expr
nil, // string
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
reduce(13), // (, reduce: Expr
nil, // )
nil, // .
},
},
actionRow{ // S35
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
nil, // string
nil, // number
nil, // name
nil, // (
reduce(12), // ), reduce: Expr
nil, // .
nil, // INVALID
nil, // ␚
shift(10), // string
shift(11), // rune
shift(12), // int
shift(13), // float
shift(14), // imaginary
shift(15), // name
shift(16), // (
shift(41), // )
nil, // .
},
},
actionRow{ // S36
@@ -485,10 +593,13 @@ var actionTab = actionTable{
nil, // INVALID
nil, // ␚
shift(10), // string
shift(11), // number
shift(12), // name
shift(13), // (
shift(42), // )
shift(11), // rune
shift(12), // int
shift(13), // float
shift(14), // imaginary
shift(15), // name
shift(16), // (
nil, // )
nil, // .
},
},
@@ -497,11 +608,14 @@ var actionTab = actionTable{
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
nil, // string
nil, // number
nil, // name
nil, // (
shift(43), // )
shift(22), // string
shift(23), // rune
shift(24), // int
shift(25), // float
shift(26), // imaginary
shift(27), // name
shift(28), // (
shift(44), // )
nil, // .
},
},
@@ -510,25 +624,31 @@ var actionTab = actionTable{
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
reduce(11), // string, reduce: Expr
reduce(11), // number, reduce: Expr
reduce(11), // name, reduce: Expr
reduce(11), // (, reduce: Expr
reduce(11), // ), reduce: Expr
reduce(15), // string, reduce: Expr
reduce(15), // rune, reduce: Expr
reduce(15), // int, reduce: Expr
reduce(15), // float, reduce: Expr
reduce(15), // imaginary, reduce: Expr
reduce(15), // name, reduce: Expr
reduce(15), // (, reduce: Expr
reduce(15), // ), reduce: Expr
nil, // .
},
},
actionRow{ // S39
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
reduce(13), // string, reduce: Expr
reduce(13), // number, reduce: Expr
reduce(13), // name, reduce: Expr
reduce(13), // (, reduce: Expr
reduce(13), // ), reduce: Expr
nil, // .
nil, // INVALID
nil, // ␚
shift(10), // string
shift(11), // rune
shift(12), // int
shift(13), // float
shift(14), // imaginary
shift(15), // name
shift(16), // (
shift(45), // )
nil, // .
},
},
actionRow{ // S40
@@ -536,11 +656,14 @@ var actionTab = actionTable{
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
nil, // string
nil, // number
nil, // name
nil, // (
shift(44), // )
shift(22), // string
shift(23), // rune
shift(24), // int
shift(25), // float
shift(26), // imaginary
shift(27), // name
shift(28), // (
shift(47), // )
nil, // .
},
},
@@ -550,49 +673,157 @@ var actionTab = actionTable{
nil, // INVALID
nil, // ␚
nil, // string
nil, // number
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
nil, // (
reduce(11), // ), reduce: Expr
reduce(15), // ), reduce: Expr
nil, // .
},
},
actionRow{ // S42
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
nil, // string
nil, // number
nil, // name
nil, // (
reduce(13), // ), reduce: Expr
nil, // .
nil, // INVALID
nil, // ␚
shift(10), // string
shift(11), // rune
shift(12), // int
shift(13), // float
shift(14), // imaginary
shift(15), // name
shift(16), // (
shift(48), // )
nil, // .
},
},
actionRow{ // S43
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
reduce(10), // string, reduce: Expr
reduce(10), // number, reduce: Expr
reduce(10), // name, reduce: Expr
reduce(10), // (, reduce: Expr
reduce(10), // ), reduce: Expr
nil, // .
nil, // INVALID
nil, // ␚
nil, // string
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
nil, // (
shift(49), // )
nil, // .
},
},
actionRow{ // S44
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
reduce(14), // string, reduce: Expr
reduce(14), // rune, reduce: Expr
reduce(14), // int, reduce: Expr
reduce(14), // float, reduce: Expr
reduce(14), // imaginary, reduce: Expr
reduce(14), // name, reduce: Expr
reduce(14), // (, reduce: Expr
reduce(14), // ), reduce: Expr
nil, // .
},
},
actionRow{ // S45
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
reduce(16), // string, reduce: Expr
reduce(16), // rune, reduce: Expr
reduce(16), // int, reduce: Expr
reduce(16), // float, reduce: Expr
reduce(16), // imaginary, reduce: Expr
reduce(16), // name, reduce: Expr
reduce(16), // (, reduce: Expr
reduce(16), // ), reduce: Expr
nil, // .
},
},
actionRow{ // S46
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
nil, // string
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
nil, // (
shift(50), // )
nil, // .
},
},
actionRow{ // S47
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
nil, // string
nil, // number
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
nil, // (
reduce(10), // ), reduce: Expr
reduce(14), // ), reduce: Expr
nil, // .
},
},
actionRow{ // S48
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
nil, // string
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
nil, // (
reduce(16), // ), reduce: Expr
nil, // .
},
},
actionRow{ // S49
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
reduce(13), // string, reduce: Expr
reduce(13), // rune, reduce: Expr
reduce(13), // int, reduce: Expr
reduce(13), // float, reduce: Expr
reduce(13), // imaginary, reduce: Expr
reduce(13), // name, reduce: Expr
reduce(13), // (, reduce: Expr
reduce(13), // ), reduce: Expr
nil, // .
},
},
actionRow{ // S50
canRecover: false,
actions: [numSymbols]action{
nil, // INVALID
nil, // ␚
nil, // string
nil, // rune
nil, // int
nil, // float
nil, // imaginary
nil, // name
nil, // (
reduce(13), // ), reduce: Expr
nil, // .
},
},

View File

@@ -70,8 +70,8 @@ var gotoTab = gotoTable{
-1, // S'
-1, // Schema
-1, // ExprList
15, // ValList
16, // Val
18, // ValList
19, // Val
8, // Expr
},
gotoRow{ // S8
@@ -87,8 +87,8 @@ var gotoTab = gotoTable{
-1, // Schema
-1, // ExprList
-1, // ValList
18, // Val
17, // Expr
21, // Val
20, // Expr
},
gotoRow{ // S10
-1, // S'
@@ -135,8 +135,8 @@ var gotoTab = gotoTable{
-1, // Schema
-1, // ExprList
-1, // ValList
26, // Val
8, // Expr
-1, // Val
-1, // Expr
},
gotoRow{ // S16
-1, // S'
@@ -159,8 +159,8 @@ var gotoTab = gotoTable{
-1, // Schema
-1, // ExprList
-1, // ValList
-1, // Val
-1, // Expr
32, // Val
8, // Expr
},
gotoRow{ // S19
-1, // S'
@@ -207,16 +207,16 @@ var gotoTab = gotoTable{
-1, // Schema
-1, // ExprList
-1, // ValList
31, // Val
8, // Expr
-1, // Val
-1, // Expr
},
gotoRow{ // S25
-1, // S'
-1, // Schema
-1, // ExprList
33, // ValList
16, // Val
8, // Expr
-1, // ValList
-1, // Val
-1, // Expr
},
gotoRow{ // S26
-1, // S'
@@ -247,24 +247,24 @@ var gotoTab = gotoTable{
-1, // Schema
-1, // ExprList
-1, // ValList
34, // Val
8, // Expr
-1, // Val
-1, // Expr
},
gotoRow{ // S30
-1, // S'
-1, // Schema
-1, // ExprList
36, // ValList
16, // Val
-1, // ValList
37, // Val
8, // Expr
},
gotoRow{ // S31
-1, // S'
-1, // Schema
-1, // ExprList
-1, // ValList
37, // Val
17, // Expr
39, // ValList
19, // Val
8, // Expr
},
gotoRow{ // S32
-1, // S'
@@ -279,18 +279,10 @@ var gotoTab = gotoTable{
-1, // Schema
-1, // ExprList
-1, // ValList
26, // Val
8, // Expr
-1, // Val
-1, // Expr
},
gotoRow{ // S34
-1, // S'
-1, // Schema
-1, // ExprList
-1, // ValList
40, // Val
17, // Expr
},
gotoRow{ // S35
-1, // S'
-1, // Schema
-1, // ExprList
@@ -298,12 +290,20 @@ var gotoTab = gotoTable{
-1, // Val
-1, // Expr
},
gotoRow{ // S36
gotoRow{ // S35
-1, // S'
-1, // Schema
-1, // ExprList
-1, // ValList
26, // Val
40, // Val
8, // Expr
},
gotoRow{ // S36
-1, // S'
-1, // Schema
-1, // ExprList
42, // ValList
19, // Val
8, // Expr
},
gotoRow{ // S37
@@ -311,8 +311,8 @@ var gotoTab = gotoTable{
-1, // Schema
-1, // ExprList
-1, // ValList
-1, // Val
-1, // Expr
43, // Val
20, // Expr
},
gotoRow{ // S38
-1, // S'
@@ -327,16 +327,16 @@ var gotoTab = gotoTable{
-1, // Schema
-1, // ExprList
-1, // ValList
-1, // Val
-1, // Expr
32, // Val
8, // Expr
},
gotoRow{ // S40
-1, // S'
-1, // Schema
-1, // ExprList
-1, // ValList
-1, // Val
-1, // Expr
46, // Val
20, // Expr
},
gotoRow{ // S41
-1, // S'
@@ -351,8 +351,8 @@ var gotoTab = gotoTable{
-1, // Schema
-1, // ExprList
-1, // ValList
-1, // Val
-1, // Expr
32, // Val
8, // Expr
},
gotoRow{ // S43
-1, // S'
@@ -370,4 +370,52 @@ var gotoTab = gotoTable{
-1, // Val
-1, // Expr
},
gotoRow{ // S45
-1, // S'
-1, // Schema
-1, // ExprList
-1, // ValList
-1, // Val
-1, // Expr
},
gotoRow{ // S46
-1, // S'
-1, // Schema
-1, // ExprList
-1, // ValList
-1, // Val
-1, // Expr
},
gotoRow{ // S47
-1, // S'
-1, // Schema
-1, // ExprList
-1, // ValList
-1, // Val
-1, // Expr
},
gotoRow{ // S48
-1, // S'
-1, // Schema
-1, // ExprList
-1, // ValList
-1, // Val
-1, // Expr
},
gotoRow{ // S49
-1, // S'
-1, // Schema
-1, // ExprList
-1, // ValList
-1, // Val
-1, // Expr
},
gotoRow{ // S50
-1, // S'
-1, // Schema
-1, // ExprList
-1, // ValList
-1, // Val
-1, // Expr
},
}

View File

@@ -11,9 +11,9 @@ import (
)
const (
numProductions = 14
numStates = 45
numSymbols = 14
numProductions = 17
numStates = 51
numSymbols = 17
)
// Stack

View File

@@ -93,20 +93,50 @@ var productionsTable = ProdTab{
},
},
ProdTabEntry{
String: `Val : number << ast.NewNumberVal(X[0].(*token.Token)) >>`,
String: `Val : rune << ast.NewRuneVal(X[0].(*token.Token)) >>`,
Id: "Val",
NTType: 4,
Index: 7,
NumSymbols: 1,
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
return ast.NewNumberVal(X[0].(*token.Token))
return ast.NewRuneVal(X[0].(*token.Token))
},
},
ProdTabEntry{
String: `Val : int << ast.NewIntVal(X[0].(*token.Token)) >>`,
Id: "Val",
NTType: 4,
Index: 8,
NumSymbols: 1,
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
return ast.NewIntVal(X[0].(*token.Token))
},
},
ProdTabEntry{
String: `Val : float << ast.NewFloatVal(X[0].(*token.Token)) >>`,
Id: "Val",
NTType: 4,
Index: 9,
NumSymbols: 1,
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
return ast.NewFloatVal(X[0].(*token.Token))
},
},
ProdTabEntry{
String: `Val : imaginary << ast.NewComplexVal(X[0].(*token.Token)) >>`,
Id: "Val",
NTType: 4,
Index: 10,
NumSymbols: 1,
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
return ast.NewComplexVal(X[0].(*token.Token))
},
},
ProdTabEntry{
String: `Val : name << ast.NewNameVal(X[0].(*token.Token)) >>`,
Id: "Val",
NTType: 4,
Index: 8,
Index: 11,
NumSymbols: 1,
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
return ast.NewNameVal(X[0].(*token.Token))
@@ -116,7 +146,7 @@ var productionsTable = ProdTab{
String: `Val : Expr << ast.NewExprVal(X[0]) >>`,
Id: "Val",
NTType: 4,
Index: 9,
Index: 12,
NumSymbols: 1,
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
return ast.NewExprVal(X[0])
@@ -126,7 +156,7 @@ var productionsTable = ProdTab{
String: `Expr : "(" name Val Val ")" << ast.NewExpr(X[1].(*token.Token), X[2], X[3]) >>`,
Id: "Expr",
NTType: 5,
Index: 10,
Index: 13,
NumSymbols: 5,
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
return ast.NewExpr(X[1].(*token.Token), X[2], X[3])
@@ -136,7 +166,7 @@ var productionsTable = ProdTab{
String: `Expr : "(" name Val ")" << ast.NewExpr(X[1].(*token.Token), X[2], nil) >>`,
Id: "Expr",
NTType: 5,
Index: 11,
Index: 14,
NumSymbols: 4,
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
return ast.NewExpr(X[1].(*token.Token), X[2], nil)
@@ -146,7 +176,7 @@ var productionsTable = ProdTab{
String: `Expr : "(" name ")" << ast.NewExpr(X[1].(*token.Token), nil, nil) >>`,
Id: "Expr",
NTType: 5,
Index: 12,
Index: 15,
NumSymbols: 3,
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
return ast.NewExpr(X[1].(*token.Token), nil, nil)
@@ -156,7 +186,7 @@ var productionsTable = ProdTab{
String: `Expr : "(" "." ValList ")" << ast.ListExpr(X[2]) >>`,
Id: "Expr",
NTType: 5,
Index: 13,
Index: 16,
NumSymbols: 4,
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
return ast.ListExpr(X[2])