返り値の型とキャスト
今まで手抜きで関数の返値の型を全部Int32Tyにしてたのを
ちゃんと型宣言を見てつけるようにした。
そのテストにあたってchar, longなどの値を生成する必要がでたので、
キャスト演算子"@"を実装した。
でも Expr '@' TypeExpr ていう文法にしようとしたら
reduce/reduceコンフリクトがでまくったので
しょうがなくLPar Expr RPar '@' TypeExprにしたら
(2)@char
とかいう字面になって「う〜ん」という感じ。
もうちょっといい字面ないかなあ。
castto TypeExpr(Expr)とか?
スキャナでがんばってC++みたいにする?
ただ単に演算子順位変えれば解決するかな?
……演算子順位独立させれば問題なかった。
かけ算の下、カッコの上にした。