2014-02-07 109 views
0

如何編寫antlr4語法詞法分析器規則以不匹配字符串。例如,我有以下輸入字符串:antlr4詞法分析器規則與字符串不匹配

 
CREATE TABLE person 
(age integer, 
    id integer, 
    name character varying(30)), 
    PRIMARY KEY (id) 
); 

在這裏,我要跳過這些創建表的查詢,如上面這包括「主鍵」約束。

我們可以直接在詞法分析規則中使用正則表達式嗎?

+1

詞法分析規則*是*正則表達式,更強大但仍然是正則表達式。 –

回答

0

爲需要和不需要的SQL編寫幾條規則。

goodSQL: 
    'CREATE' 'TABLE' Id '(' 
    Id typeDef (',' Id typeDef)? ',' 
    ')' 
; 

badSQL: 
    'CREATE' 'TABLE' Id '(' 
    Id typeDef (',' Id typeDef)? ',' 
    'PRIMARY' 'KEY' keyDef 
    ')' ->skip 
; 

這是一開始。在此之後,您必須定義IdtypeDefkeyDef。添加->skip不會解析符合規則的SQL語句。

祝您好運!

相關問題