[英]Antlr Grammar Java Code
我已經使用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:有一個簡單的例子嗎? 它顯示了一個簡單的示例。 但是,在我的情況下,語法很大,希望將其導入和使用。 我有很多規則:
例如,上面的語法生成以下代碼:
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
}
最好檢查每種語法並調用我的代碼?
您的兩個問題的答案:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.