class Annotation

public class Annotation <: Node {
    public init()
    public init(input: Tokens)
}

功能:表示编译器内置的注解节点。

一个 Annotation 节点:@CallingConv[xxx], @Attribute[xxx], @When[condition]等。

类型:RefExpr

prop arguments

public mut prop arguments: ArrayList<Argument>

功能:获取或设置 Annotation 中的参数序列,如 @CallingConv[xxx] 中的 xxx

类型:ArrayList<Argument>

prop at

public mut prop at: Token

功能:获取或设置 Annotation 节点中的 @ 操作符。

类型:Token

prop attributes

public mut prop attributes: Tokens

功能:获取或设置 Attribute 中设置的属性值,仅用于 @Attribute,如 @Attribute[xxx] 中的 xxx

类型:Tokens

prop condition

public mut prop condition: Expr

功能:获取或设置条件编译中的条件表达式,用于 @When,如 @When[xxx] 中的 xxx

类型:Expr

异常:

prop identifier

public mut prop identifier: Token

功能:获取或设置 Annotation 节点的标识符,如 @CallingConv[xxx] 中的 CallingConv

类型:Token

init()

public init()

功能:构造一个默认的 Annotation 对象。

init(Token)

public init(input: Token)

功能:根据输入的词法单元,构造一个 Annotation 对象。

参数:

异常:

class Argument

public class Argument <: Node {
    public init()
}

功能:表示函数调用的实参节点。

例如 foo(arg:value) 中的 arg:value

prop colon

public mut prop colon: Token

功能:获取或设置 Argument 节点中的操作符 :,可能为 ILLEGAL 的词法单元。

类型:Token

prop expr

public mut prop expr: Expr

功能:获取或设置 Argument 节点中的表达式,如 arg:value 中的 value

类型:Expr

prop identifier

public mut prop identifier: Token

功能:获取或设置 Argument 节点中的标识符,如 arg:value 中的 arg,可能为 ILLEGAL 的词法单元。

类型:Token

prop keyword

public mut prop keyword: Token

功能:获取或设置 Argument 节点中的关键字 inout,可能为 ILLEGAL 的词法单元。

类型:Token

init()

public init()

功能:构造一个默认的 Argument 对象。

class ArrayLiteral

public class ArrayLiteral <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示 Array 字面量节点。

ArrayLiteral 节点:使用格式 [element1, element2, ... , elementN] 表示, 每个 element 是一个表达式。

prop elements

public mut prop elements: ArrayList<Expr>

功能:获取或设置 ArrayLiteral 中的表达式列表。

类型:ArrayList<Expr>

prop lSquare

public mut prop lSquare: Token

功能:获取或设置 ArrayLiteral 中的左中括号。

类型:Token

prop rSquare

public mut prop rSquare: Token

功能:获取或设置 ArrayLiteral 中的右中括号。

类型:Token

init()

public init()

功能:构造一个默认的 ArrayLiteral 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 ArrayLiteral 对象。

参数:

异常:

class AsExpr

public class AsExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示一个类型检查表达式。

一个 AsExpr 表达式:e as T,类型为 Option<T>。其中 e 可以是任何类型的表达式,T 可以是任何类型。

prop expr

public mut prop expr: Expr

功能:获取或设置 AsExpr 节点中的表达式节点。

类型:Expr

prop keyword

public mut prop keyword: Token

功能:获取或设置 AsExpr 节点中的 as 操作符。

类型:Token

prop shiftType

public mut prop shiftType: TypeNode

功能:获取或设置 AsExpr 节点中的目标类型。

类型:TypeNode

init()

public init()

功能:构造一个默认的 AsExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 AsExpr 对象。

参数:

异常:

class AssignExpr

public class AssignExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示赋值表达式节点。

用于将左操作数的值修改为右操作数的值。一个 AssignExpr 节点:a = b

prop assign

public mut prop assign: Token

功能:获取或设置 AssignExpr 节点中的 = 操作符。

类型:Token

prop leftExpr

public mut prop leftExpr: Expr

功能:获取或设置 AssignExpr 节点中的左操作数。

类型:Expr

prop rightExpr

public mut prop rightExpr: Expr

功能:获取或设置 AssignExpr 节点中的右操作数。

类型:Expr

init()

public init()

功能:构造一个默认的 AssignExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 AssignExpr 对象。

参数:

异常:

class BinaryExpr

public class BinaryExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示一个二元操作表达式节点。

一个 BinaryExpr 节点:a + b, a - b 等。

prop leftExpr

public mut prop leftExpr: Expr

功能:获取或设置 BinaryExpr 节点中操作符左侧的表达式节点。

类型:Expr

prop op

public mut prop op: Token

功能:获取或设置 BinaryExpr 节点中的二元操作符。

类型:Token

prop rightExpr

public mut prop rightExpr: Expr

功能:获取或设置 BinaryExpr 节点中操作符右侧的表达式节点。

类型:Expr

init()

public init()

功能:构造一个默认的 BinaryExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 BinaryExpr 对象。

参数:

异常:

class Block

public class Block <: Expr {
    public init()
}

功能:表示块节点。

Block 由一对匹配的大括号及其中可选的表达式声明序列组成的结构,简称 “块”。

prop lBrace

public mut prop lBrace: Token

功能:获取或设置 Block 的左大括号。

类型:Token

prop nodes

public mut prop nodes: ArrayList<Node>

功能:获取或设置 Block 中的表达式或声明序列。

类型:ArrayList<Node>

prop rBrace

public mut prop rBrace: Token

功能:获取或设置 Block 的右大括号。

类型:Token

init()

public init()

功能:构造一个默认的 Block 对象。

说明:

Block 节点无法脱离表达式或声明节点单独存在,因此不提供其他的构造函数。

class Body

public class Body <: Node {
    public init()
}

功能:表示 Class 类型、 Struct 类型、 Interface 类型以及扩展中由 {} 和内部的一组声明节点组成的结构。

prop decls

public mut prop decls: ArrayList<Decl>

功能:获取或设置 Body 内的声明节点集合。

类型:ArrayList<Decl>

prop lBrace

public mut prop lBrace: Token

功能:获取或设置 { 词法单元。

类型:Token

prop rBrace

public mut prop rBrace: Token

功能:获取或设置 } 词法单元。

类型:Token

init()

public init()

功能:构造一个默认的 Body 对象。

class CallExpr

public class CallExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示函数调用节点节点。

一个 CallExpr 节点包括一个表达式后面紧跟参数列表,例如 foo(100)

prop arguments

public mut prop arguments: ArrayList<Argument>

功能:获取或设置 CallExpr 节点中函数参数。

类型:ArrayList<Argument>

prop callFunc

public mut prop callFunc: Expr

功能:获取或设置 CallExpr 节点中的函数调用节点。

类型:Expr

prop lParen

public mut prop lParen: Token

功能:获取或设置 CallExpr 节点中的左括号。

类型:Token

prop rParen

public mut prop rParen: Token

功能:获取或设置 CallExpr 节点中的右括号。

类型:Token

init()

public init()

功能:构造一个默认的 CallExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 CallExpr 对象。

参数:

异常:

class ClassDecl

public class ClassDecl <: Decl {
    public init()
    public init(inputs: Tokens)
}

功能:类定义节点。

类的定义使用 class 关键字,定义依次为:可缺省的修饰符、class 关键字、class 名、可选的类型参数、是否指定父类或父接口、可选的泛型约束、类体的定义。

prop body

public mut prop body: Body

功能:获取或设置 ClassDecl 节点的类体。

类型:Body

prop superTypes

public mut prop superTypes: ArrayList<TypeNode>

功能:获取或设置 ClassDecl 节点的父类或者父接口。

类型:ArrayList<TypeNode>

prop upperBound

public mut prop upperBound: Token

功能:获取或设置 <: 操作符。

类型:Token

init()

public init()

功能:构造一个默认的 ClassDecl 对象。

init(Tokens)

public init(inputs: Tokens)

功能:构造一个 ClassDecl 对象。

参数:

异常:

class ConstPattern

public class ConstPattern <: Pattern {
    public init()
    public init(input: Tokens)
}

功能:表示常量模式节点。

常量模式可以是整数字面量、字符字节字面量、浮点数字面量、字符字面量、布尔字面量、字符串字面量等字面量,如 case 1 => 0 中的 1

prop litConstExpr

public mut prop litConstExpr: LitConstExpr

功能:获取或设置 ConstPattern 节点中的字面量表达式。

类型:LitConstExpr

init()

public init()

功能:构造一个默认的 ConstPattern 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 ConstPattern 对象。

参数:

异常:

class Constructor

public class Constructor <: Node {
    public init()
}

功能:表示 enum 类型中的 Constructor 节点。

一个 Constructor 节点:enum TimeUnit { Year | Month(Float32, Float32)} 中的 Year 和 Month(Float32, Float32)。

说明:

Constructor 可以没有参数,也可以有一组不同类型的参数。

prop identifier

public mut prop identifier: Token

功能:获取或设置 Constructor 的标识符词法单元。

类型:Token

prop lParen

public mut prop lParen: Token

功能:获取或设置 Constructor 节点中的左括号词法单元。

类型:Token

prop rParen

public mut prop rParen: Token

功能:获取或设置 Constructor 节点中的右括号词法单元。

类型:Token

prop typeArguments

public mut prop typeArguments: ArrayList<TypeNode>

功能:获取或设置 Constructor 节点可选的参数类型节点的集合。

类型:ArrayList<TypeNode>

init()

public init()

功能:构造一个默认的 Constructor 对象。

class Decl

public open class Decl <: Node

功能:所有声明节点的父类,继承自 Node 节点,提供了所有声明节点的通用接口。

说明:

类定义、接口定义、函数定义、变量定义、枚举定义、结构体定义、扩展定义、类型别名定义、宏定义等都属于 Decl 节点。

prop annotations

public mut prop annotations: ArrayList<Annotation>

功能:获取或设置作用于 Decl 节点的注解列表。

类型:ArrayList<Annotation>

prop genericConstraint

public mut prop genericConstraint: ArrayList<GenericConstraint>

功能:获取或设置定义节点的泛型约束,可能为空,如 func foo<T>() where T <: Comparable<T> {} 中的 where T <: Comparable<T>

类型:ArrayList<GenericConstraint>

prop genericParam

public mut prop genericParam: GenericParam

功能:获取或设置形参列表,类型形参列表由 <> 括起,多个类型形参之间用逗号分隔。

类型:GenericParam

异常:

  • ASTException - 当节点未定义类型形参列表时,抛出异常。

prop identifier

public open mut prop identifier: Token

功能:获取或设置定义节点的标识符,如 class foo {} 中的 foo

类型:Token

prop keyword

public mut prop keyword: Token

功能:获取或设置定义节点的关键字。

类型:Token

prop modifiers

public mut prop modifiers: ArrayList<Modifier>

功能:获取或设置修饰节点的修饰符列表。

类型:ArrayList<Modifier>

func getAttrs()

