aboutsummaryrefslogtreecommitdiff
path: root/grammar
diff options
context:
space:
mode:
Diffstat (limited to 'grammar')
-rw-r--r--grammar/grammar_test.go2
-rw-r--r--grammar/lalr1_test.go56
-rw-r--r--grammar/lr0_test.go11
-rw-r--r--grammar/parsing_table_test.go62
4 files changed, 66 insertions, 65 deletions
diff --git a/grammar/grammar_test.go b/grammar/grammar_test.go
index 62823e1..e61e422 100644
--- a/grammar/grammar_test.go
+++ b/grammar/grammar_test.go
@@ -2786,7 +2786,7 @@ s
: foo
;
-foo #alias Foo
+foo #alias bar
: 'foo';
`,
errs: []*SemanticError{semErrDirInvalidParam},
diff --git a/grammar/lalr1_test.go b/grammar/lalr1_test.go
index 94dfd65..2f8074b 100644
--- a/grammar/lalr1_test.go
+++ b/grammar/lalr1_test.go
@@ -12,9 +12,9 @@ func TestGenLALR1Automaton(t *testing.T) {
src := `
#name test;
-S: L eq R | R;
-L: ref R | id;
-R: L;
+s: l eq r | r;
+l: ref r | id;
+r: l;
eq: '=';
ref: '*';
id: "[A-Za-z0-9_]+";
@@ -66,35 +66,35 @@ id: "[A-Za-z0-9_]+";
expectedKernels := map[int][]*lrItem{
0: {
- withLookAhead(genLR0Item("S'", 0, "S"), symbolEOF),
+ withLookAhead(genLR0Item("s'", 0, "s"), symbolEOF),
},
1: {
- withLookAhead(genLR0Item("S'", 1, "S"), symbolEOF),
+ withLookAhead(genLR0Item("s'", 1, "s"), symbolEOF),
},
2: {
- withLookAhead(genLR0Item("S", 1, "L", "eq", "R"), symbolEOF),
- withLookAhead(genLR0Item("R", 1, "L"), symbolEOF),
+ withLookAhead(genLR0Item("s", 1, "l", "eq", "r"), symbolEOF),
+ withLookAhead(genLR0Item("r", 1, "l"), symbolEOF),
},
3: {
- withLookAhead(genLR0Item("S", 1, "R"), symbolEOF),
+ withLookAhead(genLR0Item("s", 1, "r"), symbolEOF),
},
4: {
- withLookAhead(genLR0Item("L", 1, "ref", "R"), genSym("eq"), symbolEOF),
+ withLookAhead(genLR0Item("l", 1, "ref", "r"), genSym("eq"), symbolEOF),
},
5: {
- withLookAhead(genLR0Item("L", 1, "id"), genSym("eq"), symbolEOF),
+ withLookAhead(genLR0Item("l", 1, "id"), genSym("eq"), symbolEOF),
},
6: {
- withLookAhead(genLR0Item("S", 2, "L", "eq", "R"), symbolEOF),
+ withLookAhead(genLR0Item("s", 2, "l", "eq", "r"), symbolEOF),
},
7: {
- withLookAhead(genLR0Item("L", 2, "ref", "R"), genSym("eq"), symbolEOF),
+ withLookAhead(genLR0Item("l", 2, "ref", "r"), genSym("eq"), symbolEOF),
},
8: {
- withLookAhead(genLR0Item("R", 1, "L"), genSym("eq"), symbolEOF),
+ withLookAhead(genLR0Item("r", 1, "l"), genSym("eq"), symbolEOF),
},
9: {
- withLookAhead(genLR0Item("S", 3, "L", "eq", "R"), symbolEOF),
+ withLookAhead(genLR0Item("s", 3, "l", "eq", "r"), symbolEOF),
},
}
@@ -102,9 +102,9 @@ id: "[A-Za-z0-9_]+";
{
kernelItems: expectedKernels[0],
nextStates: map[symbol][]*lrItem{
- genSym("S"): expectedKernels[1],
- genSym("L"): expectedKernels[2],
- genSym("R"): expectedKernels[3],
+ genSym("s"): expectedKernels[1],
+ genSym("l"): expectedKernels[2],
+ genSym("r"): expectedKernels[3],
genSym("ref"): expectedKernels[4],
genSym("id"): expectedKernels[5],
},
@@ -114,7 +114,7 @@ id: "[A-Za-z0-9_]+";
kernelItems: expectedKernels[1],
nextStates: map[symbol][]*lrItem{},
reducibleProds: []*production{
- genProd("S'", "S"),
+ genProd("s'", "s"),
},
},
{
@@ -123,21 +123,21 @@ id: "[A-Za-z0-9_]+";
genSym("eq"): expectedKernels[6],
},
reducibleProds: []*production{
- genProd("R", "L"),
+ genProd("r", "l"),
},
},
{
kernelItems: expectedKernels[3],
nextStates: map[symbol][]*lrItem{},
reducibleProds: []*production{
- genProd("S", "R"),
+ genProd("s", "r"),
},
},
{
kernelItems: expectedKernels[4],
nextStates: map[symbol][]*lrItem{
- genSym("R"): expectedKernels[7],
- genSym("L"): expectedKernels[8],
+ genSym("r"): expectedKernels[7],
+ genSym("l"): expectedKernels[8],
genSym("ref"): expectedKernels[4],
genSym("id"): expectedKernels[5],
},
@@ -147,14 +147,14 @@ id: "[A-Za-z0-9_]+";
kernelItems: expectedKernels[5],
nextStates: map[symbol][]*lrItem{},
reducibleProds: []*production{
- genProd("L", "id"),
+ genProd("l", "id"),
},
},
{
kernelItems: expectedKernels[6],
nextStates: map[symbol][]*lrItem{
- genSym("R"): expectedKernels[9],
- genSym("L"): expectedKernels[8],
+ genSym("r"): expectedKernels[9],
+ genSym("l"): expectedKernels[8],
genSym("ref"): expectedKernels[4],
genSym("id"): expectedKernels[5],
},
@@ -164,21 +164,21 @@ id: "[A-Za-z0-9_]+";
kernelItems: expectedKernels[7],
nextStates: map[symbol][]*lrItem{},
reducibleProds: []*production{
- genProd("L", "ref", "R"),
+ genProd("l", "ref", "r"),
},
},
{
kernelItems: expectedKernels[8],
nextStates: map[symbol][]*lrItem{},
reducibleProds: []*production{
- genProd("R", "L"),
+ genProd("r", "l"),
},
},
{
kernelItems: expectedKernels[9],
nextStates: map[symbol][]*lrItem{},
reducibleProds: []*production{
- genProd("S", "L", "eq", "R"),
+ genProd("s", "l", "eq", "r"),
},
},
}
diff --git a/grammar/lr0_test.go b/grammar/lr0_test.go
index 1b20d78..b31126e 100644
--- a/grammar/lr0_test.go
+++ b/grammar/lr0_test.go
@@ -236,10 +236,11 @@ foo
:
;
bar
- : BAR
+ : b
|
;
-BAR: "bar";
+
+b: "bar";
`
var gram *Grammar
@@ -290,7 +291,7 @@ BAR: "bar";
genLR0Item("s", 2, "foo", "bar"),
},
4: {
- genLR0Item("bar", 1, "BAR"),
+ genLR0Item("bar", 1, "b"),
},
}
@@ -319,7 +320,7 @@ BAR: "bar";
kernelItems: expectedKernels[2],
nextStates: map[symbol][]*lrItem{
genSym("bar"): expectedKernels[3],
- genSym("BAR"): expectedKernels[4],
+ genSym("b"): expectedKernels[4],
},
reducibleProds: []*production{
genProd("bar"),
@@ -339,7 +340,7 @@ BAR: "bar";
kernelItems: expectedKernels[4],
nextStates: map[symbol][]*lrItem{},
reducibleProds: []*production{
- genProd("bar", "BAR"),
+ genProd("bar", "b"),
},
},
}
diff --git a/grammar/parsing_table_test.go b/grammar/parsing_table_test.go
index 522ec1c..4ce8455 100644
--- a/grammar/parsing_table_test.go
+++ b/grammar/parsing_table_test.go
@@ -18,9 +18,9 @@ func TestGenLALRParsingTable(t *testing.T) {
src := `
#name test;
-S: L eq R | R;
-L: ref R | id;
-R: L;
+s: l eq r | r;
+l: ref r | id;
+r: l;
eq: '=';
ref: '*';
id: "[A-Za-z0-9_]+";
@@ -89,35 +89,35 @@ id: "[A-Za-z0-9_]+";
expectedKernels := map[int][]*lrItem{
0: {
- withLookAhead(genLR0Item("S'", 0, "S"), symbolEOF),
+ withLookAhead(genLR0Item("s'", 0, "s"), symbolEOF),
},
1: {
- withLookAhead(genLR0Item("S'", 1, "S"), symbolEOF),
+ withLookAhead(genLR0Item("s'", 1, "s"), symbolEOF),
},
2: {
- withLookAhead(genLR0Item("S", 1, "L", "eq", "R"), symbolEOF),
- withLookAhead(genLR0Item("R", 1, "L"), symbolEOF),
+ withLookAhead(genLR0Item("s", 1, "l", "eq", "r"), symbolEOF),
+ withLookAhead(genLR0Item("r", 1, "l"), symbolEOF),
},
3: {
- withLookAhead(genLR0Item("S", 1, "R"), symbolEOF),
+ withLookAhead(genLR0Item("s", 1, "r"), symbolEOF),
},
4: {
- withLookAhead(genLR0Item("L", 1, "ref", "R"), genSym("eq"), symbolEOF),
+ withLookAhead(genLR0Item("l", 1, "ref", "r"), genSym("eq"), symbolEOF),
},
5: {
- withLookAhead(genLR0Item("L", 1, "id"), genSym("eq"), symbolEOF),
+ withLookAhead(genLR0Item("l", 1, "id"), genSym("eq"), symbolEOF),
},
6: {
- withLookAhead(genLR0Item("S", 2, "L", "eq", "R"), symbolEOF),
+ withLookAhead(genLR0Item("s", 2, "l", "eq", "r"), symbolEOF),
},
7: {
- withLookAhead(genLR0Item("L", 2, "ref", "R"), genSym("eq"), symbolEOF),
+ withLookAhead(genLR0Item("l", 2, "ref", "r"), genSym("eq"), symbolEOF),
},
8: {
- withLookAhead(genLR0Item("R", 1, "L"), genSym("eq"), symbolEOF),
+ withLookAhead(genLR0Item("r", 1, "l"), genSym("eq"), symbolEOF),
},
9: {
- withLookAhead(genLR0Item("S", 3, "L", "eq", "R"), symbolEOF),
+ withLookAhead(genLR0Item("s", 3, "l", "eq", "r"), symbolEOF),
},
}
@@ -135,9 +135,9 @@ id: "[A-Za-z0-9_]+";
},
},
goTos: map[symbol][]*lrItem{
- genSym("S"): expectedKernels[1],
- genSym("L"): expectedKernels[2],
- genSym("R"): expectedKernels[3],
+ genSym("s"): expectedKernels[1],
+ genSym("l"): expectedKernels[2],
+ genSym("r"): expectedKernels[3],
},
},
{
@@ -145,7 +145,7 @@ id: "[A-Za-z0-9_]+";
acts: map[symbol]testActionEntry{
symbolEOF: {
ty: ActionTypeReduce,
- production: genProd("S'", "S"),
+ production: genProd("s'", "s"),
},
},
},
@@ -158,7 +158,7 @@ id: "[A-Za-z0-9_]+";
},
symbolEOF: {
ty: ActionTypeReduce,
- production: genProd("R", "L"),
+ production: genProd("r", "l"),
},
},
},
@@ -167,7 +167,7 @@ id: "[A-Za-z0-9_]+";
acts: map[symbol]testActionEntry{
symbolEOF: {
ty: ActionTypeReduce,
- production: genProd("S", "R"),
+ production: genProd("s", "r"),
},
},
},
@@ -184,8 +184,8 @@ id: "[A-Za-z0-9_]+";
},
},
goTos: map[symbol][]*lrItem{
- genSym("R"): expectedKernels[7],
- genSym("L"): expectedKernels[8],
+ genSym("r"): expectedKernels[7],
+ genSym("l"): expectedKernels[8],
},
},
{
@@ -193,11 +193,11 @@ id: "[A-Za-z0-9_]+";
acts: map[symbol]testActionEntry{
genSym("eq"): {
ty: ActionTypeReduce,
- production: genProd("L", "id"),
+ production: genProd("l", "id"),
},
symbolEOF: {
ty: ActionTypeReduce,
- production: genProd("L", "id"),
+ production: genProd("l", "id"),
},
},
},
@@ -214,8 +214,8 @@ id: "[A-Za-z0-9_]+";
},
},
goTos: map[symbol][]*lrItem{
- genSym("L"): expectedKernels[8],
- genSym("R"): expectedKernels[9],
+ genSym("l"): expectedKernels[8],
+ genSym("r"): expectedKernels[9],
},
},
{
@@ -223,11 +223,11 @@ id: "[A-Za-z0-9_]+";
acts: map[symbol]testActionEntry{
genSym("eq"): {
ty: ActionTypeReduce,
- production: genProd("L", "ref", "R"),
+ production: genProd("l", "ref", "r"),
},
symbolEOF: {
ty: ActionTypeReduce,
- production: genProd("L", "ref", "R"),
+ production: genProd("l", "ref", "r"),
},
},
},
@@ -236,11 +236,11 @@ id: "[A-Za-z0-9_]+";
acts: map[symbol]testActionEntry{
genSym("eq"): {
ty: ActionTypeReduce,
- production: genProd("R", "L"),
+ production: genProd("r", "l"),
},
symbolEOF: {
ty: ActionTypeReduce,
- production: genProd("R", "L"),
+ production: genProd("r", "l"),
},
},
},
@@ -249,7 +249,7 @@ id: "[A-Za-z0-9_]+";
acts: map[symbol]testActionEntry{
symbolEOF: {
ty: ActionTypeReduce,
- production: genProd("S", "L", "eq", "R"),
+ production: genProd("s", "l", "eq", "r"),
},
},
},