如何编写antlr4语法词法规则以匹配字符串。例如,我有以下输入字符串:
CREATE TABLE person ( age integer, id integer, name character varying(30)), PRIMARY KEY ( id ) );
在这里,我需要跳过上面包含“PRIMARY KEY”约束的创建表查询。
我们可以直接在词法规则中使用正则表达式吗?
答案 0 :(得分:0)
为SQL编写一些必需而非必需的规则。
goodSQL:
'CREATE' 'TABLE' Id '('
Id typeDef (',' Id typeDef)? ','
')'
;
badSQL:
'CREATE' 'TABLE' Id '('
Id typeDef (',' Id typeDef)? ','
'PRIMARY' 'KEY' keyDef
')' ->skip
;
这是开始的事情。在此之后,您必须定义Id
,typeDef
和keyDef
。添加->skip
不会解析与规则匹配的SQL语句。
祝你好运!