public func getAttrs(): Tokens

功能:获取当前节点的属性(一般通过内置的 Attribute 来设置某个声明设置属性值)。

返回值:

  • Tokens - 当前节点的属性。

func hasAttr(String)

public func hasAttr(attr: String): Bool

功能:判断当前节点是否具有某个属性(一般通过内置的 Attribute 来设置某个声明的属性值)。

参数:

  • attr: String - 将要判断是否存在于该节点的属性。

返回值:

  • Bool - 当前节点具有该属性时,返回 true;反之,返回 false。

class DoWhileExpr

public class DoWhileExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示 do-while 表达式。

prop block

public mut prop block: Block

功能:获取或设置 DoWhileExpr 中的块表达式。

类型:Block

prop condition

public mut prop condition: Expr

功能:获取或设置关键字 DoWhileExpr 中的条件表达式。

类型:Expr

prop keywordD

public mut prop keywordD: Token

功能:获取或设置 DoWhileExpr 节点中 do 关键字,其中 keywordD 中的 D 为关键字 do 的首字母大写,代表关键字 do

类型:Token

prop keywordW

public mut prop keywordW: Token

功能:获取或设置 DoWhileExpr 节点中 while 关键字,其中 keywordW 中的 W 为关键字 while 的首字母大写,代表关键字 while

类型:Token

prop lParen

public mut prop lParen: Token

功能:获取或设置 DoWhileExprwhile 关键字之后的左括号。

类型:Token

prop rParen

public mut prop rParen: Token

功能:获取或设置 DoWhileExprwhile 关键字之后的右括号。

类型:Token

init()

public init()

功能:构造一个默认的 DoWhileExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 DoWhileExpr 对象。

参数:

异常:

class EnumDecl

public class EnumDecl <: Decl {
    public init()
    public init(inputs: Tokens)
}

功能:表示一个 Enum 定义节点。

Enum 的定义使用 enum 关键字,定义依次为:可缺省的修饰符、enum 关键字、enum 名、可选的类型参数、是否指定父接口、可选的泛型约束、enum 体的定义。

prop constructors

public mut prop constructors: ArrayList<Constructor>

功能:获取或设置 EnumDecl 节点内 constructor 的成员。

类型:ArrayList<Constructor>

prop decls

public mut prop decls: ArrayList<Decl>

功能:获取或设置 EnumDecl 节点内除 constructor 的其它成员。

类型:ArrayList<Decl>

prop lBrace

public mut prop lBrace: Token

功能:获取或设置 EnumDecl 节点的 { 词法单元类型。

类型:Token

prop rBrace

public mut prop rBrace: Token

功能:获取或设置 EnumDecl 节点的 } 词法单元类型。

类型:Token

prop superTypes

public mut prop superTypes: ArrayList<TypeNode>

功能:获取或设置 EnumDecl 节点的父接口。

类型:ArrayList<TypeNode>

prop upperBound

public mut prop upperBound: Token

功能:获取或设置 <: 操作符。

类型:Token

init()

public init()

功能:构造一个默认的 EnumDecl 对象。

init(Tokens)

public init(inputs: Tokens)

功能:构造一个 EnumDecl 对象。

参数:

异常:

class EnumPattern

public class EnumPattern <: Pattern {
    public init()
    public init(input: Tokens)
}

功能:表示 enum 模式节点。

用于匹配 enum 的 constructor, 如 case Year(n) => 1 中的 Year(n)

prop constructor

public mut prop constructor: Expr

功能:获取或设置 EnumPattern 节点中的构造器表达式节点。

类型:Expr

prop lParen

public mut prop lParen: Token

功能:获取或设置 EnumPattern 节点中的左括号的词法单元。

类型:Token

prop patterns

public mut prop patterns: ArrayList<Pattern>

功能:获取或设置 EnumPattern 节点中有参构造器内的模式节点列表。

类型:ArrayList<Pattern>

prop rParen

public mut prop rParen: Token

功能:获取或设置 EnumPattern 节点中的右括号的词法单元。

类型:Token

init()

public init()

功能:构造一个默认的 EnumPattern 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 EnumPattern 对象。

参数:

异常:

class ExceptTypePattern

public class ExceptTypePattern <: Pattern {
    public init()
    public init(input: Tokens)
}

功能:表示一个用于异常模式状态下的节点。

例如 e: Exception1 | Exception2

prop colon

public mut prop colon: Token

功能:获取或设置 ExceptTypePattern 节点中的 : 操作符的词法单元。

类型:Token

prop pattern

public mut prop pattern: Pattern

功能:获取或设置 ExceptTypePattern 节点中的模式节点。

类型:Pattern

prop types

public mut prop types: ArrayList<TypeNode>

功能:获取或设置 ExceptTypePattern 节点中有类型列表。

类型:ArrayList<TypeNode>

init()

public init()

功能:构造一个默认的 ExceptTypePattern 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 ExceptTypePattern 对象。

参数:

异常:

class Expr

public open class Expr <: Node

功能:所有表达式节点的父类,继承自 Node 节点。

表达式节点的 toTokens 方法会根据操作符优先级添加括号,例如已有一个 BinaryExpr 节点 a b, 用户将左表达式内容 a 修改为 a + 1,修改后 toTokens 方法会为左表达式添加括号,toTokens 输出为 (a + 1) b。

class ExtendDecl

public class ExtendDecl <: Decl {
    public init()
    public init(inputs: Tokens)
}

功能:表示一个扩展定义节点。

扩展的定义使用 extend 关键字,扩展定义依次为:extend 关键字、扩展类型、是否指定父接口、可选的泛型约束、扩展体的定义。

prop body

public mut prop body: Body

功能:获取或设置 ExtendDecl 节点的类体。

类型:Body

prop extendType

public mut prop extendType: TypeNode

功能:获取或设置被扩展的类型。

类型:TypeNode

prop identifier

public override mut prop identifier: Token

功能:ExtendDecl 节点继承 Decl 节点,但是不支持 identifier 属性,使用时会抛出异常。

类型:Token

异常:

  • ASTException - 当使用 identifier 属性时,抛出异常。

prop superTypes

public mut prop superTypes: ArrayList<TypeNode>

功能:获取或设置 ExtendDecl 节点的父接口。

类型:ArrayList<TypeNode>

prop upperBound

public mut prop upperBound: Token

功能:获取或设置 <: 操作符。

类型:Token

init()

public init()

功能:构造一个默认的 ExtendDecl 对象。

init(Tokens)

public init(inputs: Tokens)

功能:构造一个 ExtendDecl 对象。

参数:

异常:

class ForInExpr

public class ForInExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示 for-in 表达式。

ForInExpr 类型中,关键字 for 之后是 Pattern, 此后是一个 in 关键字和表达式节点,最后是一个执行循环体 Block

prop block

public mut prop block: Block

功能:获取或设置 ForInExpr 中的循环体。

类型:Block

prop expr

public mut prop expr: Expr

功能:获取或设置 ForInExpr 中的表达式。

类型:Expr

prop keywordF

public mut prop keywordF: Token

功能:获取或设置 ForInExpr 中的关键字 for

类型:Token

prop keywordI

public mut prop keywordI: Token

功能:获取或设置 ForInExpr 中的关键字 in

类型:Token

prop keywordW

public mut prop keywordW: Token

功能:获取或设置 ForInExpr 中的关键字 where

类型:Token

prop lParen

public mut prop lParen: Token

功能:获取或设置 ForInExpr 中关键字 for 后的左括号。

类型:Token

prop pattern

public mut prop pattern: Pattern

功能:获取或设置 ForInExpr 中的 Pattern 节点。

类型:Pattern

prop patternGuard

public mut prop patternGuard: Expr

功能:获取或设置 ForInExpr 中的 patternGuard 条件表达式。

类型:Expr

异常:

prop rParen

public mut prop rParen: Token

功能:获取或设置 ForInExpr 中的右括号。

类型:Token

init()

public init()

功能:构造一个默认的 ForInExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 ForInExpr 对象。

参数:

异常:

class FuncDecl

public class FuncDecl <: Decl {
    public init()
    public init(inputs: Tokens)
}

功能:表示一个函数定义节点。

由可选的函数修饰符,关键字 func ,函数名,可选的类型形参列表,函数参数,可缺省的函数返回类型来定义一个函数,函数定义时必须有函数体,函数体是一个块。

prop block

public mut prop block: Block

功能:获取或设置 FuncDecl 节点的函数体。

类型:Block

prop colon

public mut prop colon: Token

功能:获取或设置 FuncDecl 节点的冒号。

类型:Token

prop declType

public mut prop declType: TypeNode

功能:获取或设置 FuncDecl 节点的函数返回类型。

类型:TypeNode

异常:

prop funcParams

public mut prop funcParams: ArrayList<FuncParam>

功能:获取或设置 FuncDecl 节点的函数参数。

类型:ArrayList<FuncParam>

prop lParen

public mut prop lParen: Token

功能:获取或设置 FuncDecl 节点的左括号。

类型:Token

prop overloadOp

public mut prop overloadOp: Tokens

功能:获取或设置 FuncDecl 节点的重载操作符。

类型:Tokens

prop rParen

public mut prop rParen: Token

功能:获取或设置 FuncDecl 节点的右括号。

类型:Token

init()

public init()

功能:构造一个默认的 FuncDecl 对象。

init(Tokens)

public init(inputs: Tokens)

功能:构造一个 FuncDecl 对象。

参数:

异常:

func isConst()

public func isConst(): Bool

功能:判断是否是一个 Const 类型的节点。

返回值:

  • Bool - 是一个 Const 类型的节点返回 true;反之,返回 false。

class FuncParam

public open class FuncParam <: Decl {
    public init()
    public init(inputs: Tokens)
}

功能:表示函数参数节点,包括非命名参数和命名参数。

一个 FuncParam 节点: func foo(a: Int64, b: Float64) {...} 中的 a: Int64b: Float64

prop assign

public mut prop assign: Token

功能:获取或设置具有默认值的函数参数中的 =

类型:Token

prop colon

public mut prop colon: Token

功能:获取或设置置形参中的 :

类型:Token

prop expr

public mut prop expr: Expr

功能:获取或设置具有默认值的函数参数的变量初始化节点。

类型:Expr

异常:

  • ASTException - 当函数参数没有进行初始化时,抛出异常。

prop not

public mut prop not: Token

功能:获取或设置命名形参中的 !

类型:Token

prop paramType

public mut prop paramType: TypeNode

功能:获取或设置函数参数的类型。

类型:TypeNode

init()

public init()

功能:构造一个默认的 FuncParam 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 FuncParam 对象。

参数:

异常:

func isMemberParam()

public func isMemberParam(): Bool

功能:当前的函数参数是否是主构造函数中的参数。

返回值:

  • Bool - 布尔类型,如果是主构造函数中的参数,返回 true

class FuncType

public class FuncType <: TypeNode {
    public init()
    public init(input: Tokens)
}

功能:表示函数类型节点。

