类
class Annotation
public class Annotation <: Node {
public init()
public init(inputs: Tokens)
}
功能:表示编译器内置的注解节点。
一个 Annotation 节点:@CallingConv[xxx]
, @Attribute[xxx]
, @When[condition]
等。
父类型:
prop arguments
public mut prop arguments: ArrayList<Argument>
功能:获取或设置 Annotation 中的参数序列,如 @CallingConv[xxx]
中的 xxx
。
prop at
public mut prop at: Token
功能:获取或设置 Annotation 节点中的 @
操作符。
类型:Token
异常:
- ASTException - 当设置的 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
异常:
- ASTException - 当 Annotation 节点中没有条件表达式时,抛出异常。
prop identifier
public mut prop identifier: Token
功能:获取或设置 Annotation 节点的标识符,如 @CallingConv[xxx]
中的 CallingConv
。
类型:Token
init()
public init()
功能:构造一个默认的 Annotation 对象。
init(Tokens)
public init(inputs: Tokens)
功能:根据输入的词法单元,构造一个 Annotation 对象。
参数:
- inputs: Tokens - 将要构造 Annotation 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 Annotation 节点时,抛出异常。
class Argument
public class Argument <: Node {
public init()
}
功能:表示函数调用的实参节点。
例如 foo(arg:value)
中的 arg:value
。
父类型:
prop colon
public mut prop colon: Token
功能:获取或设置 Argument 节点中的操作符 ":",可能为 ILLEGAL 的词法单元。
类型:Token
异常:
- ASTException - 当设置的 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(inputs: Tokens)
}
功能:表示 Array 字面量节点。
ArrayLiteral 节点:使用格式 [element1, element2, ... , elementN]
表示, 每个 element
是一个表达式。
父类型:
prop elements
public mut prop elements: ArrayList<Expr>
功能:获取或设置 ArrayLiteral 中的表达式列表。
prop lSquare
public mut prop lSquare: Token
功能:获取或设置 ArrayLiteral 中的 "["。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "[" 时,抛出异常。
prop rSquare
public mut prop rSquare: Token
功能:获取或设置 ArrayLiteral 中的 "]"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "]" 时,抛出异常。
init()
public init()
功能:构造一个默认的 ArrayLiteral 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 ArrayLiteral 对象。
参数:
- inputs: Tokens - 将要构造 ArrayLiteral 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 ArrayLiteral 节点时,抛出异常。
class AsExpr
public class AsExpr <: Expr {
public init()
public init(inputs: 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
异常:
- ASTException - 当设置的 Token 不是
as
操作符时,抛出异常。
prop shiftType
public mut prop shiftType: TypeNode
功能:获取或设置 AsExpr 节点中的目标类型。
类型:TypeNode
init()
public init()
功能:构造一个默认的 AsExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 AsExpr 对象。
参数:
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 AsExpr 节点时,抛出异常。
class AssignExpr
public class AssignExpr <: Expr {
public init()
public init(inputs: Tokens)
}
功能:表示赋值表达式节点。
用于将左操作数的值修改为右操作数的值。一个 AssignExpr 节点:a = b
。
父类型:
prop assign
public mut prop assign: Token
功能:获取或设置 AssignExpr 节点中的赋值操作符(如 =
等)。
类型:Token
异常:
- ASTException - 当设置的 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(inputs: Tokens)
功能:构造一个 AssignExpr 对象。
参数:
- inputs: Tokens - 将要构造 AssignExpr 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 AssignExpr 节点时,抛出异常。
class BinaryExpr
public class BinaryExpr <: Expr {
public init()
public init(inputs: 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(inputs: Tokens)
功能:构造一个 BinaryExpr 对象。
参数:
- inputs: Tokens - 将要构造 BinaryExpr 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 BinaryExpr 节点时,抛出异常。
class Block
public class Block <: Expr {
public init()
}
功能:表示块节点。
Block 由一对匹配的大括号及其中可选的表达式声明序列组成的结构,简称 “块”。
父类型:
prop lBrace
public mut prop lBrace: Token
功能:获取或设置 Block 的 "{"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "{" 时,抛出异常。
prop nodes
public mut prop nodes: ArrayList<Node>
功能:获取或设置 Block 中的表达式或声明序列。
prop rBrace
public mut prop rBrace: Token
功能:获取或设置 Block 的 "}"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "}" 时,抛出异常。
init()
public init()
功能:构造一个默认的 Block 对象。
说明:
Block 节点无法脱离表达式或声明节点单独存在,因此不提供其他的构造函数。
class Body
public class Body <: Node {
public init()
public init(decls: ArrayList<Decl>)
}
功能:表示 Class 类型、 Struct 类型、 Interface 类型以及扩展中由 {}
和内部的一组声明节点组成的结构。
父类型:
prop decls
public mut prop decls: ArrayList<Decl>
功能:获取或设置 Body 内的声明节点集合。
prop lBrace
public mut prop lBrace: Token
功能:获取或设置 {
词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
{
词法单元时,抛出异常。
prop rBrace
public mut prop rBrace: Token
功能:获取或设置 }
词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
}
词法单元时,抛出异常。
init()
public init()
功能:构造一个默认的 Body 对象。
init(ArrayList<Decl>)
public init(decls: ArrayList<Decl>)
功能:构造一个 Body 对象。
参数:
class CallExpr
public class CallExpr <: Expr {
public init()
public init(inputs: Tokens)
}
功能:表示函数调用节点节点。
一个 CallExpr 节点包括一个表达式后面紧跟参数列表,例如 foo(100)
。
父类型:
prop arguments
public mut prop arguments: ArrayList<Argument>
功能:获取或设置 CallExpr 节点中函数参数。
prop callFunc
public mut prop callFunc: Expr
功能:获取或设置 CallExpr 节点中的函数调用节点。
类型:Expr
prop lParen
public mut prop lParen: Token
功能:获取或设置 CallExpr 节点中的 "("。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop rParen
public mut prop rParen: Token
功能:获取或设置 CallExpr 节点中的 ")"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
init()
public init()
功能:构造一个默认的 CallExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 CallExpr 对象。
参数:
异常:
- ASTException - 当输入的 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 superTypeBitAnds
public mut prop superTypeBitAnds: Tokens
功能:获取或设置 ClassDecl 节点的父类或父接口声明中的 &
操作符的词法单元序列,可能为空。
类型:Tokens
异常:
- ASTException - 当设置的 Tokens 不是
&
词法单元序列时,抛出异常。
prop superTypes
public mut prop superTypes: ArrayList<TypeNode>
功能:获取或设置 ClassDecl 节点的父类或者父接口。
prop upperBound
public mut prop upperBound: Token
功能:获取或设置 <:
操作符。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
<:
操作符时,抛出异常。
init()
public init()
功能:构造一个默认的 ClassDecl 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 ClassDecl 对象。
参数:
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 ClassDecl 节点时,抛出异常。
class ConstPattern
public class ConstPattern <: Pattern {
public init()
public init(inputs: Tokens)
}
功能:表示常量模式节点。
常量模式可以是整数字面量、字符字节字面量、浮点数字面量、字符字面量、布尔字面量、字符串字面量等字面量,如 case 1 => 0
中的 1
。
父类型:
prop litConstExpr
public mut prop litConstExpr: LitConstExpr
功能:获取或设置 ConstPattern 节点中的字面量表达式。
类型:LitConstExpr
init()
public init()
功能:构造一个默认的 ConstPattern 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 ConstPattern 对象。
参数:
- inputs: Tokens - 将要构造 ConstPattern 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 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
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop rParen
public mut prop rParen: Token
功能:获取或设置 Constructor 节点中的 ")" 词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
prop typeArguments
public mut prop typeArguments: ArrayList<TypeNode>
功能:获取或设置 Constructor 节点可选的参数类型节点的集合。
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 constraintCommas
public mut prop constraintCommas: Tokens
功能:获取或设置 Decl 节点中的 "," 词法单元序列,可能为空。
类型:Tokens
异常:
- ASTException - 当设置的 Tokens 不是 "," 词法单元序列时,抛出异常。
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 mut open prop identifier: Token
功能:获取或设置定义节点的标识符,如 class foo {}
中的 foo
。
类型:Token
prop isGenericDecl()
public mut prop isGenericDecl: Bool
功能:判断是否是一个泛型节点。
类型:Bool - 是一个泛型节点为 true;反之为 false。
prop keyword
public mut prop keyword: Token
功能:获取或设置定义节点的关键字。
类型:Token
prop modifiers
public mut prop modifiers: 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(inputs: 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
异常:
- ASTException - 当设置的 Token 不是
do
关键字时,抛出异常。
prop keywordW
public mut prop keywordW: Token
功能:获取或设置 DoWhileExpr 节点中 while
关键字,其中 keywordW 中的 W 为关键字 while
的首字母大写,代表关键字 while
。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
while
关键字时,抛出异常。
prop lParen
public mut prop lParen: Token
功能:获取或设置 DoWhileExpr 中 while
关键字之后的 "("。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop rParen
public mut prop rParen: Token
功能:获取或设置 DoWhileExpr 中 while
关键字之后的 ")"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
init()
public init()
功能:构造一个默认的 DoWhileExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 DoWhileExpr 对象。
参数:
- inputs: Tokens - 将要构造 DoWhileExpr 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 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 的其它成员。
prop lBrace
public mut prop lBrace: Token
功能:获取或设置 EnumDecl 节点的 {
词法单元类型。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
{
词法单元类型时,抛出异常。
prop rBrace
public mut prop rBrace: Token
功能:获取或设置 EnumDecl 节点的 }
词法单元类型。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
}
词法单元类型时,抛出异常。
prop superTypeBitAnds
public mut prop superTypeBitAnds: Tokens
功能:获取或设置 EnumDecl 节点的父接口声明中的 &
操作符的词法单元序列,可能为空。
类型:Tokens
异常:
- ASTException - 当设置的 Tokens 不是
&
词法单元序列时,抛出异常。
prop superTypes
public mut prop superTypes: ArrayList<TypeNode>
功能:获取或设置 EnumDecl 节点的父接口。
prop upperBound
public mut prop upperBound: Token
功能:获取或设置 <:
操作符。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
<:
操作符时,抛出异常。
init()
public init()
功能:构造一个默认的 EnumDecl 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 EnumDecl 对象。
参数:
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 EnumDecl 节点时,抛出异常。
class EnumPattern
public class EnumPattern <: Pattern {
public init()
public init(inputs: Tokens)
}
功能:表示 enum 模式节点。
用于匹配 enum 的 constructor
, 如 case Year(n) => 1
中的 Year(n)
。
父类型:
prop commas
public mut prop commas: Tokens
功能:获取或设置 EnumPattern 节点中的 "," 词法单元序列,可能为空。
类型:Tokens
异常:
- ASTException - 当设置的 Tokens 不是 "," 词法单元序列时,抛出异常。
prop constructor
public mut prop constructor: Expr
功能:获取或设置 EnumPattern 节点中的构造器表达式节点。
类型:Expr
prop lParen
public mut prop lParen: Token
功能:获取或设置 EnumPattern 节点中的 "(" 的词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop patterns
public mut prop patterns: ArrayList<Pattern>
功能:获取或设置 EnumPattern 节点中有参构造器内的模式节点列表。
prop rParen
public mut prop rParen: Token
功能:获取或设置 EnumPattern 节点中的 ")" 的词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
init()
public init()
功能:构造一个默认的 EnumPattern 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 EnumPattern 对象。
参数:
- inputs: Tokens - 将要构造 EnumPattern 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 EnumPattern 节点时,抛出异常。
class ExceptTypePattern
public class ExceptTypePattern <: Pattern {
public init()
public init(inputs: Tokens)
}
功能:表示一个用于异常模式状态下的节点。
例如 e: Exception1 | Exception2
。
父类型:
prop colon
public mut prop colon: Token
功能:获取或设置 ExceptTypePattern 节点中的 ":" 操作符的词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ":" 操作符时,抛出异常。
prop pattern
public mut prop pattern: Pattern
功能:获取或设置 ExceptTypePattern 节点中的模式节点。
类型:Pattern
prop types
public mut prop types: ArrayList<TypeNode>
功能:获取或设置 ExceptTypePattern 节点中有类型列表。
init()
public init()
功能:构造一个默认的 ExceptTypePattern 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 ExceptTypePattern 对象。
参数:
- inputs: Tokens - 将要构造 ExceptTypePattern 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 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 mut override prop identifier: Token
功能:ExtendDecl 节点继承 Decl 节点,但是不支持 identifier
属性,使用时会抛出异常。
类型:Token
异常:
- ASTException - 当使用
identifier
属性时,抛出异常。
prop superTypeBitAnds
public mut prop superTypeBitAnds: Tokens
功能:获取或设置 ExtendDecl 节点的父接口声明中的 &
操作符的词法单元序列,可能为空。
类型:Tokens
异常:
- ASTException - 当设置的 Tokens 不是
&
词法单元序列时,抛出异常。
prop superTypes
public mut prop superTypes: ArrayList<TypeNode>
功能:获取或设置 ExtendDecl 节点的父接口。
prop upperBound
public mut prop upperBound: Token
功能:获取或设置 <:
操作符。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
<:
操作符时,抛出异常。
init()
public init()
功能:构造一个默认的 ExtendDecl 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 ExtendDecl 对象。
参数:
- inputs: Tokens - 将要构造 ExtendDecl 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 ExtendDecl 节点时,抛出异常。
class ForInExpr
public class ForInExpr <: Expr {
public init()
public init(inputs: 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
异常:
- ASTException - 当设置的 Token 不是
for
关键字时,抛出异常。
prop keywordI
public mut prop keywordI: Token
功能:获取或设置 ForInExpr 中的关键字 in
。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
in
关键字时,抛出异常。
prop keywordW
public mut prop keywordW: Token
功能:获取或设置 ForInExpr 中的关键字 where
。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
where
关键字时,抛出异常。
prop lParen
public mut prop lParen: Token
功能:获取或设置 ForInExpr 中关键字 for
后的 "("。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop pattern
public mut prop pattern: Pattern
功能:获取或设置 ForInExpr 中的 Pattern 节点。
类型:Pattern
prop patternGuard
public mut prop patternGuard: Expr
功能:获取或设置 ForInExpr 中的 patternGuard
条件表达式。
类型:Expr
异常:
- ASTException - 当 ForInExpr 节点中不存在
patternGuard
表达式时,抛出异常。
prop rParen
public mut prop rParen: Token
功能:获取或设置 ForInExpr 中的 ")"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
init()
public init()
功能:构造一个默认的 ForInExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 ForInExpr 对象。
参数:
异常:
- ASTException - 当输入的 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
异常:
- ASTException - 当设置的 Token 不是冒号时,抛出异常。
prop declType
public mut prop declType: TypeNode
功能:获取或设置 FuncDecl 节点的函数返回类型。
类型:TypeNode
异常:
- ASTException - 当 FuncDecl 节点的函数返回类型是一个缺省值时,抛出异常。
prop funcParams
public mut prop funcParams: ArrayList<FuncParam>
功能:获取或设置 FuncDecl 节点的函数参数。
prop lParen
public mut prop lParen: Token
功能:获取或设置 FuncDecl 节点的 "("。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop overloadOp
public mut prop overloadOp: Tokens
功能:获取或设置 FuncDecl 节点的重载操作符。
类型:Tokens
prop rParen
public mut prop rParen: Token
功能:获取或设置 FuncDecl 节点的 ")"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
init()
public init()
功能:构造一个默认的 FuncDecl 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 FuncDecl 对象。
参数:
异常:
- ASTException - 当输入的 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: Int64
和 b: Float64
。
父类型:
prop assign
public mut prop assign: Token
功能:获取或设置具有默认值的函数参数中的 =
。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
=
时,抛出异常。
prop colon
public mut prop colon: Token
功能:获取或设置置形参中的 ":"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ":" 时,抛出异常。
prop expr
public mut prop expr: Expr
功能:获取或设置具有默认值的函数参数的变量初始化节点。
类型:Expr
异常:
- ASTException - 当函数参数没有进行初始化时,抛出异常。
prop not
public mut prop not: Token
功能:获取或设置命名形参中的 !
。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
!
时,抛出异常。
prop paramType
public mut prop paramType: TypeNode
功能:获取或设置函数参数的类型。
类型:TypeNode
init()
public init()
功能:构造一个默认的 FuncParam 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 FuncParam 对象。
参数:
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 FuncParam 节点时,抛出异常。
func isMemberParam()
public func isMemberParam(): Bool
功能:当前的函数参数是否是主构造函数中的参数。
返回值:
- Bool - 布尔类型,如果是主构造函数中的参数,返回
true
。
class FuncType
public class FuncType <: TypeNode {
public init()
public init(inputs: Tokens)
}
功能:表示函数类型节点。
由函数的参数类型和返回类型组成,参数类型与返回类型之间用 ->
分隔,如:(Int32) -> Unit
。
父类型:
prop arrow
public mut prop arrow: Token
功能:获取或设置 FuncType 节点参数类型与返回类型之间的 ->
的词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
->
的词法单元时,抛出异常。
prop commas
public mut prop commas: Tokens
功能:获取或设置 FuncType 节点中的 "," 词法单元序列,可能为空。
类型:Tokens
异常:
- ASTException - 当设置的 Tokens 不是 "," 词法单元序列时,抛出异常。
prop keyword
public mut prop keyword: Token
功能:获取或设置 FuncType 节点的中的关键字 CFunc
的词法单元,若不是一个 CFunc
类型,则获取一个 ILLEGAL 的词法单元。
类型:Token
prop lParen
public mut prop lParen: Token
功能:获取或设置 FuncType 节点的 "(" 的词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop rParen
public mut prop rParen: Token
功能:获取或设置 FuncType 节点的 ")" 的词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
prop returnType
public mut prop returnType: TypeNode
功能:获取或设置 FuncType 返回类型节点。
类型:TypeNode
prop types
public mut prop types: ArrayList<TypeNode>
功能:获取或设置 FuncType 节点中函数的参数类型列表。
init()
public init()
功能:构造一个默认的 FuncType 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 FuncType 对象。
参数:
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 FuncType 节点时,抛出异常。
class GenericConstraint
public class GenericConstraint <: Node {
public init()
}
功能:表示一个泛型约束节点。
一个 GenericConstraint 节点:interface Enumerable<U> where U <: Bounded {}
中的 where where U <: Bounded
。
说明:
通过
where
之后的<:
运算符来声明,由一个下界与一个上界来组成。其中<:
左边称为约束的下界,下界只能为类型变元。<:
右边称为约束上界,约束上界可以为类型。
父类型:
prop bitAnds
public mut prop bitAnds: Tokens
功能:获取或设置 GenericConstraint 节点中的 &
操作符的词法单元序列,可能为空。
类型:Tokens
异常:
- ASTException - 当设置的 Tokens 不是
&
词法单元序列时,抛出异常。
prop keyword
public mut prop keyword: Token
功能:获取或设置 GenericConstraint 节点中关键字 where
词法单元,可能为 ILLEGAL 的词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
where
关键字时,抛出异常。
prop typeArgument
public mut prop typeArgument: TypeNode
功能:获取或设置 GenericConstraint 节点中的约束下界。
类型:TypeNode
prop upperBound
public mut prop upperBound: Token
功能:获取或设置 GenericConstraint 节点中的 <:
运算符。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
<:
运算符时,抛出异常。
prop upperBounds
public mut prop upperBounds: ArrayList<TypeNode>
功能:获取或设置 GenericConstraint 节点约束上界的 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
异常:
- ASTException - 当设置的 Token 不是左尖括号时,抛出异常。
prop parameters
public mut prop parameters: Tokens
功能:获取或设置 GenericParam 节点中的类型形参的 Tokens 类型,可能为空,如 <T1, T2, T3>
中的 T1
T2
和 T3
。
类型:Tokens
prop rAngle
public mut prop rAngle: Token
功能:获取或设置 GenericParam 节点中的右尖括号词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是右尖括号时,抛出异常。
init()
public init()
功能:构造一个默认的 GenericParam 对象。
init(Tokens)
public init(parameters: Tokens)
功能:构造一个 GenericParam 对象。
参数:
- parameters: Tokens - 将要构造 GenericParam 的类型形参的词法单元集合 (Tokens)。
class IfExpr
public class IfExpr <: Expr {
public init()
public init(inputs: Tokens)
}
功能:表示条件表达式。
可以根据判定条件是否成立来决定执行哪条代码分支。一个 IfExpr 节点中 if
是关键字,if
之后是一个小括号,小括号内可以是一个表达式或者一个 let
声明的解构匹配,接着是一个 Block,Block 之后是可选的 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
异常:
- ASTException - 当前 IfExpr 节点没有 else 分支节点。
prop ifBlock
public mut prop ifBlock: Block
功能:获取或设置 IfExpr 节点中的 if
后的 block 节点。
类型:Block
prop keywordE
public mut prop keywordE: Token
功能:获取或设置 IfExpr 节点中 else
关键字。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
else
关键字时,抛出异常。
prop keywordI
public mut prop keywordI: Token
功能:获取或设置 IfExpr 节点中的 if
关键字。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
if
关键字时,抛出异常。
prop lParen
public mut prop lParen: Token
功能:获取或设置 IfExpr 节点中的 if
后的 "("。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop rParen
public mut prop rParen: Token
功能:获取或设置 IfExpr 节点中的 if
后的 ")"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
init()
public init()
功能:构造一个默认的 IfExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 IfExpr 对象。
参数:
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 IfExpr 节点时,抛出异常。
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
中的 a
和 b
。
类型:Tokens
prop prefixDots
public mut prop prefixDots: Tokens
功能:获取或设置 ImportContent 节点中完整包名中用于分隔每层子包的词法单元序列,可能为空。如 import a.b.c
中的两个 "."。
类型:Tokens
异常:
- ASTException - 当设置的 Tokens 不是 "." 词法单元序列时,抛出异常。
prop identifier
public mut prop identifier: Token
功能:获取或设置 ImportContent 节点中被导入的项,它可能是包中的顶层定义或声明,也可能是子包的名字。
类型:Token
prop importAlias
public mut prop importAlias: Tokens
功能:获取或设置 ImportContent 节点中导入的定义或声明的别名词法单元序列,只有 importKind
为 ImportKind.Alias
时非空。如:import packageName.xxx as yyy
中的 as yyy
。
类型:Tokens
prop lBrace
public mut prop lBrace: Token
功能:获取或设置 ImportContent 节点中的 {
操作符词法单元,只有 importKind
为 ImportKind.Multi
时非空。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
{
操作符时,抛出异常。
prop items
public mut prop items: ArrayList<ImportContent>
功能:获取或设置 ImportContent 节点中被导入的所有项,只有 importKind
为 ImportKind.Multi
时非空。
类型:ArrayList<ImportContent>
prop commas
public mut prop commas: Tokens
功能:获取或设置 ImportContent 节点中的 "," 词法单元序列,只有 importKind
为 ImportKind.Multi
时非空。
类型:Tokens
异常:
- ASTException - 当设置的 Tokens 不是 "," 词法单元序列时,抛出异常。
prop rBrace
public mut prop rBrace: Token
功能:获取或设置 ImportContent 节点中的 }
操作符词法单元,只有 importKind
为 ImportKind.Multi
时非空。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
}
操作符时,抛出异常。
init()
public init()
功能:构造一个默认的 ImportContent 对象。
func isImportAlias()
public func isImportAlias(): Bool
功能:判断 ImportContent 节点是否对导入项取了别名。
返回值:
- Bool - ImportContent 节点是否对导入项取了别名。
func isImportAll()
public func isImportAll(): Bool
功能:判断 ImportContent 节点是否为全导入。
返回值:
- Bool - ImportContent 节点是否为全导入。
func isImportMulti()
public func isImportMulti(): Bool
功能:判断 ImportContent 节点是否导入了多个顶级定义或声明。
返回值:
- Bool - ImportContent 节点是否导入了多个顶级定义或声明。
func isImportSingle()
public func isImportSingle(): Bool
功能:判断 ImportContent 节点是否为单导入。
返回值:
- Bool - ImportContent 节点是否为单导入。
class ImportList
public class ImportList <: Node {
public init()
public init(inputs: Tokens)
}
功能:表示包导入节点。
一个 ImportList 节点: import moduleName.packageName.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
部分。
init()
public init()
功能:构造一个默认的 ImportList 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 ImportList 对象。
参数:
- inputs: Tokens - 将要构造 ImportList 类型的词法单元集合 (Tokens) 序列。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 ImportList 节点时,抛出异常。
func isImportMulti()
public func isImportMulti(): Bool
功能:判断 ImportList 节点是否导入了多个顶级定义或声明。
返回值:
- Bool - 如果 ImportList 节点导入了多个顶级定义或声明,返回 true;反之,返回 false。
class IncOrDecExpr
public class IncOrDecExpr <: Expr {
public init()
public init(inputs: 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(inputs: Tokens)
功能:构造一个 IncOrDecExpr 对象。
参数:
- inputs: Tokens - 将要构造 IncOrDecExpr 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 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 superTypeBitAnds
public mut prop superTypeBitAnds: Tokens
功能:获取或设置 InterfaceDecl 节点的父接口声明中的 &
操作符的词法单元序列,可能为空。
类型:Tokens
异常:
- ASTException - 当设置的 Tokens 不是
&
词法单元序列时,抛出异常。
prop superTypes
public mut prop superTypes: ArrayList<TypeNode>
功能:获取或设置 InterfaceDecl 节点的父接口。
prop upperBound
public mut prop upperBound: Token
功能:获取或设置 <:
操作符。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
<:
操作符时,抛出异常。
init()
public init()
功能:构造一个默认的 InterfaceDecl 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 InterfaceDecl 对象。
参数:
- inputs: Tokens - 将要构造 InterfaceDecl 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 InterfaceDecl 节点时,抛出异常。
class IsExpr
public class IsExpr <: Expr {
public init()
public init(inputs: 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
异常:
- ASTException - 当设置的 Token 不是
is
操作符时,抛出异常。
prop shiftType
public mut prop shiftType: TypeNode
功能:获取或设置 IsExpr 节点中的目标类型。
类型:TypeNode
init()
public init()
功能:构造一个默认的 IsExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 IsExpr 对象。
参数:
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 IsExpr 节点时,抛出异常。
class JumpExpr
public class JumpExpr <: Expr {
public init()
public init(kind: Tokens)
}
功能:表示循环表达式的循环体中的 break
和 continue
。
父类型:
prop keyword
public mut prop keyword: Token
功能:获取或设置关键字。
类型:Token
init()
public init()
功能:构造一个默认的 JumpExpr 对象。
init(Tokens)
public init(kind: Tokens)
功能:构造一个 JumpExpr 对象。
参数:
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 JumpExpr 节点时,抛出异常。
class LambdaExpr
public class LambdaExpr <: Expr {
public init()
public init(inputs: Tokens)
}
功能:表示 Lambda
表达式,是一个匿名的函数。
一个 LambdaExpr 节点有两种形式,一种是有形参的,例如 {a: Int64 => e1; e2 }
,另一种是无形参的,例如 { => e1; e2 }
。
父类型:
prop doubleArrow
public mut prop doubleArrow: Token
功能:获取或设置 LambdaExpr 中的 =>
。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
=>
操作符时,抛出异常。
prop funcParams
public mut prop funcParams: ArrayList<FuncParam>
功能:获取或设置 LambdaExpr 中的参数列表。
prop lBrace
public mut prop lBrace: Token
功能:获取或设置 LambdaExpr 中的 "{"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "{" 时,抛出异常。
prop nodes
public mut prop nodes: ArrayList<Node>
功能:获取或设置 LambdaExpr 中的表达式或声明节点。
prop rBrace
public mut prop rBrace: Token
功能:获取或设置 LambdaExpr 中的 "}"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "}" 时,抛出异常。
init()
public init()
功能:构造一个默认的 LambdaExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 LambdaExpr 对象。
参数:
- inputs: Tokens - 将要构造 LambdaExpr 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 LambdaExpr 节点时,抛出异常。
class LetPatternExpr
public class LetPatternExpr <: Expr {
public init()
public init(inputs: Tokens)
}
功能:表示 let
声明的解构匹配节点。
一个 LetPatternExpr 节点:if (let Some(v) <- x)
中的 let Some(v) <- x
。
父类型:
prop backArrow
public mut prop backArrow: Token
功能:获取或设置 LetPatternExpr 节点中 <-
操作符。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
<-
操作符时,抛出异常。
prop expr
public mut prop expr: Expr
功能:获取或设置 LetPatternExpr 节点中 <-
操作符之后的表达式。
类型:Expr
prop keyword
public mut prop keyword: Token
功能:获取或设置 LetPatternExpr 节点中 let
关键字。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
let
关键字时,抛出异常。
prop pattern
public mut prop pattern: Pattern
功能:获取或设置 LetPatternExpr 节点中 let
之后的 pattern。
类型:Pattern
init()
public init()
功能:构造一个默认的 LetPatternExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 LetPatternExpr 对象。
参数:
- inputs: Tokens - 将要构造 LetPatternExpr 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 LetPatternExpr 节点时,抛出异常。
class LitConstExpr
public class LitConstExpr <: Expr {
public init()
public init(inputs: Tokens)
}
功能:表示一个常量表达式节点。
一个 LitConstExpr 表达式:"abc"
,123
等。
父类型:
prop literal
public mut prop literal: Token
功能:获取或设置 LitConstExpr 节点中的字面量。
类型:Token
init()
public init()
功能:构造一个默认的 LitConstExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 LitConstExpr 对象。
参数:
- inputs: Tokens - 将要构造 LitConstExpr 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 ParenExpr 节点时,抛出异常。
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
异常:
- ASTException - 当设置的 Token 不是冒号时,抛出异常。
prop declType
public mut prop declType: TypeNode
功能:获取或设置 MacroDecl 节点的函数返回类型。
类型:TypeNode
异常:
- ASTException - 当 MacroDecl 节点的函数返回类型是一个缺省值时,抛出异常。
prop funcParams
public mut prop funcParams: ArrayList<FuncParam>
功能:获取或设置 MacroDecl 节点的参数。
prop lParen
public mut prop lParen: Token
功能:获取或设置 MacroDecl 节点的 "("。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop rParen
public mut prop rParen: Token
功能:获取或设置 MacroDecl 节点的 ")"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
init()
public init()
功能:构造一个默认的 MacroDecl 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 MacroDecl 对象。
参数:
异常:
- ASTException - 当输入的 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
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop lSquare
public mut prop lSquare: Token
功能:获取或设置 MacroExpandDecl 属性宏调用的 "["。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "[" 时,抛出异常。
prop macroAttrs
public mut prop macroAttrs: Tokens
功能:获取或设置 MacroExpandDecl 属性宏调用的输入。
类型:Tokens
prop macroInputDecl
public mut prop macroInputDecl: Decl
功能:获取或设置 MacroExpandDecl 中的声明节点。
类型:Decl
异常:
- ASTException - 当 MacroExpandDecl 节点中没有声明节点时,抛出异常。
prop macroInputs
public mut prop macroInputs: Tokens
功能:获取或设置 MacroExpandDecl 宏调用的输入。
类型:Tokens
prop rParen
public mut prop rParen: Token
功能:获取或设置 MacroExpandDecl 宏调用的 ")"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
prop rSquare
public mut prop rSquare: Token
功能:获取或设置 MacroExpandDecl 属性宏调用的 "]"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "]" 时,抛出异常。
init()
public init()
功能:构造一个默认的 MacroExpandDecl 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 MacroExpandDecl 对象。
参数:
- inputs: Tokens - 将要构造 MacroExpandDecl 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 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
功能:获取或设置 MacroExpandExpr 节点中的 @
操作符。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
@
操作符时,抛出异常。
prop identifier
public mut prop identifier: Token
功能:获取或设置宏调用节点的标识符。
类型:Token
prop lParen
public mut prop lParen: Token
功能:获取或设置 MacroExpandExpr 宏调用的 "("。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop lSquare
public mut prop lSquare: Token
功能:获取或设置 MacroExpandExpr 属性宏调用的 "["。
类型:Token
异常:
- ASTException - 当设置的 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
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
prop rSquare
public mut prop rSquare: Token
功能:获取或设置 MacroExpandExpr 属性宏调用的 "]"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "]" 时,抛出异常。
init()
public init()
功能:构造一个默认的 MacroExpandExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 MacroExpandExpr 对象。
参数:
- inputs: Tokens - 将要构造 MacroExpandExpr 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 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
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop lSquare
public mut prop lSquare: Token
功能:获取或设置 MacroExpandParam 属性宏调用的 "["。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "[" 时,抛出异常。
prop macroAttrs
public mut prop macroAttrs: Tokens
功能:获取或设置 MacroExpandParam 属性宏调用的输入。
类型:Tokens
prop macroInputDecl
public mut prop macroInputDecl: Decl
功能:获取或设置 MacroExpandParam 中的声明节点。
类型:Decl
异常:
- ASTException - 当 MacroExpandParam 节点中没有声明节点时,抛出异常。
prop macroInputs
public mut prop macroInputs: Tokens
功能:获取或设置 MacroExpandParam 宏调用的输入。
类型:Tokens
prop rParen
public mut prop rParen: Token
功能:获取或设置 MacroExpandParam 宏调用的 ")"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
prop rSquare
public mut prop rSquare: Token
功能:获取或设置 MacroExpandParam 属性宏调用的 "]"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "]" 时,抛出异常。
init()
public init()
功能:构造一个默认的 MacroExpandParam 对象。
class MacroMessage
public class MacroMessage
功能:记录内层宏发送的信息。
func getBool(String)
public func getBool(key: String): Bool
功能:获取对应 key 值的 Bool 类型信息。
参数:
- key: String - 用于检索的关键字的名字。
返回值:
异常:
func getInt64(String)
public func getInt64(key: String): Int64
功能:获取对应 key 值的 Int64 类型信息。
参数:
- key: String - 用于检索的关键字的名字。
返回值:
异常:
func getString(String)
public func getString(key: String): String
功能:获取对应 key 值的 String 类型信息。
参数:
- 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
异常:
- ASTException - 当设置的 Token 不是冒号时,抛出异常。
prop declType
public mut prop declType: TypeNode
功能:获取或设置 MainDecl 节点的函数返回类型。
类型:TypeNode
异常:
- ASTException - 当 MainDecl 节点的函数返回类型是一个缺省值时,抛出异常。
prop funcParams
public mut prop funcParams: ArrayList<FuncParam>
功能:获取或设置 MainDecl 节点的函数参数。
prop lParen
public mut prop lParen: Token
功能:获取或设置 MainDecl 节点的 "("。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop rParen
public mut prop rParen: Token
功能:获取或设置 MainDecl 节点的 ")"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
init()
public init()
功能:构造一个默认的 MainDecl 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 MainDecl 对象。
参数:
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 MainDecl 节点时,抛出异常。
class MatchCase
public class MatchCase <: Node {
public init()
}
功能:表示一个 MatchCase 类型。
一个 MatchCase 节点:case failScore where score > 0 => 0
。
说明:
父类型:
prop arrow
public mut prop arrow: Token
功能:获取或设置 MatchCase 中的 =>
操作符的词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
=>
操作符时,抛出异常。
prop bitOrs
public mut prop bitOrs: Tokens
功能:获取或设置 MatchCase 中的 |
操作符的词法单元序列,可能为空。
类型:Tokens
异常:
- ASTException - 当设置的 Tokens 不是
|
词法单元序列时,抛出异常。
prop block
public mut prop block: Block
功能:获取或设置 MatchCase 中的一系列声明或表达式节点。
类型:Block
prop expr
public mut prop expr: Expr
功能:获取或设置 MatchCase 中位于 case 后的表达式节点。
类型:Expr
异常:
- ASTException - 当 MatchCase 节点中不存在表达式节点时,抛出异常。
prop keywordC
public mut prop keywordC: Token
功能:获取或设置 MatchCase 内的 case
关键字的词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
case
关键字时,抛出异常。
prop keywordW
public mut prop keywordW: Token
功能:获取或设置 MatchCase 中可选的关键字 where
的词法单元,可能为 ILLEGAL 的词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
where
关键字时,抛出异常。
prop patternGuard
public mut prop patternGuard: Expr
功能:获取或设置 MatchCase 中可选的 pattern guard 表达式节点。
类型:Expr
异常:
- ASTException - 当 MatchCase 节点中不存在 pattern guard 表达式时,抛出异常。
prop patterns
public mut prop patterns: ArrayList<Pattern>
功能:获取或设置 MatchCase 中位于 case 后的 pattern
列表。
init()
public init()
功能:构造一个默认的 MatchCase 对象。
class MatchExpr
public class MatchExpr <: Expr {
public init()
public init(inputs: Tokens)
}
功能:表示模式匹配表达式实现模式匹配。
模式匹配表达式分为带 selector 的 match
表达式和不带 selector 的 match
表达式。
父类型:
prop keyword
public mut prop keyword: Token
功能:获取或设置 MatchExpr 节点中 match
关键字。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
matcch
关键字时,抛出异常。
prop lBrace
public mut prop lBrace: Token
功能:获取或设置 MatchExpr 之后的 "{"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "{" 时,抛出异常。
prop lParen
public mut prop lParen: Token
功能:获取或设置 MatchExpr 之后的 "("。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop matchCases
public mut prop matchCases: ArrayList<MatchCase>
功能:获取或设置 MatchExpr 内的 matchCase
, matchCase
以关键字 case
开头,后跟一个或者多个由 Pattern 或 Expr节点,具体见 MatchCase。
prop rBrace
public mut prop rBrace: Token
功能:获取或设置 MatchExpr 之后的 "}"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "}" 时,抛出异常。
prop rParen
public mut prop rParen: Token
功能:获取或设置 MatchExpr 之后的 ")"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
prop selector
public mut prop selector: Expr
功能:获取或设置关键字 match
之后的 Expr。
类型:Expr
异常:
- ASTException - 当该表达式是一个不带 selector 的
match
表达式时,抛出异常。
init()
public init()
功能:构造一个默认的 MatchExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 MatchExpr 对象。
参数:
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 MatchExpr 节点时,抛出异常。
class MemberAccess
public class MemberAccess <: Expr {
public init()
public init(inputs: Tokens)
}
功能:表示成员访问表达式。
可以用于访问 class、interface、struct 等类型的成员。一个 MemberAccess 节点的形式为 T.a
,T
为成员访问表达式的主体,a
表示成员的名字。
父类型:
prop baseExpr
public mut prop baseExpr: Expr
功能:获取或设置 MemberAccess 节点的成员访问表达式主体。
类型:Expr
prop commas
public mut prop commas: Tokens
功能:获取或设置 MemberAccess 节点中的 "," 词法单元序列,可能为空。
类型:Tokens
异常:
- ASTException - 当设置的 Tokens 不是 "," 词法单元序列时,抛出异常。
prop dot
public mut prop dot: Token
功能:获取或设置 MemberAccess 节点中的 "."。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "." 词法单元类型时,抛出异常。
prop field
public mut prop field: Token
功能:获取或设置 MemberAccess 节点成员的名字。
类型:Token
prop lAngle
public mut prop lAngle: Token
功能:获取或设置 MemberAccess 节点中的左尖括号。
类型:Token
异常:
- ASTException - 当设置的 Token 不是左尖括号时,抛出异常。
prop rAngle
public mut prop rAngle: Token
功能:获取或设置 MemberAccess 节点中的右尖括号。
类型:Token
异常:
- ASTException - 当设置的 Token 不是右尖括号时,抛出异常。
prop typeArguments
public mut prop typeArguments: ArrayList<TypeNode>
功能:获取或设置 MemberAccess 节点中的实例化类型。
init()
public init()
功能:构造一个默认的 MemberAccess 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 MemberAccess 对象。
参数:
- inputs: Tokens - 将要构造 MemberAccess 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 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 对象。
参数:
class Node
abstract sealed 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(inputs: 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
异常:
- ASTException - 当设置的 Token 不是问号操作符时,抛出异常。
init()
public init()
功能:构造一个默认的 OptionalExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 OptionalExpr 对象。
参数:
- inputs: Tokens - 将要构造 OptionalExpr 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 OptionalExpr 节点时,抛出异常。
class PackageHeader
public class PackageHeader <: Node {
public init()
public init(inputs: Tokens)
}
功能:表示包声明节点。
一个 PackageHeader 节点: package define
或者 macro package define
。
说明:
包声明以关键字
package
或macro package
开头,后面紧跟包名,且包声明必须在源文件的首行。
父类型:
prop accessible
public mut prop accessible: Token
功能:获取或设置 PackageHeader 节点中的访问性修饰符的词法单元,可能为 ILLEGAL 的词法单元。
类型:Token
prop keywordM
public mut prop keywordM: Token
功能:获取或设置 PackageHeader 节点中的 macro
关键字的词法单元(M
为关键字首字母,下同),可能为 ILLEGAL 的词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
macro
关键字时,抛出异常。
prop keywordP
public mut prop keywordP: Token
功能:获取或设置 PackageHeader 节点中的 package
关键字的词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
package
关键字时,抛出异常。
prop prefixPaths
public mut prop prefixPaths: Tokens
功能:获取或设置 PackageHeader 节点中完整包名的前缀部分的词法单元序列,可能为空。如 package a.b.c
中的 a
和 b
。
类型:Tokens
prop prefixDots
public mut prop prefixDots: Tokens
功能:获取或设置 PackageHeader 节点中完整包名中用于分隔每层子包的词法单元序列,可能为空。如 package a.b.c
中的两个 "."。
类型:Tokens
异常:
- ASTException - 当设置的 Tokens 不是 "." 词法单元序列时,抛出异常。
prop packageIdentifier
public mut prop packageIdentifier: Token
功能:获取或设置 PackageHeader 节点中当前包的名字,如果当前包为 root 包,即为完整包名,若当前包为子包,则为最后一个 "." 后的名字。
类型:Token
init()
public init()
功能:构造一个默认的 PackageHeader 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 PackageHeader 对象。
参数:
- inputs: Tokens - 将要构造 PackageHeader 类型的词法单元集合 (Tokens) 序列。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 PackageHeader 节点时,抛出异常。
class ParenExpr
public class ParenExpr <: Expr {
public init()
public init(inputs: Tokens)
}
功能:表示一个括号表达式节点,是指使用圆括号括起来的表达式。
一个 ParenExpr 节点:(1 + 2)
。
父类型:
prop lParen
public mut prop lParen: Token
功能:获取或设置 ParenExpr 节点中的 "("。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop parenthesizedExpr
public mut prop parenthesizedExpr: Expr
功能:获取或设置 ParenExpr 节点中由圆括号括起来的子表达式。
类型:Expr
prop rParen
public mut prop rParen: Token
功能:获取或设置 ParenExpr 节点中的 ")"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
init()
public init()
功能:构造一个默认的 ParenExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 ParenExpr 对象。
参数:
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 ParenExpr 节点时,抛出异常。
class ParenType
public class ParenType <: TypeNode {
public init()
public init(inputs: Tokens)
}
功能:表示括号类型节点。
例如 var a: (Int64)
中的 (Int64)
。
父类型:
prop lParen
public mut prop lParen: Token
功能:获取或设置 ParenType 节点中的 "(" 词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop parenthesizedType
public mut prop parenthesizedType: TypeNode
功能:获取或设置 ParenType 节点中括起来的类型,如 (Int64)
中的 Int64。
类型:TypeNode
prop rParen
public mut prop rParen: Token
功能:获取或设置 ParenType 节点中的 ")" 词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
init()
public init()
功能:构造一个默认的 ParenType 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 ParenType 对象。
参数:
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 ParenType 节点时,抛出异常。
class Pattern
public open class Pattern <: Node
功能:所有模式匹配节点的父类,继承自 Node 节点。
父类型:
class PrefixType
public class PrefixType <: TypeNode {
public init()
public init(inputs: 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(inputs: Tokens)
功能:构造一个 PrefixType 对象。
参数:
- inputs: Tokens - 将要构造 PrefixType 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 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 节点的参数。
prop lParen
public mut prop lParen: Token
功能:获取或设置 PrimaryCtorDecl 节点的 "("。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop rParen
public mut prop rParen: Token
功能:获取或设置 PrimaryCtorDecl 节点的 ")"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
init()
public init()
功能:构造一个默认的 PrimaryCtorDecl 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 PrimaryCtorDecl 对象。
参数:
- inputs: Tokens - 将要构造 PrimaryCtorDecl 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 PrimaryCtorDecl 节点时,抛出异常。
func isConst()
public func isConst(): Bool
功能:判断是否是一个 Const
类型的节点。
返回值:
- Bool - 当前节点为
Const
类型的节点时,返回 true;反之,返回 false。
class PrimitiveType
public class PrimitiveType <: TypeNode {
public init()
public init(inputs: Tokens)
}
功能:表示一个基本类型节点。
例如数值类型,Rune 类型,布尔类型等。
父类型:
prop keyword
public mut prop keyword: Token
功能:获取或设置构造 PrimitiveType 类型的关键字,如 Int8。
类型:Token
init()
public init()
功能:构造一个默认的 PrimitiveType 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 PrimitiveType 对象。
参数:
- inputs: Tokens - 将要构造 PrimitiveType 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 PrimitiveType 节点时,抛出异常。
class PrimitiveTypeExpr
public class PrimitiveTypeExpr <: Expr {
public init()
public init(kind: Tokens)
}
功能:表示基本类型表达式节点。
PrimitiveTypeExpr 节点:编译器内置的基本类型作为表达式出现在节点中。如 Int64.toSting() 中的 Int64。
父类型:
prop keyword
public mut prop keyword: Token
功能:获取或设置 PrimitiveTypeExpr 中的基本类型关键字。
类型:Token
init()
public init()
功能:构造一个默认的 PrimitiveTypeExpr 对象。
init(Tokens)
public init(kind: Tokens)
功能:构造一个 PrimitiveTypeExpr 对象。
参数:
- kind: Tokens - 将要构造 PrimitiveTypeExpr 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 PrimitiveTypeExpr 节点时,抛出异常。
class Program
public class Program <: Node {
public init()
public init(inputs: Tokens)
}
功能:表示一个仓颉源码文件节点。
一个仓颉源码文件节点主要包括包定义节点,包导入节点和 TopLevel 作用域内的所有声明节点。
说明:
任何一个仓颉源码文件都可以被解析为一个 Program 类型。
父类型:
prop decls
public mut prop decls: ArrayList<Decl>
功能:获取或设置仓颉源码文件中 TopLevel 作用域内定义的声明节点列表。
prop importLists
public mut prop importLists: ArrayList<ImportList>
功能:获取或设置仓颉源码文件中包导入节点 ImportList 的列表。
类型:ArrayList<ImportList>
prop packageHeader
public mut prop packageHeader: PackageHeader
功能:获取或设置仓颉源码文件中包的声明节点 PackageHeader。
init()
public init()
功能:构造一个默认的 Program 对象。
init(Tokens)
public init(inputs: 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
异常:
- ASTException - 当设置的 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
异常:
- ASTException - 当设置的 Token 不是 "{" 时,抛出异常。
prop rBrace
public mut prop rBrace: Token
功能:获取或设置 PropDecl 节点的 "}"。
类型:Token
异常:
- ASTException - 当设置的 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 对象。
参数:
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 PropDecl 节点时,抛出异常。
class QualifiedType
public class QualifiedType <: TypeNode {
public init()
public init(inputs: Tokens)
}
功能:表示一个用户自定义成员类型。
例如 var a : T.a
中的 T.a
, 其中 T 是包名,a 是从 T 包中导入的类型。
父类型:
prop baseType
public mut prop baseType: TypeNode
功能:获取或设置 QualifiedType 节点的成员访问类型主体,如 var a : T.a
中的 T
。
类型:TypeNode
prop commas
public mut prop commas: Tokens
功能:获取或设置 QualifiedType 节点中的 "," 词法单元序列,可能为空。
类型:Tokens
异常:
- ASTException - 当设置的 Tokens 不是 "," 词法单元序列时,抛出异常。
prop dot
public mut prop dot: Token
功能:获取或设置 QualifiedType 节点中的 "." 。
类型:Token
异常:
- ASTException - 当设置的 Tokens 不是 "." 词法单元时,抛出异常。
prop identifier
public mut prop identifier: Token
功能:获取或设置 QualifiedType 节点成员的标识符,如 var a : T.a
中的 a
。
类型:Token
prop lAngle
public mut prop lAngle: Token
功能:获取或设置 QualifiedType 节点中的左尖括号词法单元,可能为 ILLEGAL 的词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是左尖括号时,抛出异常。
prop rAngle
public mut prop rAngle: Token
功能:获取或设置 QualifiedType 节点中的右尖括号词法单元,可能为 ILLEGAL 的词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是右尖括号时,抛出异常。
prop typeArguments
public mut prop typeArguments: ArrayList<TypeNode>
功能:获取或设置 QualifiedType 节点中的实例化类型的列表,如 T.a<Int32>
中的 Int32,列表可能为空。
init()
public init()
功能:构造一个默认的 QualifiedType 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 QualifiedType 对象。
参数:
- inputs: Tokens - 将要构造 QualifiedType 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 QualifiedType 节点时,抛出异常。
class QuoteExpr
public class QuoteExpr <: Expr {
public init()
public init(inputs: Tokens)
}
功能:表示 quote
表达式节点。
一个 QuoteExpr 节点: quote(var ident = 0)
。
父类型:
prop exprs
public mut prop exprs: ArrayList<Expr>
功能:获取或设置 QuoteExpr 中由 ()
括起的内部引用表达式节点。
prop keyword
public mut prop keyword: Token
功能:获取或设置 QuoteExpr 的 quote
关键字。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
quote
关键字时,抛出异常。
prop lParen
public mut prop lParen: Token
功能:获取或设置 QuoteExpr 中的 "("。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop rParen
public mut prop rParen: Token
功能:获取或设置 QuoteExpr 中的 ")"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
init()
public init()
功能:构造一个默认的 QuoteExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 QuoteExpr 对象。
参数:
异常:
- ASTException - 当输入的 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(inputs: Tokens)
}
功能:表示包含区间操作符的表达式。
RangeExpr 节点:存在两种 Range 操作符:..
和 ..=
,分别用于创建左闭右开和左闭右闭的 Range 实例。它们的使用方式分别为 start..end:step
和 start..=end:step
。
父类型:
prop colon
public mut prop colon: Token
功能:获取或设置 RangeExpr 中的 ":" 操作符。
类型:Token
异常:
- ASTException - 当设置的 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
异常:
- ASTException - 当 RangeExpr 中未设置序列前后两个元素之间的差值时,抛出异常。
init()
public init()
功能:构造一个默认的 RangeExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 RangeExpr 对象。
参数:
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 RangeExpr 节点时,抛出异常。
class RefExpr
public class RefExpr <: Expr {
public init()
public init(inputs: Tokens)
}
功能:表示引用一个声明的表达式节点。
一个 RefExpr 节点:var b = a + 1
中的 a
是一个 RefExpr。
父类型:
prop commas
public mut prop commas: Tokens
功能:获取或设置 RefExpr 节点中的 "," 词法单元序列,可能为空。
类型:Tokens
异常:
- ASTException - 当设置的 Tokens 不是 "," 词法单元序列时,抛出异常。
prop identifier
public mut prop identifier: Token
功能:获取或设置 RefExpr 节点中的自定义类型的标识符。
类型:Token
prop lAngle
public mut prop lAngle: Token
功能:获取或设置 RefExpr 节点中的左尖括号。
类型:Token
异常:
- ASTException - 当设置的 Token 不是左尖括号时,抛出异常。
prop rAngle
public mut prop rAngle: Token
功能:获取或设置 RefExpr 节点中的右尖括号。
类型:Token
异常:
- ASTException - 当设置的 Token 不是右尖括号时,抛出异常。
prop typeArguments
public mut prop typeArguments: ArrayList<TypeNode>
功能:获取或设置 RefExpr 节点中的实例化类型。
init()
public init()
功能:构造一个默认的 RefExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 RefExpr 对象。
参数:
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 RefExpr 节点时,抛出异常。
class RefType
public class RefType <: TypeNode {
public init()
public init(inputs: Tokens)
}
功能:表示一个非基础类型节点。
例如用户通过 class
、struct
、enum
等定义的自定义类型,以及 Array、String 等内置类型都可以使用 RefType 表示。例如 var a : A
中的 A
。
父类型:
prop commas
public mut prop commas: Tokens
功能:获取或设置 RefType 节点中的 "," 词法单元序列,可能为空。
类型:Tokens
异常:
- ASTException - 当设置的 Tokens 不是 "," 词法单元序列时,抛出异常。
prop identifier
public mut prop identifier: Token
功能:获取或设置构造 RefType 类型的关键字,如 var a : A = A()
中的 A
。
类型:Token
prop lAngle
public mut prop lAngle: Token
功能:获取或设置 RefType 节点中的左尖括号词法单元,可能为 ILLEGAL 的词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是左尖括号时,抛出异常。
prop rAngle
public mut prop rAngle: Token
功能:获取或设置 RefType 节点中的右尖括号词法单元,可能为 ILLEGAL 的词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是右尖括号时,抛出异常。
prop typeArguments
public mut prop typeArguments: ArrayList<TypeNode>
功能:获取或设置 RefType 节点中的实例化类型的列表,可能为空,如 var a : Array<Int32>
中的 Int32。
init()
public init()
功能:构造一个默认的 RefType 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 RefType 对象。
参数:
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 RefType 节点时,抛出异常。
class ReturnExpr
public class ReturnExpr <: Expr {
public init()
public init(inputs: Tokens)
}
功能:表示 return
表达式节点。
一个 ReturnExpr 节点:return 1
。
父类型:
prop expr
public mut prop expr: Expr
功能:获取或设置 ReturnExpr 节点中的表达式节点。
类型:Expr
异常:
- ASTException - 当 ReturnExpr 节点没有表达式时,抛出异常。
prop keyword
public mut prop keyword: Token
功能:获取或设置 ReturnExpr 节点中的关键字。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
return
关键字时,抛出异常。
init()
public init()
功能:构造一个默认的 ReturnExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 ReturnExpr 对象。
参数:
- inputs: Tokens - 将要构造 ReturnExpr 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 ReturnExpr 节点时,抛出异常。
class SpawnExpr
public class SpawnExpr <: Expr {
public init()
public init(inputs: Tokens)
}
功能:表示 Spawn
表达式。
一个 SpawnExpr 节点由 spawn
关键字和一个不包含形参的闭包组成,例如:spawn { add(1, 2) }
。
父类型:
prop keyword
public mut prop keyword: Token
功能:获取或设置 SpawnExpr 中的 spawn
关键字。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
spawn
关键字时,抛出异常。
prop lParen
public mut prop lParen: Token
功能:获取或设置 SpawnExpr 中的 "("。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop lambdaExpr
public mut prop lambdaExpr: LambdaExpr
功能:获取或设置 SpawnExpr 中的不含形参的闭包。
类型:LambdaExpr
prop rParen
public mut prop rParen: Token
功能:获取或设置 SpawnExpr 中的 ")"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
prop threadContext
public mut prop threadContext: Expr
功能:获取或设置 SpawnExpr 中的线程上下文环境表达式。
类型:Expr
异常:
- ASTException - 当 SpawnExpr 中不含有上下文表达式时,抛出异常。
init()
public init()
功能:构造一个默认的 SpawnExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 SpawnExpr 对象。
参数:
异常:
- ASTException - 当输入的 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 superTypeBitAnds
public mut prop superTypeBitAnds: Tokens
功能:获取或设置 StructDecl 节点的父接口声明中的 &
操作符的词法单元序列,可能为空。
类型:Tokens
异常:
- ASTException - 当设置的 Tokens 不是
&
词法单元序列时,抛出异常。
prop superTypes
public mut prop superTypes: ArrayList<TypeNode>
功能:获取或设置 StructDecl 节点的父接口。
prop upperBound
public mut prop upperBound: Token
功能:获取或设置 <:
操作符。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
<:
操作符时,抛出异常。
init()
public init()
功能:构造一个默认的 StructDecl 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 StructDecl 对象。
参数:
- inputs: Tokens - 将要构造 StructDecl 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 StructDecl 节点时,抛出异常。
class SubscriptExpr
public class SubscriptExpr <: Expr {
public init()
public init(inputs: Tokens)
}
功能:表示索引访问表达式。
SubscriptExpr 节点:用于那些支持索引访问的类型(包括 Array 类型和 Tuple
类型)通过下标来访问其具体位置的元素,如 arr[0]
。
父类型:
prop baseExpr
public mut prop baseExpr: Expr
功能:获取或设置 SubscriptExpr 中的表达式。
类型:Expr
prop indexList
public mut prop indexList: ArrayList<Expr>
功能:获取或设置 SubscriptExpr 中的索引表达式序列。
prop lSquare
public mut prop lSquare: Token
功能:获取或设置 SubscriptExpr 中的 "["。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "[" 时,抛出异常。
prop rSquare
public mut prop rSquare: Token
功能:获取或设置 SubscriptExpr 中的 "]"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "]" 时,抛出异常。
init()
public init()
功能:构造一个默认的 SubscriptExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 SubscriptExpr 对象。
参数:
- inputs: Tokens - 将要构造 SubscriptExpr 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 SubscriptExpr 节点时,抛出异常。
class SynchronizedExpr
public class SynchronizedExpr <: Expr {
public init()
public init(inputs: 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
异常:
- ASTException - 当设置的 Token 不是
synchronized
关键字时,抛出异常。
prop lParen
public mut prop lParen: Token
功能:获取或设置 SynchronizedExpr 中的 "("。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop rParen
public mut prop rParen: Token
功能:获取或设置 SynchronizedExpr 中的 ")"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
prop structuredMutex
public mut prop structuredMutex: Expr
功能:获取或设置 SynchronizedExpr 中的 StructuredMutex
的对象。
类型:Expr
init()
public init()
功能:构造一个默认的 SynchronizedExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 SynchronizedExpr 对象。
参数:
- inputs: Tokens - 将要构造 SynchronizedExpr 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 SynchronizedExpr 节点时,抛出异常。
class ThisType
public class ThisType <: TypeNode {
public init()
public init(inputs: Tokens)
}
功能:表示 This
类型节点。
父类型:
prop keyword
public mut prop keyword: Token
功能:获取或设置 ThisType 节点关键字 This
的词法单元。
类型:Token
init()
public init()
功能:构造一个默认的 ThisType 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 ThisType 对象。
参数:
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 ThisType 节点时,抛出异常。
class ThrowExpr
public class ThrowExpr <: Expr {
public init()
public init(inputs: Tokens)
}
功能:表示 throw
表达式节点。
一个 ThrowExpr 节点:throw Exception()
。
父类型:
prop expr
public mut prop expr: Expr
功能:获取或设置 ThrowExpr 节点中的表达式节点。
类型:Expr
prop keyword
public mut prop keyword: Token
功能:获取或设置 ThrowExpr 节点中的关键字。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
throw
关键字时,抛出异常。
init()
public init()
功能:构造一个默认的 ThrowExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 ThrowExpr 对象。
参数:
异常:
- ASTException - 当输入的 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 open prop size: Int64
类型: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 进行拼接。
参数:
返回值:
func append(Token)
public open func append(token: Token): Tokens
功能:将当前的 Tokens 与传入的 Token 进行拼接。
参数:
返回值:
func append(Tokens)
public open 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 对象中的一个迭代器对象。
返回值:
- TokensIterator - Tokens 对象的迭代器对象。
func remove(Int64)
public func remove(index: Int64): Tokens
功能:删除指定位置的 Token 对象。
参数:
返回值:
func toString()
public func toString(): String
operator func +(Token)
public operator func +(r: Token): Tokens
功能:使用当前 Tokens 与另一个 Token 相加以获取新的 Tokens。
参数:
返回值:
operator func +(Tokens)
public operator func +(r: Tokens): Tokens
功能:使用当前 Tokens 与 Tokens 相加以获取新的 Tokens 类型。
参数:
返回值:
operator func [](Int64)
public operator func [](index: Int64): Token
功能:操作符重载,通过索引值获取对应 Token。
参数:
- index: Int64 - 待索引的数值。
返回值:
operator func [](Range<Int64>)
public open operator func [](range: Range<Int64>): Tokens
功能:操作符重载,通过 range
获取对应 Tokens 切片。
参数:
返回值:
异常:
- IllegalArgumentException - 当
range.step
不等于 1 时,抛出异常。 - IndexOutOfBoundsException - 当 range 无效时,抛出异常。
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 类型是否是传入的类型。
参数:
返回值:
class TrailingClosureExpr
public class TrailingClosureExpr <: Expr {
public init()
public init(inputs: 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(inputs: Tokens)
功能:构造一个 TrailingClosureExpr 对象。
参数:
- inputs: Tokens - 将要构造 TrailingClosureExpr 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 TrailingClosureExpr 节点。
class TryExpr
public class TryExpr <: Expr {
public init()
public init(inputs: Tokens)
}
功能:表示 try
表达式节点。
try
表达式包括三个部分:try
块,catch
块和 finally
块。
父类型:
prop catchBlocks
public mut prop catchBlocks: ArrayList<Block>
功能:获取或设置 TryExpr 中的 Catch 块。
prop catchPatterns
public mut prop catchPatterns: ArrayList<Pattern>
功能:获取或设置 TryExpr 中通过模式匹配的方式匹配待捕获的异常序列。
prop finallyBlock
public mut prop finallyBlock: Block
功能:获取或设置 TryExpr 中的关键字 Finally
块。
类型:Block
异常:
- ASTException - 当 TryExpr 节点无
Finally
块节点时,抛出异常。
prop keywordF
public mut prop keywordF: Token
功能:获取或设置 TryExpr 中的 finally
关键字。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
finally
关键字时,抛出异常。
prop keywordT
public mut prop keywordT: Token
功能:获取或设置 TryExpr 中的 try
关键字。
类型:Token
异常:
- ASTException - 当设置的 Token 不是
try
关键字时,抛出异常。
prop keywordsC
public mut prop keywordsC: Tokens
功能:获取或设置 TryExpr 中的关键字 catch
。
类型:Tokens
异常:
- ASTException - 当设置的 Token 不是
catch
关键字时,抛出异常。
prop resourceSpec
public mut prop resourceSpec: ArrayList<VarDecl>
功能:获取或设置 TryExpr 中 Try-with-resources 类型表达式的实例化对象序列。
prop tryBlock
public mut prop tryBlock: Block
功能:获取或设置 TryExpr 中由表达式与声明组成的块。
类型:Block
init()
public init()
功能:构造一个默认的 TryExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 TryExpr 对象。
参数:
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 TryExpr 节点时,抛出异常。
class TupleLiteral
public class TupleLiteral <: Expr {
public init()
public init(inputs: Tokens)
}
功能:表示元组字面量节点。
TupleLiteral 节点:使用格式 (expr1, expr2, ... , exprN)
表示,每个 expr
是一个表达式。
父类型:
prop elements
public mut prop elements: ArrayList<Expr>
功能:获取或设置 TupleLiteral 中的表达式列表。
prop lParen
public mut prop lParen: Token
功能:获取或设置 TupleLiteral 中的 "("。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop rParen
public mut prop rParen: Token
功能:获取或设置 TupleLiteral 中的 ")"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
init()
public init()
功能:构造一个默认的 TupleLiteral 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 TupleLiteral 对象。
参数:
- inputs: Tokens - 将要构造 TupleLiteral 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 TupleLiteral 节点时,抛出异常。
class TuplePattern
public class TuplePattern <: Pattern {
public init()
public init(inputs: Tokens)
}
功能:表示 Tuple 模式节点。
用于 tuple
值的匹配,如 case ("Bob", age) => 1
中的 ("Bob", age)
。
父类型:
prop commas
public mut prop commas: Tokens
功能:获取或设置 TuplePattern 节点中的 "," 词法单元序列,可能为空。
类型:Tokens
异常:
- ASTException - 当设置的 Tokens 不是 "," 词法单元序列时,抛出异常。
prop lParen
public mut prop lParen: Token
功能:获取或设置 TuplePattern 节点中的 "(" 的词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop patterns
public mut prop patterns: ArrayList<Pattern>
功能:获取或设置 TuplePattern 节点中的一组 Pattern 节点。
prop rParen
public mut prop rParen: Token
功能:获取或设置 TuplePattern 节点中的 ")" 的词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
init()
public init()
功能:构造一个默认的 TuplePattern 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 TuplePattern 对象。
参数:
- inputs: Tokens - 将要构造 TuplePattern 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 TuplePattern 节点时,抛出异常。
class TupleType
public class TupleType <: TypeNode {
public init()
public init(inputs: Tokens)
}
功能:表示元组类型节点。
例如 var a : (Int64, Int32)
中的 (Int64, Int32)
。
父类型:
prop lParen
public mut prop lParen: Token
功能:获取或设置 TupleType 节点中的 "(" 词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop rParen
public mut prop rParen: Token
功能:获取或设置 TupleType 节点中的 ")" 词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
prop types
public mut prop types: ArrayList<TypeNode>
功能:获取或设置 TupleType 节点中的类型节点列表。
init()
public init()
功能:构造一个默认的 TupleType 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 TupleType 对象。
参数:
异常:
- ASTException - 当输入的 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
异常:
- ASTException - 当设置的 Token 不是
=
时,抛出异常。
init()
public init()
功能:构造一个默认的 TypeAliasDecl 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 TypeAliasDecl 对象。
参数:
- inputs: Tokens - 将要构造 TypeAliasDecl 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 TypeAliasDecl 节点时,抛出异常。
class TypeConvExpr
public class TypeConvExpr <: Expr {
public init()
public init(inputs: Tokens)
}
功能:表示类型转换表达式。
用于实现若干数值类型间的转换。一个 TypeConvExpr 节点:Int8(32)
。
父类型:
prop expr
public mut prop expr: Expr
功能:获取或设置 TypeConvExpr 中进行类型转化的原始表达式。
类型:Expr
prop lParen
public mut prop lParen: Token
功能:获取或设置 TypeConvExpr 中的 "("。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop rParen
public mut prop rParen: Token
功能:获取或设置 TypeConvExpr 中的 ")"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
prop targetType
public mut prop targetType: PrimitiveType
功能:获取或设置 TypeConvExpr 中将要转换到的目标类型。
init()
public init()
功能:构造一个默认的 TypeConvExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 TypeConvExpr 对象。
参数:
- inputs: Tokens - 将要构造 TypeConvExpr 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 TypeConvExpr 节点时,抛出异常。
class TypeNode
public open class TypeNode <: Node
功能:所有类型节点的父类,继承自 Node。
父类型:
prop typeParameterName
public mut prop typeParameterName: Token
功能:获取或设置类型节点的参数,如:(p1:Int64, p2:Int64)
中的 p1
和 p2
,可能为 ILLEGAL 的词法单元。
类型:Token
prop colon
public mut prop colon: Token
功能:获取或设置 TypeNode 节点中的操作符 ":",可能为 ILLEGAL 的词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ":" 操作符时,抛出异常。
class TypePattern
public class TypePattern <: Pattern {
public init()
public init(inputs: Tokens)
}
功能:表示类型模式节点。
用于判断一个值的运行时类型是否是某个类型的子类型,如 case b: Base => 0
中的 b: Base
。
父类型:
prop colon
public mut prop colon: Token
功能:获取或设置 TypePattern 节点中的 ":" 操作符的词法单元节点。
类型:Token
异常:
- ASTException - 当设置的 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(inputs: Tokens)
功能:构造一个 TypePattern 对象。
参数:
- inputs: Tokens - 将要构造 TypePattern 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 TypePattern 节点时,抛出异常。
class UnaryExpr
public class UnaryExpr <: Expr {
public init()
public init(inputs: 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(inputs: Tokens)
功能:构造一个 UnaryExpr 对象。
参数:
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 UnaryExpr 节点时,抛出异常。
class VArrayExpr
public class VArrayExpr <: Expr {
public init()
public init(inputs: 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 中的中的初始化参数序列。
prop lParen
public mut prop lParen: Token
功能:获取或设置 VArrayExpr 中的 "("。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop rParen
public mut prop rParen: Token
功能:获取或设置 VArrayExpr 中的 ")"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
prop vArrayType
public mut prop vArrayType: VArrayType
功能:获取或设置 VArrayExpr 的 VArray 类型节点。
类型:VArrayType
init()
public init()
功能:构造一个默认的 VArrayExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 VArrayExpr 对象。
参数:
- inputs: Tokens - 将要构造 VArrayExpr 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 VArrayExpr 节点时,抛出异常。
class VArrayType
public class VArrayType <: TypeNode {
public init()
public init(inputs: Tokens)
}
功能:表示 VArray
类型节点。
使用泛型 VArray<T, size: Int64>
表示 VArray
类型。
父类型:
prop dollar
public mut prop dollar: Token
功能:获取或设置 VArrayType 节点中的操作符 $
的词法单元。
类型:Token
异常:
- ASTException - 当设置的 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
异常:
- ASTException - 当设置的 Token 不是左尖括号时,抛出异常。
prop rAngle
public mut prop rAngle: Token
功能:获取或设置 VArrayType 节点右尖括号的词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是右尖括号时,抛出异常。
prop size
public mut prop size: Token
功能:获取或设置 VArrayType 节点中类型长度的词法单元。
类型:Token
init()
public init()
功能:构造一个默认的 VArrayType 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 VArrayType 对象。
参数:
- inputs: Tokens - 将要构造 VArrayType 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 VArrayType 节点时,抛出异常。
class VarDecl
public class VarDecl <: Decl {
public init()
public init(inputs: Tokens)
}
功能:表示变量定义节点。
一个 VarDecl 节点: var a: String
,var b: Int64 = 1
。
说明:
变量的定义主要包括如下几个部分:修饰符、关键字、patternsMaybeIrrefutable、变量类型和变量初始值。
父类型:
prop assign
public mut prop assign: Token
功能:获取或设置 VarDecl 节点中的赋值操作符的位置信息。
类型:Token
异常:
- ASTException - 当设置的 Token 不是赋值操作符时,抛出异常。
prop colon
public mut prop colon: Token
功能:获取或设置 VarDecl 节点中的冒号位置信息。
类型:Token
异常:
- ASTException - 当设置的 Token 不是冒号时,抛出异常。
prop declType
public mut prop declType: TypeNode
功能:获取或设置 VarDecl 节点的变量类型。
类型:TypeNode
异常:
- ASTException - 当 VarDecl 节点没有声明变量类型时,抛出异常。
prop expr
public mut prop expr: Expr
功能:获取或设置 VarDecl 节点的变量初始化节点。
类型:Expr
异常:
- ASTException - 当 VarDecl 节点没有对变量进行初始化时,抛出异常。
prop pattern
public mut prop pattern: Pattern
功能:获取或设置 VarDecl 节点的 pattern 节点。
类型:Pattern
异常:
- ASTException - 当 VarDecl 节点没有声明 pattern 节点时,抛出异常。
init()
public init()
功能:构造一个默认的 VarDecl 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 VarDecl 对象。
参数:
异常:
- ASTException - 当输入的 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
中的 RED
为 Enum
构造器。
父类型:
prop identifier
public mut prop identifier: Token
功能:获取或设置 VarOrEnumPattern 节点中的标识符的词法单元。
类型:Token
init()
public init()
功能:构造一个默认的 VarOrEnumPattern 对象。
init(Tokens)
public init(identifier: Token)
功能:构造一个 VarOrEnumPattern 对象。
参数:
- identifier: Token - 当将要构造 VarOrEnumPattern 类型的词法单元。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 VarOrEnumPattern 节点时,抛出异常。
class VarPattern
public class VarPattern <: Pattern {
public init()
public init(identifier: Token)
}
功能:表示绑定模式节点。
使用一个合法的标识符表示,如 for (i in 1..10)
中的 i
。
父类型:
prop identifier
public mut prop identifier: Token
功能:获取或设置 VarPattern 节点中的标识符符的词法单元。
类型:Token
init()
public init()
功能:构造一个默认的 VarPattern 对象。
init(Tokens)
public init(identifier: Token)
功能:构造一个 VarPattern 对象。
参数:
- identifier: Token - 将要构造 VarPattern 类型的词法单元。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 VarPattern 节点时,抛出异常。
class Visitor
public 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(inputs: 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
异常:
- ASTException - 当设置的 Token 不是
while
关键字时,抛出异常。
prop lParen
public mut prop lParen: Token
功能:获取或设置 WhileExpr 中 while
关键字之后的 "("。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "(" 时,抛出异常。
prop rParen
public mut prop rParen: Token
功能:获取或设置 WhileExpr 中 while
关键字之后的 ")"。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 ")" 时,抛出异常。
init()
public init()
功能:构造一个默认的 WhileExpr 对象。
init(Tokens)
public init(inputs: Tokens)
功能:构造一个 WhileExpr 对象。
参数:
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 WhileExpr 节点时,抛出异常。
class WildcardExpr
public class WildcardExpr <: Expr {
public init()
public init(keyword: Tokens)
}
功能:表示通配符表达式节点。
父类型:
prop keyword
public mut prop keyword: Token
功能:获取 WildcardExpr 的 "_" 关键字。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "_" 关键字时,抛出异常。
init()
public init()
功能:构造一个默认的 WildcardExpr 对象。
init(Tokens)
public init(keyword: Tokens)
功能:构造一个 WildcardExpr 对象。
参数:
- keyword: Tokens - 将要构造 WildcardExpr 类型的词法单元集合 (Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 WildcardExpr 节点时,抛出异常。
class WildcardPattern
public class WildcardPattern <: Pattern {
public init()
public init(keyword: Tokens)
}
功能:表示通配符模式节点。
使用下划线 "_" 表示,可以匹配任意值。
父类型:
prop wildcard
public mut prop wildcard: Token
功能:获取或设置 WildcardPattern 节点中的 "_" 操作符的词法单元。
类型:Token
异常:
- ASTException - 当设置的 Token 不是 "_" 操作符时,抛出异常。
init()
public init()
功能:构造一个默认的 WildcardPattern 对象。
init(Tokens)
public init(keyword: Tokens)
功能:构造一个 WildcardPattern 对象。
参数:
- keyword: Tokens - 将要构造 WildcardPattern 类型的词法单元集合(Tokens)。
异常:
- ASTException - 当输入的 Tokens 类型无法构造为 WildcardPattern 节点时,抛出异常。