ast

package
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Sep 21, 2022 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

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 (i *ArrayLiteral) Idx0() file.Idx

func (*ArrayLiteral) Idx1

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

type ArrayPattern

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

func (*ArrayPattern) Idx0

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

func (*ArrayPattern) Idx1

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

type ArrowFunctionLiteral

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

func (*ArrowFunctionLiteral) Idx0

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

func (*ArrowFunctionLiteral) Idx1

func (i *ArrowFunctionLiteral) Idx1() file.Idx

type AssignExpression

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

func (*AssignExpression) Idx0

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

func (*AssignExpression) Idx1

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

type BadExpression

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

func (*BadExpression) Idx0

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

func (*BadExpression) Idx1

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

type BadStatement

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

func (*BadStatement) Idx0

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

func (*BadStatement) Idx1

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

type BinaryExpression

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

func (*BinaryExpression) Idx0

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

func (*BinaryExpression) Idx1

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

type Binding

type Binding struct {
	Target      BindingTarget
	Initializer Expression
}

func (*Binding) Idx0

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

func (*Binding) Idx1

func (i *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 (i *BlockStatement) Idx0() file.Idx

func (*BlockStatement) Idx1

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

type BooleanLiteral

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

func (*BooleanLiteral) Idx0

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

func (*BooleanLiteral) Idx1

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

type BracketExpression

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

func (*BracketExpression) Idx0

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

func (*BracketExpression) Idx1

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

type BranchStatement

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

func (*BranchStatement) Idx0

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

func (*BranchStatement) Idx1

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

type CallExpression

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

func (*CallExpression) Idx0

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

func (*CallExpression) Idx1

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

type CaseStatement

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

func (*CaseStatement) Idx0

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

func (*CaseStatement) Idx1

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

type CatchStatement

type CatchStatement struct {
	Catch     file.Idx
	Parameter BindingTarget
	Body      *BlockStatement
}

func (*CatchStatement) Idx0

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

func (*CatchStatement) Idx1

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

type ClassDeclaration

type ClassDeclaration struct {
	Class *ClassLiteral
}

func (*ClassDeclaration) Idx0

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

func (*ClassDeclaration) Idx1

func (i *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 (i *ClassLiteral) Idx0() file.Idx

func (*ClassLiteral) Idx1

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

type ClassStaticBlock

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

func (*ClassStaticBlock) Idx0

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

func (*ClassStaticBlock) Idx1

func (i *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 (i *ConditionalExpression) Idx0() file.Idx

func (*ConditionalExpression) Idx1

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

type DebuggerStatement

type DebuggerStatement struct {
	Debugger file.Idx
}

func (*DebuggerStatement) Idx0

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

func (*DebuggerStatement) Idx1

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

type DoWhileStatement

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

func (*DoWhileStatement) Idx0

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

func (*DoWhileStatement) Idx1

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

type DotExpression

type DotExpression struct {
	Left       Expression
	Identifier Identifier
}

func (*DotExpression) Idx0

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

func (*DotExpression) Idx1

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

type EmptyStatement

type EmptyStatement struct {
	Semicolon file.Idx
}

func (*EmptyStatement) Idx0

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

func (*EmptyStatement) Idx1

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

type Expression

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

Expression 表达式接口,所有的表达式都必须实现这个接口

type ExpressionBody

type ExpressionBody struct {
	Expression Expression
}

func (*ExpressionBody) Idx0

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

func (*ExpressionBody) Idx1

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

type ExpressionStatement

type ExpressionStatement struct {
	Expression Expression
}

func (*ExpressionStatement) Idx0

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

func (*ExpressionStatement) Idx1

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

type FieldDefinition

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

func (*FieldDefinition) Idx0

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

func (*FieldDefinition) Idx1

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

type ForDeclaration

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

func (*ForDeclaration) Idx0

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

func (*ForDeclaration) Idx1

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

type ForInStatement

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

func (*ForInStatement) Idx0

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

func (*ForInStatement) Idx1

func (i *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 (i *ForIntoExpression) Idx0() file.Idx

func (*ForIntoExpression) Idx1

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

type ForIntoVar

type ForIntoVar struct {
	Binding *Binding
}

func (*ForIntoVar) Idx0

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

func (*ForIntoVar) Idx1

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

type ForLoopInitializer

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

type ForLoopInitializerExpression

type ForLoopInitializerExpression struct {
	Expression Expression
}

type ForLoopInitializerLexicalDecl

type ForLoopInitializerLexicalDecl struct {
	LexicalDeclaration LexicalDeclaration
}

type ForLoopInitializerVarDeclList

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

func (*ForLoopInitializerVarDeclList) Idx0

func (*ForLoopInitializerVarDeclList) Idx1

type ForOfStatement

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

func (*ForOfStatement) Idx0

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

func (*ForOfStatement) Idx1

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

type ForStatement

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

func (*ForStatement) Idx0

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

func (*ForStatement) Idx1

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

type FunctionDeclaration

type FunctionDeclaration struct {
	Function *FunctionLiteral
}

func (*FunctionDeclaration) Idx0

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

func (*FunctionDeclaration) Idx1

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

type FunctionLiteral

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

	DeclarationList []*VariableDeclaration
}

func (*FunctionLiteral) Idx0

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

func (*FunctionLiteral) Idx1

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

type Identifier

type Identifier struct {
	Name unistring.String
	Idx  file.Idx
}

func (*Identifier) Idx0

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

func (*Identifier) Idx1

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

type IfStatement

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

func (*IfStatement) Idx0

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

func (*IfStatement) Idx1

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

type LabelledStatement

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

func (*LabelledStatement) Idx0

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

func (*LabelledStatement) Idx1

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

type LexicalDeclaration

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

func (*LexicalDeclaration) Idx0

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

func (*LexicalDeclaration) Idx1

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

type MetaProperty

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

func (*MetaProperty) Idx0

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

func (*MetaProperty) Idx1

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

type MethodDefinition

type MethodDefinition struct {
	Idx      file.Idx
	Key      Expression
	Kind     PropertyKind // 只可以是 method/get/set
	Body     *FunctionLiteral
	Computed bool
	Static   bool
}

func (*MethodDefinition) Idx0

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

func (*MethodDefinition) Idx1

func (i *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 (i *NewExpression) Idx0() file.Idx

func (*NewExpression) Idx1

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

type Node

type Node interface {
	Idx0() file.Idx // 属于该节点的第一个字符的索引
	Idx1() file.Idx // 紧随该节点之后的第一个字符的索引
}

Node 节点接口,所有的节点都必须实现这个接口

type NullLiteral

type NullLiteral struct {
	Idx     file.Idx
	Literal string
}

func (*NullLiteral) Idx0

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

func (*NullLiteral) Idx1

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

type NumberLiteral

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

func (*NumberLiteral) Idx0

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

func (*NumberLiteral) Idx1

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

type ObjectLiteral

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

func (*ObjectLiteral) Idx0

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

func (*ObjectLiteral) Idx1

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

type ObjectPattern

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

func (*ObjectPattern) Idx0

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

func (*ObjectPattern) Idx1

func (i *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
}

type Pattern

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

type PrivateDotExpression

type PrivateDotExpression struct {
	Left       Expression
	Identifier PrivateIdentifier
}

func (*PrivateDotExpression) Idx0

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

func (*PrivateDotExpression) Idx1

func (i *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 (i *Program) Idx0() file.Idx

func (*Program) Idx1

func (i *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 (i *PropertyKeyed) Idx0() file.Idx

func (*PropertyKeyed) Idx1

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

type PropertyKind

type PropertyKind string

PropertyKind 指出了属性的类型

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 (i *PropertyShort) Idx0() file.Idx

func (*PropertyShort) Idx1

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

type RegExpLiteral

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

func (*RegExpLiteral) Idx0

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

func (*RegExpLiteral) Idx1

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

type ReturnStatement

type ReturnStatement struct {
	Return   file.Idx
	Argument Expression
}

func (*ReturnStatement) Idx0

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

func (*ReturnStatement) Idx1

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

type SequenceExpression

type SequenceExpression struct {
	Sequence []Expression
}

func (*SequenceExpression) Idx0

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

func (*SequenceExpression) Idx1

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

type SpreadElement

type SpreadElement struct {
	Expression
}

type Statement

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

Statement 语句接口,所有的语句都必须实现这个接口

type StringLiteral

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

func (*StringLiteral) Idx0

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

func (*StringLiteral) Idx1

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

type SuperExpression

type SuperExpression struct {
	Idx file.Idx
}

func (*SuperExpression) Idx0

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

func (*SuperExpression) Idx1

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

type SwitchStatement

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

func (*SwitchStatement) Idx0

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

func (*SwitchStatement) Idx1

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

type TemplateElement

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

type TemplateLiteral

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

func (*TemplateLiteral) Idx0

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

func (*TemplateLiteral) Idx1

func (i *TemplateLiteral) Idx1() file.Idx

type ThisExpression

type ThisExpression struct {
	Idx file.Idx
}

func (*ThisExpression) Idx0

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

func (*ThisExpression) Idx1

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

type ThrowStatement

type ThrowStatement struct {
	Throw    file.Idx
	Argument Expression
}

func (*ThrowStatement) Idx0

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

func (*ThrowStatement) Idx1

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

type TryStatement

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

func (*TryStatement) Idx0

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

func (*TryStatement) Idx1

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

type UnaryExpression

type UnaryExpression struct {
	Operator token.Token
	Idx      file.Idx // 如果有前缀操作符
	Operand  Expression
	Postfix  bool
}

func (*UnaryExpression) Idx0

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

func (*UnaryExpression) Idx1

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

type VariableDeclaration

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

type VariableStatement

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

func (*VariableStatement) Idx0

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

func (*VariableStatement) Idx1

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

type WhileStatement

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

func (*WhileStatement) Idx0

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

func (*WhileStatement) Idx1

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

type WithStatement

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

func (*WithStatement) Idx0

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

func (*WithStatement) Idx1

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

Jump to

Keyboard shortcuts

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