Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Grammars = []*grammar.CFG{ grammar.NewCFG( []grammar.Terminal{"+", "*", "(", ")", "id"}, []grammar.NonTerminal{"E", "E′", "T", "T′", "F"}, Prods[0], "E", ), grammar.NewCFG( []grammar.Terminal{"c", "d"}, []grammar.NonTerminal{"S", "C"}, Prods[1][1:], "S", ), grammar.NewCFG( []grammar.Terminal{"=", "*", "id"}, []grammar.NonTerminal{"S", "L", "R"}, Prods[2][1:], "S", ), grammar.NewCFG( []grammar.Terminal{"+", "*", "(", ")", "id"}, []grammar.NonTerminal{"E", "T", "F"}, Prods[3][1:], "E", ), grammar.NewCFG( []grammar.Terminal{"+", "*", "(", ")", "id"}, []grammar.NonTerminal{"E"}, Prods[4][1:], "E", ), }
View Source
var Prods = [][]*grammar.Production{ { {Head: "E", Body: grammar.String[grammar.Symbol]{grammar.NonTerminal("T"), grammar.NonTerminal("E′")}}, {Head: "E′", Body: grammar.String[grammar.Symbol]{grammar.Terminal("+"), grammar.NonTerminal("T"), grammar.NonTerminal("E′")}}, {Head: "E′", Body: grammar.E}, {Head: "T", Body: grammar.String[grammar.Symbol]{grammar.NonTerminal("F"), grammar.NonTerminal("T′")}}, {Head: "T′", Body: grammar.String[grammar.Symbol]{grammar.Terminal("*"), grammar.NonTerminal("F"), grammar.NonTerminal("T′")}}, {Head: "T′", Body: grammar.E}, {Head: "F", Body: grammar.String[grammar.Symbol]{grammar.Terminal("("), grammar.NonTerminal("E"), grammar.Terminal(")")}}, {Head: "F", Body: grammar.String[grammar.Symbol]{grammar.Terminal("id")}}, }, { {Head: "S′", Body: grammar.String[grammar.Symbol]{grammar.NonTerminal("S")}}, {Head: "S", Body: grammar.String[grammar.Symbol]{grammar.NonTerminal("C"), grammar.NonTerminal("C")}}, {Head: "C", Body: grammar.String[grammar.Symbol]{grammar.Terminal("c"), grammar.NonTerminal("C")}}, {Head: "C", Body: grammar.String[grammar.Symbol]{grammar.Terminal("d")}}, }, { {Head: "S′", Body: grammar.String[grammar.Symbol]{grammar.NonTerminal("S")}}, {Head: "S", Body: grammar.String[grammar.Symbol]{grammar.NonTerminal("L"), grammar.Terminal("="), grammar.NonTerminal("R")}}, {Head: "S", Body: grammar.String[grammar.Symbol]{grammar.NonTerminal("R")}}, {Head: "L", Body: grammar.String[grammar.Symbol]{grammar.Terminal("*"), grammar.NonTerminal("R")}}, {Head: "L", Body: grammar.String[grammar.Symbol]{grammar.Terminal("id")}}, {Head: "R", Body: grammar.String[grammar.Symbol]{grammar.NonTerminal("L")}}, }, { {Head: "E′", Body: grammar.String[grammar.Symbol]{grammar.NonTerminal("E")}}, {Head: "E", Body: grammar.String[grammar.Symbol]{grammar.NonTerminal("E"), grammar.Terminal("+"), grammar.NonTerminal("T")}}, {Head: "E", Body: grammar.String[grammar.Symbol]{grammar.NonTerminal("T")}}, {Head: "T", Body: grammar.String[grammar.Symbol]{grammar.NonTerminal("T"), grammar.Terminal("*"), grammar.NonTerminal("F")}}, {Head: "T", Body: grammar.String[grammar.Symbol]{grammar.NonTerminal("F")}}, {Head: "F", Body: grammar.String[grammar.Symbol]{grammar.Terminal("("), grammar.NonTerminal("E"), grammar.Terminal(")")}}, {Head: "F", Body: grammar.String[grammar.Symbol]{grammar.Terminal("id")}}, }, { {Head: "E′", Body: grammar.String[grammar.Symbol]{grammar.NonTerminal("E")}}, {Head: "E", Body: grammar.String[grammar.Symbol]{grammar.NonTerminal("E"), grammar.Terminal("+"), grammar.NonTerminal("E")}}, {Head: "E", Body: grammar.String[grammar.Symbol]{grammar.NonTerminal("E"), grammar.Terminal("*"), grammar.NonTerminal("E")}}, {Head: "E", Body: grammar.String[grammar.Symbol]{grammar.Terminal("("), grammar.NonTerminal("E"), grammar.Terminal(")")}}, {Head: "E", Body: grammar.String[grammar.Symbol]{grammar.Terminal("id")}}, }, }
Functions ¶
This section is empty.
Types ¶
type MockLexer ¶
type MockLexer struct { NextTokenIndex int NextTokenMocks []NextTokenMock }
MockLexer is an implementation of lexer.Lexer for testing purposes.
type NextTokenMock ¶
Click to show internal directories.
Click to hide internal directories.