mirror of
				https://github.com/robertkrimen/otto
				synced 2025-10-19 19:55:30 +08:00 
			
		
		
		
	|  | ||
|---|---|---|
| .. | ||
| comments_test.go | ||
| comments.go | ||
| node.go | ||
| README.markdown | ||
ast
-- import "github.com/robertkrimen/otto/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
