summaryrefslogtreecommitdiff
path: root/tests/lexers/text
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lexers/text')
-rw-r--r--tests/lexers/text/example.txt136
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