astparser

package
v0.0.0-...-61d83ea Latest Latest
Warning

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

Go to latest
Published: Jul 19, 2021 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	KW_min_ rune = -(100 + iota)
	KW_undef
	KW_and
	KW_or
	KW_eq
	KW_ne
	KW_lt
	KW_le
	KW_gt
	KW_ge
	KW_m
	KW_s
	KW_my
	KW_if
	KW_unless
	KW_while
	KW_else
	KW_sub
	KW_for
	KW_do
	KW_eval
	KW_package
	KW_max_
)

Variables

View Source
var Keywords = scanlist.TokenDict{
	"undef":   KW_undef,
	"and":     KW_and,
	"or":      KW_or,
	"eq":      KW_eq,
	"ne":      KW_ne,
	"lt":      KW_lt,
	"le":      KW_le,
	"gt":      KW_gt,
	"ge":      KW_ge,
	"m":       KW_m,
	"s":       KW_s,
	"my":      KW_my,
	"if":      KW_if,
	"unless":  KW_unless,
	"while":   KW_while,
	"else":    KW_else,
	"sub":     KW_sub,
	"for":     KW_for,
	"do":      KW_do,
	"eval":    KW_eval,
	"package": KW_package,
}

Functions

func IsArrayExpr

func IsArrayExpr(ast interface{}) bool

func Position

func Position(i interface{}) (scanner.Position, bool)

func Register

func Register(p *parser.Parser)

func RegisterExpr

func RegisterExpr(p *parser.Parser)

func RegisterModule

func RegisterModule(p *parser.Parser)

func RegisterStmt

func RegisterStmt(p *parser.Parser)

func ToArrayExpr

func ToArrayExpr(ast interface{}) interface{}

func ToScalarExpr

func ToScalarExpr(ast interface{}) interface{}

Types

type AArAssign

type AArAssign struct {
	A, B interface{} // A := B
	Pos  scanner.Position
}

func (*AArAssign) String

func (e *AArAssign) String() string

type AArray

type AArray struct {
	Name interface{} // string | expression
	Pos  scanner.Position
}

func (*AArray) String

func (e *AArray) String() string

type AConcat

type AConcat struct {
	Elems []interface{} // ($a,$b,$c,...)
	Pos   scanner.Position
}

func (*AConcat) String

func (e *AConcat) String() string

type AExIfElse

type AExIfElse struct {
	Cond, Then, Else interface{} // $a ? @b : @c
	Pos              scanner.Position
}

func (*AExIfElse) String

func (e *AExIfElse) String() string

type AHash

type AHash struct {
	Name interface{} // string | expression
	Pos  scanner.Position
}

func (*AHash) String

func (e *AHash) String() string

type EArrayScalar

type EArrayScalar struct {
	Name  interface{} // string | expression
	Index interface{} // expression
	Pos   scanner.Position
}

func (*EArrayScalar) String

func (e *EArrayScalar) String() string

type EBinop

type EBinop struct {
	Op   string      // operation
	A, B interface{} // operands
	Pos  scanner.Position
}

func (*EBinop) String

func (e *EBinop) String() string

type EBinopAssign

type EBinopAssign struct {
	Op   string
	A, B interface{} // A <op>= B
	Pos  scanner.Position
}

func (*EBinopAssign) String

func (e *EBinopAssign) String() string

type ECreateArray

type ECreateArray struct {
	Elems []interface{}
	Pos   scanner.Position
}

func (*ECreateArray) String

func (e *ECreateArray) String() string

type ECreateHash

type ECreateHash struct {
	Elems []interface{}
	Pos   scanner.Position
}

func (*ECreateHash) String

func (e *ECreateHash) String() string

type EExIfElse

type EExIfElse struct {
	Cond, Then, Else interface{} // $a ? $b : $c
	Pos              scanner.Position
}

func (*EExIfElse) String

func (e *EExIfElse) String() string

type EFromArray

type EFromArray struct {
	Array interface{}
	Pos   scanner.Position
}

func (*EFromArray) String

func (e *EFromArray) String() string

type EGoFunction

type EGoFunction struct {
	Call interface{}
	Pos  scanner.Position
}

func (*EGoFunction) IsHybrid

func (e *EGoFunction) IsHybrid()

func (*EGoFunction) String

