5

以下のコード スニペットは、http: //zaach.github.io/jison/demos/calc/および jison ドキュメント ページにあります。jison、lex、flex のドキュメントを読んだ後でも、%lex と /lex の構文を完全には理解していません。ジソンスキャナージェネレーターに固有のものですか? 後でドキュメントに示されているjson出力を提供する唯一の機能であることを意味しますか? ジソンのドキュメントではその目的が明示的に説明されておらず、フレックス/レックスの規則ではそのような構文が許可されていないように見えるため、私が尋ねるだけです。

/* description: Parses end executes mathematical expressions. */

/* lexical grammar */
%lex

%%
\s+                   /* skip whitespace */
[0-9]+("."[0-9]+)?\b  return 'NUMBER';
"*"                   return '*';
"/"                   return '/';
"-"                   return '-';
"+"                   return '+';
"^"                   return '^';
"("                   return '(';
")"                   return ')';
"PI"                  return 'PI';
"E"                   return 'E';
<<EOF>>               return 'EOF';

/lex
4

1 に答える 1