ast

package
v4.1.11 Latest Latest
Warning

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

Go to latest
Published: Mar 24, 2022 License: MIT Imports: 4 Imported by: 7

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ArrayLiteral

type ArrayLiteral struct {
	TokenAble
	Elements []Expression
}

func (*ArrayLiteral) String

func (al *ArrayLiteral) String() string

type AssignExpression

type AssignExpression struct {
	TokenAble
	Name  *Identifier
	Value Expression
}

func (*AssignExpression) String

func (ae *AssignExpression) String() string

type BlockStatement

type BlockStatement struct {
	TokenAble
	Statements []Statement
}

BlockStatement is a list of statements grouped in a context surrounded by braces.

func (*BlockStatement) InnerText

func (bs *BlockStatement) InnerText() string

InnerText gets the raw string representation of the block's contents.

func (*BlockStatement) String

func (bs *BlockStatement) String() string

type Boolean

type Boolean struct {
	TokenAble
	Value bool
}

func (*Boolean) String

func (b *Boolean) String() string

type BreakExpression added in v4.1.5

type BreakExpression struct {
	TokenAble
}

func (*BreakExpression) String added in v4.1.5

func (ce *BreakExpression) String() string

type CallExpression

type CallExpression struct {
	TokenAble
	Callee    Expression
	Function  Expression
	Arguments []Expression
	Block     *BlockStatement
	ElseBlock *BlockStatement
}

func (*CallExpression) String

func (ce *CallExpression) String() string

type Comparable added in v4.1.2

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

type ContinueExpression added in v4.1.4

type ContinueExpression struct {
	TokenAble
}

func (*ContinueExpression) String added in v4.1.4

func (ce *ContinueExpression) String() string

type ElseIfExpression

type ElseIfExpression struct {
	TokenAble
	Condition Expression
	Block     *BlockStatement
}

type Expression

type Expression interface {
	Node
	// contains filtered or unexported methods
}

All expression nodes implement this

type ExpressionStatement

type ExpressionStatement struct {
	TokenAble
	Expression Expression
}

func (*ExpressionStatement) String

func (es *ExpressionStatement) String() string

type FloatLiteral

type FloatLiteral struct {
	TokenAble
	Value float64
}

func (*FloatLiteral) String

func (il *FloatLiteral) String() string

type ForExpression

type ForExpression struct {
	TokenAble
	KeyName   string
	ValueName string
	Block     *BlockStatement
	Iterable  Expression
}

func (*ForExpression) String

func (fe *ForExpression) String() string

type FunctionLiteral

type FunctionLiteral struct {
	TokenAble
	Parameters []*Identifier
	Block      *BlockStatement
}

func (*FunctionLiteral) String

func (fl *FunctionLiteral) String() string

type HTMLLiteral

type HTMLLiteral struct {
	TokenAble
	Value string
}

func (*HTMLLiteral) Printable

func (hl *HTMLLiteral) Printable() bool

func (*HTMLLiteral) String

func (hl *HTMLLiteral) String() string

type HashLiteral

type HashLiteral struct {
	TokenAble
	Order []Expression
	Pairs map[Expression]Expression
}

func (*HashLiteral) String

func (hl *HashLiteral) String() string

type Identifier

type Identifier struct {
	TokenAble
	Callee         *Identifier
	Value          string
	OriginalCallee *Identifier // So robot.Avatar.Name the OriginalCallee will be robot
}

func (*Identifier) String

func (i *Identifier) String() string

type IfExpression

type IfExpression struct {
	TokenAble
	Condition Expression
	Block     *BlockStatement
	ElseIf    []*ElseIfExpression
	ElseBlock *BlockStatement
}

func (*IfExpression) String

func (ie *IfExpression) String() string

type IndexExpression

type IndexExpression struct {
	TokenAble
	Left   Expression
	Index  Expression
	Value  Expression
	Callee Expression
}

func (*IndexExpression) String

func (ie *IndexExpression) String() string

type InfixExpression

type InfixExpression struct {
	TokenAble
	Left     Expression
	Operator string
	Right    Expression
}

func (*InfixExpression) String

func (oe *InfixExpression) String() string

type IntegerLiteral

type IntegerLiteral struct {
	TokenAble
	Value int
}

func (*IntegerLiteral) String

func (il *IntegerLiteral) String() string

type LetStatement

type LetStatement struct {
	TokenAble
	Name  *Identifier
	Value Expression
}

func (*LetStatement) String

func (ls *LetStatement) String() string

type Node

type Node interface {
	T() token.Token
	TokenLiteral() string
	String() string
}

The base Node interface

type PrefixExpression

type PrefixExpression struct {
	TokenAble
	Operator string
	Right    Expression
}

func (*PrefixExpression) String

func (pe *PrefixExpression) String() string

type Printable

type Printable interface {
	Printable() bool
}

type Program

type Program struct {
	Statements []Statement
}

func (*Program) InnerText

func (p *Program) InnerText() string

InnerText gets the raw string representation of the program's contents.

func (*Program) String

func (p *Program) String() string

func (*Program) TokenLiteral

func (p *Program) TokenLiteral() string

type ReturnStatement

type ReturnStatement struct {
	Type string
	TokenAble
	ReturnValue Expression
}

func (*ReturnStatement) Printable

func (rs *ReturnStatement) Printable() bool

func (*ReturnStatement) String

func (rs *ReturnStatement) String() string

type Statement

type Statement interface {
	Node
	// contains filtered or unexported methods
}

All statement nodes implement this

type StringLiteral

type StringLiteral struct {
	TokenAble
	Value string
}

func (*StringLiteral) String

func (sl *StringLiteral) String() string

type TokenAble

type TokenAble struct {
	token.Token
}

func (TokenAble) T

func (t TokenAble) T() token.Token

func (TokenAble) TokenLiteral

func (t TokenAble) TokenLiteral() string

Jump to

Keyboard shortcuts

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