# 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 ```go type ArrayLiteral struct { LeftBracket file.Idx RightBracket file.Idx Value []Expression } ``` #### func (*ArrayLiteral) Idx0 ```go func (self *ArrayLiteral) Idx0() file.Idx ``` #### func (*ArrayLiteral) Idx1 ```go func (self *ArrayLiteral) Idx1() file.Idx ``` #### type AssignExpression ```go type AssignExpression struct { Operator token.Token Left Expression Right Expression } ``` #### func (*AssignExpression) Idx0 ```go func (self *AssignExpression) Idx0() file.Idx ``` #### func (*AssignExpression) Idx1 ```go func (self *AssignExpression) Idx1() file.Idx ``` #### type BadExpression ```go type BadExpression struct { From file.Idx To file.Idx } ``` #### func (*BadExpression) Idx0 ```go func (self *BadExpression) Idx0() file.Idx ``` #### func (*BadExpression) Idx1 ```go func (self *BadExpression) Idx1() file.Idx ``` #### type BadStatement ```go type BadStatement struct { From file.Idx To file.Idx } ``` #### func (*BadStatement) Idx0 ```go func (self *BadStatement) Idx0() file.Idx ``` #### func (*BadStatement) Idx1 ```go func (self *BadStatement) Idx1() file.Idx ``` #### type BinaryExpression ```go type BinaryExpression struct { Operator token.Token Left Expression Right Expression Comparison bool } ``` #### func (*BinaryExpression) Idx0 ```go func (self *BinaryExpression) Idx0() file.Idx ``` #### func (*BinaryExpression) Idx1 ```go func (self *BinaryExpression) Idx1() file.Idx ``` #### type BlockStatement ```go type BlockStatement struct { LeftBrace file.Idx List []Statement RightBrace file.Idx } ``` #### func (*BlockStatement) Idx0 ```go func (self *BlockStatement) Idx0() file.Idx ``` #### func (*BlockStatement) Idx1 ```go func (self *BlockStatement) Idx1() file.Idx ``` #### type BooleanLiteral ```go type BooleanLiteral struct { Idx file.Idx Literal string Value bool } ``` #### func (*BooleanLiteral) Idx0 ```go func (self *BooleanLiteral) Idx0() file.Idx ``` #### func (*BooleanLiteral) Idx1 ```go func (self *BooleanLiteral) Idx1() file.Idx ``` #### type BracketExpression ```go type BracketExpression struct { Left Expression Member Expression LeftBracket file.Idx RightBracket file.Idx } ``` #### func (*BracketExpression) Idx0 ```go func (self *BracketExpression) Idx0() file.Idx ``` #### func (*BracketExpression) Idx1 ```go func (self *BracketExpression) Idx1() file.Idx ``` #### type BranchStatement ```go type BranchStatement struct { Idx file.Idx Token token.Token Label *Identifier } ``` #### func (*BranchStatement) Idx0 ```go func (self *BranchStatement) Idx0() file.Idx ``` #### func (*BranchStatement) Idx1 ```go func (self *BranchStatement) Idx1() file.Idx ``` #### type CallExpression ```go type CallExpression struct { Callee Expression LeftParenthesis file.Idx ArgumentList []Expression RightParenthesis file.Idx } ``` #### func (*CallExpression) Idx0 ```go func (self *CallExpression) Idx0() file.Idx ``` #### func (*CallExpression) Idx1 ```go func (self *CallExpression) Idx1() file.Idx ``` #### type CaseStatement ```go type CaseStatement struct { Case file.Idx Test Expression Consequent []Statement } ``` #### func (*CaseStatement) Idx0 ```go func (self *CaseStatement) Idx0() file.Idx ``` #### func (*CaseStatement) Idx1 ```go func (self *CaseStatement) Idx1() file.Idx ``` #### type CatchStatement ```go type CatchStatement struct { Catch file.Idx Parameter *Identifier Body Statement } ``` #### func (*CatchStatement) Idx0 ```go func (self *CatchStatement) Idx0() file.Idx ``` #### func (*CatchStatement) Idx1 ```go func (self *CatchStatement) Idx1() file.Idx ``` #### type ConditionalExpression ```go type ConditionalExpression struct { Test Expression Consequent Expression Alternate Expression } ``` #### func (*ConditionalExpression) Idx0 ```go func (self *ConditionalExpression) Idx0() file.Idx ``` #### func (*ConditionalExpression) Idx1 ```go func (self *ConditionalExpression) Idx1() file.Idx ``` #### type DebuggerStatement ```go type DebuggerStatement struct { Debugger file.Idx } ``` #### func (*DebuggerStatement) Idx0 ```go func (self *DebuggerStatement) Idx0() file.Idx ``` #### func (*DebuggerStatement) Idx1 ```go func (self *DebuggerStatement) Idx1() file.Idx ``` #### type Declaration ```go type Declaration interface { // contains filtered or unexported methods } ``` All declaration nodes implement the Declaration interface. #### type DoWhileStatement ```go type DoWhileStatement struct { Do file.Idx Test Expression Body Statement } ``` #### func (*DoWhileStatement) Idx0 ```go func (self *DoWhileStatement) Idx0() file.Idx ``` #### func (*DoWhileStatement) Idx1 ```go func (self *DoWhileStatement) Idx1() file.Idx ``` #### type DotExpression ```go type DotExpression struct { Left Expression Identifier Identifier } ``` #### func (*DotExpression) Idx0 ```go func (self *DotExpression) Idx0() file.Idx ``` #### func (*DotExpression) Idx1 ```go func (self *DotExpression) Idx1() file.Idx ``` #### type EmptyStatement ```go type EmptyStatement struct { Semicolon file.Idx } ``` #### func (*EmptyStatement) Idx0 ```go func (self *EmptyStatement) Idx0() file.Idx ``` #### func (*EmptyStatement) Idx1 ```go func (self *EmptyStatement) Idx1() file.Idx ``` #### type Expression ```go type Expression interface { Node // contains filtered or unexported methods } ``` All expression nodes implement the Expression interface. #### type ExpressionStatement ```go type ExpressionStatement struct { Expression Expression } ``` #### func (*ExpressionStatement) Idx0 ```go func (self *ExpressionStatement) Idx0() file.Idx ``` #### func (*ExpressionStatement) Idx1 ```go func (self *ExpressionStatement) Idx1() file.Idx ``` #### type ForInStatement ```go type ForInStatement struct { For file.Idx Into Expression Source Expression Body Statement } ``` #### func (*ForInStatement) Idx0 ```go func (self *ForInStatement) Idx0() file.Idx ``` #### func (*ForInStatement) Idx1 ```go func (self *ForInStatement) Idx1() file.Idx ``` #### type ForStatement ```go type ForStatement struct { For file.Idx Initializer Expression Update Expression Test Expression Body Statement } ``` #### func (*ForStatement) Idx0 ```go func (self *ForStatement) Idx0() file.Idx ``` #### func (*ForStatement) Idx1 ```go func (self *ForStatement) Idx1() file.Idx ``` #### type FunctionDeclaration ```go type FunctionDeclaration struct { Function *FunctionLiteral } ``` #### type FunctionLiteral ```go type FunctionLiteral struct { Function file.Idx Name *Identifier ParameterList *ParameterList Body Statement Source string DeclarationList []Declaration } ``` #### func (*FunctionLiteral) Idx0 ```go func (self *FunctionLiteral) Idx0() file.Idx ``` #### func (*FunctionLiteral) Idx1 ```go func (self *FunctionLiteral) Idx1() file.Idx ``` #### type Identifier ```go type Identifier struct { Name string Idx file.Idx } ``` #### func (*Identifier) Idx0 ```go func (self *Identifier) Idx0() file.Idx ``` #### func (*Identifier) Idx1 ```go func (self *Identifier) Idx1() file.Idx ``` #### type IfStatement ```go type IfStatement struct { If file.Idx Test Expression Consequent Statement Alternate Statement } ``` #### func (*IfStatement) Idx0 ```go func (self *IfStatement) Idx0() file.Idx ``` #### func (*IfStatement) Idx1 ```go func (self *IfStatement) Idx1() file.Idx ``` #### type LabelledStatement ```go type LabelledStatement struct { Label *Identifier Colon file.Idx Statement Statement } ``` #### func (*LabelledStatement) Idx0 ```go func (self *LabelledStatement) Idx0() file.Idx ``` #### func (*LabelledStatement) Idx1 ```go func (self *LabelledStatement) Idx1() file.Idx ``` #### type NewExpression ```go type NewExpression struct { New file.Idx Callee Expression LeftParenthesis file.Idx ArgumentList []Expression RightParenthesis file.Idx } ``` #### func (*NewExpression) Idx0 ```go func (self *NewExpression) Idx0() file.Idx ``` #### func (*NewExpression) Idx1 ```go func (self *NewExpression) Idx1() file.Idx ``` #### type Node ```go 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 ```go type NullLiteral struct { Idx file.Idx Literal string } ``` #### func (*NullLiteral) Idx0 ```go func (self *NullLiteral) Idx0() file.Idx ``` #### func (*NullLiteral) Idx1 ```go func (self *NullLiteral) Idx1() file.Idx ``` #### type NumberLiteral ```go type NumberLiteral struct { Idx file.Idx Literal string Value interface{} } ``` #### func (*NumberLiteral) Idx0 ```go func (self *NumberLiteral) Idx0() file.Idx ``` #### func (*NumberLiteral) Idx1 ```go func (self *NumberLiteral) Idx1() file.Idx ``` #### type ObjectLiteral ```go type ObjectLiteral struct { LeftBrace file.Idx RightBrace file.Idx Value []Property } ``` #### func (*ObjectLiteral) Idx0 ```go func (self *ObjectLiteral) Idx0() file.Idx ``` #### func (*ObjectLiteral) Idx1 ```go func (self *ObjectLiteral) Idx1() file.Idx ``` #### type ParameterList ```go type ParameterList struct { Opening file.Idx List []*Identifier Closing file.Idx } ``` #### type Program ```go type Program struct { Body []Statement DeclarationList []Declaration File *file.File } ``` #### func (*Program) Idx0 ```go func (self *Program) Idx0() file.Idx ``` #### func (*Program) Idx1 ```go func (self *Program) Idx1() file.Idx ``` #### type Property ```go type Property struct { Key string Kind string Value Expression } ``` #### type RegExpLiteral ```go type RegExpLiteral struct { Idx file.Idx Literal string Pattern string Flags string Value string } ``` #### func (*RegExpLiteral) Idx0 ```go func (self *RegExpLiteral) Idx0() file.Idx ``` #### func (*RegExpLiteral) Idx1 ```go func (self *RegExpLiteral) Idx1() file.Idx ``` #### type ReturnStatement ```go type ReturnStatement struct { Return file.Idx Argument Expression } ``` #### func (*ReturnStatement) Idx0 ```go func (self *ReturnStatement) Idx0() file.Idx ``` #### func (*ReturnStatement) Idx1 ```go func (self *ReturnStatement) Idx1() file.Idx ``` #### type SequenceExpression ```go type SequenceExpression struct { Sequence []Expression } ``` #### func (*SequenceExpression) Idx0 ```go func (self *SequenceExpression) Idx0() file.Idx ``` #### func (*SequenceExpression) Idx1 ```go func (self *SequenceExpression) Idx1() file.Idx ``` #### type Statement ```go type Statement interface { Node // contains filtered or unexported methods } ``` All statement nodes implement the Statement interface. #### type StringLiteral ```go type StringLiteral struct { Idx file.Idx Literal string Value string } ``` #### func (*StringLiteral) Idx0 ```go func (self *StringLiteral) Idx0() file.Idx ``` #### func (*StringLiteral) Idx1 ```go func (self *StringLiteral) Idx1() file.Idx ``` #### type SwitchStatement ```go type SwitchStatement struct { Switch file.Idx Discriminant Expression Default int Body []*CaseStatement } ``` #### func (*SwitchStatement) Idx0 ```go func (self *SwitchStatement) Idx0() file.Idx ``` #### func (*SwitchStatement) Idx1 ```go func (self *SwitchStatement) Idx1() file.Idx ``` #### type ThisExpression ```go type ThisExpression struct { Idx file.Idx } ``` #### func (*ThisExpression) Idx0 ```go func (self *ThisExpression) Idx0() file.Idx ``` #### func (*ThisExpression) Idx1 ```go func (self *ThisExpression) Idx1() file.Idx ``` #### type ThrowStatement ```go type ThrowStatement struct { Throw file.Idx Argument Expression } ``` #### func (*ThrowStatement) Idx0 ```go func (self *ThrowStatement) Idx0() file.Idx ``` #### func (*ThrowStatement) Idx1 ```go func (self *ThrowStatement) Idx1() file.Idx ``` #### type TryStatement ```go type TryStatement struct { Try file.Idx Body Statement Catch *CatchStatement Finally Statement } ``` #### func (*TryStatement) Idx0 ```go func (self *TryStatement) Idx0() file.Idx ``` #### func (*TryStatement) Idx1 ```go func (self *TryStatement) Idx1() file.Idx ``` #### type UnaryExpression ```go type UnaryExpression struct { Operator token.Token Idx file.Idx // If a prefix operation Operand Expression Postfix bool } ``` #### func (*UnaryExpression) Idx0 ```go func (self *UnaryExpression) Idx0() file.Idx ``` #### func (*UnaryExpression) Idx1 ```go func (self *UnaryExpression) Idx1() file.Idx ``` #### type VariableDeclaration ```go type VariableDeclaration struct { Var file.Idx List []*VariableExpression } ``` #### type VariableExpression ```go type VariableExpression struct { Name string Idx file.Idx Initializer Expression } ``` #### func (*VariableExpression) Idx0 ```go func (self *VariableExpression) Idx0() file.Idx ``` #### func (*VariableExpression) Idx1 ```go func (self *VariableExpression) Idx1() file.Idx ``` #### type VariableStatement ```go type VariableStatement struct { Var file.Idx List []Expression } ``` #### func (*VariableStatement) Idx0 ```go func (self *VariableStatement) Idx0() file.Idx ``` #### func (*VariableStatement) Idx1 ```go func (self *VariableStatement) Idx1() file.Idx ``` #### type WhileStatement ```go type WhileStatement struct { While file.Idx Test Expression Body Statement } ``` #### func (*WhileStatement) Idx0 ```go func (self *WhileStatement) Idx0() file.Idx ``` #### func (*WhileStatement) Idx1 ```go func (self *WhileStatement) Idx1() file.Idx ``` #### type WithStatement ```go type WithStatement struct { With file.Idx Object Expression Body Statement } ``` #### func (*WithStatement) Idx0 ```go func (self *WithStatement) Idx0() file.Idx ``` #### func (*WithStatement) Idx1 ```go func (self *WithStatement) Idx1() file.Idx ``` -- **godocdown** http://github.com/robertkrimen/godocdown