wbnf

package
v0.36.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 7, 2022 License: Apache-2.0 Imports: 13 Imported by: 2

Documentation

Overview

Code generated by "ωBNF gen" DO NOT EDIT. $ wbnf gen --grammar ../examples/wbnf.wbnf --start grammar --pkg wbnf

Index

Constants

View Source
const (
	NoError validationErrorKind = iota
	UnknownRule
	DuplicatedRule
	InvalidRegex
	NameClashesWithRule
	MinMaxQuantError
	MultipleTermsWithSameName // something like `term -> foo op="*" op="|";`, likely missing a separator
	PossibleCycleDetected
	NotAMacro
	IncorrectMacroArgCount
)

Variables

View Source
var (
	NodeExiter = &nodeExiter{}
	Aborter    = &aborter{}
)

Functions

func Compile

func Compile(grammar string, resolver ImportResolver) (parser.Parsers, error)

func Core

func Core() parser.Parsers

func Grammar

func Grammar() parser.Parsers

func MustCompile

func MustCompile(grammar string, resolver ImportResolver) parser.Parsers

func NewFromAst added in v0.12.0

func NewFromAst(node ast.Node) parser.Grammar

func TestParserNodeToNode added in v0.10.0

func TestParserNodeToNode(t *testing.T)

func TestTinyXMLGrammar added in v0.10.0

func TestTinyXMLGrammar(t *testing.T)

Types

type AtomExtRefNode added in v0.13.0

type AtomExtRefNode struct{ ast.Node }

func (AtomExtRefNode) OneIdent added in v0.13.0

func (c AtomExtRefNode) OneIdent() *IdentNode

func (AtomExtRefNode) OneToken added in v0.13.0

func (c AtomExtRefNode) OneToken() string

type AtomNode added in v0.11.0

type AtomNode struct{ ast.Node }

func (AtomNode) AllToken added in v0.13.0

func (c AtomNode) AllToken() []string

func (AtomNode) Choice added in v0.11.0

func (c AtomNode) Choice() int

func (AtomNode) OneExtRef added in v0.13.0

func (c AtomNode) OneExtRef() *AtomExtRefNode

func (AtomNode) OneIdent added in v0.11.0

func (c AtomNode) OneIdent() *IdentNode

func (AtomNode) OneLookahead added in v0.32.0

func (c AtomNode) OneLookahead() *TermNode

func (AtomNode) OneMacrocall added in v0.14.0

func (c AtomNode) OneMacrocall() *MacrocallNode

func (AtomNode) OneRe added in v0.11.0

func (c AtomNode) OneRe() *ReNode

func (AtomNode) OneRef added in v0.11.0

func (c AtomNode) OneRef() *RefNode

func (AtomNode) OneStr added in v0.11.0

func (c AtomNode) OneStr() *StrNode

func (AtomNode) OneTerm added in v0.11.0

func (c AtomNode) OneTerm() *TermNode

func (AtomNode) OneToken added in v0.13.0

func (c AtomNode) OneToken() string

type CommentNode added in v0.11.0

type CommentNode struct{ ast.Node }

func (*CommentNode) String added in v0.11.0

func (c *CommentNode) String() string

type GrammarNode added in v0.11.0

type GrammarNode struct{ ast.Node }

func NewGrammarNode added in v0.11.0

func NewGrammarNode(from ast.Node) GrammarNode

func Parse added in v0.10.0

func Parse(input *parser.Scanner) (GrammarNode, error)

func ParseString added in v0.10.0

func ParseString(input string) (GrammarNode, error)

func (GrammarNode) AllStmt added in v0.11.0

func (c GrammarNode) AllStmt() []StmtNode

func (GrammarNode) GetAstNode added in v0.11.0

func (c GrammarNode) GetAstNode() ast.Node

type IdentNode added in v0.11.0

type IdentNode struct{ ast.Node }

func (*IdentNode) String added in v0.11.0

func (c *IdentNode) String() string

type ImportResolver added in v0.12.2

type ImportResolver interface {
	// Resolve returns the absolute path of the file at the location 'path' relative to the 'from' path
	Resolve(from, path string) string
}

type IntNode added in v0.11.0

type IntNode struct{ ast.Node }

func (*IntNode) String added in v0.11.0

func (c *IntNode) String() string

type IsWalkableType added in v0.13.0

type IsWalkableType interface {
	// contains filtered or unexported methods
}

type MacrocallNode added in v0.14.0

type MacrocallNode struct{ ast.Node }

func (MacrocallNode) AllTerm added in v0.14.0

func (c MacrocallNode) AllTerm() []TermNode

func (MacrocallNode) AllToken added in v0.14.0

func (c MacrocallNode) AllToken() []string

func (MacrocallNode) OneName added in v0.14.0

func (c MacrocallNode) OneName() *IdentNode

func (MacrocallNode) OneToken added in v0.14.0

func (c MacrocallNode) OneToken() string

type NamedNode added in v0.11.0

type NamedNode struct{ ast.Node }

func (NamedNode) OneAtom added in v0.11.0

func (c NamedNode) OneAtom() *AtomNode

func (NamedNode) OneIdent added in v0.11.0

func (c NamedNode) OneIdent() *IdentNode

func (NamedNode) OneOp added in v0.11.0

func (c NamedNode) OneOp() string

type PragmaImportNode added in v0.13.0

type PragmaImportNode struct{ ast.Node }

func (PragmaImportNode) OnePath added in v0.13.0

func (PragmaImportNode) OneToken added in v0.13.0

func (c PragmaImportNode) OneToken() string

type PragmaImportPathNode added in v0.13.0

type PragmaImportPathNode struct{ ast.Node }

func (PragmaImportPathNode) AllToken added in v0.13.0

func (c PragmaImportPathNode) AllToken() []string

func (PragmaImportPathNode) Choice added in v0.13.0

func (c PragmaImportPathNode) Choice() int

type PragmaMacrodefNode added in v0.14.0

type PragmaMacrodefNode struct{ ast.Node }

func (PragmaMacrodefNode) AllArgs added in v0.14.0

func (c PragmaMacrodefNode) AllArgs() []IdentNode

func (PragmaMacrodefNode) AllToken added in v0.14.0

func (c PragmaMacrodefNode) AllToken() []string

func (PragmaMacrodefNode) OneName added in v0.14.0

func (c PragmaMacrodefNode) OneName() *IdentNode

func (PragmaMacrodefNode) OneTerm added in v0.14.0

func (c PragmaMacrodefNode) OneTerm() *TermNode

func (PragmaMacrodefNode) OneToken added in v0.14.0

func (c PragmaMacrodefNode) OneToken() string

type PragmaNode added in v0.12.2

type PragmaNode struct{ ast.Node }

func (PragmaNode) Choice added in v0.12.2

func (c PragmaNode) Choice() int

func (PragmaNode) OneImport added in v0.12.2

func (c PragmaNode) OneImport() *PragmaImportNode

func (PragmaNode) OneMacrodef added in v0.14.0

func (c PragmaNode) OneMacrodef() *PragmaMacrodefNode

type ProdNode added in v0.11.0

type ProdNode struct{ ast.Node }

func (ProdNode) AllTerm added in v0.11.0

func (c ProdNode) AllTerm() []TermNode

func (ProdNode) AllToken added in v0.13.0

func (c ProdNode) AllToken() []string

func (ProdNode) OneIdent added in v0.11.0

func (c ProdNode) OneIdent() *IdentNode

func (ProdNode) OneToken added in v0.13.0

func (c ProdNode) OneToken() string

type QuantNode added in v0.11.0

type QuantNode struct{ ast.Node }

func (QuantNode) AllToken added in v0.13.0

func (c QuantNode) AllToken() []string

