69,369
社区成员
发帖
与我相关
我的任务
分享
exp ::= exp addop term | term ==> {addop} term { addop term {... addop term}}
addop ::= + | -
term ::= term mulop factor | factor ==> factor {mulop factor {... mulop factor}}
mulop ::= * | /
factor ::= (exp) | number
expr()
{
result = default_result;
op = add;
if (lookahead == addop)
{
op = add or sub;
match(addop);
}
result = result op term();
while (lookahead == addop)
{
match(addop);
result = result addop term();
}
return result;
}
term()
{
result = factor();
while (lookahead == addop)
{
match(mulop);
result = result mulop term();
}
}
factor()
{
define result;
if (lookahead = left_bracket)
{
match(left_bracket);
result = exp();
match(right_bracket)
}
else
{
result = match(number);
}
}