枚举
enum DiagReportLevel
public enum DiagReportLevel {
| ERROR
| WARNING
}
功能:表示报错接口的信息等级,支持 ERROR 和 WARNING 两种等级。
ERROR
ERROR
功能:构造一个表示 ERROR 的枚举实例。
WARNING
WARNING
功能:构造一个表示 WARNING 的枚举实例。
func level()
public func level(): Int32
功能:返回枚举值对应的整型。
返回值:
- Int32 - 枚举值对应的整型。
ERROR返回 0,WARNING返回 1。
示例:
import std.ast.*
main(): Unit {
// 创建 DiagReportLevel
let levelError = DiagReportLevel.ERROR
let levelWarning = DiagReportLevel.WARNING
// 输出枚举值对应的整型值
println("levelError.level(): ${levelError.level()}")
println("levelWarning.level(): ${levelWarning.level()}")
}
运行结果:
levelError.level(): 0
levelWarning.level(): 1
enum ImportKind
public enum ImportKind <: ToString {
| Single
| Alias
| All
| Multi
}
功能:表示导入语句的类型。
父类型:
Single
Single
功能:表示单导入,如 import a.b。
Alias
Alias
功能:表示别名导入,如 import a.b as c。
All
All
功能:表示全导入,如 import a.b.*。
Multi
Multi
功能:表示多导入,如 import a.{b, c, d}。
func toString()
public func toString(): String
功能:将 ImportKind 类型转化为字符串类型表示。
返回值:
- String - ImportKind 转换后的字符串值。
示例:
import std.ast.*
main(): Unit {
// 创建 ImportKind
let kind0 = ImportKind.Alias
let kind1 = ImportKind.All
let kind2 = ImportKind.Multi
let kind3 = ImportKind.Single
// 输出枚举值的字符串表示
println("kind0.toString(): ${kind0.toString()}")
println("kind1.toString(): ${kind1.toString()}")
println("kind2.toString(): ${kind2.toString()}")
println("kind3.toString(): ${kind3.toString()}")
}
运行结果:
kind0.toString(): Alias
kind1.toString(): All
kind2.toString(): Multi
kind3.toString(): Single
enum TokenKind
public enum TokenKind <: ToString {
| DOT /* "." */
| COMMA /* "," */
| LPAREN /* "(" */
| RPAREN /* ")" */
| LSQUARE /* "[" */
| RSQUARE /* "]" */
| LCURL /* "{" */
| RCURL /* "}" */
| EXP /* "**" */
| MUL /* "*" */
| MOD /* "%" */
| DIV /* "/" */
| ADD /* "+" */
| SUB /* "-" */
| INCR /* "++" */
| DECR /* "--" */
| AND /* "&&" */
| OR /* "||" */
| COALESCING /* "??" */
| PIPELINE /* "|>" */
| COMPOSITION /* "~>" */
| NOT /* "!" */
| BITAND /* "&" */
| BITOR /* "|" */
| BITXOR /* "^" */
| BITNOT /* "~" */
| LSHIFT /* "<<" */
| RSHIFT /* ">>" */
| COLON /* ":" */
| SEMI /* ";" */
| ASSIGN /* "=" */
| ADD_ASSIGN /* "+=" */
| SUB_ASSIGN /* "-=" */
| MUL_ASSIGN /* "*=" */
| EXP_ASSIGN /* "**=" */
| DIV_ASSIGN /* "/=" */
| MOD_ASSIGN /* "%=" */
| AND_ASSIGN /* "&&=" */
| OR_ASSIGN /* "||=" */
| BITAND_ASSIGN /* "&=" */
| BITOR_ASSIGN /* "|=" */
| BITXOR_ASSIGN /* "^=" */
| LSHIFT_ASSIGN /* "<<=" */
| RSHIFT_ASSIGN /* ">>=" */
| ARROW /* "->" */
| BACKARROW /* "<-" */
| DOUBLE_ARROW /* "=>" */
| RANGEOP /* ".." */
| CLOSEDRANGEOP /* "..=" */
| ELLIPSIS /* "..." */
| HASH /* "#" */
| AT /* "@" */
| QUEST /* "?" */
| LT /* "<" */
| GT /* ">" */
| LE /* "<=" */
| GE /* ">=" */
| IS /* "is" */
| AS /* "as" */
| NOTEQ /* "!=" */
| EQUAL /* "==" */
| WILDCARD /* "_" */
| INT8 /* "Int8" */
| INT16 /* "Int16" */
| INT32 /* "Int32" */
| INT64 /* "Int64" */
| INTNATIVE /* "IntNative" */
| UINT8 /* "UInt8" */
| UINT16 /* "UInt16" */
| UINT32 /* "UInt32" */
| UINT64 /* "UInt64" */
| UINTNATIVE /* "UIntNative" */
| FLOAT16 /* "Float16" */
| FLOAT32 /* "Float32" */
| FLOAT64 /* "Float64" */
| RUNE /* "Rune" */
| BOOLEAN /* "Bool" */
| NOTHING /* "Nothing" */
| UNIT /* "Unit" */
| STRUCT /* "struct" */
| ENUM /* "enum" */
| VARRAY /* "VArray" */
| THISTYPE /* "This" */
| PACKAGE /* "package" */
| IMPORT /* "import" */
| CLASS /* "class" */
| INTERFACE /* "interface" */
| FUNC /* "func" */
| MACRO /* "macro" */
| QUOTE /* "quote" */
| DOLLAR /* "$" */
| LET /* "let" */
| VAR /* "var" */
| CONST /* "const" */
| TYPE /* "type" */
| INIT /* "init" */
| THIS /* "this" */
| SUPER /* "super" */
| IF /* "if" */
| ELSE /* "else" */
| CASE /* "case" */
| TRY /* "try" */
| CATCH /* "catch" */
| FINALLY /* "finally" */
| FOR /* "for" */
| DO /* "do" */
| WHILE /* "while" */
| THROW /* "throw" */
| RETURN /* "return" */
| CONTINUE /* "continue" */
| BREAK /* "break" */
| IN /* "in" */
| NOT_IN /* "!in" */
| MATCH /* "match" */
| WHERE /* "where" */
| EXTEND /* "extend" */
| WITH /* "with" */
| PROP /* "prop" */
| STATIC /* "static" */
| PUBLIC /* "public" */
| PRIVATE /* "private" */
| INTERNAL /* "internal" */
| PROTECTED /* "protected" */
| OVERRIDE /* "override" */
| REDEF /* "redef" */
| ABSTRACT /* "abstract" */
| SEALED /* "sealed" */
| OPEN /* "open" */
| FOREIGN /* "foreign" */
| INOUT /* "inout" */
| MUT /* "mut" */
| UNSAFE /* "unsafe" */
| OPERATOR /* "operator" */
| SPAWN /* "spawn" */
| SYNCHRONIZED /* "synchronized" */
| UPPERBOUND /* "<:" */
| MAIN /* "main" */
| IDENTIFIER /* "x" */
| PACKAGE_IDENTIFIER /* e.g. "x-y" */
| INTEGER_LITERAL /* e.g. "1" */
| RUNE_BYTE_LITERAL /* e.g. "b'x'" */
| FLOAT_LITERAL /* e.g. "'1.0'" */
| COMMENT /* e.g. "/*xx*/" */
| NL /* newline */
| END /* end of file */
| SENTINEL /* ";" */
| RUNE_LITERAL /* e.g. "r'x'" */
| STRING_LITERAL /* e.g. ""xx"" */
| SINGLE_QUOTED_STRING_LITERAL /* e.g. "'xx'" */
| JSTRING_LITERAL /* e.g. "J"xx"" */
| MULTILINE_STRING /* e.g. """"aaa"""" */
| MULTILINE_RAW_STRING /* e.g. "#"aaa"#" */
| BOOL_LITERAL /* "true" or "false" */
| UNIT_LITERAL /* "()" */
| DOLLAR_IDENTIFIER /* e.g. "$x" */
| ANNOTATION /* e.g. "@When" */
| AT_EXCL /* e.g. "@!" */
| ILLEGAL
| COMMON /* "common" */
| SPECIFIC /* "specific" */
| HANDLE /* "handle" */
| PERFORM /* "perform" */
| RESUME /* "resume" */
| THROWING /* "throwing" */
| DOUBLE_COLON /* "::" */
| FEATURES /* "features" */
| ...
}
功能:表示仓颉编译内部所有的词法结构,包括符号、关键字、标识符、换行等。
父类型:
ABSTRACT
ABSTRACT
功能:构造一个表示 abstract 的枚举实例。
ADD
ADD
功能:构造一个表示 + 的枚举实例。
ADD_ASSIGN
ADD_ASSIGN
功能:构造一个表示 += 的枚举实例。
AND
AND
功能:构造一个表示 && 的枚举实例。
AND_ASSIGN
AND_ASSIGN
功能:构造一个表示 &&= 的枚举实例。
ANNOTATION
ANNOTATION
功能:构造一个表示注解的枚举实例。
ARROW
ARROW
功能:构造一个表示 -> 的枚举实例。
AS
AS
功能:构造一个表示 as 的枚举实例。
ASSIGN
ASSIGN
功能:构造一个表示 = 的枚举实例。
AT
AT
功能:构造一个表示 @ 的枚举实例。
AT_EXCL
AT_EXCL
功能:构造一个表示 @! 的枚举实例。
BACKARROW
BACKARROW
功能:构造一个表示 <- 的枚举实例。
BITAND
BITAND
功能:构造一个表示 & 的枚举实例。
BITAND_ASSIGN
BITAND_ASSIGN
功能:构造一个表示 &= 的枚举实例。
BITNOT
BITNOT
功能:构造一个表示 ~ 的枚举实例。
BITOR
BITOR
功能:构造一个表示 | 的枚举实例。
BITOR_ASSIGN
BITOR_ASSIGN
功能:构造一个表示 |= 的枚举实例。
BITXOR
BITXOR
功能:构造一个表示 ^ 的枚举实例。
BITXOR_ASSIGN
BITXOR_ASSIGN
功能:构造一个表示 ^= 的枚举实例。
BOOLEAN
BOOLEAN
功能:构造一个表示 bool 的枚举实例。
BOOL_LITERAL
BOOL_LITERAL
功能:构造一个表示布尔类型字面量的枚举实例。
BREAK
BREAK
功能:构造一个表示 break 的枚举实例。
CASE
CASE
功能:构造一个表示 case 的枚举实例。
CATCH
CATCH
功能:构造一个表示 catch 的枚举实例。
CLASS
CLASS
功能:构造一个表示 class 的枚举实例。
CLOSEDRANGEOP
CLOSEDRANGEOP
功能:构造一个表示 ..= 的枚举实例。
COALESCING
COALESCING
功能:构造一个表示 ?? 的枚举实例。
COLON
COLON
功能:构造一个表示 : 的枚举实例。
COMMA
COMMA
功能:构造一个表示 , 的枚举实例。
COMMON
COMMON
功能:构造一个表示 common 关键字的枚举实例。
COMMENT
COMMENT
功能:构造一个表示注释的枚举实例。
COMPOSITION
COMPOSITION
功能:构造一个表示 ~> 的枚举实例。
CONST
CONST
功能:构造一个表示 const 的枚举实例。
CONTINUE
CONTINUE
功能:构造一个表示 continue 的枚举实例。
DECR
DECR
功能:构造一个表示 -- 的枚举实例。
DIV
DIV
功能:构造一个表示 / 的枚举实例。
DIV_ASSIGN
DIV_ASSIGN
功能:构造一个表示 /= 的枚举实例。
DO
DO
功能:构造一个表示 do 的枚举实例。
DOLLAR
DOLLAR
功能:构造一个表示 $ 的枚举实例。
DOLLAR_IDENTIFIER
DOLLAR_IDENTIFIER
功能:构造一个表示插值字符串的枚举实例。
DOT
DOT
功能:构造一个表示 . 的枚举实例。
DOUBLE_ARROW
DOUBLE_ARROW
功能:构造一个表示 => 的枚举实例。
DOUBLE_COLON
DOUBLE_COLON
功能:构造一个表示 :: 的枚举实例。
ELLIPSIS
ELLIPSIS
功能:构造一个表示 ... 的枚举实例。
ELSE
ELSE
功能:构造一个表示 else 的枚举实例。
END
END
功能:构造一个表示 EOF 的枚举实例。
ENUM
ENUM
功能:构造一个表示 enum 的枚举实例。
EQUAL
EQUAL
功能:构造一个表示 == 的枚举实例。
EXP
EXP
功能:构造一个表示 ** 的枚举实例。
EXP_ASSIGN
EXP_ASSIGN
功能:构造一个表示 **= 的枚举实例。
EXTEND
EXTEND
功能:构造一个表示 extend 的枚举实例。
FINALLY
FINALLY
功能:构造一个表示 finally 的枚举实例。
FEATURES
FEATURES
功能:构造一个表示 features 关键字的枚举实例。
FLOAT16
FLOAT16
功能:构造一个表示 float16 的枚举实例。
FLOAT32
FLOAT32
功能:构造一个表示 float32 的枚举实例。
FLOAT64
FLOAT64
功能:构造一个表示 float64 的枚举实例。
FLOAT_LITERAL
FLOAT_LITERAL
功能:构造一个表示浮点字面量的枚举实例。
FOR
FOR
功能:构造一个表示 for 的枚举实例。
FOREIGN
FOREIGN
功能:构造一个表示 foreign 的枚举实例。
FUNC
FUNC
功能:构造一个表示 func 的枚举实例。
GE
GE
功能:构造一个表示 >= 的枚举实例。
GT
GT
功能:构造一个表示 > 的枚举实例。
HANDLE
HANDLE
功能:构造一个表示 handle 的枚举实例。
HASH
HASH
功能:构造一个表示 # 的枚举实例。
IDENTIFIER
IDENTIFIER
功能:构造一个表示标识符的枚举实例。
PACKAGE_IDENTIFIER
PACKAGE_IDENTIFIER
功能:构造一个表示包标识符的枚举实例。
IF
IF
功能:构造一个表示 if 的枚举实例。
ILLEGAL
ILLEGAL
功能:构造一个表示非法的枚举实例。
IMPORT
IMPORT
功能:构造一个表示 import 的枚举实例。
IN
IN
功能:构造一个表示 in 的枚举实例。
INCR
INCR
功能:构造一个表示 ++ 的枚举实例。
INIT
INIT
功能:构造一个表示 init 的枚举实例。
INOUT
INOUT
功能:构造一个表示 inout 的枚举实例。
INT16
INT16
功能:构造一个表示 int16 的枚举实例。
INT32
INT32
功能:构造一个表示 int32 的枚举实例。
INT64
INT64
功能:构造一个表示 int64 的枚举实例。
INT8
INT8
功能:构造一个表示 int8 的枚举实例。
INTEGER_LITERAL
INTEGER_LITERAL
功能:构造一个表示整型字面量的枚举实例。
INTERFACE
INTERFACE
功能:构造一个表示 interface 的枚举实例。
INTERNAL
INTERNAL
功能:构造一个表示 internal 的枚举实例。
INTNATIVE
INTNATIVE
功能:构造一个表示 intnative 的枚举实例。
IS
IS
功能:构造一个表示 is 的枚举实例。
JSTRING_LITERAL
JSTRING_LITERAL
功能:构造一个表示 Java String 字面量的枚举实例。
LCURL
LCURL
功能:构造一个表示 { 的枚举实例。
LE
LE
功能:构造一个表示 <= 的枚举实例。
LET
LET
功能:构造一个表示 let 的枚举实例。
LPAREN
LPAREN
功能:构造一个表示 ( 的枚举实例。
LSHIFT
LSHIFT
功能:构造一个表示 << 的枚举实例。
LSHIFT_ASSIGN
LSHIFT_ASSIGN
功能:构造一个表示 <<= 的枚举实例。
LSQUARE
LSQUARE
功能:构造一个表示 [ 的枚举实例。
LT
LT
功能:构造一个表示 < 的枚举实例。
MACRO
MACRO
功能:构造一个表示 macro 的枚举实例。
MAIN
MAIN
功能:构造一个表示 main 的枚举实例。
MATCH
MATCH
功能:构造一个表示 match 的枚举实例。
MOD
MOD
功能:构造一个表示 % 的枚举实例。
MOD_ASSIGN
MOD_ASSIGN
功能:构造一个表示 %= 的枚举实例。
MUL
MUL
功能:构造一个表示 * 的枚举实例。
MULTILINE_RAW_STRING
MULTILINE_RAW_STRING
功能:构造一个表示多行原始字符串字面量的枚举实例。
MULTILINE_STRING
MULTILINE_STRING
功能:构造一个表示多行字符串字面量的枚举实例。
MUL_ASSIGN
MUL_ASSIGN
功能:构造一个表示 *= 的枚举实例。
MUT
MUT
功能:构造一个表示 mut 的枚举实例。
NL
NL
功能:构造一个表示换行符的枚举实例。
NOT
NOT
功能:构造一个表示 ! 的枚举实例。
NOTEQ
NOTEQ
功能:构造一个表示 != 的枚举实例。
NOTHING
NOTHING
功能:构造一个表示 nothing 的枚举实例。
NOT_IN
NOT_IN
功能:构造一个表示 !in 的枚举实例。
OPEN
OPEN
功能:构造一个表示 open 的枚举实例。
OPERATOR
OPERATOR
功能:构造一个表示 operator 的枚举实例。
OR
OR
功能:构造一个表示 || 的枚举实例。
OR_ASSIGN
OR_ASSIGN
功能:构造一个表示 ||= 的枚举实例。
OVERRIDE
OVERRIDE
功能:构造一个表示 override 的枚举实例。
PACKAGE
PACKAGE
功能:构造一个表示 package 的枚举实例。
PERFORM
PERFORM
功能:构造一个表示 perform 的枚举实例。
PLATFORM
PLATFORM
功能:构造一个表示 platform 关键字的枚举实例。
PIPELINE
PIPELINE
功能:构造一个表示 |> 的枚举实例。
PRIVATE
PRIVATE
功能:构造一个表示 private 的枚举实例。
PROP
PROP
功能:构造一个表示 prop 的枚举实例。
PROTECTED
PROTECTED
功能:构造一个表示 protected 的枚举实例。
PUBLIC
PUBLIC
功能:构造一个表示 public 的枚举实例。
QUEST
QUEST
功能:构造一个表示 ? 的枚举实例。
QUOTE
QUOTE
功能:构造一个表示 quote 的枚举实例。
RANGEOP
RANGEOP
功能:构造一个表示 .. 的枚举实例。
RCURL
RCURL
功能:构造一个表示 } 的枚举实例。
REDEF
REDEF
功能:构造一个表示 redef 的枚举实例。
RESUME
RESUME
功能:构造一个表示 resume 的枚举实例。
RETURN
RETURN
功能:构造一个表示 return 的枚举实例。
RPAREN
RPAREN
功能:构造一个表示 ) 的枚举实例。
RSHIFT
RSHIFT
功能:构造一个表示 >> 的枚举实例。
RSHIFT_ASSIGN
RSHIFT_ASSIGN
功能:构造一个表示 >>= 的枚举实例。
RSQUARE
RSQUARE
功能:构造一个表示 ] 的枚举实例。
RUNE
RUNE
功能:构造一个表示 Rune 的枚举实例。
RUNE_BYTE_LITERAL
RUNE_BYTE_LITERAL
功能:构造一个表示字符字节字面量的枚举实例。
RUNE_LITERAL
RUNE_LITERAL
功能:构造一个表示字符字面量的枚举实例。
SEALED
SEALED
功能:构造一个表示 sealed 的枚举实例。
SEMI
SEMI
功能:构造一个表示 ; 的枚举实例。
SENTINEL
SENTINEL
功能:构造一个表示 ; 的枚举实例。
SINGLE_QUOTED_STRING_LITERAL
SINGLE_QUOTED_STRING_LITERAL
功能:构造一个表示单引号字符串字面量的枚举实例。
SPAWN
SPAWN
功能:构造一个表示 spawn 的枚举实例。
STATIC
STATIC
功能:构造一个表示 static 的枚举实例。
STRING_LITERAL
STRING_LITERAL
功能:构造一个表示双引号字符串字面量的枚举实例。
STRUCT
STRUCT
功能:构造一个表示 struct 的枚举实例。
SUB
SUB
功能:构造一个表示 - 的枚举实例。
SUB_ASSIGN
SUB_ASSIGN
功能:构造一个表示 -= 的枚举实例。
SUPER
SUPER
功能:构造一个表示 super 的枚举实例。
SYNCHRONIZED
SYNCHRONIZED
功能:构造一个表示 synchronized 的枚举实例。
SPECIFIC
SPECIFIC
功能:构造一个表示 specific 的枚举实例。
THIS
THIS
功能:构造一个表示 this 的枚举实例。
THISTYPE
THISTYPE
功能:构造一个表示 This 的枚举实例。
THROW
THROW
功能:构造一个表示 throw 的枚举实例。
THROWING
THROWING
功能:构造一个表示 throwing 的枚举实例。
TRY
TRY
功能:构造一个表示 try 的枚举实例。
TYPE
TYPE
功能:构造一个表示 type 的枚举实例。
UINT16
UINT16
功能:构造一个表示 uint16 的枚举实例。
UINT32
UINT32
功能:构造一个表示 uint32 的枚举实例。
UINT64
UINT64
功能:构造一个表示 uint64 的枚举实例。
UINT8
UINT8
功能:构造一个表示 uint8 的枚举实例。
UINTNATIVE
UINTNATIVE
功能:构造一个表示 uintnative 的枚举实例。
UNIT
UNIT
功能:构造一个表示 unit 的枚举实例。
UNIT_LITERAL
UNIT_LITERAL
功能:构造一个表示 unit 字面量的枚举实例。
UNSAFE
UNSAFE
功能:构造一个表示 unsafe 的枚举实例。
UPPERBOUND
UPPERBOUND
功能:构造一个表示 <: 的枚举实例。
VAR
VAR
功能:构造一个表示 var 的枚举实例。
VARRAY
VARRAY
功能:构造一个表示 varray 的枚举实例。
WHERE
WHERE
功能:构造一个表示 where 的枚举实例。
WHILE
WHILE
功能:构造一个表示 while 的枚举实例。
WILDCARD
WILDCARD
功能:构造一个表示 _ 的枚举实例。
WITH
WITH
功能:构造一个表示 with 的枚举实例。
operator func !=(TokenKind)
public operator func !=(right: TokenKind): Bool
功能:重载不等号操作符,用于比较两个 TokenKind 是否相等。
参数:
- right: TokenKind - 待比较的枚举实例。
返回值:
- Bool - 布尔类型。
示例:
import std.ast.*
main(): Unit {
// 创建 TokenKind
let identifierKind = TokenKind.IDENTIFIER
let atExclKind = TokenKind.AT_EXCL
println("identifierKind != identifierKind: ${identifierKind != identifierKind}")
println("identifierKind != atExclKind: ${identifierKind != atExclKind}")
}
运行结果:
identifierKind != identifierKind: false
identifierKind != atExclKind: true
operator func ==(TokenKind)
public operator func ==(right: TokenKind): Bool
功能:重载等号操作符,用于比较两个 TokenKind 是否相等。
参数:
- right: TokenKind - 待比较的枚举实例。
返回值:
- Bool - 布尔类型。
示例:
import std.ast.*
main(): Unit {
// 创建 TokenKind
let identifierKind = TokenKind.IDENTIFIER
let atExclKind = TokenKind.AT_EXCL
println("identifierKind == identifierKind: ${identifierKind == identifierKind}")
println("identifierKind == atExclKind: ${identifierKind == atExclKind}")
}
运行结果:
identifierKind == identifierKind: true
identifierKind == atExclKind: false
func toString()
public func toString(): String
功能:将 TokenKind 类型转化为字符串类型表示。
返回值:
示例:
import std.ast.*
main(): Unit {
// 创建 TokenKind
let identifierKind = TokenKind.IDENTIFIER
let atExclKind = TokenKind.AT_EXCL
println("identifierKind.toString(): ${identifierKind.toString()}")
println("atExclKind.toString(): ${atExclKind.toString()}")
}
运行结果:
identifierKind.toString(): IDENTIFIER
atExclKind.toString(): AT_EXCLAMATION