sqlserver

package module
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 10, 2026 License: BSD-2-Clause Imports: 5 Imported by: 0

Documentation

Overview

Package sqlserver is the grammar TSQL for the Go runtime of transit. Language returns its language, and the constants name its symbols and its fields.

Index

Examples

Constants

View Source
const (
	BuiltinSymEnd                                transit.Symbol = 0   // "end"
	AuxSymGoStatementToken1                      transit.Symbol = 1   // "go_statement_token1"
	AnonSymCOMMA                                 transit.Symbol = 2   // ","
	AnonSymSEMI                                  transit.Symbol = 3   // ";"
	AuxSymFuncProcNameServerDatabaseSchemaToken1 transit.Symbol = 4   // "func_proc_name_server_database_schema_token1"
	AuxSymExecuteStatementArgNamedToken1         transit.Symbol = 5   // "execute_statement_arg_named_token1"
	AnonSymEQ                                    transit.Symbol = 6   // "="
	SymOUTPUT                                    transit.Symbol = 7   // "OUTPUT"
	SymDefault                                   transit.Symbol = 8   // "default"
	SymNull                                      transit.Symbol = 9   // "null_"
	AuxSymConstantToken1                         transit.Symbol = 10  // "constant_token1"
	AuxSymConstantToken2                         transit.Symbol = 11  // "constant_token2"
	AuxSymConstantToken3                         transit.Symbol = 12  // "constant_token3"
	SymExecute                                   transit.Symbol = 13  // "execute"
	AuxSymExecuteBodyToken1                      transit.Symbol = 14  // "execute_body_token1"
	AnonSymLPAREN                                transit.Symbol = 15  // "("
	AnonSymRPAREN                                transit.Symbol = 16  // ")"
	SymWITH                                      transit.Symbol = 17  // "WITH"
	AuxSymRESULTSETSToken1                       transit.Symbol = 18  // "RESULT_SETS_token1"
	AuxSymRESULTSETSToken2                       transit.Symbol = 19  // "RESULT_SETS_token2"
	SymNONE                                      transit.Symbol = 20  // "NONE"
	SymUNDEFINED                                 transit.Symbol = 21  // "UNDEFINED"
	SymRECOMPILE                                 transit.Symbol = 22  // "RECOMPILE"
	AuxSymASToken1                               transit.Symbol = 23  // "AS_token1"
	SymLOGIN                                     transit.Symbol = 24  // "LOGIN"
	SymUSER                                      transit.Symbol = 25  // "USER"
	SymATKEYWORD                                 transit.Symbol = 26  // "AT_KEYWORD"
	SymStringLit                                 transit.Symbol = 27  // "string_lit"
	SymPLUS                                      transit.Symbol = 28  // "PLUS"
	AuxSymQuerySpecificationToken1               transit.Symbol = 29  // "query_specification_token1"
	SymSelect                                    transit.Symbol = 30  // "select"
	AnonSymPLUSEQ                                transit.Symbol = 31  // "+="
	AnonSymDASHEQ                                transit.Symbol = 32  // "-="
	AnonSymSTAREQ                                transit.Symbol = 33  // "*="
	AnonSymSLASHEQ                               transit.Symbol = 34  // "/="
	AnonSymPERCENTEQ                             transit.Symbol = 35  // "%="
	AnonSymAMPEQ                                 transit.Symbol = 36  // "&="
	AnonSymCARETEQ                               transit.Symbol = 37  // "^="
	AnonSymPIPEEQ                                transit.Symbol = 38  // "|="
	SymAsterisk                                  transit.Symbol = 39  // "asterisk"
	AnonSymCOLONCOLON                            transit.Symbol = 40  // "::"
	SymHierachyid                                transit.Symbol = 41  // "hierachyid_"
	SymGetDescendant                             transit.Symbol = 42  // "get_descendant_"
	SymGetReparentedValue                        transit.Symbol = 43  // "get_reparented_value_"
	SymGetancestor                               transit.Symbol = 44  // "getancestor_"
	SymIsDescendantOf                            transit.Symbol = 45  // "is_descendant_of_"
	SymGetlevel                                  transit.Symbol = 46  // "getlevel_"
	SymGetroot                                   transit.Symbol = 47  // "getroot_"
	SymTostring                                  transit.Symbol = 48  // "tostring_"
	SymParse                                     transit.Symbol = 49  // "parse_"
	SymDollarPartition                           transit.Symbol = 50  // "dollar_partition_"
	SymRight                                     transit.Symbol = 51  // "right_"
	SymLeft                                      transit.Symbol = 52  // "left_"
	SymBinaryChecksum                            transit.Symbol = 53  // "binary_checksum_"
	SymChecksum                                  transit.Symbol = 54  // "checksum_"
	AuxSymOverToken1                             transit.Symbol = 55  // "over__token1"
	AuxSymWithinGroupToken1                      transit.Symbol = 56  // "within_group__token1"
	AuxSymWithinGroupToken2                      transit.Symbol = 57  // "within_group__token2"
	SymPercentileCont                            transit.Symbol = 58  // "percentile_cont_"
	SymPercentileDisc                            transit.Symbol = 59  // "percentile_disc_"
	SymCumeDist                                  transit.Symbol = 60  // "cume_dist_"
	SymPercentRank                               transit.Symbol = 61  // "percent_rank_"
	AuxSymIgnoreNullsToken1                      transit.Symbol = 62  // "ignore_nulls__token1"
	AuxSymIgnoreNullsToken2                      transit.Symbol = 63  // "ignore_nulls__token2"
	AuxSymRespectNullsToken1                     transit.Symbol = 64  // "respect_nulls__token1"
	SymLag                                       transit.Symbol = 65  // "lag_"
	SymLead                                      transit.Symbol = 66  // "lead_"
	SymFirstValue                                transit.Symbol = 67  // "first_value_"
	SymLastValue                                 transit.Symbol = 68  // "last_value_"
	SymChecksumAgg                               transit.Symbol = 69  // "checksum_agg_"
	SymCount                                     transit.Symbol = 70  // "count_"
	SymCountBig                                  transit.Symbol = 71  // "count_big_"
	SymAvg                                       transit.Symbol = 72  // "avg_"
	SymMax                                       transit.Symbol = 73  // "max_"
	SymMin                                       transit.Symbol = 74  // "min_"
	SymSum                                       transit.Symbol = 75  // "sum_"
	SymStdev                                     transit.Symbol = 76  // "stdev_"
	SymStdevp                                    transit.Symbol = 77  // "stdevp_"
	SymVar                                       transit.Symbol = 78  // "var_"
	SymVarp                                      transit.Symbol = 79  // "varp_"
	SymAll                                       transit.Symbol = 80  // "all_"
	SymDistinct                                  transit.Symbol = 81  // "distinct_"
	SymNtile                                     transit.Symbol = 82  // "ntile_"
	SymRank                                      transit.Symbol = 83  // "rank_"
	SymDenseRank                                 transit.Symbol = 84  // "dense_rank_"
	SymRowNumber                                 transit.Symbol = 85  // "row_number_"
	AuxSymPartitionByClauseToken1                transit.Symbol = 86  // "partition_by_clause_token1"
	AuxSymPartitionByClauseToken2                transit.Symbol = 87  // "partition_by_clause_token2"
	AuxSymOrderByClauseToken1                    transit.Symbol = 88  // "order_by_clause_token1"
	AuxSymCollationToken1                        transit.Symbol = 89  // "collation__token1"
	SymAsc                                       transit.Symbol = 90  // "asc_"
	SymDesc                                      transit.Symbol = 91  // "desc_"
	AuxSymWindowFrameExtentToken1                transit.Symbol = 92  // "window_frame_extent_token1"
	AuxSymWindowFrameExtentToken2                transit.Symbol = 93  // "window_frame_extent_token2"
	AuxSymWindowFrameFollowingToken1             transit.Symbol = 94  // "window_frame_following_token1"
	AuxSymWindowFrameFollowingToken2             transit.Symbol = 95  // "window_frame_following_token2"
	AuxSymWindowFramePrecedingToken1             transit.Symbol = 96  // "window_frame_preceding_token1"
	AuxSymWindowFramePrecedingToken2             transit.Symbol = 97  // "window_frame_preceding_token2"
	AuxSymWindowFramePrecedingToken3             transit.Symbol = 98  // "window_frame_preceding_token3"
	AuxSymRowOrRangeClauseToken1                 transit.Symbol = 99  // "row_or_range_clause_token1"
	AuxSymRowOrRangeClauseToken2                 transit.Symbol = 100 // "row_or_range_clause_token2"
	SymBinary                                    transit.Symbol = 101 // "binary"
	AnonSymDOLLAR                                transit.Symbol = 102 // "$"
	AnonSymDASH                                  transit.Symbol = 103 // "-"
	AnonSymPLUS                                  transit.Symbol = 104 // "+"
	AuxSymRealToken1                             transit.Symbol = 105 // "real__token1"
	AuxSymRealToken2                             transit.Symbol = 106 // "real__token2"
	AuxSymIdToken1                               transit.Symbol = 107 // "id__token1"
	AuxSymIdToken2                               transit.Symbol = 108 // "id__token2"
	SymTsqlFile                                  transit.Symbol = 109 // "tsql_file"
	SymBatch                                     transit.Symbol = 110 // "batch"
	SymGoStatement                               transit.Symbol = 111 // "go_statement"
	SymExecuteBodyBatch                          transit.Symbol = 112 // "execute_body_batch"
	SymFuncProcNameServerDatabaseSchema          transit.Symbol = 113 // "func_proc_name_server_database_schema"
	SymFuncProcNameDatabaseSchema                transit.Symbol = 114 // "func_proc_name_database_schema"
	SymFuncProcNameSchema                        transit.Symbol = 115 // "func_proc_name_schema"
	SymExecuteStatementArg                       transit.Symbol = 116 // "execute_statement_arg"
	SymExecuteStatementArgNamed                  transit.Symbol = 117 // "execute_statement_arg_named"
	SymExecuteStatementArgUnnamed                transit.Symbol = 118 // "execute_statement_arg_unnamed"
	SymExecuteParameter                          transit.Symbol = 119 // "execute_parameter"
	SymLOCALID                                   transit.Symbol = 120 // "LOCAL_ID_"
	SymConstant                                  transit.Symbol = 121 // "constant"
	SymSqlClauses                                transit.Symbol = 122 // "sql_clauses"
	SymAnotherStatement                          transit.Symbol = 123 // "another_statement"
	SymExecuteStatement                          transit.Symbol = 124 // "execute_statement"
	SymExecuteBody                               transit.Symbol = 125 // "execute_body"
	SymExecuteOption                             transit.Symbol = 126 // "execute_option"
	SymRESULTSETS                                transit.Symbol = 127 // "RESULT_SETS"
	SymAS                                        transit.Symbol = 128 // "AS"
	SymExecuteVarString                          transit.Symbol = 129 // "execute_var_string"
	SymDmlClause                                 transit.Symbol = 130 // "dml_clause"
	SymSelectStatementStandalone                 transit.Symbol = 131 // "select_statement_standalone"
	SymSelectStatement                           transit.Symbol = 132 // "select_statement"
	SymQueryExpression                           transit.Symbol = 133 // "query_expression"
	SymQuerySpecification                        transit.Symbol = 134 // "query_specification"
	SymSelectList                                transit.Symbol = 135 // "select_list"
	SymSelectListElem                            transit.Symbol = 136 // "select_list_elem"
	SymAssignmentOperator                        transit.Symbol = 137 // "assignment_operator"
	SymUdtElem                                   transit.Symbol = 138 // "udt_elem"
	SymUdtMethodArguments                        transit.Symbol = 139 // "udt_method_arguments"
	SymExpressionElem                            transit.Symbol = 140 // "expression_elem"
	SymAsColumnAlias                             transit.Symbol = 141 // "as_column_alias"
	SymAs                                        transit.Symbol = 142 // "as"
	SymColumnAlias                               transit.Symbol = 143 // "column_alias"
	SymTableSources                              transit.Symbol = 144 // "table_sources"
	SymTableSource                               transit.Symbol = 145 // "table_source"
	SymTableSourceItem                           transit.Symbol = 146 // "table_source_item"
	SymFullTableName                             transit.Symbol = 147 // "full_table_name"
	SymFullColumnName                            transit.Symbol = 148 // "full_column_name"
	SymExpression                                transit.Symbol = 149 // "expression"
	SymFunctionCall                              transit.Symbol = 150 // "function_call"
	SymHierarchyidStaticMethod                   transit.Symbol = 151 // "hierarchyid_static_method"
	SymPartitionFunction                         transit.Symbol = 152 // "partition_function"
	SymScalarFunctionName                        transit.Symbol = 153 // "scalar_function_name"
	SymAnalyticWindowedFunction                  transit.Symbol = 154 // "analytic_windowed_function"
	SymOver                                      transit.Symbol = 155 // "over_"
	SymWithinGroup                               transit.Symbol = 156 // "within_group_"
	SymLagLeadArgs                               transit.Symbol = 157 // "lag_lead_args"
	SymIgnoreNulls                               transit.Symbol = 158 // "ignore_nulls_"
	SymRespectNulls                              transit.Symbol = 159 // "respect_nulls_"
	SymAggregateWindowedFunction                 transit.Symbol = 160 // "aggregate_windowed_function"
	SymAllDistinctExpression                     transit.Symbol = 161 // "all_distinct_expression"
	SymRankingWindowedFunction                   transit.Symbol = 162 // "ranking_windowed_function"
	SymOverClause                                transit.Symbol = 163 // "over_clause"
	SymPartitionByClause                         transit.Symbol = 164 // "partition_by_clause"
	SymExpressionList                            transit.Symbol = 165 // "expression_list_"
	SymOrderByClause                             transit.Symbol = 166 // "order_by_clause"
	SymOrderByExpression                         transit.Symbol = 167 // "order_by_expression"
	SymCollation                                 transit.Symbol = 168 // "collation_"
	SymWindowFrameExtent                         transit.Symbol = 169 // "window_frame_extent"
	SymWindowFrameBound                          transit.Symbol = 170 // "window_frame_bound"
	SymWindowFrameFollowing                      transit.Symbol = 171 // "window_frame_following"
	SymWindowFramePreceding                      transit.Symbol = 172 // "window_frame_preceding"
	SymRowOrRangeClause                          transit.Symbol = 173 // "row_or_range_clause"
	SymPrimitiveExpression                       transit.Symbol = 174 // "primitive_expression"
	SymPrimitiveConstant                         transit.Symbol = 175 // "primitive_constant"
	SymMoney                                     transit.Symbol = 176 // "money_"
	SymReal                                      transit.Symbol = 177 // "real_"
	SymFloat                                     transit.Symbol = 178 // "float_"
	SymDecimal                                   transit.Symbol = 179 // "decimal_"
	SymId                                        transit.Symbol = 180 // "id_"
	SymKeyword                                   transit.Symbol = 181 // "keyword"
	SymInteger                                   transit.Symbol = 182 // "integer"
	AuxSymTsqlFileRepeat1                        transit.Symbol = 183 // "tsql_file_repeat1"
	AuxSymTsqlFileRepeat2                        transit.Symbol = 184 // "tsql_file_repeat2"
	AuxSymBatchRepeat1                           transit.Symbol = 185 // "batch_repeat1"
	AuxSymExecuteBodyBatchRepeat1                transit.Symbol = 186 // "execute_body_batch_repeat1"
	AuxSymExecuteStatementArgRepeat1             transit.Symbol = 187 // "execute_statement_arg_repeat1"
	AuxSymExecuteBodyRepeat1                     transit.Symbol = 188 // "execute_body_repeat1"
	AuxSymExecuteBodyRepeat2                     transit.Symbol = 189 // "execute_body_repeat2"
	AuxSymSelectListRepeat1                      transit.Symbol = 190 // "select_list_repeat1"
	AuxSymExpressionListRepeat1                  transit.Symbol = 191 // "expression_list__repeat1"
	AuxSymOrderByClauseRepeat1                   transit.Symbol = 192 // "order_by_clause_repeat1"
)

