racc代码的说明

时间:2014-07-02 23:44:18

标签: ruby yacc

我开始使用Ruby语言,此时我学习使用Ruby& amp;创建自己的玩具语言。 RACC, 我需要解释一下这个racc代码:

1)什么意味着左和右在Yacc?

  

左'。'

     

右'='

2 个答案:

答案 0 :(得分:1)

它是operator precedence and associativity specification。来自doc:

  

在这里,我们可以看到如何指定运算符优先级:

– prechigh

nonassoc '++'
left     '*' '/' 
left     '+' '-' 
right    '='

preclow –
  

写在靠近prechigh的线上的标记有更高的标记   优先。您也可以按相反顺序编写,例如定义   在预制底部之前预先安装。

答案 1 :(得分:1)

我发现rex和racc的最佳教程就是这个:http://testerstories.com/a-tester-learns-rex-and-racc-part-1/

此外,rex或racc或者两者都是为ruby 1.8编写的。来自内存,但我认为其中一个有String#each,只需将其更新为each_char或{{1}如果你想使用更新的ruby版本。