作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试匹配这个
f(some_thing) == 'something else'
所以 bool 表达式应该是
expression operator expression
问题是我不知道如何在没有左递归的情况下做到这一点这是我的规则
expression
=
bool_expression
/ function_call
/ string
/ real_number
/ integer
/ identifier
bool_expression
= l:expression space* op:bool_operator space* r:expression
{ return ... }
使用语法符号,我有
O := ==|<=|>=|<|>|!= // operators
E := B|.... // expression, many non terminals
B := EOE
因为我的语法是 EOE 我不知道如何使用左手算法
A := Ab|B
transforms into
A := BA'
A':= e|bA
其中 e 为空,b 为终端
最佳答案
类似这样的事情应该可以做到:
expression
= bool_expression
bool_expression
= add_expression "==" bool_expression
/ add_expression "!=" bool_expression
/ add_expression
add_expression
= mult_expression "+" add_expression
/ mult_expression "-" add_expression
/ mult_expression
mult_expression
= atom "*" mult_expression
/ atom "/" mult_expression
/ atom
atom
= function_call
/ string
/ real_number
/ integer
/ identifier
function_call
= identifier "(" (expression ("," expression)*)? ")"
string
= "'" [^']* "'"
identifier
= [a-zA-Z_]+
integer
= [0-9]+
real_number
= integer "." integer?
/ "." integer
关于不使用左手递归解析 bool 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15506088/
我想将“Game on Sep 27”放在左下角,“Lost 100 chips”对面。但我看不到将它定位在左下角。 这是我当前的 CSS: 有什么建议吗?非常感谢! 最佳答案 最简单的方法是将所有三
我是一名优秀的程序员,十分优秀!