質問内容
質問を評価する
(0ポイント)
|
この間日本語で書けるプログラミング言語を作りたいと言った人です。直接日本語で作られたトークンを扱うのではなく、トークンとして使われる日本語をこちらでアルファベットなどに変換し、その単語をトークンとしてJavaCCでコンパイラを作っていこうと思いました。 というわけで、その変換した後の言語をコンパイルするためのコンパイラーをJavaCCで作ろうとしているのですが、コメント読み飛ばしの部分で以下のような警告が出ました。
警告: "komentkokokara" cannot be matched as a string literal token at line 56, column 3. It will be matched as <token of kind 5>.
コメント読み飛ばし部分については以下のように記述しています。
SKIP: { <"koment" (~["\r","\n"])* ("\r" | "\r\n" | "\n")? > }
MORE: { < "komentkokokara" > :IN_COMMENTS }
< IN_COMMENTS >MORE: { < (~[]) > }
< IN_COMMENTS >SKIP: { < "komentokokomade" > :DEFAULT }
とりあえず警告だからと無視しし、作成されたコンパイラに対して以下のようなソースコードを書いて実行してみました。 (今できることは、文字列+文字列と書くとその2つの文字列をつなげてくれることと、コメントの読み飛ばし(予定)です)
komenntokokokara コメントだよ? komentokokomade あいうえお+かきくけこ koment プログラム終わりだって。
すると、2つの文字列をつなげることはできているようですが、前後のコメント部分でエラーが出ているようです。
Encountered "<EOF>" at line 1, column 16. Was expecting: "+" ... Encountered "<EOF>" at line 1, column 7. Was expecting: "+" ... Encountered "<EOF>" at line 1, column 15. Was expecting: <STRING> ... あいうえおかきくけこ Encountered "<EOF>" at line 1, column 6. Was expecting: <STRING> ... Encountered "<EOF>" at line 1, column 12. Was expecting: "+" ... 何が原因なのでしょうか?
|