我开始使用Ruby语言,此时我学习使用Ruby& amp;创建自己的玩具语言。 RACC, 我需要解释一下这个racc代码:
1)什么意味着左和右在Yacc?
左'。'
右'='
答案 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版本。