c_wrapper

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