moof

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

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

Go to latest
Published: Mar 29, 2024 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Buffer

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

func NewBuffer

func NewBuffer(s string) *Buffer

func (*Buffer) Consume

func (b *Buffer) Consume(l int) bool

func (*Buffer) ConsumeManyNotOf

func (b *Buffer) ConsumeManyNotOf(chars string) string

func (*Buffer) ConsumeManyOf

func (b *Buffer) ConsumeManyOf(chars string) string

func (*Buffer) ConsumeOne

func (b *Buffer) ConsumeOne() string

func (*Buffer) ConsumeOneNotOf

func (b *Buffer) ConsumeOneNotOf(chars string) string

func (*Buffer) ConsumeOneOf

func (b *Buffer) ConsumeOneOf(chars string) string

func (*Buffer) ConsumeString

func (b *Buffer) ConsumeString(s string) bool

func (Buffer) Duplicate

func (b Buffer) Duplicate() *Buffer

func (Buffer) Empty

func (b Buffer) Empty() bool

func (Buffer) GetAll

func (b Buffer) GetAll() string

func (Buffer) GetRune

func (b Buffer) GetRune() rune

func (Buffer) GetString

func (b Buffer) GetString(l int) string

func (Buffer) Len

func (b Buffer) Len() int

func (*Buffer) MustConsume

func (b *Buffer) MustConsume(l int)

func (Buffer) Pos

func (b Buffer) Pos() int

type NodeAssignment

type NodeAssignment struct {
	LHS        *NodeLHS
	Expression *NodeExpression
}

type NodeBlockArgument

type NodeBlockArgument struct {
	Name *NodeSymbolName
	Type *NodeReference
}

type NodeBlockCompile

type NodeBlockCompile struct {
	Arguments  []*NodeBlockArgument
	Return     []*NodeBlockArgument
	Statements []*NodeStatement
}

type NodeBlockRun

type NodeBlockRun struct {
	Arguments  []*NodeBlockArgument
	Return     []*NodeBlockArgument
	Statements []*NodeStatement
}

type NodeCall

type NodeCall struct {
	Reference    *NodeReference
	Arguments    []*NodeCallArgument
	BlockCompile *NodeBlockCompile
	BlockRun     *NodeBlockRun
}

type NodeCallArgument

type NodeCallArgument struct {
	Name  *NodeSymbolName
	Value *NodeExpression
}

type NodeExpression

type NodeExpression struct {
	// One of
	IntLiteral    *NodeIntLiteral
	StringLiteral *NodeStringLiteral
	Call          *NodeCall
	Reference     *NodeReference
	BlockCompile  *NodeBlockCompile
	BlockRun      *NodeBlockRun
}

type NodeIntLiteral

type NodeIntLiteral struct {
	Value int64
}

type NodeLHS

type NodeLHS struct {
	// One of
	SymbolName *NodeSymbolName
}

type NodeReference

type NodeReference struct {
	SymbolNames []*NodeSymbolName
}

type NodeRoot

type NodeRoot struct {
	Statements []*NodeStatement
}

func Parse

func Parse(s string) (*NodeRoot, error)

func (NodeRoot) Tree

func (n NodeRoot) Tree(prefix string) string

type NodeStatement

type NodeStatement struct {
	// One of
	Assignment *NodeAssignment
	Call       *NodeCall
}

func (NodeStatement) Tree

func (n NodeStatement) Tree(prefix string) string

type NodeStringLiteral

type NodeStringLiteral struct {
	Value string
}

type NodeSymbolName

type NodeSymbolName struct {
	Value string
}

type Parser

type Parser struct {
	Err  string
	Pos  int
	Char string
}

func (*Parser) Error

func (p *Parser) Error(b *Buffer, err string)

func (*Parser) ParseAssignment

func (p *Parser) ParseAssignment(b *Buffer) *NodeAssignment

func (*Parser) ParseBlockArgument

func (p *Parser) ParseBlockArgument(b *Buffer) *NodeBlockArgument

func (*Parser) ParseBlockArguments

func (p *Parser) ParseBlockArguments(b *Buffer) []*NodeBlockArgument

func (*Parser) ParseBlockCompile

func (p *Parser) ParseBlockCompile(b *Buffer) *NodeBlockCompile

func (*Parser) ParseBlockReturn

func (p *Parser) ParseBlockReturn(b *Buffer) []*NodeBlockArgument

func (*Parser) ParseBlockRun

func (p *Parser) ParseBlockRun(b *Buffer) *NodeBlockRun

func (*Parser) ParseCall

func (p *Parser) ParseCall(b *Buffer) *NodeCall

func (*Parser) ParseCallArgument

func (p *Parser) ParseCallArgument(b *Buffer) *NodeCallArgument

func (*Parser) ParseCallArgumentNamed

func (p *Parser) ParseCallArgumentNamed(b *Buffer) *NodeCallArgument

func (*Parser) ParseCallArguments

func (p *Parser) ParseCallArguments(b *Buffer) []*NodeCallArgument

func (*Parser) ParseExpression

func (p *Parser) ParseExpression(b *Buffer) *NodeExpression

func (*Parser) ParseIntLiteral

func (p *Parser) ParseIntLiteral(b *Buffer) *NodeIntLiteral

func (*Parser) ParseLHS

func (p *Parser) ParseLHS(b *Buffer) *NodeLHS

func (*Parser) ParseReference

func (p *Parser) ParseReference(b *Buffer) *NodeReference

func (*Parser) ParseRoot

func (p *Parser) ParseRoot(b *Buffer) *NodeRoot

func (*Parser) ParseStatement

func (p *Parser) ParseStatement(b *Buffer) *NodeStatement

func (*Parser) ParseStringLiteral

func (p *Parser) ParseStringLiteral(b *Buffer) *NodeStringLiteral

func (*Parser) ParseSymbolName

func (p *Parser) ParseSymbolName(b *Buffer) *NodeSymbolName

Jump to

Keyboard shortcuts

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