由函数的参数类型和返回类型组成,参数类型与返回类型之间用 -> 分隔,如:(Int32) -> Unit

prop arrow

public mut prop arrow: Token

功能:获取或设置 FuncType 节点参数类型与返回类型之间的 ->的词法单元。

类型:Token

prop keyword

public mut prop keyword: Token

功能:获取或设置 FuncType 节点的中的关键字 CFunc 的词法单元,若不是一个 CFunc 类型,则获取一个 ILLEGAL 的词法单元。

类型:Token

prop lParen

public mut prop lParen: Token

功能:获取或设置 FuncType 节点的左括号的词法单元。

类型:Token

prop rParen

public mut prop rParen: Token

功能:获取或设置 FuncType 节点的右括号的词法单元。

类型:Token

prop returnType

public mut prop returnType: TypeNode

功能:获取或设置 FuncType 返回类型节点。

类型:TypeNode

prop types

public mut prop types: ArrayList<TypeNode>

功能:获取或设置 FuncType 节点中函数的参数类型列表。

类型:ArrayList<TypeNode>

init()

public init()

功能:构造一个默认的 FuncType 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 FuncType 对象。

参数:

异常:

class GenericConstraint

public class GenericConstraint <: Node {
    public init()
}

功能:表示一个泛型约束节点。

一个 GenericConstraint 节点:interface Enumerable<U> where U <: Bounded {} 中的 where where U <: Bounded

说明:

通过 where 之后的 <: 运算符来声明,由一个下界与一个上界来组成。其中 <: 左边称为约束的下界,下界只能为类型变元。<: 右边称为约束上界,约束上界可以为类型。

prop keyword

public mut prop keyword: Token

功能:获取或设置 GenericConstraint 节点中关键字 where 词法单元,可能为 ILLEGAL 的词法单元。

类型:Token

prop typeArgument

public mut prop typeArgument: TypeNode

功能:获取或设置 GenericConstraint 节点中的约束下界。

类型:TypeNode

prop upperBound

public mut prop upperBound: Token

功能:获取或设置 GenericConstraint 节点中的 <: 运算符。

类型:Token

prop upperBounds

public mut prop upperBounds: ArrayList<TypeNode>

功能:获取或设置 GenericConstraint 节点约束上界的 TypeNode 类型节点的集合。

类型:ArrayList<TypeNode>

init()

public init()

功能:构造一个默认的 GenericConstraint 对象。

class GenericParam

public class GenericParam <: Node {
    public init()
    public init(parameters: Tokens)
}

功能:表示一个类型形参节点。

一个 GenericParam 节点:<T1, T2, T3>

说明:

类型形参用 <> 括起并用 , 分隔多个类型形参名称。

prop lAngle

public mut prop lAngle: Token

功能:获取或设置 GenericParam 节点中的左尖括号词法单元。

类型:Token

prop parameters

public mut prop parameters: Tokens

功能:获取或设置 GenericParam 节点中的类型形参的 Tokens 类型,可能为空,如 <T1, T2, T3> 中的 T1 T2T3

类型:Tokens

prop rAngle

public mut prop rAngle: Token

功能:获取或设置 GenericParam 节点中的右尖括号词法单元。

类型:Token

init()

public init()

功能:构造一个默认的 GenericParam 对象。

init(Tokens)

public init(parameters: Tokens)

功能:构造一个 GenericParam 对象。

参数:

class IfExpr

public class IfExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示条件表达式。

可以根据判定条件是否成立来决定执行哪条代码分支。一个 IfExpr 节点中 if 是关键字,if 之后是一个小括号,小括号内可以是一个表达式或者一个 let 声明的解构匹配,接着是一个 BlockBlock 之后是可选的 else 分支。 else 分支以 else 关键字开始,后接新的 if 表达式或一个 Block

prop condition

public mut prop condition: Expr

功能:获取或设置 IfExpr 节点中的 if 后的条件表达式。

类型:Expr

prop elseExpr

public mut prop elseExpr: Expr

功能:获取或设置 IfExpr 节点中 else 分支节点。

类型:Expr

异常:

prop ifBlock

public mut prop ifBlock: Block

功能:获取或设置 IfExpr 节点中的 if 后的 block 节点。

类型:Block

prop keywordE

public mut prop keywordE: Token

功能:获取或设置 IfExpr 节点中 else 关键字。

类型:Token

prop keywordI

public mut prop keywordI: Token

功能:获取或设置 IfExpr 节点中的 if 关键字。

类型:Token

prop lParen

public mut prop lParen: Token

功能:获取或设置 IfExpr 节点中的 if 后的左括号。

类型:Token

prop rParen

public mut prop rParen: Token

功能:获取或设置 IfExpr 节点中的 if 后的右括号。

类型:Token

init()

public init()

功能:构造一个默认的 IfExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 IfExpr 对象。

参数:

异常:

class ImportList

public class ImportList <: Node {
    public init()
    public init(input: Tokens)
}

功能:表示包导入节点。

一个 ImportList 节点: import module.package.foo as bar

说明:

导入节点以可选的访问性修饰符(public/protected/internal/private)加关键字 import 开头。以 import pkga.pkgb.item 为例,pkga.pkgb 为导入的顶级定义或声明所在的包的名字,item 为导入的顶级定义或声明。

prop modifier

public mut prop modifier: Token

功能:获取或设置 ImportList 节点中的修饰符,可能为 ILLEGAL 的词法单元。

类型:Token

prop keywordI

public mut prop keywordI: Token

功能:获取或设置 ImportList 节点中的 import 关键字的词法单元,I 为关键字首字母。

类型:Token

prop content

public mut prop content: ImportContent

功能:获取或设置 ImportList 节点中的被导入的具体项。如 import a.b.c 中的 a.b.c 部分。

类型:ImportContent

init()

public init()

功能:构造一个默认的 ImportList 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 ImportList 对象。

参数:

异常:

func isImportMulti()

public func isImportMulti(): Bool

功能:判断 ImportList 节点是否导入了多个顶级定义或声明。

返回值:

  • Bool - 如果 ImportList 节点导入了多个顶级定义或声明,返回 true;反之,返回 false。

class ImportContent

public class ImportContent <: Node {
    public init()
}

prop importKind

public mut prop importKind: ImportKind

功能:获取或设置 ImportContent 节点中导入类型。

类型:ImportKind

prop prefixPaths

public mut prop prefixPaths: Tokens

功能:获取或设置 ImportContent 节点中完整包名的前缀部分的词法单元序列,可能为空。如 import a.b.c 中的 ab

类型:Tokens

prop prefixDots

public mut prop prefixDots: Tokens

功能:获取或设置 ImportContent 节点中完整包名中用于分隔每层子包的词法单元序列,可能为空。如 import a.b.c 中的两个 .

类型:Tokens

prop identifier

public mut prop identifier: Token

功能:获取或设置 ImportContent 节点中被导入的项,它可能是包中的顶层定义或声明,也可能是子包的名字。

类型:Token

prop importAlias

public mut prop importAlias: Tokens

功能:获取或设置 ImportContent 节点中导入的定义或声明的别名词法单元序列,只有 importKindImportKind.Alias 时非空。如:import packageName.xxx as yyy 中的 as yyy

类型:Tokens

prop lBrace

public mut prop lBrace: Token

功能:获取或设置 ImportContent 节点中的 { 操作符词法单元,只有 importKindImportKind.Multi 时非空。

类型:Token

prop items

public mut prop items: ArrayList<ImportContent>

功能:获取或设置 ImportContent 节点中被导入的所有项,只有 importKindImportKind.Multi 时非空。

类型:ArrayList<ImportContent>

prop commas

public mut prop commas: Tokens

功能:获取或设置 ImportContent 节点中的 , 操作符词法单元序列,只有 importKindImportKind.Multi 时非空。

类型:Tokens

prop rBrace

public mut prop rBrace: Token

功能:获取或设置 ImportContent 节点中的 } 操作符词法单元,只有 importKindImportKind.Multi 时非空。

类型:Token

init()

public init()

功能:构造一个默认的 ImportContent 对象。

func isImportAlias()

public func isImportAlias(): Bool

功能:判断 ImportContent 节点是否对导入项取了别名。

返回值:

func isImportAll()

public func isImportAll(): Bool

功能:判断 ImportContent 节点是否为全导入。

返回值:

func isImportMulti()

public func isImportMulti(): Bool

功能:判断 ImportContent 节点是否导入了多个顶级定义或声明。

返回值:

func isImportSingle()

public func isImportSingle(): Bool

功能:判断 ImportContent 节点是否为单导入。

返回值:

class IncOrDecExpr

public class IncOrDecExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示包含自增操作符(++)或自减操作符(--)的表达式。

prop expr

public mut prop expr: Expr

功能:获取或设置 IncOrDecExpr 中的表达式。

类型:Expr

prop op

public mut prop op: Token

功能:获取或设置 IncOrDecExpr 中的操作符。

类型:Token

init()

public init()

功能:构造一个默认的 IncOrDecExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 IncOrDecExpr 对象。

参数:

异常:

class InterfaceDecl

public class InterfaceDecl <: Decl {
    public init()
    public init(inputs: Tokens)
}

功能:表示接口定义节点。

接口的定义使用 interface 关键字,接口定义依次为:可缺省的修饰符、interface 关键字、接口名、可选的类型参数、是否指定父接口、可选的泛型约束、接口体的定义。

prop body

public mut prop body: Body

功能:获取或设置 InterfaceDecl 节点的类体。

类型:Body

prop superTypes

public mut prop superTypes: ArrayList<TypeNode>

功能:获取或设置 InterfaceDecl 节点的父接口。

类型:ArrayList<TypeNode>

prop upperBound

public mut prop upperBound: Token

功能:获取或设置 <: 操作符。

类型:Token

init()

public init()

功能:构造一个默认的 InterfaceDecl 对象。

init(Tokens)

public init(inputs: Tokens)

功能:构造一个 InterfaceDecl 对象。

参数:

异常:

class IsExpr

public class IsExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示一个类型检查表达式。

一个 IsExpr 表达式:e is T,类型为 Bool。其中 e 可以是任何类型的表达式,T 可以是任何类型。

prop expr

public mut prop expr: Expr

功能:获取或设置 IsExpr 节点中的表达式节点。

类型:Expr

prop keyword

public mut prop keyword: Token

功能:获取或设置 IsExpr 节点中的 is 操作符。

类型:Token

prop shiftType

public mut prop shiftType: TypeNode

功能:获取或设置 IsExpr 节点中的目标类型。

类型:TypeNode

init()

public init()

功能:构造一个默认的 IsExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 IsExpr 对象。

参数:

异常:

class JumpExpr

public class JumpExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示循环表达式的循环体中的 breakcontinue

prop keyword

public mut prop keyword: Token

功能:获取或设置关键字。

类型:Token

init()

public init()

功能:构造一个默认的 JumpExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 JumpExpr 对象。

参数:

异常:

class LambdaExpr

public class LambdaExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示 Lambda 表达式,是一个匿名的函数。

