ast

package
v0.1.8 Latest Latest
Warning

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

Go to latest
Published: Jul 20, 2025 License: GPL-3.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ArcaneGrimoire added in v0.1.6

type ArcaneGrimoire struct {
	Token      token.Token
	Name       *Identifier
	Methods    []*ArcaneSpell
	InitMethod *FunctionDefinition
}

func (*ArcaneGrimoire) String added in v0.1.6

func (asb *ArcaneGrimoire) String() string

func (*ArcaneGrimoire) TokenLiteral added in v0.1.6

func (asb *ArcaneGrimoire) TokenLiteral() string

type ArcaneSpell

type ArcaneSpell struct {
	Token      token.Token
	Name       *Identifier
	Parameters []Expression
	Body       *BlockStatement
}

func (*ArcaneSpell) String

func (as *ArcaneSpell) String() string

func (*ArcaneSpell) TokenLiteral

func (as *ArcaneSpell) TokenLiteral() string

type ArrayLiteral

type ArrayLiteral struct {
	Token    token.Token
	Elements []Expression
}

func (*ArrayLiteral) String

func (al *ArrayLiteral) String() string

func (*ArrayLiteral) TokenLiteral

func (al *ArrayLiteral) TokenLiteral() string

type AssignStatement

type AssignStatement struct {
	Token    token.Token
	Name     Expression
	Operator string
	TypeHint Expression
	Value    Expression
}

func (*AssignStatement) String

func (as *AssignStatement) String() string

func (*AssignStatement) TokenLiteral

func (as *AssignStatement) TokenLiteral() string

type AttemptStatement

type AttemptStatement struct {
	Token          token.Token
	TryBlock       *BlockStatement
	EnsnareClauses []*EnsnareClause
	ResolveBlock   *BlockStatement
}

func (*AttemptStatement) String

func (as *AttemptStatement) String() string

func (*AttemptStatement) TokenLiteral

func (as *AttemptStatement) TokenLiteral() string

type BlockStatement

type BlockStatement struct {
	Token      token.Token
	Statements []Statement
}

func (*BlockStatement) String

func (bs *BlockStatement) String() string

func (*BlockStatement) TokenLiteral

func (bs *BlockStatement) TokenLiteral() string

type Boolean

type Boolean struct {
	Token token.Token
	Value bool
}

func (*Boolean) String

func (b *Boolean) String() string

func (*Boolean) TokenLiteral

func (b *Boolean) TokenLiteral() string

type CallExpression

type CallExpression struct {
	Token     token.Token
	Function  Expression
	Arguments []Expression
}

func (*CallExpression) String

func (ce *CallExpression) String() string

func (*CallExpression) TokenLiteral

func (ce *CallExpression) TokenLiteral() string

type CaseClause

type CaseClause struct {
	Token     token.Token
	Condition Expression
	Body      *BlockStatement
}

func (*CaseClause) String

func (cc *CaseClause) String() string

func (*CaseClause) TokenLiteral

func (cc *CaseClause) TokenLiteral() string

type CheckStatement

type CheckStatement struct {
	Token     token.Token
	Condition Expression
	Message   Expression
}

func (*CheckStatement) String

func (cs *CheckStatement) String() string

func (*CheckStatement) TokenLiteral

func (cs *CheckStatement) TokenLiteral() string

type ConvergeStatement added in v0.1.8

type ConvergeStatement struct {
	Token   token.Token  // the 'converge' token
	Names   []Expression // optional names of goroutines to wait for
	Timeout Expression   // optional timeout
}

func (*ConvergeStatement) String added in v0.1.8

func (cs *ConvergeStatement) String() string

func (*ConvergeStatement) TokenLiteral added in v0.1.8

func (cs *ConvergeStatement) TokenLiteral() string

type DivergeStatement added in v0.1.8

type DivergeStatement struct {
	Token token.Token // the 'diverge' token
	Name  *Identifier // optional name for the goroutine
	Body  *BlockStatement
}

func (*DivergeStatement) String added in v0.1.8

func (ds *DivergeStatement) String() string

func (*DivergeStatement) TokenLiteral added in v0.1.8

func (ds *DivergeStatement) TokenLiteral() string

type DotExpression

type DotExpression struct {
	Token token.Token
	Left  Expression
	Right *Identifier
}

func (*DotExpression) String

