我使用Antlr3定义了一种语法语言。 ANTLRWorks生成词法分析器和解析器代码。
下面是一个示例语法:
grammar i;
@header {
package com.data;
}
elements : (value (',' value)*)?;
insert : 'INSERT INTO table' 'VALUES' '('elements')'';';
WS : (' '|'\t'|'\f'|'\n'|'\r')+ {skip();}; // handle white space between keywords
上述语法只是一个例子。我实际上正在为我的公司开发一个大语法。
我已将语法导入到项目的com.data包中,并可以使用生成的Lexer和Parser。我想知道的是什么:
根据以下帖子:ANTLR: Is there a simple example?它显示了一个简单的例子。但是,在我的情况下,语法很大,并且更喜欢导入和使用语法。我有很多规则:
例如,上面的语法生成了这段代码:
public void insert() throws RecognitionException;
处理此问题的最佳方法是什么?我有很多规则,它们是返回类型的void。
每条规则在Java术语中都有特定含义。我认为最好的方法是获取语法,然后检查调用我的代码。例如:
String input = "INSERT INTO table VALUES (null);";
if(input.equals("INSERT INTO table VALUES (null);") {
insertData();
}
public void insertData() {
// insert data into database
}
最好检查每种语法并调用我的代码?
答案 0 :(得分:0)
你的两个问题的答案: