-
Notifications
You must be signed in to change notification settings - Fork 4
Release 0.1.0
らいパン粉 edited this page Aug 3, 2018
·
7 revisions
簡単な演算の式をコンパイルできる。 さらに演算子の優先順位をカスタマイズできる。
+ - * /
演算子は定義しなければならない。
優先順位の数値が大きいほど結合が強い。
優先順位は1~30まで。
infixr <優先順位> <演算子>
infixl <優先順位> <演算子>
例
infixl 0 *
infixl 1 +
4+5*2
これは+が*より優先して計算されることを示している。
infixは上書きできる。
+は1回以上
{}は0回以上を表す
<program> := {<stmt>}
<stmt> := {<skip>} ( <infix> | <expr> ) {<skip>}
<expr> := <num> { <op> <num> }
<infix> := ('infixr' | 'infixl') <space>+ <num> <space>+ <op>
<op> := '+' | '-' | '/' | '*'
<num> := [0-9]+
<skip> := '\n' | <space>
<space> := ' ' | '\t'