У меня есть следующая грамматика ANTLR:
tree grammar findApp;
options {
tokenVocab=TSRTemplate;
ASTLabelType=CommonTree;
backtrack=true;
}
@header {
}
@members {
}
prog returns [String value]
: ^(ROOT f=formula) {$value = $f.value; }
;
formula returns [String value]
: ^(DEFINITION INTEGER t=calc_expr) {$value = $t.value;}
;
calculation_expr returns [String value]
@init {
$value = null;
}
: calculation_unit {$value = $calculation_unit.value;}
| ^(PLUS n1=calculation_expr n2=calculation_expr) {
$value="addApproach(<calculation_expr1>, <calculation_expr2>)";
}
;
calc_unit returns [String value]
: cf_expr {$value = $cf_expr.value;}
;
cf_expr returns [String value]
: ^(GET_APP string_expr)
{
$value = "getApp("+$STRING.text + ")";
}
;
Что мне нужно сделать, это как показано ниже:
Например, следующая грамматика:
cf_expr returns [String value]
: ^(GET_APP string_expr)
{
$value = "getApp("+$STRING.text + ")";
}
;
вернет getApp(<some parameter>)
, что является именем метода.
Этот метод реализован в классе java (Method. java),
Я хочу, чтобы моя грамматика возвращала этот метод Назовите и скомпилируйте этот java класс (Method. java) и выполните реализацию метода в этом классе.
Любые предложения по интеграции компиляции java класса с ANTLR будут полезны.