circular

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Jun 2, 2021 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Circular

func Circular(p *ast.Parser) (*ast.Node, error)
Example
package main

import (
	"fmt"
	"github.com/di-wu/parser/ast"
	"github.com/di-wu/parser/examples/circular"
)

func main() {
	p, _ := ast.New([]byte("00001"))
	fmt.Println(p.Expect(ast.Capture{
		TypeStrings: []string{"Number"},
		Value:       circular.Circular,
	}))
}
Output:

["Number","00001"] <nil>
Example (Function)
package main

import (
	"fmt"
	"github.com/di-wu/parser/ast"
	"github.com/di-wu/parser/op"
)

func main() {
	var circularFunc interface{}
	circularFunc = func(p *ast.Parser) (*ast.Node, error) {
		return p.Expect(op.Or{
			op.And{
				'0',
				circularFunc,
			},
			'1',
		})
	}

	p, _ := ast.New([]byte("00001"))
	fmt.Println(p.Expect(ast.Capture{
		TypeStrings: []string{"Circular"},
		Value:       circularFunc,
	}))
}
Output:

["Circular","00001"] <nil>

func NewCircularParser

func NewCircularParser(input []byte) (*ast.Parser, error)

func Parse

func Parse(input string) (*ast.Node, error)
Example
package main

import (
	"fmt"
	"github.com/di-wu/parser/examples/circular"
)

func main() {
	fmt.Println(circular.Parse("00001"))
	fmt.Println(circular.Parse("01001"))
	fmt.Println(circular.Parse("00100"))
}
Output:

["Circular","00001"] <nil>
["Circular","01"] <nil>
["Circular","001"] <nil>

Types

This section is empty.

Jump to

Keyboard shortcuts

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