我有那个表情
ratecode in ('EURV','EURA','EURB','EURO','CHUPin*+-da~') && ( sourcecode ~in ('FMFC','FM') || block == 'yes')
现在这是 rpn 规则
/// 2. Repeat until we reach end of infix expression
/// I. Get token (operand or operator); skip white spaces
/// II. If token is:
/// a. Left parenthesis: Push it into stack
/// b. Right parenthesis: Keep popping from the stack and appending to
/// RPN string until we reach the left parenthesis.
/// If stack becomes empty and we didn't reach the left parenthesis
/// then break out with error "Unbalanced parenthesis"
/// c. Operator: If stack is empty or operator has a higher precedence than
/// the top of the stack then push operator into stack.
/// Else if operator has lower precedence then we keep popping and
/// appending to RPN string, this is repeated until operator in stack
/// has lower precedence than the current operator.
/// d. An operand: we simply append it to RPN string.
/// III. When the infix expression is finished, we start popping off the stack and
/// appending to RPN string till stack becomes empty.
我添加了 &&, ||, ~, in,
现在,它应该如何改变 RPN 的规则?
***更新
那是我的运算符表
Operator Priority
"+" 0
"-" 0
"&&" 0
"||" 0
"/" 1
"*" 1
"==" 1
"(" 1
"~" 3
"in" 3
")" 3