Types
CNodeKind = enum cAbstractDeclarator, ## _abstract_declarator cDeclarator, ## _declarator cExpression, ## _expression cFieldDeclarator, ## _field_declarator cStatement, ## _statement cTypeDeclarator, ## _type_declarator cTypeSpecifier, ## _type_specifier cAbstractArrayDeclarator, ## abstract_array_declarator cAbstractFunctionDeclarator, ## abstract_function_declarator cAbstractParenthesizedDeclarator, ## abstract_parenthesized_declarator cAbstractPointerDeclarator, ## abstract_pointer_declarator cArgumentList, ## argument_list cArrayDeclarator, ## array_declarator cAssignmentExpression, ## assignment_expression cAttributeSpecifier, ## attribute_specifier cBinaryExpression, ## binary_expression cBitfieldClause, ## bitfield_clause cBreakStatement, ## break_statement cCallExpression, ## call_expression cCaseStatement, ## case_statement cCastExpression, ## cast_expression cCharLiteral, ## char_literal cCommaExpression, ## comma_expression cCompoundLiteralExpression, ## compound_literal_expression cCompoundStatement, ## compound_statement cConcatenatedString, ## concatenated_string cConditionalExpression, ## conditional_expression cContinueStatement, ## continue_statement cDeclaration, ## declaration cDeclarationList, ## declaration_list cDoStatement, ## do_statement cEnumSpecifier, ## enum_specifier cEnumerator, ## enumerator cEnumeratorList, ## enumerator_list cExpressionStatement, ## expression_statement cFieldDeclaration, ## field_declaration cFieldDeclarationList, ## field_declaration_list cFieldDesignator, ## field_designator cFieldExpression, ## field_expression cForStatement, ## for_statement cFunctionDeclarator, ## function_declarator cFunctionDefinition, ## function_definition cGotoStatement, ## goto_statement cIfStatement, ## if_statement cInitDeclarator, ## init_declarator cInitializerList, ## initializer_list cInitializerPair, ## initializer_pair cLabeledStatement, ## labeled_statement cLinkageSpecification, ## linkage_specification cMacroTypeSpecifier, ## macro_type_specifier cMsBasedModifier, ## ms_based_modifier cMsCallModifier, ## ms_call_modifier cMsDeclspecModifier, ## ms_declspec_modifier cMsPointerModifier, ## ms_pointer_modifier cMsUnalignedPtrModifier, ## ms_unaligned_ptr_modifier cParameterDeclaration, ## parameter_declaration cParameterList, ## parameter_list cParenthesizedDeclarator, ## parenthesized_declarator cParenthesizedExpression, ## parenthesized_expression cPointerDeclarator, ## pointer_declarator cPointerExpression, ## pointer_expression cPreprocCall, ## preproc_call cPreprocDef, ## preproc_def cPreprocDefined, ## preproc_defined cPreprocElif, ## preproc_elif cPreprocElse, ## preproc_else cPreprocFunctionDef, ## preproc_function_def cPreprocIf, ## preproc_if cPreprocIfdef, ## preproc_ifdef cPreprocInclude, ## preproc_include cPreprocParams, ## preproc_params cReturnStatement, ## return_statement cSizedTypeSpecifier, ## sized_type_specifier cSizeofExpression, ## sizeof_expression cStorageClassSpecifier, ## storage_class_specifier cStringLiteral, ## string_literal cStructSpecifier, ## struct_specifier cSubscriptDesignator, ## subscript_designator cSubscriptExpression, ## subscript_expression cSwitchStatement, ## switch_statement cTranslationUnit, ## translation_unit cTypeDefinition, ## type_definition cTypeDescriptor, ## type_descriptor cTypeQualifier, ## type_qualifier cUnaryExpression, ## unary_expression cUnionSpecifier, ## union_specifier cUpdateExpression, ## update_expression cWhileStatement, ## while_statement cNewlineTok, ## ## cExclamationTok, ## ! cExclamationEqualTok, ## != cQuoteTok, ## " cHashdefineTok, ## #define cHashelifTok, ## #elif cHashelseTok, ## #else cHashendifTok, ## #endif cHashifTok, ## #if cHashifdefTok, ## #ifdef cHashifndefTok, ## #ifndef cHashincludeTok, ## #include cPercentTok, ## % cPercentEqualTok, ## %= cAmpersandTok, ## & cDoubleAmpersandTok, ## && cAmpersandEqualTok, ## &= cApostropheTok, ## ' cLParTok, ## ( cRParTok, ## ) cAsteriskTok, ## * cAsteriskEqualTok, ## *= cPlusTok, ## + cDoublePlusTok, ## ++ cPlusEqualTok, ## += cCommaTok, ## , cMinusTok, ## - cDoubleMinusTok, ## -- cMinusEqualTok, ## -= cMinusGreaterThanTok, ## -> cDotTok, ## . cTripleDotTok, ## ... cSlashTok, ## / cSlashEqualTok, ## /= cColonTok, ## : cSemicolonTok, ## ; cLessThanTok, ## < cDoubleLessThanTok, ## << cDoubleLessThanEqualTok, ## <<= cLessThanEqualTok, ## <= cEqualTok, ## = cDoubleEqualTok, ## == cGreaterThanTok, ## > cGreaterThanEqualTok, ## >= cDoubleGreaterThanTok, ## >> cDoubleGreaterThanEqualTok, ## >>= cQuestionTok, ## ? cLQuoteTok, ## L" cLApostropheTok, ## L' cUQuoteTok, ## U" cUApostropheTok, ## U' cLBrackTok, ## [ cRBrackTok, ## ] cAccentTok, ## ^ cAccentEqualTok, ## ^= cAtomicTok, ## _Atomic cAttributeTok, ## __attribute__ cBasedTok, ## __based cCdeclTok, ## __cdecl cClrcallTok, ## __clrcall cDeclspecTok, ## __declspec cFastcallTok, ## __fastcall cStdcallTok, ## __stdcall cThiscallTok, ## __thiscall cUnalignedTok, ## __unaligned cVectorcallTok, ## __vectorcall cAutoTok, ## auto cBreakTok, ## break cCaseTok, ## case cComment, ## comment cConstTok, ## const cContinueTok, ## continue cDefaultTok, ## default cDefinedTok, ## defined cDoTok, ## do cElseTok, ## else cEnumTok, ## enum cEscapeSequence, ## escape_sequence cExternTok, ## extern cFalse, ## false cFieldIdentifier, ## field_identifier cForTok, ## for cGotoTok, ## goto cIdentifier, ## identifier cIfTok, ## if cInlineTok, ## inline cLongTok, ## long cMsRestrictModifier, ## ms_restrict_modifier cMsSignedPtrModifier, ## ms_signed_ptr_modifier cMsUnsignedPtrModifier, ## ms_unsigned_ptr_modifier cNull, ## null cNumberLiteral, ## number_literal cPreprocArg, ## preproc_arg cPreprocDirective, ## preproc_directive cPrimitiveType, ## primitive_type cRegisterTok, ## register cRestrictTok, ## restrict cReturnTok, ## return cShortTok, ## short cSignedTok, ## signed cSizeofTok, ## sizeof cStatementIdentifier, ## statement_identifier cStaticTok, ## static cStructTok, ## struct cSwitchTok, ## switch cSystemLibString, ## system_lib_string cTrue, ## true cTypeIdentifier, ## type_identifier cTypedefTok, ## typedef cU8QuoteTok, ## u8" cU8ApostropheTok, ## u8' cUnionTok, ## union cUnsignedTok, ## unsigned cVolatileTok, ## volatile cWhileTok, ## while cLCurlyTok, ## { cPipeTok, ## | cPipeEqualTok, ## |= cDoublePipeTok, ## || cRCurlyTok, ## } cTildeTok, ## ~ cSyntaxError ## Tree-sitter parser syntax error
TsCNode = distinct TSNode
CParser = distinct PtsParser
CNode = HtsNode[TsCNode, CNodeKind]
Procs
proc kind(node: TsCNode): CNodeKind {...}{.noSideEffect, raises: [Exception], tags: [RootEffect].}
proc tsNodeType(node: TsCNode): string {...}{.raises: [], tags: [].}
proc newTsCParser(): CParser {...}{.raises: [], tags: [].}
proc parseString(parser: CParser; str: string): TsCNode {...}{.raises: [], tags: [].}
proc parseTsCString(str: string): TsCNode {...}{.raises: [], tags: [].}
proc treeReprTsC(str: string; unnamed: bool = false): string {...}{. raises: [ValueError, Exception, NilArgumentError], tags: [RootEffect].}
proc toHtsNode(node: TsCNode; str: ptr string): HtsNode[TsCNode, CNodeKind] {...}{. raises: [NilArgumentError, Exception], tags: [RootEffect].}
proc toHtsTree(node: TsCNode; str: ptr string): CNode {...}{. raises: [NilArgumentError, Exception], tags: [RootEffect].}
proc parseCString(str: ptr string; unnamed: bool = false): CNode {...}{. raises: [NilArgumentError, Exception], tags: [RootEffect].}
proc parseCString(str: string; unnamed: bool = false): CNode {...}{. raises: [NilArgumentError, Exception], tags: [RootEffect].}
Funcs
func isNil(node: TsCNode): bool {...}{.raises: [], tags: [].}
func len(node: TsCNode; unnamed: bool = false): int {...}{.raises: [], tags: [].}
func has(node: TsCNode; idx: int; unnamed: bool = false): bool {...}{.raises: [], tags: [].}
func `$`(node: TsCNode): string {...}{.raises: [Exception], tags: [RootEffect].}
func `[]`(node: TsCNode; idx: int; kind: CNodeKind | set[CNodeKind]): TsCNode