aboutsummaryrefslogtreecommitdiff
path: root/grammar/lalr1_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'grammar/lalr1_test.go')
-rw-r--r--grammar/lalr1_test.go50
1 files changed, 25 insertions, 25 deletions
diff --git a/grammar/lalr1_test.go b/grammar/lalr1_test.go
index d6d0371..c57dc5c 100644
--- a/grammar/lalr1_test.go
+++ b/grammar/lalr1_test.go
@@ -4,7 +4,8 @@ import (
"strings"
"testing"
- spec "github.com/nihei9/vartan/spec/grammar"
+ "github.com/nihei9/vartan/grammar/symbol"
+ "github.com/nihei9/vartan/spec/grammar/parser"
)
func TestGenLALR1Automaton(t *testing.T) {
@@ -23,15 +24,14 @@ id: "[A-Za-z0-9_]+";
var gram *Grammar
var automaton *lalr1Automaton
{
- ast, err := spec.Parse(strings.NewReader(src))
+ ast, err := parser.Parse(strings.NewReader(src))
if err != nil {
t.Fatal(err)
}
b := GrammarBuilder{
AST: ast,
}
-
- gram, err = b.Build()
+ gram, err = b.build()
if err != nil {
t.Fatal(err)
}
@@ -66,42 +66,42 @@ id: "[A-Za-z0-9_]+";
expectedKernels := map[int][]*lrItem{
0: {
- withLookAhead(genLR0Item("s'", 0, "s"), symbolEOF),
+ withLookAhead(genLR0Item("s'", 0, "s"), symbol.SymbolEOF),
},
1: {
- withLookAhead(genLR0Item("s'", 1, "s"), symbolEOF),
+ withLookAhead(genLR0Item("s'", 1, "s"), symbol.SymbolEOF),
},
2: {
- withLookAhead(genLR0Item("s", 1, "l", "eq", "r"), symbolEOF),
- withLookAhead(genLR0Item("r", 1, "l"), symbolEOF),
+ withLookAhead(genLR0Item("s", 1, "l", "eq", "r"), symbol.SymbolEOF),
+ withLookAhead(genLR0Item("r", 1, "l"), symbol.SymbolEOF),
},
3: {
- withLookAhead(genLR0Item("s", 1, "r"), symbolEOF),
+ withLookAhead(genLR0Item("s", 1, "r"), symbol.SymbolEOF),
},
4: {
- withLookAhead(genLR0Item("l", 1, "ref", "r"), genSym("eq"), symbolEOF),
+ withLookAhead(genLR0Item("l", 1, "ref", "r"), genSym("eq"), symbol.SymbolEOF),
},
5: {
- withLookAhead(genLR0Item("l", 1, "id"), genSym("eq"), symbolEOF),
+ withLookAhead(genLR0Item("l", 1, "id"), genSym("eq"), symbol.SymbolEOF),
},
6: {
- withLookAhead(genLR0Item("s", 2, "l", "eq", "r"), symbolEOF),
+ withLookAhead(genLR0Item("s", 2, "l", "eq", "r"), symbol.SymbolEOF),
},
7: {
- withLookAhead(genLR0Item("l", 2, "ref", "r"), genSym("eq"), symbolEOF),
+ withLookAhead(genLR0Item("l", 2, "ref", "r"), genSym("eq"), symbol.SymbolEOF),
},
8: {
- withLookAhead(genLR0Item("r", 1, "l"), genSym("eq"), symbolEOF),
+ withLookAhead(genLR0Item("r", 1, "l"), genSym("eq"), symbol.SymbolEOF),
},
9: {
- withLookAhead(genLR0Item("s", 3, "l", "eq", "r"), symbolEOF),
+ withLookAhead(genLR0Item("s", 3, "l", "eq", "r"), symbol.SymbolEOF),
},
}
expectedStates := []*expectedLRState{
{
kernelItems: expectedKernels[0],
- nextStates: map[symbol][]*lrItem{
+ nextStates: map[symbol.Symbol][]*lrItem{
genSym("s"): expectedKernels[1],
genSym("l"): expectedKernels[2],
genSym("r"): expectedKernels[3],
@@ -112,14 +112,14 @@ id: "[A-Za-z0-9_]+";
},
{
kernelItems: expectedKernels[1],
- nextStates: map[symbol][]*lrItem{},
+ nextStates: map[symbol.Symbol][]*lrItem{},
reducibleProds: []*production{
genProd("s'", "s"),
},
},
{
kernelItems: expectedKernels[2],
- nextStates: map[symbol][]*lrItem{
+ nextStates: map[symbol.Symbol][]*lrItem{
genSym("eq"): expectedKernels[6],
},
reducibleProds: []*production{
@@ -128,14 +128,14 @@ id: "[A-Za-z0-9_]+";
},
{
kernelItems: expectedKernels[3],
- nextStates: map[symbol][]*lrItem{},
+ nextStates: map[symbol.Symbol][]*lrItem{},
reducibleProds: []*production{
genProd("s", "r"),
},
},
{
kernelItems: expectedKernels[4],
- nextStates: map[symbol][]*lrItem{
+ nextStates: map[symbol.Symbol][]*lrItem{
genSym("r"): expectedKernels[7],
genSym("l"): expectedKernels[8],
genSym("ref"): expectedKernels[4],
@@ -145,14 +145,14 @@ id: "[A-Za-z0-9_]+";
},
{
kernelItems: expectedKernels[5],
- nextStates: map[symbol][]*lrItem{},
+ nextStates: map[symbol.Symbol][]*lrItem{},
reducibleProds: []*production{
genProd("l", "id"),
},
},
{
kernelItems: expectedKernels[6],
- nextStates: map[symbol][]*lrItem{
+ nextStates: map[symbol.Symbol][]*lrItem{
genSym("r"): expectedKernels[9],
genSym("l"): expectedKernels[8],
genSym("ref"): expectedKernels[4],
@@ -162,21 +162,21 @@ id: "[A-Za-z0-9_]+";
},
{
kernelItems: expectedKernels[7],
- nextStates: map[symbol][]*lrItem{},
+ nextStates: map[symbol.Symbol][]*lrItem{},
reducibleProds: []*production{
genProd("l", "ref", "r"),
},
},
{
kernelItems: expectedKernels[8],
- nextStates: map[symbol][]*lrItem{},
+ nextStates: map[symbol.Symbol][]*lrItem{},
reducibleProds: []*production{
genProd("r", "l"),
},
},
{
kernelItems: expectedKernels[9],
- nextStates: map[symbol][]*lrItem{},
+ nextStates: map[symbol.Symbol][]*lrItem{},
reducibleProds: []*production{
genProd("s", "l", "eq", "r"),
},