1+ // $antlr-format alignTrailingComments true, columnLimit 150, maxEmptyLinesToKeep 1, reflowComments false, useTab false
2+ // $antlr-format allowShortRulesOnASingleLine true, allowShortBlocksOnASingleLine true, minEmptyLines 0, alignSemicolons ownLine
3+ // $antlr-format alignColons trailing, singleLineOverrulesHangingColon true, alignLexerCommands true, alignLabels true, alignTrailers true
4+
5+ lexer grammar CqlLexer;
6+
7+ options {
8+ caseInsensitive = true ;
9+ }
10+
11+ // Operators and Punctuators
12+
13+ LR_BRACKET : ' (' ;
14+ RR_BRACKET : ' )' ;
15+ LC_BRACKET : ' {' ;
16+ RC_BRACKET : ' }' ;
17+ LS_BRACKET : ' [' ;
18+ RS_BRACKET : ' ]' ;
19+ COMMA : ' ,' ;
20+ SEMI : ' ;' ;
21+ COLON : ' :' ;
22+ DOT : ' .' ;
23+ STAR : ' *' ;
24+ DIVIDE : ' /' ;
25+ MODULE : ' %' ;
26+ PLUS : ' +' ;
27+ MINUSMINUS : ' --' ;
28+ MINUS : ' -' ;
29+ DQUOTE : ' "' ;
30+ SQUOTE : ' \' ' ;
31+ OPERATOR_EQ : ' =' ;
32+ OPERATOR_LT : ' <' ;
33+ OPERATOR_GT : ' >' ;
34+ OPERATOR_LTE : ' <=' ;
35+ OPERATOR_GTE : ' >=' ;
36+
37+ // Keywords
38+
39+ K_ADD : ' ADD' ;
40+ K_AGGREGATE : ' AGGREGATE' ;
41+ K_ALL : ' ALL' ;
42+ K_ALLOW : ' ALLOW' ;
43+ K_ALTER : ' ALTER' ;
44+ K_AND : ' AND' ;
45+ K_ANY : ' ANY' ;
46+ K_APPLY : ' APPLY' ;
47+ K_AS : ' AS' ;
48+ K_ASC : ' ASC' ;
49+ K_AUTHORIZE : ' AUTHORIZE' ;
50+ K_BATCH : ' BATCH' ;
51+ K_BEGIN : ' BEGIN' ;
52+ K_BY : ' BY' ;
53+ K_CALLED : ' CALLED' ;
54+ K_CLUSTERING : ' CLUSTERING' ;
55+ K_COLUMNFAMILY : ' COLUMNFAMILY' ;
56+ K_COMPACT : ' COMPACT' ;
57+ K_CONSISTENCY : ' CONSISTENCY' ;
58+ K_CONTAINS : ' CONTAINS' ;
59+ K_CREATE : ' CREATE' ;
60+ K_CUSTOM : ' CUSTOM' ;
61+ K_DELETE : ' DELETE' ;
62+ K_DESC : ' DESC' ;
63+ K_DESCRIBE : ' DESCRIBE' ;
64+ K_DISTINCT : ' DISTINCT' ;
65+ K_DROP : ' DROP' ;
66+ K_DURABLE_WRITES : ' DURABLE_WRITES' ;
67+ K_EACH_QUORUM : ' EACH_QUORUM' ;
68+ K_ENTRIES : ' ENTRIES' ;
69+ K_EXECUTE : ' EXECUTE' ;
70+ K_EXISTS : ' EXISTS' ;
71+ K_FALSE : ' FALSE' ;
72+ K_FILTERING : ' FILTERING' ;
73+ K_FINALFUNC : ' FINALFUNC' ;
74+ K_FROM : ' FROM' ;
75+ K_FULL : ' FULL' ;
76+ K_FUNCTION : ' FUNCTION' ;
77+ K_FUNCTIONS : ' FUNCTIONS' ;
78+ K_GRANT : ' GRANT' ;
79+ K_IF : ' IF' ;
80+ K_IN : ' IN' ;
81+ K_INDEX : ' INDEX' ;
82+ K_INFINITY : ' INFINITY' ;
83+ K_INITCOND : ' INITCOND' ;
84+ K_INPUT : ' INPUT' ;
85+ K_INSERT : ' INSERT' ;
86+ K_INTO : ' INTO' ;
87+ K_IS : ' IS' ;
88+ K_JSON : ' JSON' ;
89+ K_KEY : ' KEY' ;
90+ K_KEYS : ' KEYS' ;
91+ K_KEYSPACE : ' KEYSPACE' ;
92+ K_KEYSPACES : ' KEYSPACES' ;
93+ K_LANGUAGE : ' LANGUAGE' ;
94+ K_LEVEL : ' LEVEL' ;
95+ K_LIMIT : ' LIMIT' ;
96+ K_LOCAL_ONE : ' LOCAL_ONE' ;
97+ K_LOCAL_QUORUM : ' LOCAL_QUORUM' ;
98+ K_LOGGED : ' LOGGED' ;
99+ K_LOGIN : ' LOGIN' ;
100+ K_MATERIALIZED : ' MATERIALIZED' ;
101+ K_MODIFY : ' MODIFY' ;
102+ K_NAN : ' NAN' ;
103+ K_NORECURSIVE : ' NORECURSIVE' ;
104+ K_NOSUPERUSER : ' NOSUPERUSER' ;
105+ K_NOT : ' NOT' ;
106+ K_NULL : ' NULL' ;
107+ K_OF : ' OF' ;
108+ K_ON : ' ON' ;
109+ K_ONE : ' ONE' ;
110+ K_OPTIONS : ' OPTIONS' ;
111+ K_OR : ' OR' ;
112+ K_ORDER : ' ORDER' ;
113+ K_PARTITION : ' PARTITION' ;
114+ K_PASSWORD : ' PASSWORD' ;
115+ K_PER : ' PER' ;
116+ K_PERMISSION : ' PERMISSION' ;
117+ K_PERMISSIONS : ' PERMISSIONS' ;
118+ K_PRIMARY : ' PRIMARY' ;
119+ K_QUORUM : ' QUORUM' ;
120+ K_RENAME : ' RENAME' ;
121+ K_REPLACE : ' REPLACE' ;
122+ K_REPLICATION : ' REPLICATION' ;
123+ K_RETURNS : ' RETURNS' ;
124+ K_REVOKE : ' REVOKE' ;
125+ K_ROLE : ' ROLE' ;
126+ K_ROLES : ' ROLES' ;
127+ K_SCHEMA : ' SCHEMA' ;
128+ K_SELECT : ' SELECT' ;
129+ K_SET : ' SET' ;
130+ K_SFUNC : ' SFUNC' ;
131+ K_STATIC : ' STATIC' ;
132+ K_STORAGE : ' STORAGE' ;
133+ K_STYPE : ' STYPE' ;
134+ K_SUPERUSER : ' SUPERUSER' ;
135+ K_TABLE : ' TABLE' ;
136+ K_THREE : ' THREE' ;
137+ K_TIMESTAMP : ' TIMESTAMP' ;
138+ K_TO : ' TO' ;
139+ K_TOKEN : ' TOKEN' ;
140+ K_TRIGGER : ' TRIGGER' ;
141+ K_TRUE : ' TRUE' ;
142+ K_TRUNCATE : ' TRUNCATE' ;
143+ K_TTL : ' TTL' ;
144+ K_TWO : ' TWO' ;
145+ K_TYPE : ' TYPE' ;
146+ K_UNLOGGED : ' UNLOGGED' ;
147+ K_UPDATE : ' UPDATE' ;
148+ K_USE : ' USE' ;
149+ K_USER : ' USER' ;
150+ K_USING : ' USING' ;
151+ K_UUID : ' UUID' ;
152+ K_VALUES : ' VALUES' ;
153+ K_VIEW : ' VIEW' ;
154+ K_WHERE : ' WHERE' ;
155+ K_WITH : ' WITH' ;
156+ K_WRITETIME : ' WRITETIME' ;
157+ K_ASCII : ' ASCII' ;
158+ K_BIGINT : ' BIGINT' ;
159+ K_BLOB : ' BLOB' ;
160+ K_BOOLEAN : ' BOOLEAN' ;
161+ K_COUNTER : ' COUNTER' ;
162+ K_DATE : ' DATE' ;
163+ K_DECIMAL : ' DECIMAL' ;
164+ K_DOUBLE : ' DOUBLE' ;
165+ K_FLOAT : ' FLOAT' ;
166+ K_FROZEN : ' FROZEN' ;
167+ K_INET : ' INET' ;
168+ K_INT : ' INT' ;
169+ K_LIST : ' LIST' ;
170+ K_MAP : ' MAP' ;
171+ K_SMALLINT : ' SMALLINT' ;
172+ K_TEXT : ' TEXT' ;
173+ K_TIMEUUID : ' TIMEUUID' ;
174+ K_TIME : ' TIME' ;
175+ K_TINYINT : ' TINYINT' ;
176+ K_TUPLE : ' TUPLE' ;
177+ K_VARCHAR : ' VARCHAR' ;
178+ K_VARINT : ' VARINT' ;
179+
180+ // Literals
181+
182+ CODE_BLOCK : ' $$' (~ ' $' | ' $' ~' $' )* ' $$' ;
183+
184+ STRING_LITERAL : ' \' ' (' \\ ' . | ' \'\' ' | ~(' \' ' | ' \\ ' ))* ' \' ' ;
185+
186+ DECIMAL_LITERAL : DEC_DIGIT +;
187+
188+ FLOAT_LITERAL : MINUS ? [0-9]+ (DOT [0-9]+)?;
189+
190+ HEXADECIMAL_LITERAL : ' X' ' \' ' (HEX_DIGIT HEX_DIGIT )+ ' \' ' | ' 0X' HEX_DIGIT +;
191+
192+ REAL_LITERAL : DEC_DIGIT + ' .' ? EXPONENT_NUM_PART | DEC_DIGIT * ' .' DEC_DIGIT + EXPONENT_NUM_PART ?;
193+
194+ OBJECT_NAME : [A -Z ] [A -Z0 -9_$]* | ' "' ~' "' + ' "' ;
195+
196+ UUID :
197+ HEX_4DIGIT HEX_4DIGIT ' -' HEX_4DIGIT ' -' HEX_4DIGIT ' -' HEX_4DIGIT ' -' HEX_4DIGIT HEX_4DIGIT HEX_4DIGIT
198+ ;
199+
200+ // Hidden
201+
202+ SPACE : [ \t\r\n]+ -> channel (HIDDEN );
203+ SPEC_MYSQL_COMMENT : ' /*!' .+? ' */' -> channel (HIDDEN );
204+ COMMENT_INPUT : ' /*' .*? ' */' -> channel (HIDDEN );
205+ LINE_COMMENT :
206+ ((' -- ' | ' #' | ' //' ) ~ [\r\n]* (' \r ' ? ' \n ' | EOF ) | ' --' (' \r ' ? ' \n ' | EOF )) -> channel (HIDDEN )
207+ ;
208+
209+ // Fragments
210+
211+ fragment HEX_4DIGIT : [0-9A-F ] [0-9A-F ] [0-9A-F ] [0-9A-F ];
212+
213+ fragment HEX_DIGIT : [0-9A-F ];
214+
215+ fragment DEC_DIGIT : [0-9];
216+
217+ fragment EXPONENT_NUM_PART : ' E' ' -' ? DEC_DIGIT +;
0 commit comments