case文と引数処理
Limboのcase文はCのswitch文よりもシェルのcaseのパターンマッチングに近い。breakを書く必要はない。
以下はyacc.bから引数処理のコード。Argモジュールが使われている。先頭からマッチングしていき、'*'はワイルドカード。
arg := Arg.init(argv); while(c := arg.opt()){ case c{ 'v' or 'V' => vflag++; 'D' => yydebug = arg.arg(); 'd' => dflag++; 'n' => stacksize = int arg.arg(); 'o' => ytab++; ytabc = arg.arg(); 's' => stem++; stemc = arg.arg(); 'm' => suppressmod++; * => usage(); } }