parser: Fix tracking of beginning of line for error messages.
[goals.git] / src / lexer.mll
index 66c6b9f..8f56d5b 100644 (file)
@@ -28,7 +28,7 @@ exception SyntaxError of string
 let new_line lexbuf =
   let pos = lexbuf.lex_curr_p in
   lexbuf.lex_curr_p <-
-    { pos with pos_bol = lexbuf.lex_curr_pos; pos_lnum = pos.pos_lnum + 1 }
+    { pos with pos_bol = pos.pos_cnum; pos_lnum = pos.pos_lnum + 1 }
 }
 
 let white = [' ' '\t']+
@@ -61,6 +61,14 @@ rule read =
               { INCLUDE }
     | "-include"
               { OPTINCLUDE }
+    | "returning"
+              { RETURNING }
+    | "expression"
+              { EXPRESSION }
+    | "string"
+              { STRING_KEYWORD }
+    | "strings"
+              { STRINGS }
     | "*" id  { (* NB: The initial '*' is part of the name. *)
                 TACTIC (Lexing.lexeme lexbuf) }
     | id      { ID (Lexing.lexeme lexbuf) }