ast

package
v0.0.9 Latest Latest
Warning

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

Go to latest
Published: Dec 14, 2024 License: MIT Imports: 3 Imported by: 0

Documentation

Overview

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.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

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 ArrayPattern

type ArrayPattern struct {
	LeftBracket  file.Idx
	RightBracket file.Idx
	Elements     []Expression
	Rest         Expression
}

func (*ArrayPattern) Idx0

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

func (*ArrayPattern) Idx1

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

type ArrowFunctionLiteral

type ArrowFunctionLiteral struct {
	Start           file.Idx
	ParameterList   *ParameterList
	Body            ConciseBody
	Source          string
	DeclarationList []*VariableDeclaration
	Async           bool
}

func (*ArrowFunctionLiteral) Idx0

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

func (*ArrowFunctionLiteral) Idx1

func (self *ArrowFunctionLiteral) 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 AwaitExpression

type AwaitExpression struct {
	Await    file.Idx
	Argument Expression
}

func (*AwaitExpression) Idx0

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

func (*AwaitExpression) Idx1

func (self *AwaitExpression) 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 Binding

type Binding struct {
	Target      BindingTarget
	Initializer Expression
}

func (*Binding) Idx0

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

func (*Binding) Idx1

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

type BindingTarget

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

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 BindingTarget
	Body      *BlockStatement
}

func (*CatchStatement) Idx0

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

func (*CatchStatement) Idx1

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

type ClassDeclaration

type ClassDeclaration struct {
	Class *ClassLiteral
}

func (*ClassDeclaration) Idx0

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

func (*ClassDeclaration) Idx1

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

type ClassElement

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

type ClassLiteral

type ClassLiteral struct {
	Class      file.Idx
	RightBrace file.Idx
	Name       *Identifier
	SuperClass Expression
	Body       []ClassElement
	Source     string
}

func (*ClassLiteral) Idx0

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

func (*ClassLiteral) Idx1

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

type ClassStaticBlock

type ClassStaticBlock struct {
	Static          file.Idx
	Block           *BlockStatement
	Source          string
	DeclarationList []*VariableDeclaration
}

func (*ClassStaticBlock) Idx0

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

func (*ClassStaticBlock) Idx1

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

type ConciseBody

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

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 DoWhileStatement

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

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 ExpressionBody

type ExpressionBody struct {
	Expression Expression
}

func (*ExpressionBody) Idx0

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

func (*ExpressionBody) Idx1

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

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 FieldDefinition

type FieldDefinition struct {
	Idx         file.Idx
	Key         Expression
	Initializer Expression
	Computed    bool
	Static      bool
}

func (*FieldDefinition) Idx0

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

func (*FieldDefinition) Idx1

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

type ForDeclaration

type ForDeclaration struct {
	Idx     file.Idx
	IsConst bool
	Target  BindingTarget
}

func (*ForDeclaration) Idx0

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

func (*ForDeclaration) Idx1

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

type ForInStatement

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

func (*ForInStatement) Idx0

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

func (*ForInStatement) Idx1

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

type ForInto

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

type ForIntoExpression

type ForIntoExpression struct {
	Expression Expression
}

func (*ForIntoExpression) Idx0

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

func (*ForIntoExpression) Idx1

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

type ForIntoVar

type ForIntoVar struct {
	Binding *Binding
}

func (*ForIntoVar) Idx0

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

func (*ForIntoVar) Idx1

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

type ForLoopInitializer

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

type ForLoopInitializerExpression

type ForLoopInitializerExpression struct {
	Expression Expression
}

func (*ForLoopInitializerExpression) Idx0

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

func (*ForLoopInitializerExpression) Idx1

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

type ForLoopInitializerLexicalDecl

type ForLoopInitializerLexicalDecl struct {
	LexicalDeclaration LexicalDeclaration
}

func (*ForLoopInitializerLexicalDecl) Idx0

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

func (*ForLoopInitializerLexicalDecl) Idx1

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

type ForLoopInitializerVarDeclList

type ForLoopInitializerVarDeclList struct {
	Var  file.Idx
	List []*Binding
}

func (*ForLoopInitializerVarDeclList) Idx0

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

func (*ForLoopInitializerVarDeclList) Idx1

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

type ForOfStatement

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

func (*ForOfStatement) Idx0

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

func (*ForOfStatement) Idx1

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

type ForStatement

type ForStatement struct {
	For         file.Idx
	Initializer ForLoopInitializer
	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
}

func (*FunctionDeclaration) Idx0

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

func (*FunctionDeclaration) Idx1

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