func (de *DotExpression) String() string

func (*DotExpression) TokenLiteral

func (de *DotExpression) TokenLiteral() string

type ElseStatement added in v0.1.6

type ElseStatement struct {
	Token token.Token
	Body  *BlockStatement
}

func (*ElseStatement) String added in v0.1.6

func (es *ElseStatement) String() string

func (*ElseStatement) TokenLiteral added in v0.1.6

func (es *ElseStatement) TokenLiteral() string

type EnsnareClause

type EnsnareClause struct {
	Token       token.Token
	Condition   Expression
	Alias       *Identifier
	Consequence *BlockStatement
}

func (*EnsnareClause) String

func (ec *EnsnareClause) String() string

func (*EnsnareClause) TokenLiteral

func (ec *EnsnareClause) TokenLiteral() string

type Expression

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

type ExpressionStatement

type ExpressionStatement struct {
	Token      token.Token
	Expression Expression
}

func (*ExpressionStatement) String

func (es *ExpressionStatement) String() string

func (*ExpressionStatement) TokenLiteral

func (es *ExpressionStatement) TokenLiteral() string

type FStringExpr

type FStringExpr struct {
	Expr Expression
}

func (*FStringExpr) String

func (fe *FStringExpr) String() string

type FStringLiteral

type FStringLiteral struct {
	Token token.Token
	Parts []FStringPart
}

func (*FStringLiteral) String

func (fsl *FStringLiteral) String() string

func (*FStringLiteral) TokenLiteral

func (fsl *FStringLiteral) TokenLiteral() string

type FStringPart

type FStringPart interface {
	String() string
	// contains filtered or unexported methods
}

type FStringText

type FStringText struct {
	Value string
}

func (*FStringText) String

func (ft *FStringText) String() string

type FloatLiteral

type FloatLiteral struct {
	Token token.Token
	Value float64
}

func (*FloatLiteral) String

func (fl *FloatLiteral) String() string

func (*FloatLiteral) TokenLiteral

func (fl *FloatLiteral) TokenLiteral() string

type ForStatement

type ForStatement struct {
	Token       token.Token
	Variable    Expression // Now supports identifiers, tuple literals, etc.
	Iterable    Expression
	Body        *BlockStatement
	Alternative *BlockStatement
}

func (*ForStatement) String

func (fs *ForStatement) String() string

func (*ForStatement) TokenLiteral

func (fs *ForStatement) TokenLiteral() string

type FunctionDefinition

type FunctionDefinition struct {
	Token      token.Token
	Name       *Identifier
	Parameters []Expression
	ReturnType Expression
	Body       *BlockStatement
	DocString  *StringLiteral
}

func (*FunctionDefinition) String

func (fd *FunctionDefinition) String() string

func (*FunctionDefinition) TokenLiteral

func (fd *FunctionDefinition) TokenLiteral() string

type FunctionLiteral

type FunctionLiteral struct {
	Token      token.Token
	Parameters []*Identifier
	Body       *BlockStatement
}

func (*FunctionLiteral) String

func (fl *FunctionLiteral) String() string

func (*FunctionLiteral) TokenLiteral

func (fl *FunctionLiteral) TokenLiteral() string

type GlobalStatement added in v0.1.7

type GlobalStatement struct {
	Token token.Token
	Names []*Identifier
}

func (*GlobalStatement) String added in v0.1.7

func (gs *GlobalStatement) String() string

func (*GlobalStatement) TokenLiteral added in v0.1.7

func (gs *GlobalStatement) TokenLiteral() string

type GrimoireDefinition added in v0.1.6

type GrimoireDefinition struct {
	Token      token.Token
	Name       *Identifier
	Inherits   *Identifier
	Methods    []*FunctionDefinition
	InitMethod *FunctionDefinition
	DocString  *StringLiteral
}

func (*GrimoireDefinition) String added in v0.1.6

func (sb *GrimoireDefinition) String() string

func (*GrimoireDefinition) TokenLiteral added in v0.1.6

func (sb *GrimoireDefinition) TokenLiteral() string

type HashLiteral

type HashLiteral struct {
	Token token.Token
	Pairs map[Expression]Expression
}

func (*HashLiteral) String

func (hl *HashLiteral) String() string

func (*HashLiteral) TokenLiteral

func (hl *HashLiteral) TokenLiteral() string