一个 LambdaExpr 节点有两种形式,一种是有形参的,例如 {a: Int64 => e1; e2 },另一种是无形参的,例如 { => e1; e2 }

prop doubleArrow

public mut prop doubleArrow: Token

功能:获取或设置 LambdaExpr 中的 =>

类型:Token

prop funcParams

public mut prop funcParams:  ArrayList<FuncParam>

功能:获取或设置 LambdaExpr 中的参数列表。

类型:ArrayList<FuncParam>

prop lBrace

public mut prop lBrace: Token

功能:获取或设置 LambdaExpr 中的左大括号。

类型:Token

prop nodes

public mut prop nodes: ArrayList<Node>

功能:获取或设置 LambdaExpr 中的表达式或声明节点。

类型:ArrayList<Node>

prop rBrace

public mut prop rBrace: Token

功能:获取或设置 LambdaExpr 中的右大括号。

类型:Token

init()

public init()

功能:构造一个默认的 LambdaExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 LambdaExpr 对象。

参数:

异常:

class LetPatternExpr

public class LetPatternExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示 let 声明的解构匹配节点。

一个 LetPatternExpr 节点:if (let Some(v) <- x) 中的 let Some(v) <- x

prop backArrow

public mut prop backArrow: Token

功能:获取或设置 LetPatternExpr 节点中 <- 操作符。

类型:Token

prop expr

public mut prop expr: Expr

功能:获取或设置 LetPatternExpr 节点中 <- 操作符之后的表达式。

类型:Expr

prop keyword

public mut prop keyword: Token

功能:获取或设置 LetPatternExpr 节点中 let 关键字。

类型:Token

prop pattern

public mut prop pattern: Pattern

功能:获取或设置 LetPatternExpr 节点中 let 之后的 pattern。

类型:Pattern

init()

public init()

功能:构造一个默认的 LetPatternExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 LetPatternExpr 对象。

参数:

异常:

class LitConstExpr

public class LitConstExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示一个常量表达式节点。

一个 LitConstExpr 表达式:"abc"123 等。

prop literal

public mut prop literal: Token

功能:获取或设置 LitConstExpr 节点中的字面量。

类型:Token

init()

public init()

功能:构造一个默认的 LitConstExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 LitConstExpr 对象。

参数:

异常:

class MacroDecl

public class MacroDecl <: Decl {
    public init()
    public init(inputs: Tokens)
}

功能:表示一个宏定义节点。

一个 MacroDecl 节点:public macro M(input: Tokens): Tokens {...}

prop block

public mut prop block: Block

功能:获取或设置 MacroDecl 节点的函数体。

类型:Block

prop colon

public mut prop colon: Token

功能:获取或设置 MacroDecl 节点的冒号。

类型:Token

prop declType

public mut prop declType: TypeNode

功能:获取或设置 MacroDecl 节点的函数返回类型。

类型:TypeNode

异常:

prop funcParams

public mut prop funcParams: ArrayList<FuncParam>

功能:获取或设置 MacroDecl 节点的参数。

类型:ArrayList<FuncParam>

prop lParen

public mut prop lParen: Token

功能:获取或设置 MacroDecl 节点的左小括号。

类型:Token

prop rParen

public mut prop rParen: Token

功能:获取或设置 MacroDecl 节点的右小括号。

类型:Token

init()

public init()

功能:构造一个默认的 MacroDecl 对象。

init(Tokens)

public init(inputs: Tokens)

功能:构造一个 MacroDecl 对象。

参数:

异常:

class MacroExpandDecl

public class MacroExpandDecl <: Decl {
    public init()
    public init(inputs: Tokens)
}

功能:表示宏调用节点。

一个 MacroExpandDecl 节点: @M class A {}

prop fullIdentifier

public mut prop fullIdentifier: Token

功能:获取或设置宏调用节点的完整标识符。

类型:Token

prop lParen

public mut prop lParen: Token

功能:获取或设置 MacroExpandDecl 属性宏调用的左小括号。

类型:Token

prop lSquare

public mut prop lSquare: Token

功能:获取或设置 MacroExpandDecl 属性宏调用的左中括号。

类型:Token

prop macroAttrs

public mut prop macroAttrs: Tokens

功能:获取或设置 MacroExpandDecl 属性宏调用的输入。

类型:Tokens

prop macroInputDecl

public mut prop macroInputDecl: Decl

功能:获取或设置 MacroExpandDecl 中的声明节点。

类型:Decl

异常:

prop macroInputs

public mut prop macroInputs: Tokens

功能:获取或设置 MacroExpandDecl 宏调用的输入。

类型:Tokens

prop rParen

public mut prop rParen: Token

功能:获取或设置 MacroExpandDecl 宏调用的右小括号。

类型:Token

prop rSquare

public mut prop rSquare: Token

功能:获取或设置 MacroExpandDecl 属性宏调用的右中括号。

类型:Token

init()

public init()

功能:构造一个默认的 MacroExpandDecl 对象。

init(Tokens)

public init(inputs: Tokens)

功能:构造一个 MacroExpandDecl 对象。

参数:

异常:

class MacroExpandExpr

public class MacroExpandExpr <: Expr {
    public init()
    public init(inputs: Tokens)
}

功能:表示宏调用节点。

一个 MacroExpandExpr 节点: @M (a is Int64)

prop at

public mut prop at: Token

功能:获取或设置宏调用节点的关键字 at

类型:Token

prop identifier

public mut prop identifier: Token

功能:获取或设置宏调用节点的标识符。

类型:Token

prop lParen

public mut prop lParen: Token

功能:获取或设置 MacroExpandExpr 属性宏调用的左小括号。

类型:Token

prop lSquare

public mut prop lSquare: Token

功能:获取或设置 MacroExpandExpr 属性宏调用的左中括号。

类型:Token

prop macroAttrs

public mut prop macroAttrs: Tokens

功能:获取或设置 MacroExpandExpr 属性宏调用的输入。

类型:Tokens

prop macroInputs

public mut prop macroInputs: Tokens

功能:获取或设置 MacroExpandExpr 宏调用的输入。

类型:Tokens

prop rParen

public mut prop rParen: Token

功能:获取或设置 MacroExpandExpr 宏调用的右小括号。

类型:Token

prop rSquare

public mut prop rSquare: Token

功能:获取或设置 MacroExpandExpr 属性宏调用的右中括号。

类型:Token

init()

public init()

功能:构造一个默认的 MacroExpandExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 MacroExpandExpr 对象。

参数:

异常:

class MacroExpandParam

public class MacroExpandParam <: FuncParam {
    public init()
}

功能:表示宏调用节点。

一个 MacroExpandDecl 节点: func foo (@M a: Int64) 中的 @M a: Int64

prop fullIdentifier

public mut prop fullIdentifier: Token

功能:获取或设置宏调用节点的完整标识符。

类型:Token

prop lParen

public mut prop lParen: Token

功能:获取或设置 MacroExpandParam 属性宏调用的左小括号。

类型:Token

prop lSquare

public mut prop lSquare: Token

功能:获取或设置 MacroExpandParam 属性宏调用的左中括号。

类型:Token

prop macroAttrs

public mut prop macroAttrs: Tokens

功能:获取或设置 MacroExpandParam 属性宏调用的输入。

类型:Tokens

prop macroInputDecl

public mut prop macroInputDecl: Decl

功能:获取或设置 MacroExpandParam 中的声明节点。

类型:Decl

异常:

prop macroInputs

public mut prop macroInputs: Tokens

功能:获取或设置 MacroExpandParam 宏调用的输入。

类型:Tokens

prop rParen

public mut prop rParen: Token

功能:获取或设置 MacroExpandParam 宏调用的右小括号。

类型:Token

prop rSquare

public mut prop rSquare: Token

功能:获取或设置 MacroExpandParam 属性宏调用的右中括号。

类型:Token

init()

public init()

功能:构造一个默认的 MacroExpandParam 对象。

class MacroMessage

public class MacroMessage

功能:记录内层宏发送的信息。

func getBool(String)

public func getBool(key: String): Bool

功能:获取对应 key 值的 Bool 类型信息。

参数:

  • key: String - 用于检索的关键字的名字。

返回值:

  • Bool - 返回存在 key 值对应的 Bool 类型的信息。

异常:

  • Exception - 当不存在 key 值对应的 Bool 类型的信息时,抛出异常。

func getInt64(String)

public func getInt64(key: String): Int64

功能:获取对应 key 值的 Int64 类型信息。

参数:

  • key: String - 用于检索的关键字的名字。

返回值:

  • Int64 - 返回存在 key 值对应的 Int64 类型的信息。

异常:

  • Exception - 当不存在 key 值对应的 Int64 类型的信息时,抛出异常。

func getString(String)

public func getString(key: String): String

功能:获取对应 key 值的 String 类型信息。

参数:

  • key: String - 用于检索的关键字的名字。

返回值:

  • String - 返回存在 key 值对应的 String 类型的信息。

异常:

  • Exception - 当不存在 key 值对应的 String 类型的信息时,抛出异常。

func hasItem(String)

public func hasItem(key: String): Bool

功能:检查是否有 key 值对应的相关信息。

参数:

  • key: String - 用于检索的关键字名字。

返回值:

  • Bool - 若存在 key 值对应的相关信息,返回 true;反之,返回 false。

class MainDecl

public class MainDecl <: Decl {
    public init()
    public init(inputs: Tokens)
}

功能:表示一个 main 函数定义节点。

一个 MainDecl 节点:main() {}

prop block

public mut prop block: Block

功能:获取或设置 MainDecl 节点的函数体。

类型:Block

prop colon

public mut prop colon: Token

功能:获取或设置 MainDecl 节点的冒号。

类型:Token

prop declType

public mut prop declType: TypeNode

功能:获取或设置 MainDecl 节点的函数返回类型。

类型:TypeNode

异常:

prop funcParams

public mut prop funcParams: ArrayList<FuncParam>

功能:获取或设置 MainDecl 节点的函数参数。

类型:ArrayList<FuncParam>

prop lParen

public mut prop lParen: Token

功能:获取或设置 MainDecl 节点的左括号。

类型:Token

prop rParen

public mut prop rParen: Token

功能:获取或设置 MainDecl 节点的右括号。

类型:Token

init()

public init()

功能:构造一个默认的 MainDecl 对象。

init(Tokens)

public init(inputs: Tokens)

功能:构造一个 MainDecl 对象。

参数:

异常:

class MatchCase

public class MatchCase <: Node {
    public init()
}

功能:表示一个 MatchCase 类型。

一个 MatchCase 节点:case failScore where score > 0 => 0

说明:

  • MatchCase 以关键字 case 开头,后跟 Expr 或者一个或多个由 | 分隔的相同种类的 pattern,一个可选的 patternguard,一个 => 和一系列声明或表达式。
  • 该节点与 MatchExpr 存在强绑定关系。

prop arrow

public mut prop arrow: Token

功能:获取或设置 MatchCase 中的 => 操作符的词法单元。