type FunctionLiteral

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

	DeclarationList []*VariableDeclaration

	Async, Generator bool
}

func (*FunctionLiteral) Idx0

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

func (*FunctionLiteral) Idx1

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

type Identifier

type Identifier struct {
	Name unistring.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 LexicalDeclaration

type LexicalDeclaration struct {
	Idx   file.Idx
	Token token.Token
	List  []*Binding
}

func (*LexicalDeclaration) Idx0

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

func (*LexicalDeclaration) Idx1

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

type MetaProperty

type MetaProperty struct {
	Meta, Property *Identifier
	Idx            file.Idx
}

func (*MetaProperty) Idx0

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

func (*MetaProperty) Idx1

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

type MethodDefinition

type MethodDefinition struct {
	Idx      file.Idx
	Key      Expression
	Kind     PropertyKind // "method", "get" or "set"
	Body     *FunctionLiteral
	Computed bool
	Static   bool
}

func (*MethodDefinition) Idx0

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

func (*MethodDefinition) Idx1

func (self *MethodDefinition) 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 ObjectPattern

type ObjectPattern struct {
	LeftBrace  file.Idx
	RightBrace file.Idx
	Properties []Property
	Rest       Expression
}

func (*ObjectPattern) Idx0

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

func (*ObjectPattern) Idx1

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

type Optional

type Optional struct {
	Expression
}

type OptionalChain

type OptionalChain struct {
	Expression
}

type ParameterList

type ParameterList struct {
	Opening file.Idx
	List    []*Binding
	Rest    Expression
	Closing file.Idx
}

func (*ParameterList) Idx0

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

func (*ParameterList) Idx1

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

type Pattern

type Pattern interface {
	BindingTarget
	// contains filtered or unexported methods
}

type PrivateDotExpression

type PrivateDotExpression struct {
	Left       Expression
	Identifier PrivateIdentifier
}

func (*PrivateDotExpression) Idx0

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

func (*PrivateDotExpression) Idx1

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

type PrivateIdentifier

type PrivateIdentifier struct {
	Identifier
}

type Program

type Program struct {
	Body []Statement

	DeclarationList []*VariableDeclaration

	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 interface {
	Expression
	// contains filtered or unexported methods
}

type PropertyKeyed

type PropertyKeyed struct {
	Key      Expression
	Kind     PropertyKind
	Value    Expression
	Computed bool
}

func (*PropertyKeyed) Idx0

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

func (*PropertyKeyed) Idx1

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

type PropertyKind

type PropertyKind string
const (
	PropertyKindValue  PropertyKind = "value"
	PropertyKindGet    PropertyKind = "get"
	PropertyKindSet    PropertyKind = "set"
	PropertyKindMethod PropertyKind = "method"
)

type PropertyShort

type PropertyShort struct {
	Name        Identifier
	Initializer Expression
}

func (*PropertyShort) Idx0

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

func (*PropertyShort) Idx1

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

type RegExpLiteral

type RegExpLiteral struct {
	Idx     file.Idx
	Literal string
	Pattern string
	Flags   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 SpreadElement

type SpreadElement struct {
	Expression
}

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   unistring.String
}

func (*StringLiteral) Idx0

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

func (*StringLiteral) Idx1

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

type SuperExpression

type SuperExpression struct {
	Idx file.Idx
}

func (*SuperExpression) Idx0

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

func (*SuperExpression) Idx1

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

type SwitchStatement

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

func (*SwitchStatement) Idx0

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

func (*SwitchStatement) Idx1

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

type TemplateElement

type TemplateElement struct {
	Idx     file.Idx
	Literal string
	Parsed  unistring.String
	Valid   bool
}

func (*TemplateElement) Idx0

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

func (*TemplateElement) Idx1

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

type TemplateLiteral

type TemplateLiteral struct {
	OpenQuote   file.Idx
	CloseQuote  file.Idx
	Tag         Expression
	Elements    []*TemplateElement
	Expressions []Expression
}

func (*TemplateLiteral) Idx0

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

func (*TemplateLiteral) Idx1

func (self *TemplateLiteral) 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    *BlockStatement
	Catch   *CatchStatement
	Finally *BlockStatement
}

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 []*Binding
}

func (*VariableDeclaration) Idx0

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

func (*VariableDeclaration) Idx1

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

type VariableStatement

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

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

type YieldExpression

type YieldExpression struct {
	Yield    file.Idx
	Argument Expression
	Delegate bool
}

func (*YieldExpression) Idx0

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

func (*YieldExpression) Idx1

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

Jump to

Keyboard shortcuts

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