« 今日もJavacc | Main | スキップスキップ »

2004.05.08

とばすぜとばすぜ空白

JavaCC+Verilogの続き
今の書き方だと、空白が完全に無視されている。
"module modulue"もOKだし、"modulemodule"もOkだ。これじゃだめなので、JavaCCの本を読んでみる。そうだ、最初のサンプル"I LOVE YOU"なら、空白区別してるんじゃん、と思うが、"ILOVEYOU"でもパースに成功している。ダメじゃん。

一つ発見!なんだって
options {
DEBUG_PARSER=true;
}
で、トレース機能が追加されるのか。頑張ってprintln入れてたのに_| ̄|○

急がば回れだ。テキストコマンドのサンプルと、VMのサンプルも動かしてみよう。
ああそうか。TOKENの定義が、宣言順がそのまま優先順位になっているからとか、複数回でてきてもよいのか。

DOSコマンド動くようになった。子プロセスの呼び出し方が少しわかった。
って、これもcat Command.javaとcatCommand.javaを区別してないな。

んで、<*>SKIP ってどういう意味だ。
今までTOKEN :しかなかったのに、TOKEN :とか出てきた。なんじゃこりゃ。えっと、これは、状態によって変化する解釈の表現か。
diff -i diff -i
って時に、最初のdiffがコマンド、次の-iがオプション、残りのdiffと-iがファイル名とかを解析するのに使うっと。

そして、JavaCCの本、74ページより「JavaCCでは、トークンを区切るデミリタを特別に指定する機能はない」と。はぁ。

続いてミニコンパイラを見てみるが、思いっきりSKIPで空白とばしている。これだと、ifの後に変数aaaaが来たときと、変数ifaaaaを区別できないではないかと悩む。

ちょっとわかった。ifの後には必ず(が来るんだ。
Verilogの例で行くと、moduleの次は必ず(だ。
それでも、int a;は変数aの宣言で、inta;は構文エラー。この違いはどうしてるんだろう。VMコードも動かしてみよう。

今日のメモ
最近ベクターがつまらない。
サイトリニューアルしてから、マイナーなソフトが見つけにくくなった。

|

« 今日もJavacc | Main | スキップスキップ »

Comments

The comments to this entry are closed.

TrackBack


Listed below are links to weblogs that reference とばすぜとばすぜ空白:

« 今日もJavacc | Main | スキップスキップ »