token

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Dec 3, 2025 License: GPL-3.0 Imports: 0 Imported by: 1

Documentation

Overview

Package token defines constants representing the lexical tokens of T-SQL.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Position

type Position struct {
	Line   int
	Column int
	Offset int
}

Position represents a position in source code.

type Token

type Token struct {
	Type    Type
	Literal string
	Line    int
	Column  int
}

Token represents a lexical token with position information.

type Type

type Type int

Type represents the type of a lexical token.

const (
	// Special tokens
	ILLEGAL Type = iota
	EOF
	COMMENT

	// Identifiers and literals
	IDENT       // table_name, column_name
	VARIABLE    // @variable
	TEMPVAR     // @@global_variable
	SYSVAR      // $action, $identity, etc.
	INT         // 12345
	FLOAT       // 123.45
	MONEY_LIT   // $123.45
	STRING      // 'string literal'
	NSTRING     // N'unicode string'
	BINARY      // 0x1234ABCD
	PLACEHOLDER // ? (parameter placeholder)

	// Operators
	PLUS      // +
	MINUS     // -
	ASTERISK  // *
	SLASH     // /
	PERCENT   // %
	AMPERSAND // &
	PIPE      // |
	CARET     // ^
	LSHIFT    // <<
	RSHIFT    // >>
	TILDE     // ~
	EQ        // =
	NEQ       // <> or !=
	LT        // <
	GT        // >
	LTE       // <=
	NOT_LT    // !< (not less than, same as >=)
	NOT_GT    // !> (not greater than, same as <=)
	GTE       // >=
	PLUSEQ    // +=
	MINUSEQ   // -=
	MULEQ     // *=
	DIVEQ     // /=
	MODEQ     // %=
	ANDEQ     // &=
	OREQ      // |=
	XOREQ     // ^=
	CONCAT    // + (string concatenation, same as PLUS)
	SCOPE     // ::

	// Delimiters
	COMMA     // ,
	SEMICOLON // ;
	LPAREN    // (
	RPAREN    // )
	LBRACKET  // [
	RBRACKET  // ]
	DOT       // .
	COLON     // :

	// Keywords - DDL
	CREATE
	ALTER
	DROP
	TRUNCATE
	TABLE
	VIEW
	INDEX
	PROCEDURE
	PROC
	FUNCTION
	TRIGGER
	REPLICATION
	SCHEMA
	DATABASE
	SERVER
	CONSTRAINT
	PRIMARY
	FOREIGN
	KEY
	REFERENCES
	UNIQUE
	CLUSTERED
	NONCLUSTERED
	IDENTITY
	ROWGUIDCOL
	SPARSE
	CASCADE
	RESTRICT
	ACTION
	COLLATE
	PERSISTED
	ADD
	COLUMN
	RENAME
	CHECK
	NOCHECK
	DEFAULT_KW
	// Additional DDL keywords
	RETURNS
	INCLUDE
	SCHEMABINDING
	INSTEAD
	AFTER
	OF

	// Keywords - DML
	SELECT
	INSERT
	UPDATE
	DELETE
	MERGE
	USING
	MATCHED
	TARGET
	SOURCE
	INTO
	VALUES
	VALUE
	FROM
	WHERE
	SET
	OUTPUT
	READONLY

	// Keywords - Query clauses
	JOIN
	INNER
	LEFT
	RIGHT
	FULL
	OUTER
	CROSS
	HASH
	LOOP
	REMOTE
	APPLY
	ON
	AND
	OR
	NOT
	IN
	EXISTS
	BETWEEN
	LIKE
	ESCAPE
	IS
	NULL
	AS
	DISTINCT
	ALL
	TOP
	PERCENT_KW // PERCENT as keyword
	WITH
	TIES
	ORDER
	BY
	ASC
	DESC
	GROUP
	GROUPING
	CUBE
	ROLLUP
	HAVING
	UNION
	INTERSECT
	EXCEPT
	OFFSET
	FETCH
	NEXT
	ROWS
	ONLY
	FIRST
	LAST
	PRIOR
	ABSOLUTE
	RELATIVE
	WITHIN
	// Window frame tokens
	RANGE
	UNBOUNDED
	PRECEDING
	FOLLOWING
	CURRENT
	ROW
	PIVOT
	UNPIVOT
	FOR
	OPTION

	// Keywords - Control flow
	IF
	ELSE
	BEGIN
	END
	END_CONVERSATION
	NEXT_VALUE_FOR        // NEXT VALUE FOR sequence
	XML_SCHEMA_COLLECTION // XML SCHEMA COLLECTION
	ASYMMETRIC_KEY        // ASYMMETRIC KEY (for GRANT)
	SYMMETRIC_KEY         // SYMMETRIC KEY (for GRANT)
	TRUNCATE_TABLE        // TRUNCATE TABLE
	WITH_PARTITIONS       // WITH (PARTITIONS ...)
	WITH_XMLNAMESPACES    // WITH XMLNAMESPACES
	WITH_CHECK            // WITH CHECK
	WITH_NOCHECK          // WITH NOCHECK
	APPLICATION_ROLE      // APPLICATION ROLE
	CREATE_RULE           // CREATE RULE
	BEGIN_ATOMIC          // BEGIN ATOMIC (natively compiled)
	IS_DISTINCT_FROM      // IS DISTINCT FROM
	IS_NOT_DISTINCT_FROM  // IS NOT DISTINCT FROM
	WHILE
	BREAK
	CONTINUE
	RETURN
	GOTO
	WAITFOR
	DELAY
	TIME
	TRY
	CATCH
	THROW
	RAISERROR

	// Keywords - Variables and types
	DECLARE
	CURSOR
	OPEN
	CLOSE
	FETCH_KW
	DEALLOCATE
	LOCAL
	GLOBAL
	FORWARD_ONLY
	SCROLL
	STATIC
	KEYSET
	DYNAMIC
	FAST_FORWARD
	READ_ONLY
	SCROLL_LOCKS
	OPTIMISTIC
	TYPE_WARNING

	// Keywords - Transactions
	TRANSACTION
	TRAN
	COMMIT
	ROLLBACK
	SAVE
	SAVEPOINT
	ISOLATION
	LEVEL
	SNAPSHOT

	// Keywords - Execution
	EXEC
	EXECUTE
	PRINT
	USE

	// Keywords - Table expressions
	CTE // Common Table Expression
	RECURSIVE
	OVER
	PARTITION
	ROW_NUMBER
	RANK
	DENSE_RANK
	NTILE
	LAG
	LEAD
	FIRST_VALUE
	LAST_VALUE

	// Keywords - Case expression
	CASE
	WHEN
	THEN
	COALESCE
	NULLIF
	IIF

	// Keywords - Type conversion
	CAST
	CONVERT
	TRY_CAST
	TRY_CONVERT
	PARSE
	TRY_PARSE
	TRIM

	// Keywords - Aggregate functions (treated as keywords for parsing)
	COUNT
	SUM
	AVG
	MIN
	MAX

	// Keywords - Data types
	INT_TYPE
	BIGINT
	SMALLINT
	TINYINT
	BIT
	DECIMAL
	NUMERIC
	MONEY
	SMALLMONEY
	FLOAT_TYPE
	REAL
	DATE
	DATETIME
	DATETIME2
	SMALLDATETIME
	DATETIMEOFFSET
	TIME_TYPE
	CHAR
	VARCHAR
	TEXT
	NCHAR
	NVARCHAR
	NTEXT
	BINARY_TYPE
	VARBINARY
	IMAGE
	UNIQUEIDENTIFIER
	XML
	JSON
	SQL_VARIANT
	HIERARCHYID
	GEOMETRY
	GEOGRAPHY
	ROWVERSION
	TIMESTAMP

	// Keywords - FOR XML/JSON
	RAW
	AUTO
	PATH
	EXPLICIT
	ELEMENTS
	ROOT
	TYPE_DIRECTIVE
	WITHOUT_ARRAY_WRAPPER
	INCLUDE_NULL_VALUES

	// Keywords - ALTER INDEX / BULK INSERT
	REBUILD
	REORGANIZE
	BULK
	RECOMPILE

	// Keywords - Temporal tables
	GENERATED
	ALWAYS
	SYSTEM_TIME
	PERIOD
	CONTAINED
	SYSTEM_VERSIONING
	TO
	START

	// Keywords - Misc
	GO
	NOCOUNT
	OFFSETS
	XACT_ABORT
	ANSI_NULLS
	QUOTED_IDENTIFIER
	NOLOCK
	HOLDLOCK
	UPDLOCK
	TABLOCK
	TABLOCKX
	ROWLOCK
	READPAST
	READCOMMITTED
	READUNCOMMITTED
	REPEATABLEREAD
	SERIALIZABLE

	// Keywords - Additional SET options
	ANSI_WARNINGS
	ARITHABORT
	ARITHIGNORE
	ANSI_DEFAULTS
	CONCAT_NULL_YIELDS_NULL
	NUMERIC_ROUNDABORT
	ANSI_PADDING
	ANSI_NULL_DFLT_ON
	CURSOR_CLOSE_ON_COMMIT
	IMPLICIT_TRANSACTIONS
	FMTONLY
	PARSEONLY
	FORCEPLAN
	SHOWPLAN_TEXT
	SHOWPLAN_ALL
	SHOWPLAN_XML
	NOEXEC
	REMOTE_PROC_TRANSACTIONS
	STATISTICS
	CONTEXT_INFO
	DEADLOCK_PRIORITY
	NOWAIT

	// Keywords - Stage 2 additions
	HINT
	ZONE
	TABLESAMPLE
	ENABLE
	DISABLE
	AT

	// Keywords - Stage 3 additions
	SYNONYM
	REVERT
	OPENJSON
	CALLER
	OWNER_KW
	SELF
	USER

	// Keywords - Stage 4 additions
	SEQUENCE
	INCREMENT
	MINVALUE
	MAXVALUE
	CYCLE
	CACHE_KW
	DBCC

	// Keywords - Stage 5 additions
	GRANT
	REVOKE
	DENY
	LOGIN
	ROLE
	MEMBER
	PASSWORD
	WINDOW
	WINDOWS
	WITHOUT
	AUTHORIZATION
	BACKUP
	RESTORE
	DISK
	LOG
	COMPRESSION
	INIT
	NORECOVERY
	RECOVERY
	FILELISTONLY
	HEADERONLY
	COPY_ONLY
	CERTIFICATE
	DIFFERENTIAL
	STATS
	MEDIANAME
	MEDIADESCRIPTION
	BLOCKSIZE
	BUFFERCOUNT
	MAXTRANSFERSIZE
	CHECKSUM
	NO_CHECKSUM
	CONTINUE_AFTER_ERROR
	STOP_ON_ERROR
	// Cryptography tokens
	MASTER
	SYMMETRIC
	ASYMMETRIC
	ENCRYPTION
	DECRYPTION
	ALGORITHM
	SUBJECT
	// CLR tokens
	ASSEMBLY
	PERMISSION_SET
	SAFE
	EXTERNAL_ACCESS
	UNSAFE
	// Partitioning tokens
	SCHEME
	SPLIT
	USED
	// Full-text search tokens
	CONTAINS
	FREETEXT
	CONTAINSTABLE
	FREETEXTTABLE
	FULLTEXT
	CATALOG
	LANGUAGE
	STOPLIST
	// Resource Governor tokens
	RESOURCE
	POOL
	WORKLOAD
	GOVERNOR
	CLASSIFIER
	RECONFIGURE
	// Availability Group tokens
	AVAILABILITY
	REPLICA
	ENDPOINT_URL
	FAILOVER
	SYNCHRONOUS_COMMIT
	ASYNCHRONOUS_COMMIT
	PRIMARY_ROLE
	SECONDARY_ROLE
	LISTENER
	// Service Broker tokens
	MESSAGE
	CONTRACT
	QUEUE
	SERVICE
	DIALOG
	CONVERSATION
	VALIDATION
	WELL_FORMED_XML
	EMPTY
	INITIATOR
	SENT
	ACTIVATION
	RETENTION
	POISON_MESSAGE_HANDLING
	RECEIVE
	SEND
	GET_CONVERSATION
	MOVE
	GET
	RESULT
	UNDEFINED
	NONE_KW
	SETS
)

func LookupIdent

func LookupIdent(ident string) Type

LookupIdent checks if an identifier is a keyword.

func (Type) IsKeyword

func (t Type) IsKeyword() bool

IsKeyword returns true if the token type is a keyword.

func (Type) String

func (t Type) String() string

String returns a string representation of the token type.

Jump to

Keyboard shortcuts

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