func (QuantNode) Choice added in v0.11.0

func (c QuantNode) Choice() int

func (QuantNode) OneMax added in v0.11.0

func (c QuantNode) OneMax() *IntNode

func (QuantNode) OneMin added in v0.11.0

func (c QuantNode) OneMin() *IntNode

func (QuantNode) OneNamed added in v0.11.0

func (c QuantNode) OneNamed() *NamedNode

func (QuantNode) OneOp added in v0.11.0

func (c QuantNode) OneOp() string

func (QuantNode) OneOptLeading added in v0.11.0

func (c QuantNode) OneOptLeading() string

func (QuantNode) OneOptTrailing added in v0.11.0

func (c QuantNode) OneOptTrailing() string

func (QuantNode) OneToken added in v0.13.0

func (c QuantNode) OneToken() string

type ReNode added in v0.11.0

type ReNode struct{ ast.Node }

func (*ReNode) String added in v0.11.0

func (c *ReNode) String() string

type RefNode added in v0.11.0

type RefNode struct{ ast.Node }

func (RefNode) OneDefault added in v0.11.0

func (c RefNode) OneDefault() *StrNode

func (RefNode) OneIdent added in v0.11.0

func (c RefNode) OneIdent() *IdentNode

func (RefNode) OneToken added in v0.13.0

func (c RefNode) OneToken() string

type StmtNode added in v0.11.0

type StmtNode struct{ ast.Node }

func (StmtNode) Choice added in v0.11.0

func (c StmtNode) Choice() int

func (StmtNode) OneComment added in v0.11.0

func (c StmtNode) OneComment() *CommentNode

func (StmtNode) OnePragma added in v0.12.2

func (c StmtNode) OnePragma() *PragmaNode

func (StmtNode) OneProd added in v0.11.0

func (c StmtNode) OneProd() *ProdNode

type Stopper added in v0.12.2

type Stopper interface {
	ExitNode() bool
	Abort() bool
}

type StrNode added in v0.11.0

type StrNode struct{ ast.Node }

func (*StrNode) String added in v0.11.0

func (c *StrNode) String() string

type TermNode added in v0.11.0

type TermNode struct{ ast.Node }

func (TermNode) AllGrammar added in v0.13.0

func (c TermNode) AllGrammar() []GrammarNode

func (TermNode) AllQuant added in v0.11.0

func (c TermNode) AllQuant() []QuantNode

func (TermNode) AllTerm added in v0.11.0

func (c TermNode) AllTerm() []TermNode

func (TermNode) AllToken added in v0.13.0

func (c TermNode) AllToken() []string

func (TermNode) OneNamed added in v0.11.0

func (c TermNode) OneNamed() *NamedNode

func (TermNode) OneOp added in v0.11.0

func (c TermNode) OneOp() string

type WalkerOps added in v0.12.1

