2010-02-09 4 views

ответ

2

Использование равных в этом синтаксисе создает переменную basename, которая затем может быть использована в действиях:

tabname: 
    (ID '.')? basename=ID { 
     if ($basename.equals("CAT")) 
      System.out.println("CAT found"); 
    }; 
+0

хороший ответ Kaleb :) – chollida

1

Он используется для именования переменных.

Это может быть очень полезно, если вы хотите запустить код во время анализатора.

Рассмотрим пример Java калькулятор:

expr returns [float r] 
{ 
float a,b; 
r=0; 
} 
: #(PLUS a=expr b=expr) {r = a+b;} 
| #(STAR a=expr b=expr) {r = a*b;} 
| i:INT   {r = (float)Integer.parseInt(i.getText());} 
; 

Здесь мы говорим, когда мы сопоставляем дерево, которое имеет PLUS или ЗВЕЗДУ лексема следуют 2 выражения, мы возместим выражения и называть их a и b соответственно ,

После того, как мы будем использовать эти переменные, мы сопоставим в описании java. Этот оператор содержится внутри скобок { и }. Здесь мы используем инструкции java для фактического расчета.

 Смежные вопросы

  • Нет связанных вопросов^_^