-1
我解析像語言SQL和我有串的問題,以數字開頭:ANTLR的4文本及數位一起
SELECT 90userN進行解析,以選擇90 AS用戶N
因爲我刪除空格,它以某種方式獲取數字作爲名稱和字符串作爲別名。
我甚至不知道從哪裏開始。
語法:SQL
result_column : '*'
| table_name '.' '*'
| table_name '.' any_name
| expr
any_name : keyword
| IDENTIFIER
| STRING_LITERAL
| '(' any_name ')'
;
expr: literal_value;
literal_value :
NUMERIC_LITERAL
| STRING_LITERAL
| DATE_LITERAL
| IDENTIFIER
| NULL
;
IDENTIFIER :
'"' (~'"' | '""')* '"'
| '`' (~'`' | '``')* '`'
| '[' ~']'* ']'
| [a-zA-Z_] [a-zA-Z_0-9]*;
STRING_LITERAL : '\'' (~'\'' | '\'\'')* '\'' ;
NUMERIC_LITERAL :
DIGIT+ ('.' DIGIT*)? (E [-+]? DIGIT+)?
| '.' DIGIT+ (E [-+]? DIGIT+)? ;
DATE_LITERAL: DIGIT DIGIT DIGIT DIGIT '-' DIGIT DIGIT '-' DIGIT DIGIT;
將是一個很好的開始張貼一些源代碼。這些天水晶球很貴。 –
添加了語法的部分 –
看起來似乎「刪除空格」的方式不正確。在任何情況下,90userN都不是語法中的字符串;它實際上是一個語法錯誤 - 既不是一個標識符也不是一個數字 –