类型:Token

prop block

public mut prop block: Block

功能:获取或设置 MatchCase 中的一系列声明或表达式节点。

类型:Block

prop expr

public mut prop expr: Expr

功能:获取或设置 MatchCase 中位于 case 后的表达式节点。

类型:Expr

异常:

prop keywordC

public mut prop keywordC: Token

功能:获取或设置 MatchCase 内的 case 关键字的词法单元。

类型:Token

prop keywordW

public mut prop keywordW: Token

功能:获取或设置 MatchCase 中可选的关键字 where 的词法单元,可能为 ILLEGAL 的词法单元。

类型:Token

prop patternGuard

public mut prop patternGuard: Expr

功能:获取或设置 MatchCase 中可选的 pattern guard 表达式节点。

类型:Expr

异常:

prop patterns

public mut prop patterns: ArrayList<Pattern>

功能:获取或设置 MatchCase 中位于 case 后的 pattern 列表。

类型:ArrayList<Pattern>

init()

public init()

功能:构造一个默认的 MatchCase 对象。

class MatchExpr

public class MatchExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示模式匹配表达式实现模式匹配。

模式匹配表达式分为带 selector 的 match 表达式和不带 selector 的 match 表达式。

prop keyword

public mut prop keyword: Token

功能:获取或设置 MatchExpr 节点中 match 关键字。

类型:Token

prop lBrace

public mut prop lBrace: Token

功能:获取或设置 MatchExpr 之后的左大括号。

类型:Token

prop lParen

public mut prop lParen: Token

功能:获取或设置 MatchExpr 之后的左括号。

类型:Token

prop matchCases

public mut prop matchCases: ArrayList<MatchCase>

功能:获取或设置 MatchExpr 内的 matchCase, matchCase 以关键字 case 开头,后跟一个或者多个由 PatternExpr节点,具体见 MatchCase

类型:ArrayList<MatchCase>

prop rBrace

public mut prop rBrace: Token

功能:获取或设置 MatchExpr 之后的右大括号。

类型:Token

prop rParen

public mut prop rParen: Token

功能:获取或设置 MatchExpr 之后的右括号。

类型:Token

prop selector

public mut prop selector: Expr

功能:获取或设置关键字 match 之后的 Expr

类型:Expr

异常:

  • ASTException - 当该表达式是一个不带 selector 的 match 表达式时,抛出异常。

init()

public init()

功能:构造一个默认的 MatchExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 MatchExpr 对象。

参数:

异常:

class MemberAccess

public class MemberAccess <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示成员访问表达式。

可以用于访问 class、interface、struct 等类型的成员。一个 MemberAccess 节点的形式为 T.aT 为成员访问表达式的主体,a 表示成员的名字。

prop baseExpr

public mut prop baseExpr: Expr

功能:获取或设置 MemberAccess 节点的成员访问表达式主体。

类型:Expr

prop dot

public mut prop dot: Token

功能:获取或设置 MemberAccess 节点中的 .

类型:Token

prop field

public mut prop field: Token

功能:获取或设置 MemberAccess 节点成员的名字。

类型:Token

prop lAngle

public mut prop lAngle: Token

功能:获取或设置 MemberAccess 节点中的左尖括号。

类型:Token

prop rAngle

public mut prop rAngle: Token

功能:获取或设置 MemberAccess 节点中的右尖括号。

类型:Token

prop typeArguments

public mut prop typeArguments: ArrayList<TypeNode>

功能:获取或设置 MemberAccess 节点中的实例化类型。

类型:ArrayList<TypeNode>

init()

public init()

功能:构造一个默认的 MemberAccess 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 MemberAccess 对象。

参数:

异常:

class Modifier

public class Modifier <: Node {
    public init()
    public init(keyword: Token)
}

功能:表示该定义具备某些特性,通常放在定义处的最前端。

一个 Modifier 节点:public func foo() 中的 public

prop keyword(Token)

public mut prop keyword: Token

功能:获取或设置 Modifier 节点中的修饰符词法单元。

类型:Token

init()

public init()

功能:构造一个默认的 Modifier 对象。

init(Token)

public init(keyword: Token)

功能:构造一个 Modifier 对象。

参数:

  • keyword: Token - 将要构造 Modifier 类型的词法单元。

class Node

sealed abstract class Node <: ToTokens

功能:所有仓颉语法树节点的父类。

该类提供了所有数据类型通用的操作接口。

prop beginPos

public mut prop beginPos: Position

功能:获取或设置当前节点的起始的位置信息。

类型:Position

prop endPos

public mut prop endPos: Position

功能:获取或设置当前节点的终止的位置信息。

类型:Position

func dump()

public func dump(): Unit

功能:将当前语法树节点转为为树形结构的形态并进行打印。

语法树节点的树形结构将按照以下形式进行输出:

  • - 字符串:表示当前节点的公共属性, 如 -keyword , -identifier
  • 节点属性后紧跟该节点的具体类型, 如 -declType: PrimitiveType 表示节点类型是一个 PrimitiveType 节点。
  • 每个类型使用大括号表示类型的作用区间。

语法树输出的详细格式请参考示例代码中语法树节点打印的内容。

func toTokens()

public func toTokens(): Tokens

功能:将语法树节点转化为 Tokens 类型。

返回值:

func traverse(Visitor)

public func traverse(v: Visitor): Unit

功能:遍历当前语法树节点及其子节点。若提前终止遍历子节点的行为,可重写 visit 函数并调用 breakTraverse 函数提前终止遍历行为,详细见 示例代码中 自定义访问函数遍历 AST 对象示例 的内容。

参数:

class OptionalExpr

public class OptionalExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示一个带有问号操作符的表达式节点。

一个 OptionalExpr 节点:a?.b, a?(b), a?[b] 中的 a?

prop baseExpr

public mut prop baseExpr: Expr

功能:获取或设置 OptionalExpr 的表达式节点。

类型:Expr

prop quest

public mut prop quest: Token

功能:获取或设置 OptionalExpr 中的问号操作符。

类型:Token

init()

public init()

功能:构造一个默认的 OptionalExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 OptionalExpr 对象。

参数:

异常:

class PackageHeader

public class PackageHeader <: Node {
    public init()
    public init(input: Tokens)
}

功能:表示包声明节点。

一个 PackageHeader 节点: package define 或者 macro package define

说明:

包声明以关键字 packagemacro package 开头,后面紧跟包名,且包声明必须在源文件的首行。

prop accessible

public mut prop accessible: Token

功能:获取或设置 PackageHeader 节点中的访问性修饰符的词法单元,可能为 ILLEGAL 的词法单元。

类型:Token

prop keywordM

public mut prop keywordM: Token

功能:获取或设置 PackageHeader 节点中的 macro 关键字的词法单元(M 为关键字首字母,下同),可能为 ILLEGAL 的词法单元。

类型:Token

prop keywordP

public mut prop keywordP: Token

功能:获取或设置 PackageHeader 节点中的 package 关键字的词法单元。

类型:Token

prop prefixPaths

public mut prop prefixPaths: Tokens

功能:获取或设置 PackageHeader 节点中完整包名的前缀部分的词法单元序列,可能为空。如 package a.b.c 中的 ab

类型:Tokens

prop prefixDots

public mut prop prefixDots: Tokens

功能:获取或设置 PackageHeader 节点中完整包名中用于分隔每层子包的词法单元序列,可能为空。如 package a.b.c 中的两个 .

类型:Tokens

prop packageIdentifier

public mut prop packageIdentifier: Token

功能:获取或设置 PackageHeader 节点中当前包的名字,如果当前包为 root 包,即为完整包名,若当前包为子包,则为最后一个 . 后的名字。

类型:Token

init()

public init()

功能:构造一个默认的 PackageHeader 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 PackageHeader 对象。

参数:

异常:

class ParenExpr

public class ParenExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示一个括号表达式节点,是指使用圆括号括起来的表达式。

一个 ParenExpr 节点:(1 + 2)

prop lParen

public mut prop lParen: Token

功能:获取或设置 ParenExpr 节点中的左括号。

类型:Token

prop parenthesizedExpr

public mut prop parenthesizedExpr: Expr

功能:获取或设置 ParenExpr 节点中由圆括号括起来的子表达式。

类型:Expr

prop rParen

public mut prop rParen: Token

功能:获取或设置 ParenExpr 节点中的右括号。

类型:Token

init()

public init()

功能:构造一个默认的 ParenExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 ParenExpr 对象。

参数:

异常:

class ParenType

public class ParenType <: TypeNode {
    public init()
    public init(input: Tokens)
}

功能:表示括号类型节点。

例如 var a: (Int64) 中的 (Int64)

prop lParen

public mut prop lParen: Token

功能:获取或设置 ParenType 节点中的左括号词法单元。

类型:Token

prop parenthesizedType

public mut prop parenthesizedType: TypeNode

功能:获取或设置 ParenType 节点中括起来的类型,如 (Int64) 中的 Int64

类型:TypeNode

prop rParen

public mut prop rParen: Token

功能:获取或设置 ParenType 节点中的右括号词法单元。

类型:Token

init()

public init()

功能:构造一个默认的 ParenType 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 ParenType 对象。

参数:

异常:

class Pattern

public open class Pattern <: Node

功能:所有模式匹配节点的父类,继承自 Node 节点。

class PrefixType

public class PrefixType <: TypeNode {
    public init()
    public init(input: Tokens)
}

功能:表示带问号的前缀类型节点。

例如 var a : ?A 中的 ?A

prop baseType

public mut prop baseType: TypeNode

功能:获取或设置 PrefixType 节点中的类型节点,如 var a: ?A 中的 A

类型:TypeNode

prop prefixOps

public mut prop prefixOps: Tokens

功能:获取或设置 PrefixType 节点中前缀操作符集合。

类型:Tokens

init()

public init()

功能:构造一个默认的 PrefixType 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 PrefixType 对象。

参数:

异常:

class PrimaryCtorDecl

public class PrimaryCtorDecl <: Decl {
    public init()
    public init(inputs: Tokens)
}

功能:表示一个主构造函数节点。

主构造函数节点由修饰符,主构造函数名,形参列表和主构造函数体构成。

prop block

public mut prop block: Block

功能:获取或设置 PrimaryCtorDecl 节点的主构造函数体。

类型:Block

prop funcParams

public mut prop funcParams: ArrayList<FuncParam>

功能:获取或设置 PrimaryCtorDecl 节点的参数。

类型:ArrayList<FuncParam>

prop lParen

public mut prop lParen: Token

功能:获取或设置 PrimaryCtorDecl 节点的左括号。

类型:Token

prop rParen

public mut prop rParen: Token

功能:获取或设置 PrimaryCtorDecl 节点的右括号。

类型:Token

init()

public init()

功能:构造一个默认的 PrimaryCtorDecl 对象。

init(Tokens)

public init(inputs: Tokens)

功能:构造一个 PrimaryCtorDecl 对象。

参数:

异常:

func isConst()

public func isConst(): Bool

