Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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表示节点位置信息。