0

JavaCC を使用して複雑なパーサーを構築しています。ある時点で、文法内の目的のトークンまで、表示されるすべての文字をスキップしたいと思います...たとえば、次のようにしましょう

/* bla bla bla bla bla bla bla bla */ => 次のような文法を定義したい

<OPEN_COMMENT> SKIP ~[] until <CLOSE_COMMENT>「bla」が通常のトークンでも真であってほしい

ご協力いただきありがとうございます

4

2 に答える 2

0

正規表現を使用して実行できます。

次のように、トークンとルールを定義できます。

TOKEN :
{
< #DIGIT : [ "0"-"9" ] >
| < #ALPHABET: ["a" - "z"] >
| < #CAPSALPHABET: ["A" - "Z"] >
| < WORD: ( <DIGIT> | <ALPHABET> | <CAPSALPHABET>)+ >
}

String comment() :
{
  Token token;
}
{
 token=( <WORD> )+
 {
   return token.toString();
 }
}
于 2010-10-05T15:55:39.783 に答える
0

ここでの通常の手順は、MORE と SKIP または SPECIAL_TOKEN のいずれかで字句状態を使用することだと思います。この例は、JavaCC ソース配布に付属する Java 文法によってコメントが処理される方法で確認できます。

于 2010-10-07T10:21:03.797 に答える