功能:判断是否是一个 Const 类型的节点。

返回值:

  • Bool - 当前节点为 Const 类型的节点时,返回 true;反之,返回 false。

class PrimitiveType

public class PrimitiveType <: TypeNode {
    public init()
    public init(input: Tokens)
}

功能:表示一个基本类型节点。

例如数值类型,Rune 类型,布尔类型等。

prop keyword

public mut prop keyword: Token

功能:获取或设置构造 PrimitiveType 类型的关键字,如 Int8

类型:Token

init()

public init()

功能:构造一个默认的 PrimitiveType 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 PrimitiveType 对象。

参数:

异常:

class PrimitiveTypeExpr

public class PrimitiveTypeExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示基本类型表达式节点。

PrimitiveTypeExpr 节点:编译器内置的基本类型作为表达式出现在节点中。如 Int64.toSting() 中的 Int64

prop keyword

public mut prop keyword: Token

功能:获取或设置 PrimitiveTypeExpr 中的基本类型关键字。

类型:Token

init()

public init()

功能:构造一个默认的 PrimitiveTypeExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 PrimitiveTypeExpr 对象。

参数:

异常:

class Program

public class Program <: Node {
    public init()
    public init(input: Tokens)
}

功能:表示一个仓颉源码文件节点。

一个仓颉源码文件节点主要包括包定义节点,包导入节点和 TopLevel 作用域内的所有声明节点。

说明:

任何一个仓颉源码文件都可以被解析为一个 Program 类型。

prop decls

public mut prop decls: ArrayList<Decl>

功能:获取或设置仓颉源码文件中 TopLevel 作用域内定义的声明节点列表。

类型:ArrayList<Decl>

prop importLists

public mut prop importLists: ArrayList<ImportList>

功能:获取或设置仓颉源码文件中包导入节点 ImportList 的列表。

类型:ArrayList<ImportList>

prop packageHeader

public mut prop packageHeader: PackageHeader

功能:获取或设置仓颉源码文件中包的声明节点 PackageHeader

类型:PackageHeader

init()

public init()

功能:构造一个默认的 Program 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 Program 对象。

参数:

异常:

  • ASTException - 当输入的 Tokens 类型无法构造为一个文件节点时,抛出异常。

class PropDecl

public class PropDecl <: Decl {
    public init()
    public init(inputs: Tokens)
}

功能:表示一个属性定义节点。

一个 PropDecl 节点:prop var X: Int64 { get() { 0 } }

prop colon

public mut prop colon: Token

功能:获取或设置 PropDecl 节点的冒号。

类型:Token

prop declType

public mut prop declType : TypeNode

功能:获取或设置 PropDecl 节点的返回类型。

类型:TypeNode

prop getter

public mut prop getter: FuncDecl

功能:获取或设置 PropDecl 节点的 getter 函数。

类型:FuncDecl

异常:

-ASTException:当 PropDecl 节点不存在 getter 函数时,抛出异常。

prop lBrace

public mut prop lBrace: Token

功能:获取或设置 PropDecl 节点的左大括号。

类型:Token

prop rBrace

public mut prop rBrace: Token

功能:获取或设置 PropDecl 节点的右大括号。

类型:Token

prop setter

public mut prop setter: FuncDecl

功能:获取或设置 PropDecl 节点的 setter 函数。

类型:FuncDecl

异常:

-ASTException:当 PropDecl 节点不存在 setter 函数时,抛出异常。

init()

public init()

功能:构造一个默认的 PropDecl 对象。

init(Tokens)

public init(inputs: Tokens)

功能:构造一个 PropDecl 对象。

参数:

异常:

class QualifiedType

public class QualifiedType <: TypeNode {
    public init()
    public init(input: Tokens)
}

功能:表示一个用户自定义成员类型。

例如 var a : T.a 中的 T.a, 其中 T 是包名,a 是从 T 包中导入的类型。

prop baseType

public mut prop baseType: Expr

功能:获取或设置 QualifiedType 节点的成员访问类型主体,如 var a : T.a 中的 T

类型:Expr

prop dot

public mut prop dot: Token

功能:获取或设置 QualifiedType 节点中的 .

类型:Token

prop identifier

public mut prop identifier: Token

功能:获取或设置 QualifiedType 节点成员的标识符,如 var a : T.a 中的 a

类型:Token

prop lAngle

public mut prop lAngle: Token

功能:获取或设置 QualifiedType 节点中的左尖括号词法单元,可能为 ILLEGAL 的词法单元。

类型:Token

prop rAngle

public mut prop rAngle: Token

功能:获取或设置 QualifiedType 节点中的右尖括号词法单元,可能为 ILLEGAL 的词法单元。

类型:Token

prop typeArguments

public mut prop typeArguments: ArrayList<TypeNode>

功能:获取或设置 QualifiedType 节点中的实例化类型的列表,如 T.a<Int32> 中的 Int32,列表可能为空。

类型:ArrayList<TypeNode>

init()

public init()

功能:构造一个默认的 QualifiedType 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 QualifiedType 对象。

参数:

异常:

class QuoteExpr

public class QuoteExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示 quote 表达式节点。

一个 QuoteExpr 节点: quote(var ident = 0)

prop exprs

public mut prop exprs: ArrayList<Expr>

功能:获取或设置 QuoteExpr 中由 () 括起的内部引用表达式节点。

类型:ArrayList<Expr>

prop keyword

public mut prop keyword: Token

功能:获取或设置 QuoteExpr 的通配符关键字。

类型:Token

prop lParen

public mut prop lParen: Token

功能:获取或设置 QuoteExpr 中的左括号。

类型:Token

prop rParen

public mut prop rParen: Token

功能:获取或设置 QuoteExpr 中的右括号。

类型:Token

init()

public init()

功能:构造一个默认的 QuoteExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 QuoteExpr 对象。

参数:

异常:

class QuoteToken

public class QuoteToken <: Expr

功能:表示 quote 表达式节点内任意合法的 token

prop tokens

public mut prop tokens: Tokens

功能:获取 QuoteToken 内的 Tokens

类型:Tokens

class RangeExpr

public class RangeExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示包含区间操作符的表达式。

RangeExpr 节点:存在两种 Range 操作符:....=,分别用于创建左闭右开和左闭右闭的 Range 实例。它们的使用方式分别为 start..end:stepstart..=end:step

prop colon

public mut prop colon: Token

功能:获取或设置 RangeExpr 中的 : 操作符。

类型:Token

prop end

public mut prop end: Expr

功能:获取或设置 RangeExpr 中的终止值。

类型:Expr

异常:

  • ASTException - 终止表达式省略。只有在 Range<Int64> 类型的实例用在下标操作符 [] 为空的场景。

prop op

public mut prop op: Token

功能:获取或设置 RangeExpr 中的 Range 的操作符。

类型:Token

prop start

public mut prop start: Expr

功能:获取或设置 RangeExpr 中的起始值。

类型:Expr

异常:

  • ASTException - 起始表达式省略。只有在 Range<Int64> 类型的实例用在下标操作符 [] 为空的场景。

prop step

public mut prop step: Expr

功能:获取或设置 RangeExpr 中序列中前后两个元素之间的差值。

类型:Expr

异常:

init()

public init()

功能:构造一个默认的 RangeExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 RangeExpr 对象。

参数:

异常:

class RefExpr

public class RefExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示一个使用自定义类型节点相关的表达式节点。

一个 RefExpr 节点:var ref = refNode + 1 中的 refNode 是一个 RefExpr

prop identifier

public mut prop identifier: Token

功能:获取或设置 RefExpr 节点中的自定义类型的标识符。

类型:Token

prop lAngle

public mut prop lAngle: Token

功能:获取或设置 RefExpr 节点中的左尖括号。

类型:Token

prop rAngle

public mut prop rAngle: Token

功能:获取或设置 RefExpr 节点中的右尖括号。

类型:Token

prop typeArguments

public mut prop typeArguments: ArrayList<TypeNode>

功能:获取或设置 RefExpr 节点中的实例化类型。

类型:ArrayList<TypeNode>

init()

public init()

功能:构造一个默认的 RefExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 RefExpr 对象。

参数:

异常:

class RefType

public class RefType <: TypeNode {
    public init()
    public init(input: Tokens)
}

功能:表示一个用户自定义类型节点。

例如 var a : A = A() 中的 A

prop identifier

public mut prop identifier: Token

功能:获取或设置构造 RefType 类型的关键字,如 var a : A = A() 中的 A

类型:Token

prop lAngle

public mut prop lAngle: Token

功能:获取或设置 RefType 节点中的左尖括号词法单元,可能为 ILLEGAL 的词法单元。

类型:Token

prop rAngle

public mut prop rAngle: Token

功能:获取或设置 RefType 节点中的右尖括号词法单元,可能为 ILLEGAL 的词法单元。

类型:Token

prop typeArguments

public mut prop typeArguments: ArrayList<TypeNode>

功能:获取或设置 RefType 节点中的实例化类型的列表,可能为空,如 var a : Array<Int32> 中的 Int32

类型:ArrayList<TypeNode>

init()

public init()

功能:构造一个默认的 RefType 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 RefType 对象。

参数:

异常:

class ReturnExpr

public class ReturnExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示 return 表达式节点。

一个 ReturnExpr 节点:return 1

prop expr

public mut prop expr: Expr

功能:获取或设置 ReturnExpr 节点中的表达式节点。

类型:Expr

异常:

prop keyword

public mut prop keyword: Token

功能:获取或设置 ReturnExpr 节点中的关键字。

类型:Token

init()

public init()

功能:构造一个默认的 ReturnExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 ReturnExpr 对象。

参数:

异常:

class SpawnExpr

public class SpawnExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示 Spawn 表达式。

一个 SpawnExpr 节点由 spawn 关键字和一个不包含形参的闭包组成,例如:spawn { add(1, 2) }

prop keyword

public mut prop keyword: Token

功能:获取或设置 SpawnExpr 中的 spawn 关键字。

类型:Token

prop lParen

public mut prop lParen: Token

功能:获取或设置 SpawnExpr 中的左括号。

类型:Token

prop lambdaExpr

public mut prop lambdaExpr: LambdaExpr

功能:获取或设置 SpawnExpr 中的不含形参的闭包。

类型:LambdaExpr

prop rParen

public mut prop rParen: Token

功能:获取或设置 SpawnExpr 中的右括号。

类型:Token

prop threadContext

public mut prop threadContext: Expr

功能:获取或设置 SpawnExpr 中的线程上下文环境表达式。

类型:Expr

异常:

init()

public init()

功能:构造一个默认的 SpawnExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 SpawnExpr 对象。

参数:

异常:

class StructDecl

public class StructDecl <: Decl {
    public init()
    public init(inputs: Tokens)
}

功能:表示一个 Struct 节点。

Struct 的定义使用 struct 关键字,定义依次为:可缺省的修饰符、struct 关键字、struct 名、可选的类型参数、是否指定父接口、可选的泛型约束、struct 体的定义。

