fslex
どうもバギーなようす。
rule token = parse ' ' { token lexbuf } | '\"' [^ '\"']* '\"' { STR(Lexing.lexeme lexbuf) }
がこける。曰く
lexer.mll(6,4): error: Unexpected character '''
他にも、
{ open Parser } rule token = parse ' ' { token lexbuf } | ['0'-'9']+ { INT (int_of_string (Lexing.lexeme lexbuf)) } | '+' { PLUS } | ['-' '--'] { MINUS } | '=' { EXEC } | eof { EXEC }
も通らない。変なlexerだけど。*1
うーむ。F#の開発者は、fslexを使ったことがあるんだろうか。
rule token = parse ' ' { token lexbuf } | '\034' [^ '\034']* '\034' { STR(Lexing.lexeme lexbuf) }
としたら通った。めでたし、めでたし。
しかし、
let lexbuf = Lexing.from_channel stdin in ...
が通らない。こける。
なんとかしてくれー
*1:あたりまえ。なにやってんだかorz