---
source: crates/squawk_syntax/src/test.rs
input_file: crates/squawk_syntax/test_data/validation/custom_operators.sql
---
SOURCE_FILE@0..423
COMMENT@0..30 "-- disallowed prefix ..."
WHITESPACE@30..31 "\n"
SELECT@31..41
SELECT_CLAUSE@31..40
SELECT_KW@31..37 "select"
WHITESPACE@37..38 " "
TARGET_LIST@38..40
TARGET@38..39
STAR@38..39 "*"
TARGET@39..40
NAME_REF@39..40
IDENT@39..40 "c"
SEMICOLON@40..41 ";"
WHITESPACE@41..42 "\n"
SELECT@42..52
SELECT_CLAUSE@42..51
SELECT_KW@42..48 "select"
WHITESPACE@48..49 " "
TARGET_LIST@49..51
TARGET@49..51
PREFIX_EXPR@49..51
CUSTOM_OP@49..50
SLASH@49..50 "/"
NAME_REF@50..51
IDENT@50..51 "d"
SEMICOLON@51..52 ";"
WHITESPACE@52..53 "\n"
SELECT@53..63
SELECT_CLAUSE@53..62
SELECT_KW@53..59 "select"
WHITESPACE@59..60 " "
TARGET_LIST@60..62
TARGET@60..62
PREFIX_EXPR@60..62
CUSTOM_OP@60..61
L_ANGLE@60..61 "<"
NAME_REF@61..62
IDENT@61..62 "e"
SEMICOLON@62..63 ";"
WHITESPACE@63..64 "\n"
SELECT@64..74
SELECT_CLAUSE@64..73
SELECT_KW@64..70 "select"
WHITESPACE@70..71 " "
TARGET_LIST@71..73
TARGET@71..73
PREFIX_EXPR@71..73
CUSTOM_OP@71..72
R_ANGLE@71..72 ">"
NAME_REF@72..73
IDENT@72..73 "f"
SEMICOLON@73..74 ";"
WHITESPACE@74..75 "\n"
SELECT@75..85
SELECT_CLAUSE@75..84
SELECT_KW@75..81 "select"
WHITESPACE@81..82 " "
TARGET_LIST@82..84
TARGET@82..84
PREFIX_EXPR@82..84
CUSTOM_OP@82..83
EQ@82..83 "="
NAME_REF@83..84
IDENT@83..84 "g"
SEMICOLON@84..85 ";"
WHITESPACE@85..86 "\n"
SELECT@86..96
SELECT_CLAUSE@86..95
SELECT_KW@86..92 "select"
WHITESPACE@92..93 " "
TARGET_LIST@93..95
TARGET@93..95
PREFIX_EXPR@93..95
CUSTOM_OP@93..94
PERCENT@93..94 "%"
NAME_REF@94..95
IDENT@94..95 "l"
SEMICOLON@95..96 ";"
WHITESPACE@96..97 "\n"
SELECT@97..107
SELECT_CLAUSE@97..106
SELECT_KW@97..103 "select"
WHITESPACE@103..104 " "
TARGET_LIST@104..106
TARGET@104..106
PREFIX_EXPR@104..106
CUSTOM_OP@104..105
CARET@104..105 "^"
NAME_REF@105..106
IDENT@105..106 "m"
SEMICOLON@106..107 ";"
WHITESPACE@107..108 "\n"
COMMENT@108..165 "-- operators may not ..."
WHITESPACE@165..166 "\n"
SELECT@166..240
SELECT_CLAUSE@166..239
SELECT_KW@166..172 "select"
WHITESPACE@172..173 " "
TARGET_LIST@173..239
TARGET@173..239
PREFIX_EXPR@173..239
CUSTOM_OP@173..237
PIPE@173..174 "|"
PIPE@174..175 "|"
PIPE@175..176 "|"
PIPE@176..177 "|"
PIPE@177..178 "|"
PIPE@178..179 "|"
PIPE@179..180 "|"
PIPE@180..181 "|"
PIPE@181..182 "|"
PIPE@182..183 "|"
PIPE@183..184 "|"
PIPE@184..185 "|"
PIPE@185..186 "|"
PIPE@186..187 "|"
PIPE@187..188 "|"
PIPE@188..189 "|"
PIPE@189..190 "|"
PIPE@190..191 "|"
PIPE@191..192 "|"
PIPE@192..193 "|"
PIPE@193..194 "|"
PIPE@194..195 "|"
PIPE@195..196 "|"
PIPE@196..197 "|"
PIPE@197..198 "|"
PIPE@198..199 "|"
PIPE@199..200 "|"
PIPE@200..201 "|"
PIPE@201..202 "|"
PIPE@202..203 "|"
PIPE@203..204 "|"
PIPE@204..205 "|"
PIPE@205..206 "|"
PIPE@206..207 "|"
PIPE@207..208 "|"
PIPE@208..209 "|"
PIPE@209..210 "|"
PIPE@210..211 "|"
PIPE@211..212 "|"
PIPE@212..213 "|"
PIPE@213..214 "|"
PIPE@214..215 "|"
PIPE@215..216 "|"
PIPE@216..217 "|"
PIPE@217..218 "|"
PIPE@218..219 "|"
PIPE@219..220 "|"
PIPE@220..221 "|"
PIPE@221..222 "|"
PIPE@222..223 "|"
PIPE@223..224 "|"
PIPE@224..225 "|"
PIPE@225..226 "|"
PIPE@226..227 "|"
PIPE@227..228 "|"
PIPE@228..229 "|"
PIPE@229..230 "|"
PIPE@230..231 "|"
PIPE@231..232 "|"
PIPE@232..233 "|"
PIPE@233..234 "|"
PIPE@234..235 "|"
PIPE@235..236 "|"
PIPE@236..237 "|"
WHITESPACE@237..238 " "
LITERAL@238..239
INT_NUMBER@238..239 "1"
SEMICOLON@239..240 ";"
WHITESPACE@240..241 "\n"
SELECT@241..317
SELECT_CLAUSE@241..316
SELECT_KW@241..247 "select"
WHITESPACE@247..248 " "
TARGET_LIST@248..316
TARGET@248..316
BIN_EXPR@248..316
LITERAL@248..249
INT_NUMBER@248..249 "1"
WHITESPACE@249..250 " "
CUSTOM_OP@250..314
PIPE@250..251 "|"
PIPE@251..252 "|"
PIPE@252..253 "|"
PIPE@253..254 "|"
PIPE@254..255 "|"
PIPE@255..256 "|"
PIPE@256..257 "|"
PIPE@257..258 "|"
PIPE@258..259 "|"
PIPE@259..260 "|"
PIPE@260..261 "|"
PIPE@261..262 "|"
PIPE@262..263 "|"
PIPE@263..264 "|"
PIPE@264..265 "|"
PIPE@265..266 "|"
PIPE@266..267 "|"
PIPE@267..268 "|"
PIPE@268..269 "|"
PIPE@269..270 "|"
PIPE@270..271 "|"
PIPE@271..272 "|"
PIPE@272..273 "|"
PIPE@273..274 "|"
PIPE@274..275 "|"
PIPE@275..276 "|"
PIPE@276..277 "|"
PIPE@277..278 "|"
PIPE@278..279 "|"
PIPE@279..280 "|"
PIPE@280..281 "|"
PIPE@281..282 "|"
PIPE@282..283 "|"
PIPE@283..284 "|"
PIPE@284..285 "|"
PIPE@285..286 "|"
PIPE@286..287 "|"
PIPE@287..288 "|"
PIPE@288..289 "|"
PIPE@289..290 "|"
PIPE@290..291 "|"
PIPE@291..292 "|"
PIPE@292..293 "|"
PIPE@293..294 "|"
PIPE@294..295 "|"
PIPE@295..296 "|"
PIPE@296..297 "|"
PIPE@297..298 "|"
PIPE@298..299 "|"
PIPE@299..300 "|"
PIPE@300..301 "|"
PIPE@301..302 "|"
PIPE@302..303 "|"
PIPE@303..304 "|"
PIPE@304..305 "|"
PIPE@305..306 "|"
PIPE@306..307 "|"
PIPE@307..308 "|"
PIPE@308..309 "|"
PIPE@309..310 "|"
PIPE@310..311 "|"
PIPE@311..312 "|"
PIPE@312..313 "|"
PIPE@313..314 "|"
WHITESPACE@314..315 " "
LITERAL@315..316
INT_NUMBER@315..316 "2"
SEMICOLON@316..317 ";"
WHITESPACE@317..318 "\n"
COMMENT@318..346 "-- 63 chars is still ..."
WHITESPACE@346..347 "\n"
SELECT@347..422
SELECT_CLAUSE@347..421
SELECT_KW@347..353 "select"
WHITESPACE@353..354 " "
TARGET_LIST@354..421
TARGET@354..421
BIN_EXPR@354..421
LITERAL@354..355
INT_NUMBER@354..355 "1"
WHITESPACE@355..356 " "
CUSTOM_OP@356..419
PLUS@356..357 "+"
PLUS@357..358 "+"
PLUS@358..359 "+"
PLUS@359..360 "+"
PLUS@360..361 "+"
PLUS@361..362 "+"
PLUS@362..363 "+"
PLUS@363..364 "+"
PLUS@364..365 "+"
PLUS@365..366 "+"
PLUS@366..367 "+"
PLUS@367..368 "+"
PLUS@368..369 "+"
PLUS@369..370 "+"
PLUS@370..371 "+"
PLUS@371..372 "+"
PLUS@372..373 "+"
PLUS@373..374 "+"
PLUS@374..375 "+"
PLUS@375..376 "+"
PLUS@376..377 "+"
PLUS@377..378 "+"
PLUS@378..379 "+"
PLUS@379..380 "+"
PLUS@380..381 "+"
PLUS@381..382 "+"
PLUS@382..383 "+"
PLUS@383..384 "+"
PLUS@384..385 "+"
PLUS@385..386 "+"
PLUS@386..387 "+"
PLUS@387..388 "+"
PLUS@388..389 "+"
PLUS@389..390 "+"
PLUS@390..391 "+"
PLUS@391..392 "+"
PLUS@392..393 "+"
PLUS@393..394 "+"
PLUS@394..395 "+"
PLUS@395..396 "+"
PLUS@396..397 "+"
PLUS@397..398 "+"
PLUS@398..399 "+"
PLUS@399..400 "+"
PLUS@400..401 "+"
PLUS@401..402 "+"
PLUS@402..403 "+"
PLUS@403..404 "+"
PLUS@404..405 "+"
PLUS@405..406 "+"
PLUS@406..407 "+"
PLUS@407..408 "+"
PLUS@408..409 "+"
PLUS@409..410 "+"
PLUS@410..411 "+"
PLUS@411..412 "+"
PLUS@412..413 "+"
PLUS@413..414 "+"
PLUS@414..415 "+"
PLUS@415..416 "+"
PLUS@416..417 "+"
PLUS@417..418 "+"
PLUS@418..419 "+"
WHITESPACE@419..420 " "
LITERAL@420..421
INT_NUMBER@420..421 "2"
SEMICOLON@421..422 ";"
WHITESPACE@422..423 "\n"
error[syntax-error]: missing comma
╭▸
2 │ select *c;
╰╴ ━
error[syntax-error]: Invalid operator.
╭▸
3 │ select /d;
╰╴ ━
error[syntax-error]: Invalid operator.
╭▸
4 │ select <e;
╰╴ ━
error[syntax-error]: Invalid operator.
╭▸
5 │ select >f;
╰╴ ━
error[syntax-error]: Invalid operator.
╭▸
6 │ select =g;
╰╴ ━
error[syntax-error]: Invalid operator.
╭▸
7 │ select %l;
╰╴ ━
error[syntax-error]: Invalid operator.
╭▸
8 │ select ^m;
╰╴ ━
error[syntax-error]: operator too long
╭▸
10 │ select |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 1;
╰╴ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
error[syntax-error]: operator too long
╭▸
11 │ select 1 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 2;
╰╴ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━