1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
const char* const tests[] = {
"SELECT 1",
"SELECT = SELECT, RESERVED_KEYWORD\n"
"1 = ICONST, NO_KEYWORD\n",
"SELECT * FROM x WHERE z = 2",
"SELECT = SELECT, RESERVED_KEYWORD\n"
"* = ASCII_42, NO_KEYWORD\n"
"FROM = FROM, RESERVED_KEYWORD\n"
"x = IDENT, NO_KEYWORD\n"
"WHERE = WHERE, RESERVED_KEYWORD\n"
"z = IDENT, NO_KEYWORD\n"
"= = ASCII_61, NO_KEYWORD\n"
"2 = ICONST, NO_KEYWORD\n",
"SELECT 5.41414",
"SELECT = SELECT, RESERVED_KEYWORD\n"
"5.41414 = FCONST, NO_KEYWORD\n",
"SELECT $1",
"SELECT = SELECT, RESERVED_KEYWORD\n"
"$1 = PARAM, NO_KEYWORD\n",
"SELECT update AS left /* comment */ FROM between",
"SELECT = SELECT, RESERVED_KEYWORD\n"
"update = UPDATE, UNRESERVED_KEYWORD\n"
"AS = AS, RESERVED_KEYWORD\n"
"left = LEFT, TYPE_FUNC_NAME_KEYWORD\n"
"/* comment */ = C_COMMENT, NO_KEYWORD\n"
"FROM = FROM, RESERVED_KEYWORD\n"
"between = BETWEEN, COL_NAME_KEYWORD\n",
"SELECT 999999999999999999999::numeric/1000000000000000000000",
"SELECT = SELECT, RESERVED_KEYWORD\n"
"999999999999999999999 = FCONST, NO_KEYWORD\n"
":: = TYPECAST, NO_KEYWORD\n"
"numeric = NUMERIC, COL_NAME_KEYWORD\n"
"/ = ASCII_47, NO_KEYWORD\n"
"1000000000000000000000 = FCONST, NO_KEYWORD\n",
"SELECT 4790999999999999999999999999999999999999999999999999999999999999999999999999999999999999 * 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999",
"SELECT = SELECT, RESERVED_KEYWORD\n"
"4790999999999999999999999999999999999999999999999999999999999999999999999999999999999999 = FCONST, NO_KEYWORD\n"
"* = ASCII_42, NO_KEYWORD\n"
"9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 = FCONST, NO_KEYWORD\n",
"SELECT $foo$test$foo$, '123' FROM \"xy\", abc",
"SELECT = SELECT, RESERVED_KEYWORD\n"
"$foo$test$foo$ = SCONST, NO_KEYWORD\n"
", = ASCII_44, NO_KEYWORD\n"
"'123' = SCONST, NO_KEYWORD\n"
"FROM = FROM, RESERVED_KEYWORD\n"
"\"xy\" = IDENT, NO_KEYWORD\n"
", = ASCII_44, NO_KEYWORD\n"
"abc = IDENT, NO_KEYWORD\n",
"SELECT '/*not a comment*/', E'\\134', B'10', X'12', -Infinity, U&\"d!0061t!+000061\" UESCAPE '!', U&'d!0061t!+000061' UESCAPE '!'",
"SELECT = SELECT, RESERVED_KEYWORD\n"
"'/*not a comment*/' = SCONST, NO_KEYWORD\n"
", = ASCII_44, NO_KEYWORD\n"
"E'\\134' = SCONST, NO_KEYWORD\n"
", = ASCII_44, NO_KEYWORD\n"
"B'10' = BCONST, NO_KEYWORD\n"
", = ASCII_44, NO_KEYWORD\n"
"X'12' = XCONST, NO_KEYWORD\n"
", = ASCII_44, NO_KEYWORD\n"
"- = ASCII_45, NO_KEYWORD\n"
"Infinity = IDENT, NO_KEYWORD\n"
", = ASCII_44, NO_KEYWORD\n"
"U&\"d!0061t!+000061\" = UIDENT, NO_KEYWORD\n"
"UESCAPE = UESCAPE, UNRESERVED_KEYWORD\n"
"'!' = SCONST, NO_KEYWORD\n"
", = ASCII_44, NO_KEYWORD\n"
"U&'d!0061t!+000061' = USCONST, NO_KEYWORD\n"
"UESCAPE = UESCAPE, UNRESERVED_KEYWORD\n"
"'!' = SCONST, NO_KEYWORD\n",
"SELECT 'a'/*;*/'b'; SELECT ';';",
"SELECT = SELECT, RESERVED_KEYWORD\n"
"'a' = SCONST, NO_KEYWORD\n"
"/*;*/ = C_COMMENT, NO_KEYWORD\n"
"'b' = SCONST, NO_KEYWORD\n"
"; = ASCII_59, NO_KEYWORD\n"
"SELECT = SELECT, RESERVED_KEYWORD\n"
"';' = SCONST, NO_KEYWORD\n"
"; = ASCII_59, NO_KEYWORD\n",
"CREATE RULE x AS ON SELECT TO tbl DO (SELECT 1; SELECT 2)",
"CREATE = CREATE, RESERVED_KEYWORD\n"
"RULE = RULE, UNRESERVED_KEYWORD\n"
"x = IDENT, NO_KEYWORD\n"
"AS = AS, RESERVED_KEYWORD\n"
"ON = ON, RESERVED_KEYWORD\n"
"SELECT = SELECT, RESERVED_KEYWORD\n"
"TO = TO, RESERVED_KEYWORD\n"
"tbl = IDENT, NO_KEYWORD\n"
"DO = DO, RESERVED_KEYWORD\n"
"( = ASCII_40, NO_KEYWORD\n"
"SELECT = SELECT, RESERVED_KEYWORD\n"
"1 = ICONST, NO_KEYWORD\n"
"; = ASCII_59, NO_KEYWORD\n"
"SELECT = SELECT, RESERVED_KEYWORD\n"
"2 = ICONST, NO_KEYWORD\n"
") = ASCII_41, NO_KEYWORD\n",
"SELECT $identifier",
"SELECT = SELECT, RESERVED_KEYWORD\n"
"$ = ASCII_36, NO_KEYWORD\n"
"identifier = IDENT, NO_KEYWORD\n",
};
const size_t testsCount = sizeof(tests)/sizeof(*tests)/2;
|