質問

による ECMAScript仕様 セクション内 7.8.1 ある NullLiteral は次のように定義されます。

NullLiteral :: 
    ヌル

私が理解しようとしているのは、これがツリー形式でどのように表現されるかということです。 NullLiteral セクションにある以下の作品に含まれています 7.6.1 そして 7.8.

ReservedWord :: 
    Keyword 
    FutureReservedWord 
    NullLiteral 
    BooleanLiteral 
Literal :: 
    NullLiteral 
    BooleanLiteral 
    NumericLiteral 
    StringLiteral 

それがどのように見えるかについての私の最善の推測は次のとおりです:

InputElementDiv
    |
  Token
    |
IdentifierName
    |
ReservedWord 
    |
 Literal 
    |
NullLiteral 
    |
   ヌル

しかし、これは私には正しくないようです。

注記

私の調査によると、実際に言語文法から CST を生成するコンパイラはほとんどないようです。もちろん理由は理解できますが、これは私にとって学習課題なので、パーサー ジェネレーターの使用など、より専門的な解析手段に移行する前に、これを正しく理解したいと思います。

役に立ちましたか?

解決

示されているツリーは文法ではカバーされていません。なぜなら、それは次からの導出を提供しないからです。 IdentifierNameReservedWord, を導き出すことはできません。 ReservedWordLiteral どちらか。

ReservedWord 実際、production は有効な値を制限するためにのみ使用されます。 IdentifierName, 、そしてこれは語彙レベルで見られるべきです。CST には含まれません。CST では、 IdentifierName.

Literal のコンテキストは PrimaryExpression であるため、実際の CST のフラグメントは次のようになります。

   ...
    |
PrimaryExpression
    |
 Literal 
    |
NullLiteral 
    |
   null
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top