Skip to content

Latest commit

 

History

History

ast

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

ast

-- import "github.com/dop251/goja/ast"

Package ast declares types representing a JavaScript AST.

Warning

The parser and AST interfaces are still works-in-progress (particularly where node types are concerned) and may change in the future.

Usage

type ArrayLiteral

type ArrayLiteral struct {
	LeftBracket  file.Idx
	RightBracket file.Idx
	Value        []Expression
}

func (*ArrayLiteral) Idx0

func (self *ArrayLiteral) Idx0() file.Idx

func (*ArrayLiteral) Idx1

func (self *ArrayLiteral) Idx1() file.Idx

type AssignExpression

type AssignExpression struct {
	Operator token.Token
	Left     Expression
	Right    Expression
}

func (*AssignExpression) Idx0

func (self *AssignExpression) Idx0() file.Idx

func (*AssignExpression) Idx1

func (self *AssignExpression) Idx1() file.Idx

type BadExpression

type BadExpression struct {
	From file.Idx
	To   file.Idx
}

func (*BadExpression) Idx0

func (self *BadExpression) Idx0() file.Idx

func (*BadExpression) Idx1

func (self *BadExpression) Idx1() file.Idx

type BadStatement

type BadStatement struct {
	From file.Idx
	To   file.Idx
}

func (*BadStatement) Idx0

func (self *BadStatement) Idx0() file.Idx

func (*BadStatement) Idx1

func (self *BadStatement) Idx1() file.Idx

type BinaryExpression

type BinaryExpression struct {
	Operator   token.Token
	Left       Expression
	Right      Expression
	Comparison bool
}

func (*BinaryExpression) Idx0

func (self *BinaryExpression) Idx0() file.Idx

func (*BinaryExpression) Idx1

func (self *BinaryExpression) Idx1() file.Idx

type BlockStatement

type BlockStatement struct {
	LeftBrace  file.Idx
	List       []Statement
	RightBrace file.Idx
}

func (*BlockStatement) Idx0

func (self *BlockStatement) Idx0() file.Idx

func (*BlockStatement) Idx1

func (self *BlockStatement) Idx1() file.Idx

type BooleanLiteral

type BooleanLiteral struct {
	Idx     file.Idx
	Literal string
	Value   bool
}

func (*BooleanLiteral) Idx0

func (self *BooleanLiteral) Idx0() file.Idx

func (*BooleanLiteral) Idx1

func (self *BooleanLiteral) Idx1() file.Idx

type BracketExpression

type BracketExpression struct {
	Left         Expression
	Member       Expression
	LeftBracket  file.Idx
	RightBracket file.Idx
}

func (*BracketExpression) Idx0

func (self *BracketExpression) Idx0() file.Idx

func (*BracketExpression) Idx1

func (self *BracketExpression) Idx1() file.Idx

type BranchStatement

type BranchStatement struct {
	Idx   file.Idx
	Token token.Token
	Label *Identifier
}

func (*BranchStatement) Idx0

func (self *BranchStatement) Idx0() file.Idx

func (*BranchStatement) Idx1

func (self *BranchStatement) Idx1() file.Idx

type CallExpression

type CallExpression struct {
	Callee           Expression
	LeftParenthesis  file.Idx
	ArgumentList     []Expression
	RightParenthesis file.Idx
}

func (*CallExpression) Idx0

func (self *CallExpression) Idx0() file.Idx

func (*CallExpression) Idx1

func (self *CallExpression) Idx1() file.Idx

type CaseStatement

type CaseStatement struct {
	Case       file.Idx
	Test       Expression
	Consequent []Statement
}

func (*CaseStatement) Idx0

func (self *CaseStatement) Idx0() file.Idx

func (*CaseStatement) Idx1

func (self *CaseStatement) Idx1() file.Idx

type CatchStatement

type CatchStatement struct {
	Catch     file.Idx
	Parameter *Identifier
	Body      Statement
}

func (*CatchStatement) Idx0

func (self *CatchStatement) Idx0() file.Idx

func (*CatchStatement) Idx1

func (self *CatchStatement) Idx1() file.Idx

type ConditionalExpression

type ConditionalExpression struct {
	Test       Expression
	Consequent Expression
	Alternate  Expression
}

func (*ConditionalExpression) Idx0

func (self *ConditionalExpression) Idx0() file.Idx

func (*ConditionalExpression) Idx1

func (self *ConditionalExpression) Idx1() file.Idx

type DebuggerStatement

type DebuggerStatement struct {
	Debugger file.Idx
}

func (*DebuggerStatement) Idx0

func (self *DebuggerStatement) Idx0() file.Idx

func (*DebuggerStatement) Idx1

func (self *DebuggerStatement) Idx1() file.Idx

type Declaration

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

