parser: Optional semicolon between statements.
authorRichard W.M. Jones <rjones@redhat.com>
Fri, 3 Jan 2020 14:48:54 +0000 (14:48 +0000)
committerRichard W.M. Jones <rjones@redhat.com>
Fri, 3 Jan 2020 14:51:47 +0000 (14:51 +0000)
src/lexer.mll
src/parser.mly

index 4a316a0..f2d0830 100644 (file)
@@ -43,6 +43,7 @@ rule read =
     | newline { new_line lexbuf; read lexbuf }
     | ","     { COMMA }
     | ":"     { COLON }
+    | ";"     { SEMICOLON }
     | "="     { EQUALS }
     | "("     { LEFT_PAREN }
     | ")"     { RIGHT_PAREN }
index db70924..b84ac15 100644 (file)
@@ -70,6 +70,7 @@ let do_include env loc filename optflag file =
 %token OPTINCLUDE
 %token RIGHT_ARRAY
 %token RIGHT_PAREN
+%token SEMICOLON
 %token <Ast.substs> STRING
 %token <string> TACTIC
 %token TACTIC_KEYWORD
@@ -85,11 +86,12 @@ file:
 
 stmts:
     | (* none *) { Ast.Env.empty }
-    | stmts INCLUDE STRING
+    | stmts INCLUDE STRING option(SEMICOLON)
     { do_include $1 $loc $3 false file }
-    | stmts OPTINCLUDE STRING
+    | stmts OPTINCLUDE STRING option(SEMICOLON)
     { do_include $1 $loc $3 true file }
-    | stmts stmt  { let name, expr = $2 in Ast.Env.add name expr $1 }
+    | stmts stmt option(SEMICOLON)
+    { let name, expr = $2 in Ast.Env.add name expr $1 }
     ;
 
 stmt: