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

写BNF时,和之间有什么?

  •  3
  • Squidly  · 技术社区  · 14 年前

    我对BNF有些问题。我不知道做事情的标准方式是什么(如果有),也不知道是否有char或in t之类的类型或者已经内置的类型。

    然而,我的主要问题是不理解大括号中bnf的部分是如何工作的。
    给出如下信息:

    exp    : term                           {$$ = $1;}  
    | exp '+' term                   {$$ = $1 + $3;}  
    | exp '-' term                   {$$ = $1 - $3;}  
    ;  
    

    (这是从某个地方偷走的,是给游艇公司的)

    花括号里的内容是什么?我也为HappyParserGenerator研究过类似的东西,也同样感到困惑。

    2 回复  |  直到 14 年前
        1
  •  2
  •   Jonathan Leffler    14 年前

    RFC-5234

    {$$ = $1;}

        2
  •  2
  •   casablanca    14 年前

    $ $$ $1 $n

    exp '+' term { $$ = $1 + $3; } exp $3 term

    推荐文章