prop body

public mut prop body: Body

功能:获取或设置 StructDecl 节点的类体。

类型:Body

prop superTypes

public mut prop superTypes: ArrayList<TypeNode>

功能:获取或设置 StructDecl 节点的父接口。

类型:ArrayList<TypeNode>

prop upperBound

public mut prop upperBound: Token

功能:获取或设置 <: 操作符。

类型:Token

init()

public init()

功能:构造一个默认的 StructDecl 对象。

init(Tokens)

public init(inputs: Tokens)

功能:构造一个 StructDecl 对象。

参数:

异常:

class SubscriptExpr

public class SubscriptExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示索引访问表达式。

SubscriptExpr 节点:用于那些支持索引访问的类型(包括 Array 类型和 Tuple 类型)通过下标来访问其具体位置的元素,如 arr[0]

prop baseExpr

public mut prop baseExpr: Expr

功能:获取或设置 SubscriptExpr 中的表达式。

类型:Expr

prop indexList

public mut prop indexList: ArrayList<Expr>

功能:获取或设置 SubscriptExpr 中的索引表达式序列。

类型:ArrayList<Expr>

prop lSquare

public mut prop lSquare: Token

功能:获取或设置 SubscriptExpr 中的左中括号。

类型:Token

prop rSquare

public mut prop rSquare: Token

功能:获取或设置 SubscriptExpr 中的右中括号。

类型:Token

init()

public init()

功能:构造一个默认的 SubscriptExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 SubscriptExpr 对象。

参数:

异常:

class SynchronizedExpr

public class SynchronizedExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示 synchronized 表达式。

一个 SynchronizedExpr 节点由 synchronized 关键字和 StructuredMutex 对以及后面的代码块组成, 例如 synchronized(m) { foo() }

prop block

public mut prop block: Block

功能:获取或设置 SynchronizedExpr 修饰的代码块。

类型:Block

prop keyword

public mut prop keyword: Token

功能:获取或设置 SynchronizedExpr 中的 synchronized 关键字。

类型:Token

prop lParen

public mut prop lParen: Token

功能:获取或设置 SynchronizedExpr 中的左括号。

类型:Token

prop rParen

public mut prop rParen: Token

功能:获取或设置 SynchronizedExpr 中的右括号。

类型:Token

prop structuredMutex

public mut prop structuredMutex: Expr

功能:获取或设置 SynchronizedExpr 中的 StructuredMutex 的对象。

类型:Expr

init()

public init()

功能:构造一个默认的 SynchronizedExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 SynchronizedExpr 对象。

参数:

异常:

class ThisType

public class ThisType <: TypeNode {
    public init()
    public init(input: Tokens)
}

功能:表示 This 类型节点。

prop keyword

public mut prop keyword: Token

功能:获取或设置 ThisType 节点关键字 This 的词法单元。

类型:Token

init()

public init()

功能:构造一个默认的 ThisType 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 ThisType 对象。

参数:

异常:

class ThrowExpr

public class ThrowExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示 throw 表达式节点。

一个 ThrowExpr 节点:throw Exception()

prop expr

public mut prop expr: Expr

功能:获取或设置 ThrowExpr 节点中的表达式节点。

类型:Expr

prop keyword

public mut prop keyword: Token

功能:获取或设置 ThrowExpr 节点中的关键字。

类型:Token

init()

public init()

功能:构造一个默认的 ThrowExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 ThrowExpr 对象。

参数:

异常:

class Tokens

public open class Tokens <: ToString & Iterable<Token> {
    public init()
    public init(tokArray: Array<Token>)
    public init(tokArrayList: ArrayList<Token>)
}

功能:对 Token 序列进行封装的类型。

prop size

public prop size: Int64

功能:获取 Tokens 对象中 Token 类型的数量。

类型:Int64

init()

public init()

功能:构造一个默认的 Tokens 对象。

init(Array<Token>)

public init(tokArray: Array<Token>)

功能:构造一个 Tokens 对象。

参数:

init(ArrayList<Token>)

public init(tokArrayList: ArrayList<Token>)

功能:构造一个 Tokens 对象。

参数:

func append(Node)

public func append(node: Node): Tokens

功能:将当前的 Tokens 与传入节点所转换得到的 Tokens 进行拼接。

参数:

  • node: Node - 待拼接的 Node 对象。

返回值:

func append(Token)

public func append(token: Token): Tokens

功能:将当前的 Tokens 与传入的 Token 进行拼接。

参数:

返回值:

func append(Tokens)

public func append(tokens: Tokens): Tokens

功能:在当前的 Tokens 后追加传入的 Tokens 进行拼接(该接口性能较其他拼接函数表现更好)。

参数:

返回值:

func concat(Tokens)

public func concat(tokens: Tokens): Tokens

功能:将当前的 Tokens 与传入的 Tokens 进行拼接。

参数:

返回值:

func dump()

public func dump(): Unit

功能:将 Tokens 内所有 Token 的信息打印出来。

func get(Int64)

public open func get(index: Int64): Token

功能:通过索引值获取 Token 元素。

参数:

  • index: Int64 - 待索引的数值。

返回值:

func iterator()

public func iterator(): TokensIterator

功能:获取 Tokens 对象中的一个迭代器对象。

返回值:

func remove(Int64)

public func remove(index: Int64): Tokens

功能:删除指定位置的 Token 对象。

参数:

返回值:

func toString()

public func toString(): String

功能:将 Tokens 转化为 String 类型。

operator func +(Token)

public operator func +(token: Token): Tokens

功能:使用当前 Token 与另一个 Token 相加以获取新的 Tokens

参数:

  • token: Token - 待操作的另一个 Token 对象。

返回值:

operator func +(Tokens)

public operator func +(tokens: Tokens): Tokens

功能:使用当前 TokenTokens 相加以获取新的 Tokens 类型。

参数:

返回值:

operator func [](Int64)

public operator func [](index: Int64): Token

功能:操作符重载,通过索引值获取对应 Token

参数:

  • index: Int64 - 待索引的数值。

返回值:

operator func [](Range<Int64>)

public operator func [](range: Range<Int64>): Tokens

功能:操作符重载,通过 range 获取对应 Tokens 切片。

参数:

  • range: Range<Int64> - 待索引的切片范围。

返回值:

异常:

class TokensIterator

public class TokensIterator <: Iterator<Token> {
    public init(tokens: Tokens)
}

功能:实现 Tokens 的迭代器功能。

init(Tokens)

public init(tokens: Tokens)

功能:构造一个 TokensIterator 对象。

参数:

func iterator()

public func iterator(): Iterator<Token>

功能:获取当前迭代器实例。

返回值:

func next()

public func next(): Option<Token>

功能:获取迭代器中的下一个值。

返回值:

func peek()

public func peek(): Option<Token>

功能:获取迭代器中的当前值。

返回值:

func seeing(TokenKind)

public func seeing(kind: TokenKind): Bool

功能:判断当前节点的 Token 类型是否是传入的类型。

参数:

返回值:

  • Bool - 如果当前节点的 TokenKind 与传入类型相同,返回 true,否则返回 false。

class TrailingClosureExpr

public class TrailingClosureExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示尾随 Lambda 节点。

一个 TrailingClosureExpr 节点将 lambda 表达式放在函数调用的尾部,括号外面,如 f(a){ i => i * i }

prop expr

public mut prop expr: Expr

功能:获取或设置 TrailingClosureExpr 中的表达式。

类型:Expr

prop lambdaExpr

public mut prop lambdaExpr: LambdaExpr

功能:获取或设置 TrailingClosureExpr 中的尾随 lambda。

类型:LambdaExpr

init()

public init()

功能:构造一个默认的 TrailingClosureExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 TrailingClosureExpr 对象。

参数:

异常:

class TryExpr

public class TryExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示 try 表达式节点。

try 表达式包括三个部分:try 块,catch 块和 finally 块。

prop catchBlocks

public mut prop catchBlocks: ArrayList<Block>

功能:获取或设置 TryExpr 中的 Catch 块。

类型:ArrayList<Block>

prop catchPatterns

public mut prop catchPatterns: ArrayList<Pattern>

功能:获取或设置 TryExpr 中通过模式匹配的方式匹配待捕获的异常序列。

类型:ArrayList<Pattern>

prop finallyBlock

public mut prop finallyBlock: Block

功能:获取或设置 TryExpr 中的关键字 Finally 块。

类型:Block

异常:

prop keywordF

public mut prop keywordF: Token

功能:获取或设置 TryExpr 中的 finally 关键字。

类型:Token

prop keywordT

public mut prop keywordT: Token

功能:获取或设置 TryExpr 中的 try 关键字。

类型:Token

prop keywordsC

public mut prop keywordsC: Tokens

功能:获取或设置 TryExpr 中的关键字 catch

类型:Tokens

prop resourceSpec

public mut prop resourceSpec: ArrayList<VarDecl>

功能:获取或设置 TryExpr 中 Try-with-resources 类型表达式的实例化对象序列。

类型:ArrayList<VarDecl>

prop tryBlock

public mut prop tryBlock: Block

功能:获取或设置 TryExpr 中由表达式与声明组成的块。

类型:Block

init()

public init()

功能:构造一个默认的 TryExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 TryExpr 对象。

参数:

异常:

class TupleLiteral

public class TupleLiteral <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示元组字面量节点。

TupleLiteral 节点:使用格式 (expr1, expr2, ... , exprN) 表示,每个 expr 是一个表达式。

prop elements

public mut prop elements: ArrayList<Expr>

功能:获取或设置 TupleLiteral 中的表达式列表。

类型:ArrayList<Expr>

prop lParen

public mut prop lParen: Token

功能:获取或设置 TupleLiteral 中的左括号。

类型:Token

prop rParen

public mut prop rParen: Token

功能:获取或设置 TupleLiteral 中的右括号。

类型:Token

init()

public init()

功能:构造一个默认的 TupleLiteral 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 TupleLiteral 对象。

参数:

异常:

class TuplePattern

public class TuplePattern <: Pattern {
    public init()
    public init(input: Tokens)
}

功能:表示 Tuple 模式节点。

用于 tuple 值的匹配,如 case ("Bob", age) => 1 中的 ("Bob", age)

prop lParen

public mut prop lParen: Token

功能:获取或设置 TuplePattern 节点中的左括号的词法单元。

类型:Token

prop patterns

public mut prop patterns: ArrayList<Pattern>

功能:获取或设置 TuplePattern 节点中的一组 Pattern 节点。

类型:ArrayList<Pattern>

prop rParen

public mut prop rParen: Token

功能:获取或设置 TuplePattern 节点中的右括号的词法单元。

类型:Token

init()

public init()

功能:构造一个默认的 TuplePattern 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 TuplePattern 对象。

参数:

异常:

class TupleType

public class TupleType <: TypeNode {
    public init()
    public init(input: Tokens)
}

功能:表示元组类型节点。

例如 var a : (Int64, Int32) 中的 (Int64, Int32)

