- let line = String.sub line 1 (String.length line - 1) in\r
- if chr = ":"\r
- then line, div, conv, ps\r
- else if chr = "D"\r
- then name, line, conv, ps\r
- else if chr = "C"\r
- then name, div, line::conv, ps\r
- else if chr = "N"\r
- then name, div, conv, line::ps\r
- else raise (ParsingError ("Unexpected at beginning of line: " ^ chr)) in\r
- let name, div, conv, ps = List.fold_left aux ("?", "", [], []) lines in\r
+ let line = String.trim (String.sub line 1 (String.length line - 1)) in\r
+ if line = "" then chr, name, div, conv, ps else\r
+ let rec aux' chr line =\r
+ if chr = "#"\r
+ then chr, name, div, conv, ps\r
+ else if chr = "$"\r
+ then "#", line, div, conv, ps\r
+ else if chr = "D"\r
+ then chr, name, line, conv, ps\r
+ else if chr = "C"\r
+ then chr, name, div, line::conv, ps\r
+ else if chr = "N"\r
+ then chr, name, div, conv, line::ps\r
+ else if chr = " "\r
+ then aux' last line\r
+ else raise (ParsingError\r
+ ("Unexpected at beginning of problem: `" ^ chr ^ "` " ^ line)) in\r
+ aux' chr line in\r
+ let _, name, div, conv, ps = List.fold_left aux ("#", "no label", "", [], []) lines in\r