The symbols of the grammar TSQL, as Node.KindID and Node.GrammarID return them. The comment of each one is its name.

View Source
const (
	FieldAggFunc        transit.FieldID = 1  // "agg_func"
	FieldAscending      transit.FieldID = 2  // "ascending"
	FieldCnt            transit.FieldID = 3  // "cnt"
	FieldCollationName  transit.FieldID = 4  // "collation_name"
	FieldCount          transit.FieldID = 5  // "count"
	FieldDatabase       transit.FieldID = 6  // "database"
	FieldDefault        transit.FieldID = 7  // "default"
	FieldDescending     transit.FieldID = 8  // "descending"
	FieldDollar         transit.FieldID = 9  // "dollar"
	FieldExpressionAs   transit.FieldID = 10 // "expressionAs"
	FieldFuncName       transit.FieldID = 11 // "func_name"
	FieldInput          transit.FieldID = 12 // "input"
	FieldLeftAlias      transit.FieldID = 13 // "leftAlias"
	FieldLeftAssignment transit.FieldID = 14 // "leftAssignment"
	FieldLinkedServer   transit.FieldID = 15 // "linkedServer"
	FieldName           transit.FieldID = 16 // "name"
	FieldNonStaticAttr  transit.FieldID = 17 // "non_static_attr"
	FieldOffset         transit.FieldID = 18 // "offset"
	FieldOrderBy        transit.FieldID = 19 // "order_by"
	FieldProcedure      transit.FieldID = 20 // "procedure"
	FieldReturnStatus   transit.FieldID = 21 // "return_status"
	FieldSchema         transit.FieldID = 22 // "schema"
	FieldServer         transit.FieldID = 23 // "server"
	FieldTable          transit.FieldID = 24 // "table"
	FieldUdtColumnName  transit.FieldID = 25 // "udt_column_name"
	FieldValue          transit.FieldID = 26 // "value"
)

The fields of the grammar TSQL, as Node.ChildByFieldID takes them. The comment of each one is its name.

Variables

View Source
var Queries embed.FS

Queries holds queries/ of the grammar TSQL: 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 TSQL: the tokens that the word token captures, and the reserved words. Each call returns a new slice.

func Language

func Language() *transit.Language

Language returns the language of the grammar TSQL.

Example

This example parses a text of the grammar TSQL, the input of the corpus case "assignment_operator/assignment_operator PlusEqual", 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/sqlserver"
)

func main() {
	language := sqlserver.Language()
	parser := transit.NewParser()
	if err := parser.SetLanguage(language); err != nil {
		log.Fatal(err)
	}
	src := []byte(`select @foo+=baz`)
	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(sqlserver.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(sqlserver.Queries, "queries", walk); err != nil {
		log.Fatal(err)
	}
}
Output:
(tsql_file (batch (sql_clauses (dml_clause (select_statement_standalone (select_statement (query_expression (query_specification (select) (select_list (select_list_elem (LOCAL_ID_) (assignment_operator) (expression (full_column_name (id_)))))))))))))
patterns in queries/highlights.scm: 35

func NodeTypes

func NodeTypes() []transit.NodeType

NodeTypes returns the node types of node-types.json of the grammar TSQL: the fields and the children of each node, and the subtypes of each supertype. Each call returns a new slice.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL