例:12*(3+7)/(-c)
→ -f
※入力に含まれる空白(U+0020)と改行(U+000A)は無視されます。
入力(<input>
)は、次の導出規則を元に解釈されます:
<input> ::= ε | <expr> <expr> ::= <term> (('+' | '-') <term>)* <term> ::= <factor> (('*' | '/') <factor>)* <factor> ::= <number> | '(' <expr> ')' | '-' <factor> <number> ::= <digit>+ ('.' (<digit>+)?)? <digit> ::= '0' | ... | '9' | 'a' | ... | 'f' | 'A' | ... | 'F'
ただし、計算上は<factor>から<number>を導出する際に先頭の一文字を先読みしています。