type WalkerOps struct {
	EnterAtomExtRefNode       func(AtomExtRefNode) Stopper
	ExitAtomExtRefNode        func(AtomExtRefNode) Stopper
	EnterAtomNode             func(AtomNode) Stopper
	ExitAtomNode              func(AtomNode) Stopper
	EnterCommentNode          func(CommentNode) Stopper
	ExitCommentNode           func(CommentNode) Stopper
	EnterGrammarNode          func(GrammarNode) Stopper
	ExitGrammarNode           func(GrammarNode) Stopper
	EnterIdentNode            func(IdentNode) Stopper
	ExitIdentNode             func(IdentNode) Stopper
	EnterIntNode              func(IntNode) Stopper
	ExitIntNode               func(IntNode) Stopper
	EnterMacrocallNode        func(MacrocallNode) Stopper
	ExitMacrocallNode         func(MacrocallNode) Stopper
	EnterNamedNode            func(NamedNode) Stopper
	ExitNamedNode             func(NamedNode) Stopper
	EnterPragmaImportNode     func(PragmaImportNode) Stopper
	ExitPragmaImportNode      func(PragmaImportNode) Stopper
	EnterPragmaImportPathNode func(PragmaImportPathNode) Stopper
	ExitPragmaImportPathNode  func(PragmaImportPathNode) Stopper
	EnterPragmaMacrodefNode   func(PragmaMacrodefNode) Stopper
	ExitPragmaMacrodefNode    func(PragmaMacrodefNode) Stopper
	EnterPragmaNode           func(PragmaNode) Stopper
	ExitPragmaNode            func(PragmaNode) Stopper
	EnterProdNode             func(ProdNode) Stopper
	ExitProdNode              func(ProdNode) Stopper
	EnterQuantNode            func(QuantNode) Stopper
	ExitQuantNode             func(QuantNode) Stopper
	EnterReNode               func(ReNode) Stopper
	ExitReNode                func(ReNode) Stopper
	EnterRefNode              func(RefNode) Stopper
	ExitRefNode               func(RefNode) Stopper
	EnterStmtNode             func(StmtNode) Stopper
	ExitStmtNode              func(StmtNode) Stopper
	EnterStrNode              func(StrNode) Stopper
	ExitStrNode               func(StrNode) Stopper
	EnterTermNode             func(TermNode) Stopper
	ExitTermNode              func(TermNode) Stopper
	EnterWrapReNode           func(WrapReNode) Stopper
	ExitWrapReNode            func(WrapReNode) Stopper
}

func (WalkerOps) Walk added in v0.12.1

func (w WalkerOps) Walk(tree IsWalkableType) Stopper

func (WalkerOps) WalkAtomExtRefNode added in v0.13.0

func (w WalkerOps) WalkAtomExtRefNode(node AtomExtRefNode) Stopper

func (WalkerOps) WalkAtomNode added in v0.13.0

func (w WalkerOps) WalkAtomNode(node AtomNode) Stopper

func (WalkerOps) WalkGrammarNode added in v0.13.0

func (w WalkerOps) WalkGrammarNode(node GrammarNode) Stopper

func (WalkerOps) WalkMacrocallNode added in v0.14.0

func (w WalkerOps) WalkMacrocallNode(node MacrocallNode) Stopper

func (WalkerOps) WalkNamedNode added in v0.13.0

func (w WalkerOps) WalkNamedNode(node NamedNode) Stopper

func (WalkerOps) WalkPragmaImportNode added in v0.13.0

func (w WalkerOps) WalkPragmaImportNode(node PragmaImportNode) Stopper

func (WalkerOps) WalkPragmaImportPathNode added in v0.13.0

func (w WalkerOps) WalkPragmaImportPathNode(node PragmaImportPathNode) Stopper

func (WalkerOps) WalkPragmaMacrodefNode added in v0.14.0

func (w WalkerOps) WalkPragmaMacrodefNode(node PragmaMacrodefNode) Stopper

func (WalkerOps) WalkPragmaNode added in v0.13.0

func (w WalkerOps) WalkPragmaNode(node PragmaNode) Stopper

func (WalkerOps) WalkProdNode added in v0.13.0

func (w WalkerOps) WalkProdNode(node ProdNode) Stopper

func (WalkerOps) WalkQuantNode added in v0.13.0

func (w WalkerOps) WalkQuantNode(node QuantNode) Stopper

func (WalkerOps) WalkRefNode added in v0.13.0

func (w WalkerOps) WalkRefNode(node RefNode) Stopper

func (WalkerOps) WalkStmtNode added in v0.13.0

func (w WalkerOps) WalkStmtNode(node StmtNode) Stopper

func (WalkerOps) WalkTermNode added in v0.13.0

func (w WalkerOps) WalkTermNode(node TermNode) Stopper

type WrapReNode added in v0.13.0

type WrapReNode struct{ ast.Node }

func (*WrapReNode) String added in v0.13.0

func (c *WrapReNode) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL