header{
package com.my.myPack;
/*
* ヘッダー部
* ANTLRが生成する全ファイルに共通するものを記述する。
* package宣言や共通のimport宣言など
*/
}
{
import java.util.ArrayList;
import my.MyClass;
/*
* アクション部
* grammar毎に固有のものを記述する。
* 個別のimport宣言など
*/
}
class CalcParser extends Parser;
/*
* class宣言
*/
options {
buildAST = true;
/*
* オプション部
* grammarに対するオプションを記述する。
* k=2など
*/
}
tokens {
STAR;
INT;
SEMI;
PLUS;
MINUS;
/*
* トークン部
* 『仮想』トークンを記述する。
* つまりLexerで明示的に定義されないトークンで、TreeParserで使用
*/
}
{
public void myMethod()
{
doSomething();
}
/*
* アクション部その2
* クラス定義の内側のアクションを記述する。
* クラスに固有のfieldやmethodなど
*/
}