apcgen

package
v0.0.0-...-d52871a Latest Latest
Warning

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

Go to latest
Published: Jun 4, 2023 License: GPL-3.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DebugPrintBuiltNodes = false
)

Enable various debug prints

Functions

func BuildParser

func BuildParser[RT any](buildOpts *BuildOptions[rune]) apc.Parser[rune, RT]

func BuildSimpleLexer

func BuildSimpleLexer(
	opts SimpleLexerBuildOptions,
) apc.Parser[rune, apc.Token]

func BuildTokenizedParser

func BuildTokenizedParser[RT any](buildOpts *BuildOptions[apc.Token]) apc.Parser[apc.Token, RT]

Types

type BuildOptionFunc

type BuildOptionFunc[CT any] func(opts *BuildOptions[CT])

func WithBuildParserOption

func WithBuildParserOption[RT any]() BuildOptionFunc[rune]

func WithBuildTokenizedParserOption

func WithBuildTokenizedParserOption[RT any]() BuildOptionFunc[apc.Token]

func WithParserOption

func WithParserOption[CT any](name string, parser apc.Parser[CT, any]) BuildOptionFunc[CT]

func WithSkipParserOption

func WithSkipParserOption[CT any](parser apc.Parser[CT, any]) BuildOptionFunc[CT]

type BuildOptions

type BuildOptions[CT any] struct {
	ProvidedParsers map[string]apc.Parser[CT, any]
	SkipParsers     []apc.Parser[CT, any]
}

func WithDefaultBuildOptions

func WithDefaultBuildOptions[CT any](buildFuncs ...BuildOptionFunc[CT]) *BuildOptions[CT]

type Node

type Node interface{}

type SimpleLexerBuildOptions

type SimpleLexerBuildOptions struct {
	IdentifierTokenType         apc.TokenType
	IdentifierParser            apc.Parser[rune, string]
	SpecialIdentifierTokenTypes []apc.TokenType
	ExactMatchTokenTypes        []apc.TokenType
	ProvidedParsers             []apc.Parser[rune, apc.Token]
	SkipParsers                 []apc.Parser[rune, any]
}

Jump to

Keyboard shortcuts

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