All declaration nodes implement the Declaration interface.

type DoWhileStatement

type DoWhileStatement struct {
	Do   file.Idx
	Test Expression
	Body Statement
}

func (*DoWhileStatement) Idx0

func (self *DoWhileStatement) Idx0() file.Idx

func (*DoWhileStatement) Idx1

func (self *DoWhileStatement) Idx1() file.Idx

type DotExpression

type DotExpression struct {
	Left       Expression
	Identifier Identifier
}

func (*DotExpression) Idx0

func (self *DotExpression) Idx0() file.Idx

func (*DotExpression) Idx1

func (self *DotExpression) Idx1() file.Idx

type EmptyStatement

type EmptyStatement struct {
	Semicolon file.Idx
}

func (*EmptyStatement) Idx0

func (self *EmptyStatement) Idx0() file.Idx

func (*EmptyStatement) Idx1

func (self *EmptyStatement) Idx1() file.Idx

type Expression

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

All expression nodes implement the Expression interface.

type ExpressionStatement

type ExpressionStatement struct {
	Expression Expression
}

func (*ExpressionStatement) Idx0

func (self *ExpressionStatement) Idx0() file.Idx

func (*ExpressionStatement) Idx1

func (self *ExpressionStatement) Idx1() file.Idx

type ForInStatement

type ForInStatement struct {
	For    file.Idx
	Into   Expression
	Source Expression
	Body   Statement
}

func (*ForInStatement) Idx0

func (self *ForInStatement) Idx0() file.Idx

func (*ForInStatement) Idx1

func (self *ForInStatement) Idx1() file.Idx

type ForStatement

type ForStatement struct {
	For         file.Idx
	Initializer Expression
	Update      Expression
	Test        Expression
	Body        Statement
}

func (*ForStatement) Idx0

func (self *ForStatement) Idx0() file.Idx

func (*ForStatement) Idx1

func (self *ForStatement) Idx1() file.Idx

type FunctionDeclaration

type FunctionDeclaration struct {
	Function *FunctionLiteral
}

type FunctionLiteral

type FunctionLiteral struct {
	Function      file.Idx
	Name          *Identifier
	ParameterList *ParameterList
	Body          Statement
	Source        string

	DeclarationList []Declaration
}

func (*FunctionLiteral) Idx0

func (self *FunctionLiteral) Idx0() file.Idx

func (*FunctionLiteral) Idx1

func (self *FunctionLiteral) Idx1() file.Idx

type Identifier

type Identifier struct {
	Name string
	Idx  file.Idx
}

func (*Identifier) Idx0

func (self *Identifier) Idx0() file.Idx

func (*Identifier) Idx1

func (self *Identifier) Idx1() file.Idx

type IfStatement

type IfStatement struct {
	If         file.Idx
	Test       Expression
	Consequent Statement
	Alternate  Statement
}

func (*IfStatement) Idx0

func (self *IfStatement) Idx0() file.Idx

func (*IfStatement) Idx1

func (self *IfStatement) Idx1() file.Idx

type LabelledStatement

type LabelledStatement struct {
	Label     *Identifier
	Colon     file.Idx
	Statement Statement
}

func (*LabelledStatement) Idx0

func (self *LabelledStatement) Idx0() file.Idx

func (*LabelledStatement) Idx1

func (self *LabelledStatement) Idx1() file.Idx

type NewExpression

type NewExpression struct {
	New              file.Idx
	Callee           Expression
	LeftParenthesis  file.Idx
	ArgumentList     []Expression
	RightParenthesis file.Idx
}

func (*NewExpression) Idx0

func (self *NewExpression) Idx0() file.Idx

func (*NewExpression) Idx1

func (self *NewExpression) Idx1() file.Idx

type Node

type Node interface {
	Idx0() file.Idx // The index of the first character belonging to the node
	Idx1() file.Idx // The index of the first character immediately after the node
}

All nodes implement the Node interface.

type NullLiteral

type NullLiteral struct {
	Idx     file.Idx
	Literal string
}

func (*NullLiteral) Idx0

func (self *NullLiteral) Idx0() file.Idx

func (*NullLiteral) Idx1

func (self *NullLiteral) Idx1() file.Idx

type NumberLiteral

type NumberLiteral struct {
	Idx     file.Idx
	Literal string
	Value   interface{}
}

func (*NumberLiteral) Idx0

func (self *NumberLiteral) Idx0() file.Idx

func (*NumberLiteral) Idx1

func (self *NumberLiteral) Idx1() file.Idx

type ObjectLiteral

type ObjectLiteral struct {
	LeftBrace  file.Idx
	RightBrace file.Idx
	Value      []Property
}

func (*ObjectLiteral) Idx0

func (self *ObjectLiteral) Idx0() file.Idx

func (*ObjectLiteral) Idx1

