Documentation
¶
Index ¶
- func ResultsNodes(results []*Result) []*node.Node
- type Builder
- func (b *Builder) Any() (this Expression)
- func (b *Builder) AnyOf(runes string) (this Expression)
- func (b *Builder) Choice(expressions ...Expression) (this Expression)
- func (b *Builder) DropNode() RuleOption
- func (b *Builder) Empty() (this Expression)
- func (b *Builder) End() (this Expression)
- func (b *Builder) Literal(literal string) (this Expression)
- func (b *Builder) OmitNode() RuleOption
- func (b *Builder) OneOrMore(expressions ...Expression) (this Expression)
- func (b *Builder) Optional(expressions ...Expression) (this Expression)
- func (b *Builder) Range(first, last rune) (this Expression)
- func (b *Builder) Rule(rule func() Expression, options ...RuleOption) Expression
- func (b *Builder) Rune(r rune) (this Expression)
- func (b *Builder) Sequence(expressions ...Expression) (this Expression)
- func (b *Builder) Test(expressions ...Expression) (this Expression)
- func (b *Builder) TestNot(expressions ...Expression) (this Expression)
- func (b *Builder) ZeroOrMore(expressions ...Expression) (this Expression)
- type Expression
- type Log
- type Matcher
- type Parser
- type Result
- func (r *Result) BetterError() string
- func (r *Result) ChildlessResults() []*Result
- func (r *Result) DeepestFailedResult() (result *Result)
- func (r *Result) Depth() int
- func (r *Result) Error() string
- func (r *Result) FailedChildlessResults() []*Result
- func (r *Result) FarthestFailedResult() (result *Result)
- func (r *Result) FirstRuleAncestor() *Result
- func (r *Result) FormatNodeTree() string
- func (r *Result) FormatResultTree() string
- func (r *Result) HasChildren() bool
- func (r *Result) Length() int
- func (r *Result) Match() string
- func (r *Result) WithNodes(nodes ...*node.Node) *Result
- func (r *Result) WithResults(results ...*Result) *Result
- type Rule
- type RuleOption
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ResultsNodes ¶
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
func (*Builder) Any ¶
func (b *Builder) Any() (this Expression)
func (*Builder) AnyOf ¶
func (b *Builder) AnyOf(runes string) (this Expression)
func (*Builder) Choice ¶
func (b *Builder) Choice(expressions ...Expression) (this Expression)
func (*Builder) DropNode ¶
func (b *Builder) DropNode() RuleOption
func (*Builder) Empty ¶
func (b *Builder) Empty() (this Expression)
func (*Builder) End ¶
func (b *Builder) End() (this Expression)
func (*Builder) Literal ¶
func (b *Builder) Literal(literal string) (this Expression)
func (*Builder) OmitNode ¶
func (b *Builder) OmitNode() RuleOption
func (*Builder) OneOrMore ¶
func (b *Builder) OneOrMore(expressions ...Expression) (this Expression)
func (*Builder) Optional ¶
func (b *Builder) Optional(expressions ...Expression) (this Expression)
func (*Builder) Range ¶
func (b *Builder) Range(first, last rune) (this Expression)
func (*Builder) Rule ¶
func (b *Builder) Rule(rule func() Expression, options ...RuleOption) Expression
func (*Builder) Rune ¶
func (b *Builder) Rune(r rune) (this Expression)
func (*Builder) Sequence ¶
func (b *Builder) Sequence(expressions ...Expression) (this Expression)
func (*Builder) Test ¶
func (b *Builder) Test(expressions ...Expression) (this Expression)
func (*Builder) TestNot ¶
func (b *Builder) TestNot(expressions ...Expression) (this Expression)
func (*Builder) ZeroOrMore ¶
func (b *Builder) ZeroOrMore(expressions ...Expression) (this Expression)
type Expression ¶
type Expression interface {
Name() string
Apply(input buffer.Buffer, position int) (result *Result)
Expectation() string
}
Expression is a PEG parsing expression
type Log ¶
type Log interface {
Debugf(format string, args ...interface{})
}
func StandardLog ¶
func StandardLog() Log
func TestingLog ¶
type Parser ¶
type Parser struct {
// contains filtered or unexported fields
}
func NewParser ¶
func NewParser(main func(*Builder) Expression) *Parser
func (*Parser) ParseString ¶
type Result ¶
type Result struct {
Expression Expression
Success bool
Input buffer.Buffer
Start int
End int
// Parent is the parent PEG expression Result
Parent *Result
// Results are the children PEG expressions Results
Results []*Result
// Nodes are the parse trees produced
Nodes []*node.Node
}
func (*Result) BetterError ¶
func (*Result) ChildlessResults ¶
func (*Result) DeepestFailedResult ¶
func (*Result) FailedChildlessResults ¶
func (*Result) FarthestFailedResult ¶
func (*Result) FirstRuleAncestor ¶
func (*Result) FormatNodeTree ¶
func (*Result) FormatResultTree ¶
func (*Result) HasChildren ¶
func (*Result) WithResults ¶
type Rule ¶
type Rule interface {
Expression
SetExpression(expression Expression)
SetDropNode(b bool)
SetOmitNode(b bool)
}
Rule is a PEG rule
type RuleOption ¶
type RuleOption func(Rule)
Source Files
¶
Click to show internal directories.
Click to hide internal directories.