ast

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Dec 24, 2020 License: MIT Imports: 3 Imported by: 2

Documentation

Index

Constants

View Source
const False = Val("")

Variables

This section is empty.

Functions

This section is empty.

Types

type And

type And struct {
	A Expr
	B Expr
}

func (And) Eval

func (a And) Eval(c Context) Val

func (And) String

func (a And) String() string

type Arg

type Arg int

func (Arg) Eval

func (a Arg) Eval(c Context) Val

func (Arg) String

func (a Arg) String() string

type Assn

type Assn struct {
	V Var
	E Expr
}

func (Assn) Eval

func (a Assn) Eval(c Context) Val

func (Assn) String

func (a Assn) String() string

type Attrib

type Attrib interface{}

type Call

type Call struct {
	Fn   Var
	Args []Expr
}

func (Call) Eval

func (ca Call) Eval(c Context) Val

func (Call) String

func (ca Call) String() string

type Concat

type Concat struct {
	A Expr
	B Expr
}

func (Concat) Eval

func (cc Concat) Eval(c Context) Val

func (Concat) String

func (cc Concat) String() string

type Context

type Context struct {
	Args         []string
	VariableMap  map[Var]Val
	FunctionMap  map[string]func([]string) string
	MaxStackSize int64
	MaxWhileIter int
}

func NewContext

func NewContext(args []string, funcs map[string]func([]string) string) Context

type Equals

type Equals struct {
	A Expr
	B Expr
}

func (Equals) Eval

func (e Equals) Eval(c Context) Val

func (Equals) String

func (e Equals) String() string

type Expr

type Expr interface {
	Eval(Context) Val
	String() string
}

func ExprSeqAppend

func ExprSeqAppend(s, e Attrib) (Expr, error)

func NewAnd

func NewAnd(a, b Attrib) (Expr, error)

func NewArg

func NewArg(i Attrib) (Expr, error)

func NewAssn

func NewAssn(v, e Attrib) (Expr, error)

func NewCall

func NewCall(f, as Attrib) (Expr, error)

func NewConcat

func NewConcat(a, b Attrib) (Expr, error)

func NewEquals

func NewEquals(a, b Attrib) (Expr, error)

func NewExprSeq

func NewExprSeq() (Expr, error)

func NewIfElse

func NewIfElse(c, t, e Attrib) (Expr, error)

func NewIndex

func NewIndex(s, i Attrib) (Expr, error)

func NewIndexInt

func NewIndexInt(s, i Attrib) (Expr, error)

func NewNotEquals

func NewNotEquals(a, b Attrib) (Expr, error)

func NewOr

func NewOr(a, b Attrib) (Expr, error)

func NewVal

func NewVal(a Attrib) (Expr, error)

func NewVar

func NewVar(a Attrib) (Expr, error)

func NewWhile

func NewWhile(c, b Attrib) (Expr, error)

type ExprSeq

type ExprSeq []Expr

func (ExprSeq) Eval

func (es ExprSeq) Eval(c Context) Val

func (ExprSeq) String

func (es ExprSeq) String() string

type IfElse

type IfElse struct {
	Cond Expr
	Then Expr
	Else Expr
}

func (IfElse) Eval

func (e IfElse) Eval(c Context) Val

func (IfElse) String

func (e IfElse) String() string

type Index

type Index struct {
	Source Expr
	I      Expr
}

func (Index) Eval

func (i Index) Eval(c Context) Val

func (Index) String

func (i Index) String() string

type NotEquals

type NotEquals struct {
	A Expr
	B Expr
}

func (NotEquals) Eval

func (e NotEquals) Eval(c Context) Val

func (NotEquals) String

func (e NotEquals) String() string

type Or

type Or struct {
	A Expr
	B Expr
}

func (Or) Eval

func (o Or) Eval(c Context) Val

func (Or) String

func (o Or) String() string

type Val

type Val string

func (Val) Eval

func (v Val) Eval(c Context) Val

func (Val) String

func (v Val) String() string

type Var

type Var string

func (Var) Eval

func (v Var) Eval(c Context) Val

func (Var) String

func (v Var) String() string

type While

type While struct {
	Cond Expr
	Body Expr
}

func (While) Eval

func (e While) Eval(c Context) Val

func (While) String

func (e While) String() string

Jump to

Keyboard shortcuts

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