« コーチングの本 | Main | 今日もJavacc »

2004.05.07

Verilog構文解析開始


http://www.verilog.com/VerilogBNF.htmlでVerilogのBNF発見


まずは、ファイルの先頭から"module"という文字列だけを認識させようとする。
TOKEN :
{
< DEFMODULE: "module" >
}
トークンはこんな感じ。

Javacでコンパイルしてみるとこんなエラー。

Veilog.java:14: この文に制御が移ることはありません。
jj_consume_token(0);
^
エラー 1 個

JavaCCが作ったソースがこれなのでcase文で引っかかってるな。
上手くBNF書けて無くて、場合分けに飛ばないのか。


final public int PerseVerilog() throws ParseException {
int result;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 0:
case DEFMODULE:
SourceText();
jj_consume_token(0);
System.out.println("parse end");
{if (true) return 0;}
break;
jj_consume_token(0); //★
break;
default:
jj_la1[0] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}

JavaCCの作ったソースを見てると、2回目のjj_consume_tokenに飛んでいない(★)
えっとあれだ。

SourceText() < EOF > <= ◎
{
System.out.println("parse end");
return 0;
}
| < EOF >

ここの< EOF >(◎)イラネ。

先なげー。


今日のメモ
syntax analysis 構文解析
syntax analyzer 構文解析器
parser 構文解析器、パーザー
lexical analysis 字句解析
lexical analyzer 字句解析器
scanner 字句解析器 スキャナー
token manager JavaCCでのスキャナーの呼び方

今日の私信
返事のメールが来ない理由に、「最近エロメイルが多くて・・・」と、上司に転送しにくいメールは勘弁してください>井倉さん

|

« コーチングの本 | Main | 今日もJavacc »

Comments

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/18154/552655

Listed below are links to weblogs that reference Verilog構文解析開始:

« コーチングの本 | Main | 今日もJavacc »