括弧を省略できるa..b記法

30分プログラム、その224。昨日のa..b記法のバージョンアップ。
(0 .. 10)のように必ず括弧が必須だったが、0 .. 10のように括弧を省略できるようになった。
ただ..の両辺のスペースが省略できないのはしょうがない気がしてきた。パーサレベルでは浮動少数かどうかを区別できないから。

ところで、そもそも

let (..) a b = range a b

という定義ができればいいだけの話ということに今気がついた。残念ながら..は中置演算子に使えないのだけれども。

使い方

let _ = 
  print_int @@ sum 1 .. 10;
  print_newline ()

ソースコード

expr1をsimpleに変更しただけ。

open Pcaml

EXTEND
expr: LEVEL "simple"
[
  [ e1 = expr; ".."; e2 = expr -> <:expr< range $e1$ $e2$>> ]];
END;;