代码之家  ›  专栏  ›  技术社区  ›  ChaosPandion

NullLiteral是如何以树的形式表示的?

  •  2
  • ChaosPandion  · 技术社区  · 14 年前

    根据 ECMAScript specification 7.8.1 NullLiteral 定义如下:

    NullLiteral :: 
        null
    

    我试图理解的是当一个 空文字 包含在以下部分中的产品中 7.6.1 7.8 .

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

    我最好的猜测是:

    InputElementDiv
        |
      Token
        |
    IdentifierName
        |
    ReservedWord 
        |
     Literal 
        |
    NullLiteral 
        |
       null
    

    但我觉得这不太对。

    根据我的研究,似乎很少有编译器真正从语言语法生成cst。我当然可以理解为什么,但这对我来说是一个学习练习,所以我想在我转向更专业的解析方法(比如使用解析器生成器)之前,先弄清楚这一点。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Gunther    14 年前

    语法没有覆盖如图所示的树,因为它不提供 IdentifierName ReservedWord ,它没有规定 保留字 Literal 任何一个。

    这个 实际上,production只用于限制 标识符名称 标识符名称 .

       ...
        |
    PrimaryExpression
        |
     Literal 
        |
    NullLiteral 
        |
       null
    
    推荐文章