prop lParen

public mut prop lParen: Token

功能:获取或设置 TupleType 节点中的左括号词法单元。

类型:Token

prop rParen

public mut prop rParen: Token

功能:获取或设置 TupleType 节点中的右括号词法单元。

类型:Token

prop types

public mut prop types: ArrayList<TypeNode>

功能:获取或设置 TupleType 节点中的类型节点列表。

类型:ArrayList<TypeNode>

init()

public init()

功能:构造一个默认的 TupleType 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 TupleType 对象。

参数:

异常:

class TypeAliasDecl

public class TypeAliasDecl <: Decl {
    public init()
    public init(inputs: Tokens)
}

功能:表示类型别名节点。

一个 TypeAliasDecl 节点: type Point2D = Float64

说明:

该节点中 type 作为关键字,紧跟任意的合法标识符,其后的 type 是任意的 top-level 可见的类型,标识符和 type 之间使用 = 进行连接。

prop aliasType

public mut prop aliasType: TypeNode

功能:获取或设置将要别名的类型。

类型:TypeNode

prop assign

public mut prop assign: Token

功能:获取或设置标识符和 type 之间的 =

类型:Token

init()

public init()

功能:构造一个默认的 TypeAliasDecl 对象。

init(Tokens)

public init(inputs: Tokens)

功能:构造一个 TypeAliasDecl 对象。

参数:

异常:

class TypeConvExpr

public class TypeConvExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示类型转换表达式。

用于实现若干数值类型间的转换。一个 TypeConvExpr 节点:Int8(32)

prop expr

public mut prop expr: Expr

功能:获取或设置 TypeConvExpr 中进行类型转化的原始表达式。

类型:Expr

prop lParen

public mut prop lParen: Token

功能:获取或设置 TypeConvExpr 中的左括号。

类型:Token

prop rParen

public mut prop rParen: Token

功能:获取或设置 TypeConvExpr 中的右括号。

类型:Token

prop targetType

public mut prop targetType: PrimitiveType

功能:获取或设置 TypeConvExpr 中将要转换到的目标类型。

类型:PrimitiveType

init()

public init()

功能:构造一个默认的 TypeConvExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 TypeConvExpr 对象。

参数:

异常:

class TypeNode

public open class TypeNode <: Node

功能:所有类型节点的父类,继承自 Node

prop typeParameterName

public mut prop typeParameterName: Token

功能:获取或设置类型节点的参数,如:(p1:Int64, p2:Int64) 中的 p1p2,可能为 ILLEGAL 的词法单元。

类型:Token

class TypePattern

public class TypePattern <: Pattern {
    public init()
    public init(input: Tokens)
}

功能:表示类型模式节点。

用于判断一个值的运行时类型是否是某个类型的子类型,如 case b: Base => 0 中的 b: Base

prop colon

public mut prop colon: Token

功能:获取或设置 TypePattern 节点中的 : 操作符的词法单元节点。

类型:Token

prop pattern

public mut prop pattern: Pattern

功能:获取或设置 TypePattern 节点中的模式节点。

类型:Pattern

prop patternType

public mut prop patternType: TypeNode

功能:获取或设置 TypePattern 节点中的待匹配的模式类型节点。

类型:TypeNode

init()

public init()

功能:构造一个默认的 TypePattern 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 TypePattern 对象。

参数:

异常:

class UnaryExpr

public class UnaryExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示一个一元操作表达式节点。

prop expr

public mut prop expr: Expr

功能:获取或设置 UnaryExpr 节点中的操作数。

类型:Expr

prop op

public mut prop op: Token

功能:获取或设置 UnaryExpr 节点中的一元操作符。

类型:Token

init()

public init()

功能:构造一个默认的 UnaryExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 UnaryExpr 对象。

参数:

异常:

class VArrayExpr

public class VArrayExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示 VArray 的实例节点。

一个 VArrayExpr 节点:let arr: VArray<Int64, $5> = VArray<Int64, $5> { i => i} 中的 VArray<Int64, $5> { i => i}

prop arguments

public mut prop arguments: ArrayList<Argument>

功能:获取或设置 VArrayExpr 中的中的初始化参数序列。

类型:ArrayList<Argument>

prop lParen

public mut prop lParen: Token

功能:获取或设置 VArrayExpr 中的左括号。

类型:Token

prop rParen

public mut prop rParen: Token

功能:获取或设置 VArrayExpr 中的右括号。

类型:Token

prop vArrayType

public mut prop vArrayType: VArrayType

功能:获取或设置 VArrayExpr 的 VArray 类型节点。

类型:VArrayType

init()

public init()

功能:构造一个默认的 VArrayExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 VArrayExpr 对象。

参数:

异常:

class VArrayType

public class VArrayType <: TypeNode {
    public init()
    public init(input: Tokens)
}

功能:表示 VArray 类型节点。

使用泛型 VArray<T, size: Int64> 表示 VArray 类型。

prop dollar

public mut prop dollar: Token

功能:获取或设置 VArrayType 节点中的操作符 $ 的词法单元。

类型:Token

prop elementTy

public mut prop elementTy: TypeNode

功能:获取或设置 VArrayType 节点中的类型变元节点,如 VArray<Int16, $0> 中的 Int16

类型:TypeNode

prop keyword

public mut prop keyword: Token

功能:获取或设置 VArrayType 节点的关键字 VArray 的词法单元。

类型:Token

prop lAngle

public mut prop lAngle: Token

功能:获取或设置 VArrayType 节点左尖括号的词法单元。

类型:Token

prop rAngle

public mut prop rAngle: Token

功能:获取或设置 VArrayType 节点右尖括号的词法单元。

类型:Token

prop size

public mut prop size: Token

功能:获取或设置 VArrayType 节点中类型长度的词法单元。

类型:Token

init()

public init()

功能:构造一个默认的 VArrayType 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 VArrayType 对象。

参数:

异常:

class VarDecl

public class VarDecl <: Decl {
    public init()
    public init(inputs: Tokens)
}

功能:表示变量定义节点。

一个 VarDecl 节点: var a: Stringvar b: Int64 = 1

说明:

变量的定义主要包括如下几个部分:修饰符、关键字、patternsMaybeIrrefutable、变量类型和变量初始值。

prop assign

public mut prop assign: Token

功能:获取或设置 VarDecl 节点中的赋值操作符的位置信息。

类型:Token

prop colon

public mut prop colon: Token

功能:获取或设置 VarDecl 节点中的冒号位置信息。

类型:Token

prop declType

public mut prop declType: TypeNode

功能:获取或设置 VarDecl 节点的变量类型。

类型:TypeNode

异常:

prop expr

public mut prop expr: Expr

功能:获取或设置 VarDecl 节点的变量初始化节点。

类型:Expr

异常:

prop pattern

public mut prop pattern: Pattern

功能:获取或设置 VarDecl 节点的 pattern 节点。

类型:Pattern

异常:

init()

public init()

功能:构造一个默认的 VarDecl 对象。

init(Tokens)

public init(inputs: Tokens)

功能:构造一个 VarDecl 对象。

参数:

异常:

func isConst()

public func isConst(): Bool

功能:判断是否是一个 Const 类型的节点。

返回值:

  • Bool - 是一个 Const 类型的节点返回 true;反之,返回 false。

class VarOrEnumPattern

public class VarOrEnumPattern <: Pattern {
    public init()
    public init(identifier: Token)
}

功能:表示当模式的标识符为 Enum 构造器时的节点。

例如 case RED 中的 REDEnum 构造器。

prop identifier

public mut prop identifier: Token

功能:获取或设置 VarOrEnumPattern 节点中的标识符的词法单元。

类型:Token

init()

public init()

功能:构造一个默认的 VarOrEnumPattern 对象。

init(Tokens)

public init(identifier: Token)

功能:构造一个 VarOrEnumPattern 对象。

参数:

异常:

class VarPattern

public class VarPattern <: Pattern {
    public init()
    public init(identifier: Token)
}

功能:表示绑定模式节点。

使用一个合法的标识符表示,一般适用于声明节点中,如 case n => 0 中的 n

prop identifier

public mut prop identifier: Token

功能:获取或设置 VarPattern 节点中的标识符符的词法单元。

类型:Token

init()

public init()

功能:构造一个默认的 VarPattern 对象。

init(Tokens)

public init(identifier: Token)

功能:构造一个 VarPattern 对象。

参数:

异常:

class Visitor

public open abstract class Visitor

功能:一个抽象类,其内部默认定义了访问不同类型 AST 节点访问(visit)函数。

说明:

  • visit 函数搭配 traverse 一起使用,可实现对节点的访问和修改, 所有 visit 函数都有默认为空的实现,可以按需实现需要的 visit 方法。
  • 该类需要被继承使用,并允许子类重新定义访问函数。

func breakTraverse()

public func breakTraverse(): Unit

功能:用于重写 visit 函数中,通过调用该函数来终止继续遍历子节点的行为。

class WhileExpr

public class WhileExpr <: Expr {
    public init()
    public init(input: Tokens)
}

功能:表示 while 表达式。

while 是关键字,while 之后是一个小括号,小括号内可以是一个表达式或者一个 let 声明的解构匹配,接着是一个 Block 节点。

prop block

public mut prop block: Block

功能:获取或设置 WhileExpr 中的块节点。

类型:Block

prop condition

public mut prop condition: Expr

功能:获取或设置关键字 WhileExpr 中的条件表达式。

类型:Expr

prop keyword

public mut prop keyword: Token

功能:获取或设置 WhileExpr 节点中 while 关键字。

类型:Token

prop lParen

public mut prop lParen: Token

功能:获取或设置 WhileExprwhile 关键字之后的左括号。

类型:Token

prop rParen

public mut prop rParen: Token

功能:获取或设置 WhileExprwhile 关键字之后的右括号。

类型:Token

init()

public init()

功能:构造一个默认的 WhileExpr 对象。

init(Tokens)

public init(input: Tokens)

功能:构造一个 WhileExpr 对象。

参数:

异常:

class WildcardExpr

public class WildcardExpr <: Expr {
    public init()
    public init(keyword: Tokens)
}

功能:表示通配符表达式节点。

prop keyword

public mut prop keyword: Token

功能:获取 WildcardExpr 的通配符关键字。

类型:Token

init()

public init()

功能:构造一个默认的 WildcardExpr 对象。

init(Tokens)

public init(keyword: Tokens)

功能:构造一个 WildcardExpr 对象。

参数:

异常:

class WildcardPattern

public class WildcardPattern <: Pattern {
    public init()
    public init(keyword: Tokens)
}

功能:表示通配符模式节点。

使用下划线 _ 表示,可以匹配任意值。

prop wildcard

public mut prop wildcard: Token

功能:获取或设置 WildcardPattern 节点中的 _ 操作符的词法单元。

类型:Token

init()

public init()

功能:构造一个默认的 WildcardPattern 对象。

init(Tokens)

public init(keyword: Tokens)

功能:构造一个 WildcardPattern 对象。

参数:

异常: