0

私は大学でコンパイラに関する課題を行っており、初めて SableCC 3.7 を使用しています。文法ファイルを定義しようとしていますが、(コマンド ライン経由で) 実行しようとすると、次のエラーが発生します。

"ParserException: [51,5] 予期: EOF

Helpers

letter = ['a' .. 'z'];
digit = ['0' .. '9'];
plus = '+';
minus = '-';
mult = '*';
div = '/';
star = '*';
equals = '=';
leftbrack = '(';
rightbrack = ')';
leftcurly  = '{';
rightcurly = '{';
tab = 9;
cr = 13;
space = 32;
nl = 10;
eol = cr nl | cr | nl |;
func = 'func';
identifier = (letter|'_')(letter|'_'|digit)*;
float = minus ? digit ( digit ) * '.' digit ( digit ) * ( ( 'E' | 'e' ) ( '+' | '-' ) ? digit ( digit ) * ) ?;
combination = (tab|cr|eol|space|nl)+;
line_comment    ='/''/'[[ 0 .. 0xffff]-[cr+nl]]*eol|';'[[0..0xffff]-[cr+nl]]*eol;
multiline_comment   ='/''*'[[0..0xffff]-['*'+'/']]*'*''/';

トークン

func = 'FUNC';
plus = plus;
minus = minus;
mult = mult;
div = div;
equals = equals;
leftbrack = leftbrack;
rightbrack = rightbrack;
leftcurly  = leftcurly;
rightcurly = rightcurly;
identifier = ('ID,')(identifier);
float = ('ID,')(float);
number = digit+;
line_comment = 'COMMENT';
multiline_comment = 'COMMENT';
combination = 'WHITESPACE';

無視されたトークン

line_comment;
multiline_comment;

これを解決する方法を知っている人はいますか?オンラインのドキュメントは最適ではありません。

4

1 に答える 1

1

おそらくこれ:

Ignored Tokens

    line_comment,
    multiline_comment;

Ignored Tokensセミコロンではなくコンマで区切る必要があります。

于 2014-11-18T16:06:00.813 に答える