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 表示一个属性的 gettersetter 声明。
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 表示引用的类型,包括 AliasAllMultiSingle 等 。
IncOrDecOpKind 表示自增自减表达式的操作符类型,包括 ++-- 两种类型。
LitConstKind 表示字面量表达式的类型,包括 BoolLiteralFloatLiteralIntergerLiteralRuneLiteralStringLiteralUnitLiteral 六种类型。
LitConstStrKind 表示字符串字面量表达式的类型,包括 JStringLiteralMultiLineStringMultiLineRawStringStringLiteral 四种类型。
MacroExpandInput 表示宏展开的输入形式,区分不同的宏调用语法形式,包括无括号和有括号形式的宏输入。
ModifierKind 表示修饰符的类型,包括 AbstractInternalMut 等。
PostActionMode 表示控制 ASTVisitor 在访问节点完成后的行为策略,包括 ContinueStop 等。
PreActionMode 表示控制 ASTVisitor 在访问节点前的行为策略,包括 ContinueSkipStop 等。
PrefixTypeOpKind 表示前缀类型中的前缀操作符类型,包括 ? 等。
QuoteExprContent 表示 quote 表达式中由 () 括起的内容类型,包括 QuoteTokenQuoteInterpolationExpr 两种。
RangeKind 表示区间表达式的操作符类型,包括 ::= 两种。
StrLiteralPart 表示字符串字面量的不同部分,包括常量部分和字符串插值部分。
UnaryOpKind 表示一元表达式的操作符类型,包括 !- 两种。
VarKind 表示变量声明表达式的类型,包括 ConstLetVar 三种。

结构体

结构体名 功能
CodePositionRange 表示节点位置信息。