func (self *ObjectLiteral) Idx1() file.Idx

type ParameterList

type ParameterList struct {
	Opening file.Idx
	List    []*Identifier
	Closing file.Idx
}

type Program

type Program struct {
	Body []Statement

	DeclarationList []Declaration

	File *file.File
}

func (*Program) Idx0

func (self *Program) Idx0() file.Idx

func (*Program) Idx1

func (self *Program) Idx1() file.Idx

type Property

type Property struct {
	Key   string
	Kind  string
	Value Expression
}

type RegExpLiteral

type RegExpLiteral struct {
	Idx     file.Idx
	Literal string
	Pattern string
	Flags   string
	Value   string
}

func (*RegExpLiteral) Idx0

func (self *RegExpLiteral) Idx0() file.Idx

func (*RegExpLiteral) Idx1

func (self *RegExpLiteral) Idx1() file.Idx

type ReturnStatement

type ReturnStatement struct {
	Return   file.Idx
	Argument Expression
}

func (*ReturnStatement) Idx0

func (self *ReturnStatement) Idx0() file.Idx

func (*ReturnStatement) Idx1

func (self *ReturnStatement) Idx1() file.Idx

type SequenceExpression

type SequenceExpression struct {
	Sequence []Expression
}

func (*SequenceExpression) Idx0

func (self *SequenceExpression) Idx0() file.Idx

func (*SequenceExpression) Idx1

func (self *SequenceExpression) Idx1() file.Idx

type Statement

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

All statement nodes implement the Statement interface.

type StringLiteral

type StringLiteral struct {
	Idx     file.Idx
	Literal string
	Value   string
}

func (*StringLiteral) Idx0

func (self *StringLiteral) Idx0() file.Idx

func (*StringLiteral) Idx1

func (self *StringLiteral) Idx1() file.Idx

type SwitchStatement

type SwitchStatement struct {
	Switch       file.Idx
	Discriminant Expression
	Default      int
	Body         []*CaseStatement
}

func (*SwitchStatement) Idx0

func (self *SwitchStatement) Idx0() file.Idx

func (*SwitchStatement) Idx1

func (self *SwitchStatement) Idx1() file.Idx

type ThisExpression

type ThisExpression struct {
	Idx file.Idx
}

func (*ThisExpression) Idx0

func (self *ThisExpression) Idx0() file.Idx

func (*ThisExpression) Idx1

func (self *ThisExpression) Idx1() file.Idx

type ThrowStatement

type ThrowStatement struct {
	Throw    file.Idx
	Argument Expression
}

func (*ThrowStatement) Idx0

func (self *ThrowStatement) Idx0() file.Idx

func (*ThrowStatement) Idx1

func (self *ThrowStatement) Idx1() file.Idx

type TryStatement

type TryStatement struct {
	Try     file.Idx
	Body    Statement
	Catch   *CatchStatement
	Finally Statement
}

func (*TryStatement) Idx0

func (self *TryStatement) Idx0() file.Idx

func (*TryStatement) Idx1

func (self *TryStatement) Idx1() file.Idx

type UnaryExpression

type UnaryExpression struct {
	Operator token.Token
	Idx      file.Idx // If a prefix operation
	Operand  Expression
	Postfix  bool
}

func (*UnaryExpression) Idx0

func (self *UnaryExpression) Idx0() file.Idx

func (*UnaryExpression) Idx1

func (self *UnaryExpression) Idx1() file.Idx

type VariableDeclaration

type VariableDeclaration struct {
	Var  file.Idx
	List []*VariableExpression
}

type VariableExpression

type VariableExpression struct {
	Name        string
	Idx         file.Idx
	Initializer Expression
}

func (*VariableExpression) Idx0

func (self *VariableExpression) Idx0() file.Idx

func (*VariableExpression) Idx1

func (self *VariableExpression) Idx1() file.Idx

type VariableStatement

type VariableStatement struct {
	Var  file.Idx
	List []Expression
}

func (*VariableStatement) Idx0

func (self *VariableStatement) Idx0() file.Idx

func (*VariableStatement) Idx1

func (self *VariableStatement) Idx1() file.Idx

type WhileStatement

type WhileStatement struct {
	While file.Idx
	Test  Expression
	Body  Statement
}

func (*WhileStatement) Idx0

func (self *WhileStatement) Idx0() file.Idx

func (*WhileStatement) Idx1

func (self *WhileStatement) Idx1() file.Idx

type WithStatement

type WithStatement struct {
	With   file.Idx
	Object Expression
	Body   Statement
}

func (*WithStatement) Idx0

func (self *WithStatement) Idx0() file.Idx

func (*WithStatement) Idx1

func (self *WithStatement) Idx1() file.Idx

-- godocdown http://github.com/robertkrimen/godocdown