Documentation
¶
Overview ¶
Package python is the grammar python for the Go runtime of transit. Language returns its language, and the constants name its symbols and its fields.
Index ¶
Examples ¶
Constants ¶
const ( BuiltinSymEnd transit.Symbol = 0 // "end" SymIdentifier transit.Symbol = 1 // "identifier" AnonSymSEMI transit.Symbol = 2 // ";" AnonSymImport transit.Symbol = 3 // "import" AnonSymDOT transit.Symbol = 4 // "." AnonSymFrom transit.Symbol = 5 // "from" AnonSymFuture transit.Symbol = 6 // "__future__" AnonSymLPAREN transit.Symbol = 7 // "(" AnonSymRPAREN transit.Symbol = 8 // ")" AnonSymCOMMA transit.Symbol = 9 // "," AnonSymAs transit.Symbol = 10 // "as" AnonSymSTAR transit.Symbol = 11 // "*" AnonSymPrint transit.Symbol = 12 // "print" AnonSymGTGT transit.Symbol = 13 // ">>" AnonSymAssert transit.Symbol = 14 // "assert" AnonSymCOLONEQ transit.Symbol = 15 // ":=" AnonSymReturn transit.Symbol = 16 // "return" AnonSymDel transit.Symbol = 17 // "del" AnonSymRaise transit.Symbol = 18 // "raise" AnonSymPass transit.Symbol = 19 // "pass" AnonSymBreak transit.Symbol = 20 // "break" AnonSymContinue transit.Symbol = 21 // "continue" AnonSymIf transit.Symbol = 22 // "if" AnonSymCOLON transit.Symbol = 23 // ":" AnonSymElif transit.Symbol = 24 // "elif" AnonSymElse transit.Symbol = 25 // "else" AnonSymMatch transit.Symbol = 26 // "match" AnonSymCase transit.Symbol = 27 // "case" AnonSymAsync transit.Symbol = 28 // "async" AnonSymFor transit.Symbol = 29 // "for" AnonSymIn transit.Symbol = 30 // "in" AnonSymWhile transit.Symbol = 31 // "while" AnonSymTry transit.Symbol = 32 // "try" AnonSymExcept transit.Symbol = 33 // "except" AnonSymExceptSTAR transit.Symbol = 34 // "except*" AnonSymFinally transit.Symbol = 35 // "finally" AnonSymWith transit.Symbol = 36 // "with" AnonSymDef transit.Symbol = 37 // "def" AnonSymDASHGT transit.Symbol = 38 // "->" AnonSymSTARSTAR transit.Symbol = 39 // "**" AnonSymGlobal transit.Symbol = 40 // "global" AnonSymNonlocal transit.Symbol = 41 // "nonlocal" AnonSymExec transit.Symbol = 42 // "exec" AnonSymType transit.Symbol = 43 // "type" AnonSymEQ transit.Symbol = 44 // "=" AnonSymClass transit.Symbol = 45 // "class" AnonSymLBRACK transit.Symbol = 46 // "[" AnonSymRBRACK transit.Symbol = 47 // "]" AnonSymAT transit.Symbol = 48 // "@" AnonSymDASH transit.Symbol = 49 // "-" AnonSym transit.Symbol = 50 // "_" AnonSymPIPE transit.Symbol = 51 // "|" AnonSymLBRACE transit.Symbol = 52 // "{" AnonSymRBRACE transit.Symbol = 53 // "}" AnonSymPLUS transit.Symbol = 54 // "+" AnonSymNot transit.Symbol = 55 // "not" AnonSymAnd transit.Symbol = 56 // "and" AnonSymOr transit.Symbol = 57 // "or" AnonSymSLASH transit.Symbol = 58 // "/" AnonSymPERCENT transit.Symbol = 59 // "%" AnonSymSLASHSLASH transit.Symbol = 60 // "//" AnonSymAMP transit.Symbol = 61 // "&" AnonSymCARET transit.Symbol = 62 // "^" AnonSymLTLT transit.Symbol = 63 // "<<" AnonSymTILDE transit.Symbol = 64 // "~" AnonSymIs transit.Symbol = 65 // "is" AnonSymLT transit.Symbol = 66 // "<" AnonSymLTEQ transit.Symbol = 67 // "<=" AnonSymEQEQ transit.Symbol = 68 // "==" AnonSymBANGEQ transit.Symbol = 69 // "!=" AnonSymGTEQ transit.Symbol = 70 // ">=" AnonSymGT transit.Symbol = 71 // ">" AnonSymLTGT transit.Symbol = 72 // "<>" AnonSymLambda transit.Symbol = 73 // "lambda" AnonSymPLUSEQ transit.Symbol = 74 // "+=" AnonSymDASHEQ transit.Symbol = 75 // "-=" AnonSymSTAREQ transit.Symbol = 76 // "*=" AnonSymSLASHEQ transit.Symbol = 77 // "/=" AnonSymATEQ transit.Symbol = 78 // "@=" AnonSymSLASHSLASHEQ transit.Symbol = 79 // "//=" AnonSymPERCENTEQ transit.Symbol = 80 // "%=" AnonSymSTARSTAREQ transit.Symbol = 81 // "**=" AnonSymGTGTEQ transit.Symbol = 82 // ">>=" AnonSymLTLTEQ transit.Symbol = 83 // "<<=" AnonSymAMPEQ transit.Symbol = 84 // "&=" AnonSymCARETEQ transit.Symbol = 85 // "^=" AnonSymPIPEEQ transit.Symbol = 86 // "|=" AnonSymYield transit.Symbol = 87 // "yield" SymEllipsis transit.Symbol = 88 // "ellipsis" SymEscapeSequence transit.Symbol = 89 // "escape_sequence" AnonSymBSLASH transit.Symbol = 90 // "\\" AuxSymFormatSpecifierToken1 transit.Symbol = 91 // "format_specifier_token1" SymTypeConversion transit.Symbol = 92 // "type_conversion" SymInteger transit.Symbol = 93 // "integer" SymFloat transit.Symbol = 94 // "float" AnonSymAwait transit.Symbol = 95 // "await" SymTrue transit.Symbol = 96 // "true" SymFalse transit.Symbol = 97 // "false" SymNone transit.Symbol = 98 // "none" SymComment transit.Symbol = 99 // "comment" SymLineContinuation transit.Symbol = 100 // "line_continuation" SymNewline transit.Symbol = 101 // "_newline" SymIndent transit.Symbol = 102 // "_indent" SymDedent transit.Symbol = 103 // "_dedent" SymStringStart transit.Symbol = 104 // "string_start" SymStringContent transit.Symbol = 105 // "_string_content" SymEscapeInterpolation transit.Symbol = 106 // "escape_interpolation" SymStringEnd transit.Symbol = 107 // "string_end" SymModule transit.Symbol = 108 // "module" SymStatement transit.Symbol = 109 // "_statement" SymSimpleStatements transit.Symbol = 110 // "_simple_statements" SymImportStatement transit.Symbol = 111 // "import_statement" SymImportPrefix transit.Symbol = 112 // "import_prefix" SymRelativeImport transit.Symbol = 113 // "relative_import" SymFutureImportStatement transit.Symbol = 114 // "future_import_statement" SymImportFromStatement transit.Symbol = 115 // "import_from_statement" SymImportList transit.Symbol = 116 // "_import_list" SymAliasedImport transit.Symbol = 117 // "aliased_import" SymWildcardImport transit.Symbol = 118 // "wildcard_import" SymPrintStatement transit.Symbol = 119 // "print_statement" SymChevron transit.Symbol = 120 // "chevron" SymAssertStatement transit.Symbol = 121 // "assert_statement" SymExpressionStatement transit.Symbol = 122 // "expression_statement" SymNamedExpression transit.Symbol = 123 // "named_expression" SymNamedExpressionLhs transit.Symbol = 124 // "_named_expression_lhs" SymReturnStatement transit.Symbol = 125 // "return_statement" SymDeleteStatement transit.Symbol = 126 // "delete_statement" SymRaiseStatement transit.Symbol = 127 // "raise_statement" SymPassStatement transit.Symbol = 128 // "pass_statement" SymBreakStatement transit.Symbol = 129 // "break_statement" SymContinueStatement transit.Symbol = 130 // "continue_statement" SymIfStatement transit.Symbol = 131 // "if_statement" SymElifClause transit.Symbol = 132 // "elif_clause" SymElseClause transit.Symbol = 133 // "else_clause" SymMatchStatement transit.Symbol = 134 // "match_statement" SymMatchBlock transit.Symbol = 135 // "block" SymCaseClause transit.Symbol = 136 // "case_clause" SymForStatement transit.Symbol = 137 // "for_statement" SymWhileStatement transit.Symbol = 138 // "while_statement" SymTryStatement transit.Symbol = 139 // "try_statement" SymExceptClause transit.Symbol = 140 // "except_clause" SymExceptGroupClause transit.Symbol = 141 // "except_group_clause" SymFinallyClause transit.Symbol = 142 // "finally_clause" SymWithStatement transit.Symbol = 143 // "with_statement" SymWithClause transit.Symbol = 144 // "with_clause" SymWithItem transit.Symbol = 145 // "with_item" SymFunctionDefinition transit.Symbol = 146 // "function_definition" SymParameters transit.Symbol = 147 // "parameters" SymLambdaParameters transit.Symbol = 148 // "lambda_parameters" SymListSplat transit.Symbol = 149 // "list_splat" SymDictionarySplat transit.Symbol = 150 // "dictionary_splat" SymGlobalStatement transit.Symbol = 151 // "global_statement" SymNonlocalStatement transit.Symbol = 152 // "nonlocal_statement" SymExecStatement transit.Symbol = 153 // "exec_statement" SymTypeAliasStatement transit.Symbol = 154 // "type_alias_statement" SymClassDefinition transit.Symbol = 155 // "class_definition" SymTypeParameter transit.Symbol = 156 // "type_parameter" SymParenthesizedListSplat transit.Symbol = 157 // "parenthesized_list_splat" SymArgumentList transit.Symbol = 158 // "argument_list" SymDecoratedDefinition transit.Symbol = 159 // "decorated_definition" SymDecorator transit.Symbol = 160 // "decorator" SymBlock transit.Symbol = 161 // "block" SymExpressionList transit.Symbol = 162 // "expression_list" SymDottedName transit.Symbol = 163 // "dotted_name" SymCasePattern transit.Symbol = 164 // "case_pattern" SymSimplePattern transit.Symbol = 165 // "_simple_pattern" SymAsPattern transit.Symbol = 166 // "as_pattern" SymUnionPattern transit.Symbol = 167 // "union_pattern" SymListPattern transit.Symbol = 168 // "list_pattern" SymTuplePattern transit.Symbol = 169 // "tuple_pattern" SymDictPattern transit.Symbol = 170 // "dict_pattern" SymKeyValuePattern transit.Symbol = 171 // "_key_value_pattern" SymKeywordPattern transit.Symbol = 172 // "keyword_pattern" SymSplatPattern transit.Symbol = 173 // "splat_pattern" SymClassPattern transit.Symbol = 174 // "class_pattern" SymComplexPattern transit.Symbol = 175 // "complex_pattern" SymParameters2 transit.Symbol = 176 // "_parameters" SymPatterns transit.Symbol = 177 // "_patterns" SymParameter transit.Symbol = 178 // "parameter" SymPattern transit.Symbol = 179 // "pattern" SymTuplePattern2 transit.Symbol = 180 // "tuple_pattern" SymListPattern2 transit.Symbol = 181 // "list_pattern" SymDefaultParameter transit.Symbol = 182 // "default_parameter" SymTypedDefaultParameter transit.Symbol = 183 // "typed_default_parameter" SymListSplatPattern transit.Symbol = 184 // "list_splat_pattern" SymDictionarySplatPattern transit.Symbol = 185 // "dictionary_splat_pattern" SymAsPattern2 transit.Symbol = 186 // "as_pattern" SymExpressionWithinForInClause transit.Symbol = 187 // "_expression_within_for_in_clause" SymExpression transit.Symbol = 188 // "expression" SymPrimaryExpression transit.Symbol = 189 // "primary_expression" SymNotOperator transit.Symbol = 190 // "not_operator" SymBooleanOperator transit.Symbol = 191 // "boolean_operator" SymBinaryOperator transit.Symbol = 192 // "binary_operator" SymUnaryOperator transit.Symbol = 193 // "unary_operator" SymNotIn transit.Symbol = 194 // "not in" SymIsNot transit.Symbol = 195 // "is not" SymComparisonOperator transit.Symbol = 196 // "comparison_operator" SymLambda transit.Symbol = 197 // "lambda" SymLambdaWithinForInClause transit.Symbol = 198 // "lambda" SymAssignment transit.Symbol = 199 // "assignment" SymAugmentedAssignment transit.Symbol = 200 // "augmented_assignment" SymPatternList transit.Symbol = 201 // "pattern_list" SymRightHandSide transit.Symbol = 202 // "_right_hand_side" SymYield transit.Symbol = 203 // "yield" SymAttribute transit.Symbol = 204 // "attribute" SymSubscript transit.Symbol = 205 // "subscript" SymSlice transit.Symbol = 206 // "slice" SymCall transit.Symbol = 207 // "call" SymTypedParameter transit.Symbol = 208 // "typed_parameter" SymType transit.Symbol = 209 // "type" SymSplatType transit.Symbol = 210 // "splat_type" SymGenericType transit.Symbol = 211 // "generic_type" SymUnionType transit.Symbol = 212 // "union_type" SymConstrainedType transit.Symbol = 213 // "constrained_type" SymMemberType transit.Symbol = 214 // "member_type" SymKeywordArgument transit.Symbol = 215 // "keyword_argument" SymList transit.Symbol = 216 // "list" SymSet transit.Symbol = 217 // "set" SymTuple transit.Symbol = 218 // "tuple" SymDictionary transit.Symbol = 219 // "dictionary" SymPair transit.Symbol = 220 // "pair" SymListComprehension transit.Symbol = 221 // "list_comprehension" SymDictionaryComprehension transit.Symbol = 222 // "dictionary_comprehension" SymSetComprehension transit.Symbol = 223 // "set_comprehension" SymGeneratorExpression transit.Symbol = 224 // "generator_expression" SymComprehensionClauses transit.Symbol = 225 // "_comprehension_clauses" SymParenthesizedExpression transit.Symbol = 226 // "parenthesized_expression" SymCollectionElements transit.Symbol = 227 // "_collection_elements" SymForInClause transit.Symbol = 228 // "for_in_clause" SymIfClause transit.Symbol = 229 // "if_clause" SymConditionalExpression transit.Symbol = 230 // "conditional_expression" SymConcatenatedString transit.Symbol = 231 // "concatenated_string" SymString transit.Symbol = 232 // "string" SymStringContent2 transit.Symbol = 233 // "string_content" SymInterpolation transit.Symbol = 234 // "interpolation" SymFExpression transit.Symbol = 235 // "_f_expression" SymNotEscapeSequence transit.Symbol = 236 // "_not_escape_sequence" SymFormatSpecifier transit.Symbol = 237 // "format_specifier" SymAwait transit.Symbol = 238 // "await" SymPositionalSeparator transit.Symbol = 239 // "positional_separator" SymKeywordSeparator transit.Symbol = 240 // "keyword_separator" AuxSymModuleRepeat1 transit.Symbol = 241 // "module_repeat1" AuxSymSimpleStatementsRepeat1 transit.Symbol = 242 // "_simple_statements_repeat1" AuxSymImportPrefixRepeat1 transit.Symbol = 243 // "import_prefix_repeat1" AuxSymImportListRepeat1 transit.Symbol = 244 // "_import_list_repeat1" AuxSymPrintStatementRepeat1 transit.Symbol = 245 // "print_statement_repeat1" AuxSymAssertStatementRepeat1 transit.Symbol = 246 // "assert_statement_repeat1" AuxSymIfStatementRepeat1 transit.Symbol = 247 // "if_statement_repeat1" AuxSymMatchStatementRepeat1 transit.Symbol = 248 // "match_statement_repeat1" AuxSymMatchBlockRepeat1 transit.Symbol = 249 // "_match_block_repeat1" AuxSymCaseClauseRepeat1 transit.Symbol = 250 // "case_clause_repeat1" AuxSymTryStatementRepeat1 transit.Symbol = 251 // "try_statement_repeat1" AuxSymTryStatementRepeat2 transit.Symbol = 252 // "try_statement_repeat2" AuxSymWithClauseRepeat1 transit.Symbol = 253 // "with_clause_repeat1" AuxSymGlobalStatementRepeat1 transit.Symbol = 254 // "global_statement_repeat1" AuxSymTypeParameterRepeat1 transit.Symbol = 255 // "type_parameter_repeat1" AuxSymArgumentListRepeat1 transit.Symbol = 256 // "argument_list_repeat1" AuxSymDecoratedDefinitionRepeat1 transit.Symbol = 257 // "decorated_definition_repeat1" AuxSymDottedNameRepeat1 transit.Symbol = 258 // "dotted_name_repeat1" AuxSymUnionPatternRepeat1 transit.Symbol = 259 // "union_pattern_repeat1" AuxSymDictPatternRepeat1 transit.Symbol = 260 // "dict_pattern_repeat1" AuxSymParametersRepeat1 transit.Symbol = 261 // "_parameters_repeat1" AuxSymPatternsRepeat1 transit.Symbol = 262 // "_patterns_repeat1" AuxSymComparisonOperatorRepeat1 transit.Symbol = 263 // "comparison_operator_repeat1" AuxSymSubscriptRepeat1 transit.Symbol = 264 // "subscript_repeat1" AuxSymDictionaryRepeat1 transit.Symbol = 265 // "dictionary_repeat1" AuxSymComprehensionClausesRepeat1 transit.Symbol = 266 // "_comprehension_clauses_repeat1" AuxSymCollectionElementsRepeat1 transit.Symbol = 267 // "_collection_elements_repeat1" AuxSymForInClauseRepeat1 transit.Symbol = 268 // "for_in_clause_repeat1" AuxSymConcatenatedStringRepeat1 transit.Symbol = 269 // "concatenated_string_repeat1" AuxSymStringRepeat1 transit.Symbol = 270 // "string_repeat1" AuxSymStringContentRepeat1 transit.Symbol = 271 // "string_content_repeat1" AuxSymFormatSpecifierRepeat1 transit.Symbol = 272 // "format_specifier_repeat1" AliasSymAsPatternTarget transit.Symbol = 273 // "as_pattern_target" AliasSymFormatExpression transit.Symbol = 274 // "format_expression" )
The symbols of the grammar python, as Node.KindID and Node.GrammarID return them. The comment of each one is its name.
const ( FieldAlias transit.FieldID = 1 // "alias" FieldAlternative transit.FieldID = 2 // "alternative" FieldArgument transit.FieldID = 3 // "argument" FieldArguments transit.FieldID = 4 // "arguments" FieldAttribute transit.FieldID = 5 // "attribute" FieldBody transit.FieldID = 6 // "body" FieldCause transit.FieldID = 7 // "cause" FieldCode transit.FieldID = 8 // "code" FieldCondition transit.FieldID = 9 // "condition" FieldConsequence transit.FieldID = 10 // "consequence" FieldDefinition transit.FieldID = 11 // "definition" FieldExpression transit.FieldID = 12 // "expression" FieldFormatSpecifier transit.FieldID = 13 // "format_specifier" FieldFunction transit.FieldID = 14 // "function" FieldGuard transit.FieldID = 15 // "guard" FieldKey transit.FieldID = 16 // "key" FieldLeft transit.FieldID = 17 // "left" FieldModuleName transit.FieldID = 18 // "module_name" FieldName transit.FieldID = 19 // "name" FieldObject transit.FieldID = 20 // "object" FieldOperator transit.FieldID = 21 // "operator" FieldOperators transit.FieldID = 22 // "operators" FieldParameters transit.FieldID = 23 // "parameters" FieldReturnType transit.FieldID = 24 // "return_type" FieldRight transit.FieldID = 25 // "right" FieldSubject transit.FieldID = 26 // "subject" FieldSubscript transit.FieldID = 27 // "subscript" FieldSuperclasses transit.FieldID = 28 // "superclasses" FieldType transit.FieldID = 29 // "type" FieldTypeConversion transit.FieldID = 30 // "type_conversion" FieldTypeParameters transit.FieldID = 31 // "type_parameters" FieldValue transit.FieldID = 32 // "value" )
The fields of the grammar python, as Node.ChildByFieldID takes them. The comment of each one is its name.
Variables ¶
var Queries embed.FS
Queries holds queries/ of the grammar python: its own queries, and in queries/<grammar>/ the queries of another grammar that its tree-sitter.json lists (D84).
Functions ¶
func Keywords ¶
func Keywords() []string
Keywords returns the keywords of the grammar python: the tokens that the word token captures, and the reserved words. Each call returns a new slice.
func Language ¶
Language returns the language of the grammar python. Its external scanner is the scanner that newScanner returns.
Example ¶
This example parses a text of the grammar python, the input of the corpus case "expressions/Identifiers with Greek letters", and prints its tree. Then it compiles each query of the package, and prints the number of its patterns.
package main
import (
"context"
"fmt"
"io/fs"
"log"
"path"
"github.com/xo/transit"
"github.com/xo/transit/grammars/python"
)
func main() {
language := python.Language()
parser := transit.NewParser()
if err := parser.SetLanguage(language); err != nil {
log.Fatal(err)
}
src := []byte(`
ψ1 = β_γ + Ψ_5
`)
tree, err := parser.Parse(context.Background(), src, nil)
if err != nil {
log.Fatal(err)
}
fmt.Println(tree.RootNode())
walk := func(name string, d fs.DirEntry, err error) error {
if err != nil || d.IsDir() || path.Ext(name) != ".scm" {
return err
}
text, err := fs.ReadFile(python.Queries, name)
if err != nil {
return err
}
query, err := transit.NewQuery(language, string(text))
if err != nil {
return fmt.Errorf("compiling %s: %w", name, err)
}
fmt.Printf("patterns in %s: %d\n", name, query.PatternCount())
return nil
}
if err := fs.WalkDir(python.Queries, "queries", walk); err != nil {
log.Fatal(err)
}
}
Output: (module (expression_statement (assignment left: (identifier) right: (binary_operator left: (identifier) right: (identifier))))) patterns in queries/highlights.scm: 19 patterns in queries/tags.scm: 4
Types ¶
This section is empty.