type Identifier

type Identifier struct {
	Token token.Token
	Value string
}

func (*Identifier) String

func (i *Identifier) String() string

func (*Identifier) TokenLiteral

func (i *Identifier) TokenLiteral() string

type IfStatement

type IfStatement struct {
	Token             token.Token
	Condition         Expression
	Consequence       *BlockStatement
	OtherwiseBranches []OtherwiseBranch
	Alternative       *BlockStatement
}

func (*IfStatement) String

func (is *IfStatement) String() string

func (*IfStatement) TokenLiteral

func (is *IfStatement) TokenLiteral() string

type IgnoreStatement

type IgnoreStatement struct {
	Token token.Token
}

func (*IgnoreStatement) String

func (is *IgnoreStatement) String() string

func (*IgnoreStatement) TokenLiteral

func (is *IgnoreStatement) TokenLiteral() string

type ImportStatement

type ImportStatement struct {
	Token     token.Token
	FilePath  *StringLiteral
	ClassName *Identifier
	Alias     *Identifier
}

func (*ImportStatement) String

func (is *ImportStatement) String() string

func (*ImportStatement) TokenLiteral

func (is *ImportStatement) TokenLiteral() string

type IndexExpression

type IndexExpression struct {
	Token token.Token
	Left  Expression
	Index Expression
}

func (*IndexExpression) String

func (ie *IndexExpression) String() string

func (*IndexExpression) TokenLiteral

func (ie *IndexExpression) TokenLiteral() string

type InfixExpression

type InfixExpression struct {
	Token    token.Token
	Operator string
	Left     Expression
	Right    Expression
}

func (*InfixExpression) String

func (ie *InfixExpression) String() string

func (*InfixExpression) TokenLiteral

func (ie *InfixExpression) TokenLiteral() string

type IntegerLiteral

type IntegerLiteral struct {
	Token token.Token
	Value int64
}

func (*IntegerLiteral) String

func (il *IntegerLiteral) String() string

func (*IntegerLiteral) TokenLiteral

func (il *IntegerLiteral) TokenLiteral() string

type MainStatement added in v0.1.7

type MainStatement struct {
	Token token.Token
	Body  *BlockStatement
}

func (*MainStatement) String added in v0.1.7

func (ms *MainStatement) String() string

func (*MainStatement) TokenLiteral added in v0.1.7

func (ms *MainStatement) TokenLiteral() string

type MatchStatement

type MatchStatement struct {
	Token      token.Token
	MatchValue Expression
	Cases      []*CaseClause
	Default    *CaseClause
}

func (*MatchStatement) String

func (ms *MatchStatement) String() string

func (*MatchStatement) TokenLiteral

func (ms *MatchStatement) TokenLiteral() string

type Node

type Node interface {
	TokenLiteral() string
	String() string
}

type NoneLiteral

type NoneLiteral struct {
	Token token.Token
}

func (*NoneLiteral) String

func (nl *NoneLiteral) String() string

func (*NoneLiteral) TokenLiteral

func (nl *NoneLiteral) TokenLiteral() string

type OtherwiseBranch

type OtherwiseBranch struct {
	Token       token.Token
	Condition   Expression
	Consequence *BlockStatement
}

type Parameter

type Parameter struct {
	Name         *Identifier
	TypeHint     Expression
	DefaultValue Expression
}

func (*Parameter) String

func (p *Parameter) String() string

func (*Parameter) TokenLiteral

func (p *Parameter) TokenLiteral() string

type PostfixExpression

type PostfixExpression struct {
	Token    token.Token
	Left     Expression
	Operator string
}

func (*PostfixExpression) String

func (pe *PostfixExpression) String() string

func (*PostfixExpression) TokenLiteral

func (pe *PostfixExpression) TokenLiteral() string

type PrefixExpression

type PrefixExpression struct {
	Token    token.Token
	Operator string
	Right    Expression
}

func (*PrefixExpression) String

func (pe *PrefixExpression) String() string

func (*PrefixExpression) TokenLiteral

func (pe *PrefixExpression) TokenLiteral() string

type Program

type Program struct {
	Statements []Statement
}

func (*Program) String

func (p *Program) String() string

func (*Program) TokenLiteral

func (p *Program) TokenLiteral() string

type RaiseStatement

