- or download this
expr := number
| expr ws unary_op
...
unary_op := "chs" | "abs" | "sqr" | "sqrt" | "sin" | "cos" | "tan"
binary_op := '+' | '-' | '*' | '/' | '^'
ws := ' ' | '\t' | '\r' | '\n'
- or download this
Infinite recursion in regex
- or download this
expr := number
| expr ws unary_op
| expr ws expr ws binary_op
- or download this
expr := number expr_
expr_ := ws expr ws binary_op expr_
| ws unary_op expr_
|
- or download this
qr{
(?(DEFINE)
...
\A \s* (?&expr) \s* \z
(?{ $result = pop(@stack) })
}sx;
- or download this
#!/usr/bin/perl
...
my ($expression) = $line =~ /($RPN)/;
...
}
- or download this
OK: .456 = .456
OK: 123. = 123.
...
OK: 4 2 / = 2
OK: 24abssqrt is invalid, got no result
OK: 4 2 * = 8