func (e *EGoFunction) String() string

type EHashScalar

type EHashScalar struct {
	Name  interface{} // string | expression
	Index interface{} // string | expression
	Pos   scanner.Position
}

func (*EHashScalar) String

func (e *EHashScalar) String() string

type ELiteral

type ELiteral struct {
	Scalar values.Scalar
	Pos    scanner.Position
}

func (*ELiteral) String

func (e *ELiteral) String() string

type EMatch

type EMatch struct {
	A   interface{}    // operand
	Rx  *regexp.Regexp // regexp
	Pos scanner.Position
}

func (*EMatch) String

func (e *EMatch) String() string

type EMatchGlobal

type EMatchGlobal struct {
	A   interface{}    // operand
	Rx  *regexp.Regexp // regexp
	Pos scanner.Position
}

func (*EMatchGlobal) String

func (e *EMatchGlobal) String() string

type EModCall

type EModCall struct {
	Obj  interface{}
	Name string
	Args []interface{}
	Pos  scanner.Position
}

func (*EModCall) IsHybrid

func (e *EModCall) IsHybrid()

func (*EModCall) String

func (e *EModCall) String() string

type EModule

type EModule struct {
	Name string
	Pos  scanner.Position
}

func (*EModule) String

func (e *EModule) String() string

type EObjCall

type EObjCall struct {
	Obj  interface{}
	Name string
	Args []interface{}
	Pos  scanner.Position
}

func (*EObjCall) IsHybrid

func (e *EObjCall) IsHybrid()

func (*EObjCall) String

func (e *EObjCall) String() string

type EReplace

type EReplace struct {
	A   interface{}    // operand
	Rx  *regexp.Regexp // regexp
	B   interface{}    // operand (replacement)
	Pos scanner.Position
}

func (*EReplace) String

func (e *EReplace) String() string

type EScAssign

type EScAssign struct {
	A, B interface{} // A := B
	Pos  scanner.Position
}

func (*EScAssign) String

func (e *EScAssign) String() string

type EScalar

type EScalar struct {
	Name interface{} // string | expression
	Pos  scanner.Position
}

func (*EScalar) String

func (e *EScalar) String() string

type ESubCall

type ESubCall struct {
	Name string
	Args []interface{}
	Pos  scanner.Position
}

func (*ESubCall) IsHybrid

func (e *ESubCall) IsHybrid()

func (*ESubCall) String

func (e *ESubCall) String() string

type EUnop

type EUnop struct {
	Op  string      // operation
	A   interface{} // operand
	Pos scanner.Position
}

func (*EUnop) String

func (e *EUnop) String() string

type MDPackage

type MDPackage struct {
	Name string
	Pos  scanner.Position
}

type MDSub

type MDSub struct {
	Name string
	Body interface{}
	Pos  scanner.Position
}

type Module

type Module struct {
	Main *MDSub
	Subs []*MDSub
}

type SArray

type SArray struct {
	Expr interface{}
	Pos  scanner.Position
}

type SBlock

type SBlock struct {
	Stmts []interface{}
	Pos   scanner.Position
}

type SCond

type SCond struct {
	Type       string
	Cond, Body interface{}
	Pos        scanner.Position
}

type SEval

type SEval struct {
	Body interface{}
	Pos  scanner.Position
}

type SExpr

type SExpr struct {
	Expr interface{}
	Pos  scanner.Position
}

type SFor

type SFor struct {
	Var       string
	Src, Body interface{}
	Pos       scanner.Position
}

type SIfElse

type SIfElse struct {
	Type             string
	Cond, Body, Else interface{}
	Pos              scanner.Position
}

type SLoopJump

type SLoopJump struct {
	Op  string // next | last
	Pos scanner.Position
}

type SMyVars

type SMyVars struct {
	Vars []interface{} // variables (as string)
	Pos  scanner.Position
}

type SNoop

type SNoop struct {
	Pos scanner.Position
}

type SPrint

type SPrint struct {
	Expr interface{}
	Pos  scanner.Position
}

type SRequireDynamic

type SRequireDynamic struct {
	Mod interface{} // expr
	Pos scanner.Position
}

type SRequireStatic

type SRequireStatic struct {
	Mod string
	Pos scanner.Position
}

Jump to

Keyboard shortcuts

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