コメント
コメントの話が出たので、最後はコメントです。 (* と *) で囲んだものはコメントで、ネスト可能です。複数行もオッケーです。ですがとてもウザい問題がありまして、1行コメントが無いという問題があります。 camlp4 …は私の理解ではこれできんと思いますが調べてないのでよく知りませんので cpp とか通せばいいんじゃねとか思ったりしてます。
でもこれには解決法がありまして、
i@u ~/src/ocaml-3.09.2> diff -u parsing/lexer.mll.orig parsing/lexer.mll
--- parsing/lexer.mll.orig 2005-04-12 01:44:26.000000000 +0900
+++ parsing/lexer.mll 2006-09-17 21:56:42.000000000 +0900
@@ -310,6 +310,7 @@
let esc = String.sub l 1 (String.length l - 1) in
raise (Error(Illegal_escape esc, Location.curr lexbuf))
}
+ | "--" { comment_line lexbuf; token lexbuf }
| "(*"
{ comment_start_loc := [Location.curr lexbuf];
comment lexbuf;
@@ -396,6 +397,10 @@
Location.curr lexbuf))
}
+and comment_line = parse
+ newline { update_loc lexbuf None 1 false 0 }
+ | _ { comment_line lexbuf }
+
and comment = parse
"(*"
{ comment_start_loc := (Location.curr lexbuf) :: !comment_start_loc;