diff options
Diffstat (limited to 'tests/lexers/text/example.txt')
| -rw-r--r-- | tests/lexers/text/example.txt | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/tests/lexers/text/example.txt b/tests/lexers/text/example.txt new file mode 100644 index 00000000..d23487f3 --- /dev/null +++ b/tests/lexers/text/example.txt @@ -0,0 +1,136 @@ +---input--- +-- Samples of MySQL parsing + + +-- Comments +# standalone comment line +-- standalone comment line +SELECT 1; -- trailing comment +SELECT 1; # trailing comment +SELECT 1; /* trailing comment */ +SELECT /* interruption */ /**/ 1; + /* + Multiline / * / comment + */ + /* /* MySQL does not support nested comments */ +SELECT 'If this line is a comment then nested commenting is enabled (and therefore broken).'; + + +-- Optimizer hints +SELECT /*+ SEMIJOIN(FIRSTMATCH, LOOSESCAN) */ 1; +SELECT /*+ SET_VAR(foreign_key_checks=OFF) */ 1; + + +-- Literals +SELECT + -- Integers + 123, + + -- Floats + .123, 1.23, 123., + + -- Exponents + 1e10, 1e-10, 1.e20, .1e-20, + + -- Hexadecimal + X'0af019', x'0AF019', 0xaf019, + + -- Binary + B'010', b'010', 0b010, + + -- Temporal literals + {d'2020-01-01'}, { d ' 2020^01@01 ' }, + {t'8 9:10:11'}, { t ' 09:10:11.12 ' }, { t ' 091011 ' }, + {ts"2020-01-01 09:10:11"}, { ts ' 2020@01/01 09:10:11 ' }, + + -- Strings + '', 'abc', '1''2\03\%4\_5\\6\'7\"8', + "", "abc", "1""2\03\%4\_5\\6\'7\"8", +; + + +-- Variables +SET @a = 1, @1 = 2, @._.$ = 3; +SET @'?' = 1, @'abc''def"`ghi' = 2; +SET @"#" = 1, @"abc""def'`ghi" = 2; +SET @`^` = 1, @`abc``def'"ghi` = 2; +SELECT + @@timestamp, + @@global.auto_increment_offset, + @@session.auto_increment_offset, + @@auto_increment_offset +; + + +-- Prepared statements +SELECT POW(?, 3) AS cubed; + + +-- Constants +SELECT TRUE, FALSE, NULL, UNKNOWN; + + +-- Data types +CREATE TABLE table1 ( + id INT AUTO_INCREMENT PRIMARY KEY, + name VARCHAR(20) NOT NULL, + birthyear YEAR +); + + +-- Keywords +INSERT INTO table1 (person, birthyear) VALUES ('abc', 2020); + +WITH RECURSIVE example (n) AS ( + SELECT 1 + UNION ALL + SELECT n + 1 FROM example + WHERE n < 10 +) +SELECT n FROM example; + +SELECT 17 MEMBER OF ('[23, "abc", 17, "ab", 10]'); + + +-- Functions +SELECT CONCAT('function'); +SELECT MAX(quantity) FROM example; + + +-- Schema object names +CREATE TABLE basic ( + example INT, + 股票编号 INT, + `select` INT, + `concat(` INT +); + +SELECT e1.`apple` AS a, `example2`.b +FROM example1 AS e1 +JOIN example2 e2 +ON `example1`.`a``b` = e2.`123`; + + +-- Operators +SELECT 1 + 2 - 3 << 2; +SELECT 1::DECIMAL(5, 2); +SET @a = 1; +SET a := 1; +SELECT c->>'$.name' FROM example; + + + +-- Exceptions +CREATE TABLE t1 +( + c1 VARCHAR(5) CHARACTER SET latin1, + c2 SET('r', 'g', 'b') +); + + +-- Introducers +SELECT _latin1'abc'; +SELECT _binary'abc'; + +---tokens--- +'-- Samples of MySQL parsing\n\n\n-- Comments\n# standalone comment line\n-- standalone comment line\nSELECT 1; -- trailing comment\nSELECT 1; # trailing comment\nSELECT 1; /* trailing comment */\nSELECT /* interruption */ /**/ 1;\n /*\n Multiline / * / comment\n */\n /* /* MySQL does not support nested comments */\nSELECT \'If this line is a comment then nested commenting is enabled (and therefore broken).\';\n\n\n-- Optimizer hints\nSELECT /*+ SEMIJOIN(FIRSTMATCH, LOOSESCAN) */ 1;\nSELECT /*+ SET_VAR(foreign_key_checks=OFF) */ 1;\n\n\n-- Literals\nSELECT\n -- Integers\n 123,\n\n -- Floats\n .123, 1.23, 123.,\n\n -- Exponents\n 1e10, 1e-10, 1.e20, .1e-20,\n\n -- Hexadecimal\n X\'0af019\', x\'0AF019\', 0xaf019,\n\n -- Binary\n B\'010\', b\'010\', 0b010,\n\n -- Temporal literals\n {d\'2020-01-01\'}, { d \' 2020^01@01 \' },\n {t\'8 9:10:11\'}, { t \' 09:10:11.12 \' }, { t \' 091011 \' },\n {ts"2020-01-01 09:10:11"}, { ts \' 2020@01/01 09:10:11 \' },\n\n -- Strings\n \'\', \'abc\', \'1\'\'2\\03\\%4\\_5\\\\6\\\'7\\"8\',\n "", "abc", "1""2\\03\\%4\\_5\\\\6\\\'7\\"8",\n;\n\n\n-- Variables\nSET @a = 1, @1 = 2, @._.$ = 3;\nSET @\'?\' = 1, @\'abc\'\'def"`ghi\' = 2;\nSET @"#" = 1, @"abc""def\'`ghi" = 2;\nSET @`^` = 1, @`abc``def\'"ghi` = 2;\nSELECT\n @@timestamp,\n @@global.auto_increment_offset,\n @@session.auto_increment_offset,\n @@auto_increment_offset\n;\n\n\n-- Prepared statements\nSELECT POW(?, 3) AS cubed;\n\n\n-- Constants\nSELECT TRUE, FALSE, NULL, UNKNOWN;\n\n\n-- Data types\nCREATE TABLE table1 (\n id INT AUTO_INCREMENT PRIMARY KEY,\n name VARCHAR(20) NOT NULL,\n birthyear YEAR\n);\n\n\n-- Keywords\nINSERT INTO table1 (person, birthyear) VALUES (\'abc\', 2020);\n\nWITH RECURSIVE example (n) AS (\n SELECT 1\n UNION ALL\n SELECT n + 1 FROM example\n WHERE n < 10\n)\nSELECT n FROM example;\n\nSELECT 17 MEMBER OF (\'[23, "abc", 17, "ab", 10]\');\n\n\n-- Functions\nSELECT CONCAT(\'function\');\nSELECT MAX(quantity) FROM example;\n\n\n-- Schema object names\nCREATE TABLE basic (\n example INT,\n 股票编号 INT,\n `select` INT,\n `concat(` INT\n);\n\nSELECT e1.`apple` AS a, `example2`.b\nFROM example1 AS e1\nJOIN example2 e2\nON `example1`.`a``b` = e2.`123`;\n\n\n-- Operators\nSELECT 1 + 2 - 3 << 2;\nSELECT 1::DECIMAL(5, 2);\nSET @a = 1;\nSET a := 1;\nSELECT c->>\'$.name\' FROM example;\n\n\n\n-- Exceptions\nCREATE TABLE t1\n(\n c1 VARCHAR(5) CHARACTER SET latin1,\n c2 SET(\'r\', \'g\', \'b\')\n);\n\n\n-- Introducers\nSELECT _latin1\'abc\';\nSELECT _binary\'abc\';\n' Text |