type RaiseStatement struct {
	Token token.Token
	Error Expression
}

func (*RaiseStatement) String

func (rs *RaiseStatement) String() string

func (*RaiseStatement) TokenLiteral

func (rs *RaiseStatement) TokenLiteral() string

type ReturnStatement

type ReturnStatement struct {
	Token       token.Token
	ReturnValue Expression
}

func (*ReturnStatement) String

func (rs *ReturnStatement) String() string

func (*ReturnStatement) TokenLiteral

func (rs *ReturnStatement) TokenLiteral() string

type SkipStatement

type SkipStatement struct {
	Token token.Token
}

func (*SkipStatement) String

func (s *SkipStatement) String() string

func (*SkipStatement) TokenLiteral

func (s *SkipStatement) TokenLiteral() string

type SliceExpression added in v0.1.8

type SliceExpression struct {
	Token token.Token
	Left  Expression
	Start Expression
	End   Expression
}

func (*SliceExpression) String added in v0.1.8

func (se *SliceExpression) String() string

func (*SliceExpression) TokenLiteral added in v0.1.8

func (se *SliceExpression) TokenLiteral() string

type Statement

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

type StopStatement

type StopStatement struct {
	Token token.Token
}

func (*StopStatement) String

func (ss *StopStatement) String() string

func (*StopStatement) TokenLiteral

func (ss *StopStatement) TokenLiteral() string

type StringExpr added in v0.1.6

type StringExpr struct {
	Expr       Expression
	FormatSpec string
	Width      int
	Precision  int
	Alignment  byte
	FillChar   byte
}

func (*StringExpr) String added in v0.1.6

func (se *StringExpr) String() string

type StringInterpolation added in v0.1.6

type StringInterpolation struct {
	Token token.Token
	Parts []StringPart
}

func (*StringInterpolation) String added in v0.1.6

func (si *StringInterpolation) String() string

func (*StringInterpolation) TokenLiteral added in v0.1.6

func (si *StringInterpolation) TokenLiteral() string

type StringLiteral

type StringLiteral struct {
	Token token.Token
	Value string
}

func (*StringLiteral) String

func (sl *StringLiteral) String() string

func (*StringLiteral) TokenLiteral

func (sl *StringLiteral) TokenLiteral() string

type StringPart added in v0.1.6

type StringPart interface {
	String() string
	// contains filtered or unexported methods
}

type StringText added in v0.1.6

type StringText struct {
	Value string
}

func (*StringText) String added in v0.1.6

func (st *StringText) String() string

type TupleLiteral

type TupleLiteral struct {
	Token    token.Token
	Elements []Expression
}

func (*TupleLiteral) String

func (tl *TupleLiteral) String() string

func (*TupleLiteral) TokenLiteral

func (tl *TupleLiteral) TokenLiteral() string

type UnpackStatement added in v0.1.8

type UnpackStatement struct {
	Token     token.Token
	Variables []Expression // List of variables to unpack to
	Value     Expression   // The value being unpacked
}

func (*UnpackStatement) String added in v0.1.8

func (us *UnpackStatement) String() string

func (*UnpackStatement) TokenLiteral added in v0.1.8

func (us *UnpackStatement) TokenLiteral() string

type WhileStatement

type WhileStatement struct {
	Token     token.Token
	Condition Expression
	Body      *BlockStatement
}

func (*WhileStatement) String

func (ws *WhileStatement) String() string

func (*WhileStatement) TokenLiteral

func (ws *WhileStatement) TokenLiteral() string

type WildcardExpression added in v0.1.7

type WildcardExpression struct {
	Token token.Token
}

func (*WildcardExpression) String added in v0.1.7

func (we *WildcardExpression) String() string

func (*WildcardExpression) TokenLiteral added in v0.1.7

func (we *WildcardExpression) TokenLiteral() string

type WithStatement added in v0.1.7

type WithStatement struct {
	Token      token.Token     // The 'autoclose' token
	Expression Expression      // The expression that returns a resource
	Variable   *Identifier     // The variable to bind the resource to
	Body       *BlockStatement // The body to execute
}

func (*WithStatement) String added in v0.1.7

func (ws *WithStatement) String() string

func (*WithStatement) TokenLiteral added in v0.1.7

func (ws *WithStatement) TokenLiteral() string

Jump to

Keyboard shortcuts

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