2017-04-05 4 views
0

EBNF表記では、多くの場合、=>が表示されますが、説明が見つかりません。私はグーグルで、いくつかのPDFとWikipediaを読みましたが、まだ手がかりはありません。=> EBNF表記の意味>

assignmentExpression: 
    (leftHandSideExpression assignmentOperator) => 
    leftHandSideExpression assignmentOperator assignmentExpression 
    | conditionalExpression 
    ; 
+1

この種のEBNF表記を使用しているのは何ですか?それが助けになるかもしれない。私は使用中の多くの異なるEBNFバリアントがあるので、どのようにこの表記法が使用されているかについての記述がないことに驚いています。いろいろなプログラミング言語(Pythonなど)の作者、XMLの定義を保持するW3C、IETFにはABNFという独自の変種があり、国際標準ISO/IEC 14977私はまれに使用されていることがわかりました。あなたの質問の記法は私には馴染みがない。それは別のEBNF記法である可能性があります。 –

答えて

2

私の推測は、パーサへのヒントまたは指示(おそらく再帰的降下)です。たとえば、assignmentExpressionを解析して、保留中の入力のプレフィックスをleftHandSideExpression assignmentOperatorとして解析する場合は、leftHandSideExpression assignmentOperator assignmentExpressionの代わりにassignmentExpressionの解析をコミットすることができます。

+1

合意。おそらく例が答えを向上させるかもしれません: 'x = $;'は、代入式が期待されていたところで '$'が見つかったという構文エラーを生成するはずです。ヒントがなければ、構文エラーは代わりに '='について文句を言うかもしれません。 – hvd