Documentation
¶
Overview ¶
Package lrparser is an LR-parser.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Grammar ¶
type Grammar struct {
// The rules of the grammar.
Rules []*Rule
// contains filtered or unexported fields
}
Grammar is a formal grammar.
func (*Grammar) BuildItems ¶
func (gr *Grammar) BuildItems()
BuildItems builds the items of the automaton.
type Operator ¶
type Operator struct {
Associativity OperatorAssociativity
Priority int
Symbols []string
}
Operator ...
type OperatorAssociativity ¶
type OperatorAssociativity int
OperatorAssociativity ...
const ( LeftAssociative OperatorAssociativity = iota RightAssociative NonAssociative )
constants for OperatorAssociativity
type Rule ¶
Rule is a context-free rule with a builder function.
func BuildListRules ¶
func BuildListRules(root, leaf string, canBeEmpty bool, leftBracket, sep, rightBracket string, builder func([]interface{}) interface{}) []*Rule
BuildListRules builds list rules.
func BuildOperatorRules ¶
func BuildOperatorRules(root, leaf string, ops []Operator, builder func(string, interface{}, interface{}) interface{}) []*Rule
BuildOperatorRules builds operator rules.
func BuildOptSeq ¶
func BuildOptSeq(root string, head, tail []string, builder func([]interface{}, []interface{}) interface{}) []*Rule
BuildOptSeq builds an optional sequence.
Click to show internal directories.
Click to hide internal directories.