Types
GoNodeKind = enum goExpression, ## _expression goSimpleStatement, ## _simple_statement goSimpleType, ## _simple_type goStatement, ## _statement goType, ## _type goArgumentList, ## argument_list goArrayType, ## array_type goAssignmentStatement, ## assignment_statement goBinaryExpression, ## binary_expression goBlock, ## block goBreakStatement, ## break_statement goCallExpression, ## call_expression goChannelType, ## channel_type goCommunicationCase, ## communication_case goCompositeLiteral, ## composite_literal goConstDeclaration, ## const_declaration goConstSpec, ## const_spec goContinueStatement, ## continue_statement goDecStatement, ## dec_statement goDefaultCase, ## default_case goDeferStatement, ## defer_statement goDot, ## dot goElement, ## element goEmptyStatement, ## empty_statement goExpressionCase, ## expression_case goExpressionList, ## expression_list goExpressionSwitchStatement, ## expression_switch_statement goFallthroughStatement, ## fallthrough_statement goFieldDeclaration, ## field_declaration goFieldDeclarationList, ## field_declaration_list goForClause, ## for_clause goForStatement, ## for_statement goFuncLiteral, ## func_literal goFunctionDeclaration, ## function_declaration goFunctionType, ## function_type goGoStatement, ## go_statement goGotoStatement, ## goto_statement goIfStatement, ## if_statement goImplicitLengthArrayType, ## implicit_length_array_type goImportDeclaration, ## import_declaration goImportSpec, ## import_spec goImportSpecList, ## import_spec_list goIncStatement, ## inc_statement goIndexExpression, ## index_expression goInterfaceType, ## interface_type goInterpretedStringLiteral, ## interpreted_string_literal goKeyedElement, ## keyed_element goLabeledStatement, ## labeled_statement goLiteralValue, ## literal_value goMapType, ## map_type goMethodDeclaration, ## method_declaration goMethodSpec, ## method_spec goMethodSpecList, ## method_spec_list goPackageClause, ## package_clause goParameterDeclaration, ## parameter_declaration goParameterList, ## parameter_list goParenthesizedExpression, ## parenthesized_expression goParenthesizedType, ## parenthesized_type goPointerType, ## pointer_type goQualifiedType, ## qualified_type goRangeClause, ## range_clause goReceiveStatement, ## receive_statement goReturnStatement, ## return_statement goSelectStatement, ## select_statement goSelectorExpression, ## selector_expression goSendStatement, ## send_statement goShortVarDeclaration, ## short_var_declaration goSliceExpression, ## slice_expression goSliceType, ## slice_type goSourceFile, ## source_file goStructType, ## struct_type goTypeAlias, ## type_alias goTypeAssertionExpression, ## type_assertion_expression goTypeCase, ## type_case goTypeConversionExpression, ## type_conversion_expression goTypeDeclaration, ## type_declaration goTypeSpec, ## type_spec goTypeSwitchStatement, ## type_switch_statement goUnaryExpression, ## unary_expression goVarDeclaration, ## var_declaration goVarSpec, ## var_spec goVariadicArgument, ## variadic_argument goVariadicParameterDeclaration, ## variadic_parameter_declaration goNewlineTok, ## ## goExclamationTok, ## ! goExclamationEqualTok, ## != goQuoteTok, ## " goPercentTok, ## % goPercentEqualTok, ## %= goAmpersandTok, ## & goDoubleAmpersandTok, ## && goAmpersandEqualTok, ## &= goAmpersandAccentTok, ## &^ goAmpersandAccentEqualTok, ## &^= goLParTok, ## ( goRParTok, ## ) goAsteriskTok, ## * goAsteriskEqualTok, ## *= goPlusTok, ## + goDoublePlusTok, ## ++ goPlusEqualTok, ## += goCommaTok, ## , goMinusTok, ## - goDoubleMinusTok, ## -- goMinusEqualTok, ## -= goDotTok, ## . goTripleDotTok, ## ... goSlashTok, ## / goSlashEqualTok, ## /= goColonTok, ## : goColonEqualTok, ## := goSemicolonTok, ## ; goLessThanTok, ## < goLessThanMinusTok, ## <- goDoubleLessThanTok, ## << goDoubleLessThanEqualTok, ## <<= goLessThanEqualTok, ## <= goEqualTok, ## = goDoubleEqualTok, ## == goGreaterThanTok, ## > goGreaterThanEqualTok, ## >= goDoubleGreaterThanTok, ## >> goDoubleGreaterThanEqualTok, ## >>= goLBrackTok, ## [ goRBrackTok, ## ] goAccentTok, ## ^ goAccentEqualTok, ## ^= goBlankIdentifier, ## blank_identifier goBreakTok, ## break goCaseTok, ## case goChanTok, ## chan goComment, ## comment goConstTok, ## const goContinueTok, ## continue goDefaultTok, ## default goDeferTok, ## defer goElseTok, ## else goEscapeSequence, ## escape_sequence goFallthroughTok, ## fallthrough goFalse, ## false goFieldIdentifier, ## field_identifier goFloatLiteral, ## float_literal goForTok, ## for goFuncTok, ## func goGoTok, ## go goGotoTok, ## goto goIdentifier, ## identifier goIfTok, ## if goImaginaryLiteral, ## imaginary_literal goImportTok, ## import goIntLiteral, ## int_literal goInterfaceTok, ## interface goLabelName, ## label_name goMapTok, ## map goNil, ## nil goPackageTok, ## package goPackageIdentifier, ## package_identifier goRangeTok, ## range goRawStringLiteral, ## raw_string_literal goReturnTok, ## return goRuneLiteral, ## rune_literal goSelectTok, ## select goStructTok, ## struct goSwitchTok, ## switch goTrue, ## true goTypeTok, ## type goTypeIdentifier, ## type_identifier goVarTok, ## var goLCurlyTok, ## { goPipeTok, ## | goPipeEqualTok, ## |= goDoublePipeTok, ## || goRCurlyTok, ## } goSyntaxError ## Tree-sitter parser syntax error
TsGoNode = distinct TSNode
GoParser = distinct PtsParser
GoNode = HtsNode[TsGoNode, GoNodeKind]
Procs
proc kind(node: TsGoNode): GoNodeKind {...}{.noSideEffect, raises: [Exception], tags: [RootEffect].}
proc tsNodeType(node: TsGoNode): string {...}{.raises: [], tags: [].}
proc newTsGoParser(): GoParser {...}{.raises: [], tags: [].}
proc parseString(parser: GoParser; str: string): TsGoNode {...}{.raises: [], tags: [].}
proc parseTsGoString(str: string): TsGoNode {...}{.raises: [], tags: [].}
proc treeReprTsGo(str: string; unnamed: bool = false): string {...}{. raises: [ValueError, Exception, NilArgumentError], tags: [RootEffect].}
proc toHtsNode(node: TsGoNode; str: ptr string): HtsNode[TsGoNode, GoNodeKind] {...}{. raises: [NilArgumentError, Exception], tags: [RootEffect].}
proc toHtsTree(node: TsGoNode; str: ptr string): GoNode {...}{. raises: [NilArgumentError, Exception], tags: [RootEffect].}
proc parseGoString(str: ptr string; unnamed: bool = false): GoNode {...}{. raises: [NilArgumentError, Exception], tags: [RootEffect].}
proc parseGoString(str: string; unnamed: bool = false): GoNode {...}{. raises: [NilArgumentError, Exception], tags: [RootEffect].}
Funcs
func isNil(node: TsGoNode): bool {...}{.raises: [], tags: [].}
func len(node: TsGoNode; unnamed: bool = false): int {...}{.raises: [], tags: [].}
func has(node: TsGoNode; idx: int; unnamed: bool = false): bool {...}{.raises: [], tags: [].}
func `$`(node: TsGoNode): string {...}{.raises: [Exception], tags: [RootEffect].}
func `[]`(node: TsGoNode; idx: int; kind: GoNodeKind | set[GoNodeKind]): TsGoNode