paza

package module
v0.0.0-...-dc7674c Latest Latest
Warning

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

Go to latest
Published: May 17, 2019 License: Apache-2.0 Imports: 7 Imported by: 1

README

paza

parser combinator tools with support for direct/indirect left recursive grammars.

based on Medeiros' algorithm http://arxiv.org/pdf/1207.0443

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Input

type Input struct {
	Text []byte
	// contains filtered or unexported fields
}

func NewInput

func NewInput(text []byte) *Input

type Node

type Node struct {
	Name  string
	Start int
	Len   int
	Subs  []*Node
}

func (*Node) Dump

func (n *Node) Dump(writer io.Writer, input *Input)

func (*Node) Equal

func (n *Node) Equal(n2 *Node) bool

type Parser

type Parser func(input *Input, start int) (ok bool, n int, node *Node)

type Set

type Set struct {
	// contains filtered or unexported fields
}

func NewSet

func NewSet() *Set

func (*Set) Add

func (s *Set) Add(name string, parser Parser)

func (*Set) ByteIn

func (s *Set) ByteIn(bs []byte) Parser

func (*Set) ByteRange

func (s *Set) ByteRange(left, right byte) Parser

func (*Set) Call

func (s *Set) Call(name string, input *Input, start int) (retOk bool, retLen int, retNode *Node)

func (*Set) Concat

func (s *Set) Concat(parsers ...interface{}) Parser

func (*Set) NamedByteIn

func (s *Set) NamedByteIn(name string, bs []byte) string

func (*Set) NamedByteRange

func (s *Set) NamedByteRange(name string, left, right byte) string

func (*Set) NamedConcat

func (s *Set) NamedConcat(name string, parsers ...interface{}) string

func (*Set) NamedOneOrMore

func (s *Set) NamedOneOrMore(name string, parser interface{}) string

func (*Set) NamedOrdChoice

func (s *Set) NamedOrdChoice(name string, parsers ...interface{}) string

func (*Set) NamedRegex

func (s *Set) NamedRegex(name string, re string) string

func (*Set) NamedRepeat

func (s *Set) NamedRepeat(name string, lowerBound, upperBound int, parser interface{}) string

func (*Set) NamedRune

func (s *Set) NamedRune(name string, r rune) string

func (*Set) NamedZeroOrMore

func (s *Set) NamedZeroOrMore(name string, parser interface{}) string

func (*Set) NotPredicate

func (s *Set) NotPredicate(parser interface{}) Parser

func (*Set) OneOrMore

func (s *Set) OneOrMore(parser interface{}) Parser

func (*Set) OrdChoice

func (s *Set) OrdChoice(parsers ...interface{}) Parser

func (*Set) Predicate

func (s *Set) Predicate(parser interface{}) Parser

func (*Set) Regex

func (s *Set) Regex(re string) Parser

func (*Set) Repeat

func (s *Set) Repeat(lowerBound, upperBound int, parser interface{}) Parser

func (*Set) Rune

func (s *Set) Rune(r rune) Parser

func (*Set) ZeroOrMore

func (s *Set) ZeroOrMore(parser interface{}) Parser

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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