vim で [cci]:help “=[/cci] することで [cci]=[/cci] レジスタの詳細な説明を得られる。
それによれば、単に四則演算式というわけではなくて、vim script の式っぽい。つまり [cci]:help expression[/cci] で見られるような感じのそれである。そして、式の結果として期待されるものの型は本質的に文字列だ。数学的な結果はむしろ異端で、型変換する必要がある。これは移植するには大規模すぎるし、また時期尚早すぎる。wasavi はスクリプティングをまだ実装していない。
算術演算に絞って言えば、四則演算以外の演算子としては
- %: 除算の剰余
が足りないので、それは実装することにしよう。
すなわち、wasavi の [cci]=[/cci] レジスタで受け付ける式は、
expression :=
addsub :=
muldiv :=
factor :=
"("
signed-numelic-literal :=
"+"
"-"
という文法になる。ここで [cci]numeric-literal[/cci] は、ecmascript での数値表現に準じることにする。つまり整数表現、小数点表現、指数表現、および 0x なんちゃらの形式である。
というわけで、そういうパーサを書いた。四則演算式のパーサ自体としては特に何か言うこともない素朴なものだ。