stdx.syntax
功能介绍
syntax 包主要包含了仓颉源码的语法解析器和仓颉语法树节点,提供语法解析函数。可以将指定路径的仓颉文件或包解析为抽象语法树(Abstract Syntax Tree)节点对象。
注意:
syntax 包需要依赖
cangjie/tools/lib目录下的libcangjie-lsp动态库。
API 列表
函数
| 函数名 | 功能 |
|---|---|
| parseFile(String) | 用于解析一个文本文件,获取一个符合仓颉语法的 SourceFile 类型的抽象语法树。 |
| parsePackage(String) | 用于解析一个文件目录,获取一个符合仓颉语法的 Package 类型的抽象语法树。 |
| parseText(String) | 用于解析一个字符串文本,获取一个符合仓颉语法的抽象语法树节点。 |
| parseTokens(Tokens, Bool) | 用于解析一组词法单元,获取一个符合仓颉语法的抽象语法树节点。 |
类
| 类名 | 功能 |
|---|---|
| Annotation | 表示编译器内置的注解节点。 |
| Argument | 表示函数调用的实参节点。 |
| ArrayLiteral | 表示 Array 字面量节点。 |
| AsExpr | 表示一个类型转换表达式。 |
| AssignExpr | 表示赋值表达式节点。 |
| ASTRewriter | 语法树的通用重写器基类。 |
| ASTVisitor | 语法树的通用访问器基类。 |
| AtomicType | 表示一个基本类型节点。 |
| BinaryExpr | 表示一个二元操作表达式节点。 |
| Block | 表示块节点。 |
| Body | 表示 Class 类型、 Struct 类型、 Interface 类型以及扩展中由 {} 和内部的一组声明节点组成的结构。 |
| BreakExpr | 表示中断表达式。 |
| CallExpr | 表示函数调用节点。 |
| CatchPattern | 表示一个捕获模式。 |
| ClassDecl | 表示一个类声明节点。 |
| Comment | 表示一个注释节点。 |
| CompositeType | 表示一个复合类型节点。 |
| ConjunctionCondition | 表示原子条件的逻辑合取。 |
| ConstPattern | 表示常量模式节点。 |
| ContinueExpr | 表示继续表达式。 |
| Decl | 所有声明节点的父类,继承自 SyntaxTreeNode 节点,提供了所有声明节点的通用接口。 |
| Diagnostic | 表示仓颉语法树节点的诊断信息。 |
| DisjunctionCondition | 表示合取条件的逻辑析取。 |
| DoWhileExpr | 表示 do-while 表达式。 |
| EnumConstructor | 表示一个枚举构造器。 |
| EnumDecl | 表示一个 Enum 声明节点。 |
| EnumPattern | 表示 enum 模式节点。 |
| Expr | 所有表达式节点的父类,继承自 SyntaxTreeNode 节点。 |
| ExtendDecl | 表示一个扩展声明节点。 |
| FeatureId | 一个 feature 标识节点。 |
| FeaturesDirective | 一个 features 声明节点。 |
| FeaturesSet | 一个 feature set 节点。 |
| ForInExpr | 表示 for-in 表达式。 |
| FuncDecl | 表示一个函数声明节点。 |
| FuncParam | 表示函数参数节点,包括非命名参数和命名参数。 |
| FuncType | 表示函数类型节点。 |
| GenericConstraint | 表示一个泛型约束节点。 |
| GenericConstraints | 表示一组泛型约束。 |
| GenericParam | 表示一个泛型参数节点。 |
| IfExpr | 表示条件表达式。 |
| ImportAlias | 表示一个别名导入的包导入声明节点的具体项目。 |
| ImportAll | 表示一个全导入的包导入声明节点的具体项目。 |
| ImportContent | 表示一个包导入声明节点的具体声明内容。 |
| ImportList | 表示包导入节点。 |
| ImportMulti | 表示一个多导入的包导入声明节点的具体项目。 |
| ImportSingle | 表示一个单导入的包导入声明节点的具体项目。 |
| IncOrDecExpr | 表示包含自增操作符(++)或自减操作符(--)的表达式。 |
| InterfaceDecl | 表示接口声明节点。 |
| IsExpr | 表示一个类型检查表达式。 |
| Lambda | 表示 Lambda 表达式,是一个匿名的函数。 |
| LambdaParam | 表示 Lambda 表达式的参数。 |
| LetPattern | 表示一个 let 模式绑定表达式。 |
| LitConstExpr | 表示一个字面量表达式节点。 |
| LitConstRuneExpr | 表示一个字符字面量表达式节点。 |
| LitConstStrExpr | 表示一个字符串字面量表达式节点。 |
| MacroDecl | 表示一个宏定义节点。 |
| MacroExpandDecl | 表示宏展开声明。 |
| MacroExpandExpr | 表示宏展开表达式。 |
| MacroExpandParam | 表示宏展开参数。 |
| MainDecl | 表示一个 main 函数声明节点。 |
| MatchCase | 表示 match 表达式中的一个 case 节点。 |
| MatchExpr | 表示模式匹配表达式,用于实现模式匹配。 |
| MemberAccess | 表示成员访问表达式。 |
| Modifier | 表示某个声明的修饰符,通常放在声明处的最前端。 |
| OptionalExpr | 表示一个带有问号操作符的表达式节点。 |
| Package | 表示包节点。 |
| PackageHeader | 表示包声明节点。 |
| Parameter | 表示参数节点的父节点。 |
| ParameterList | 表示参数列表节点。 |
| ParenCondition | 表示一个括号条件节点,是指使用圆括号括起来的条件。 |
| ParenExpr | 表示一个括号表达式节点,是指使用圆括号括起来的表达式。 |
| ParenType | 表示括号类型节点。 |
| ParsingResult<T> where T <: SyntaxTreeNode | 表示一个符合仓颉语法的抽象语法树。 |
| Pattern | 所有模式匹配节点的父类,继承自 SyntaxTreeNode 节点。 |
| PrefixType | 表示带前缀操作符的前缀类型节点。 |
| PropDecl | 表示一个属性声明节点。 |
| PropGetterOrSetter | 表示一个属性的 getter 或 setter 声明。 |
| QuoteExpr | 表示 quote 表达式节点。 |
| QuoteInterpolationExpr | 表示 QuoteExpr 中由 () 括起的内部引用表达式。 |
| QuoteToken | 表示 quote 表达式节点内任意合法的 token。 |
| RangeExpr | 表示包含区间操作符的表达式。 |
| ReturnExpr | 表示 return 表达式节点。 |
| SourceFile | 表示一个仓颉源码文件节点。 |
| SpawnExpr | 表示 Spawn 表达式。 |
| StaticInit | 表示一个静态初始化器。 |
| StrInterpolationContent | 表示字符串插值内容的节点。 |
| StructDecl | 表示一个 Struct 声明节点。 |
| SubscriptExpr | 表示索引访问表达式。 |
| SymbolRef | 表示一个引用表达式节点。 |
| SynchronizedExpr | 表示 synchronized 表达式。 |
| SyntaxTreeNode | 所有仓颉语法树节点的父类。 |
| ThrowExpr | 表示一个 throw 表达式。 |
| TrailingClosureExpr | 表示尾随闭包表达式。 |
| TryCatch | 表示 try-catch 表达式节点。 |
| TupleLiteral | 表示元组字面量节点。 |
| TuplePattern | 表示 Tuple 模式节点。 |
| TupleType | 表示元组类型节点。 |
| TypeAlias | 表示类型别名节点。 |
| TypeAnnotation | 所有类型节点的父类,继承自 SyntaxTreeNode。 |
| TypeConvExpr | 表示类型转换表达式。 |
| TypePattern | 表示类型模式节点。 |
| UnaryExpr | 表示一个一元操作表达式节点。 |
| UnsafeExpr | 表示一个不安全代码块。 |
| VarDecl | 表示变量声明节点。 |
| VarOrEnumPattern | 表示当模式的标识符为 Enum 构造器时的节点。 |
| VarPattern | 表示绑定模式节点。 |
| VArrayExpr | 表示 VArray 表达式的实例节点。 |
| VArrayType | 表示 VArray 类型节点。 |
| WhileExpr | 表示 while 表达式。 |
| WildcardPattern | 表示通配符模式节点。 |
枚举
| 枚举名 | 功能 |
|---|---|
| AssignOpKind | 表示赋值操作符的类型,包括 +=、=、-=、 != 等。 |
| AtomicCondition | 表示原子类型的条件或 let 声明的解构匹配,包括 let 声明、表达式类型、有括号修饰的条件等。 |
| AtomicTypeKind | 表示原子类型的种类,包括布尔类型、整数类型、浮点类型、空类型等。 |
| AtOpKind | 表示注解操作符的种类,包括 @、@! 等。 |
| BinaryOpKind | 表示二元操作符的类型,包括 +、-、*、 / 等。 |
| CommentKind | 表示注释的类型,包括块注释、文档注释、行注释等。 |
| DiagnosticInfo | 表示语法树诊断信息的类型,包括 Warning, Error 等。 |
| FuncKind | 表示声明函数的类型,包括外部函数、普通函数、构造器函数等。 |
| ImportKind | 表示引用的类型,包括 Alias、All、Multi、Single 等 。 |
| IncOrDecOpKind | 表示自增自减表达式的操作符类型,包括 ++ 和 -- 两种类型。 |
| LitConstKind | 表示字面量表达式的类型,包括 BoolLiteral、FloatLiteral、IntergerLiteral、RuneLiteral、StringLiteral 和 UnitLiteral 六种类型。 |
| LitConstStrKind | 表示字符串字面量表达式的类型,包括 JStringLiteral、MultiLineString、MultiLineRawString 和 StringLiteral 四种类型。 |
| MacroExpandInput | 表示宏展开的输入形式,区分不同的宏调用语法形式,包括无括号和有括号形式的宏输入。 |
| ModifierKind | 表示修饰符的类型,包括 Abstract、 Internal、 Mut 等。 |
| PostActionMode | 表示控制 ASTVisitor 在访问节点完成后的行为策略,包括 Continue、Stop 等。 |
| PreActionMode | 表示控制 ASTVisitor 在访问节点前的行为策略,包括 Continue、Skip、Stop 等。 |
| PrefixTypeOpKind | 表示前缀类型中的前缀操作符类型,包括 ? 等。 |
| QuoteExprContent | 表示 quote 表达式中由 () 括起的内容类型,包括 QuoteToken 和 QuoteInterpolationExpr 两种。 |
| RangeKind | 表示区间表达式的操作符类型,包括 : 和 := 两种。 |
| StrLiteralPart | 表示字符串字面量的不同部分,包括常量部分和字符串插值部分。 |
| UnaryOpKind | 表示一元表达式的操作符类型,包括 ! 和 - 两种。 |
| VarKind | 表示变量声明表达式的类型,包括 Const、 Let 和 Var 三种。 |
结构体
| 结构体名 | 功能 |
|---|---|
| CodePositionRange | 表示节点位置信息。 |