p_indent 2; p "out: %s" parsing_out; p_ln ();
);
p "%s" bar_end; p_ln ();
- exit !error_count
+ let error_count = !error_count in
+ let clr = (if error_count = 0 then Green else Red) in
+ p "Errors: %s" (color clr (string_of_int error_count)); p_ln ();
+ p "%s" bar_end; p_ln ();
+ exit error_count
end
let test_cases_from_book =
; (let code = "abc[0]" in Test.case code ~code ~out_lexing:[ID "abc"; LBRACK; INT 0; RBRACK])
; (let code = "abc[0] := foo()" in Test.case code ~code
- ~out_lexing:
- [ID "abc"; LBRACK; INT 0; RBRACK; ASSIGN; ID "foo"; LPAREN; RPAREN])
+ ~out_lexing:
+ [ID "abc"; LBRACK; INT 0; RBRACK; ASSIGN; ID "foo"; LPAREN; RPAREN])
; (let code = "abc [5] of nil" in Test.case code ~code
- ~out_lexing:
- [ID "abc"; LBRACK; INT 5; RBRACK; OF; NIL])
+ ~out_lexing:
+ [ID "abc"; LBRACK; INT 5; RBRACK; OF; NIL])
; (let code = "f(\"a\", 3, foo)" in Test.case code ~code
- ~out_lexing:
- [ID "f"; LPAREN; STRING "a"; COMMA; INT 3; COMMA; ID "foo"; RPAREN])
+ ~out_lexing:
+ [ID "f"; LPAREN; STRING "a"; COMMA; INT 3; COMMA; ID "foo"; RPAREN])
]
let tests =