From 5036848184a912a857c4c1e76ef02985295855eb Mon Sep 17 00:00:00 2001 From: Marc Coquand Date: Mon, 25 Dec 2023 19:17:01 -0600 Subject: Support semicolon as separator --- lib/lexer.mll | 1 + lib/parser.mly | 2 ++ test/test_parser.ml | 1 + 3 files changed, 4 insertions(+) diff --git a/lib/lexer.mll b/lib/lexer.mll index e8a7a73..41a2abc 100644 --- a/lib/lexer.mll +++ b/lib/lexer.mll @@ -20,6 +20,7 @@ rule read = | "uuidv4" { UUIDV4 } | "name" { NAME } | ":" { COLON } + | ";" { SEMICOLON } | "," { COMMA } | "\n" { NEWLINE } | "." { DOT } diff --git a/lib/parser.mly b/lib/parser.mly index f2f53fd..3d57961 100644 --- a/lib/parser.mly +++ b/lib/parser.mly @@ -5,6 +5,7 @@ %token IDENTIFIER %token UUIDV4 %token NEWLINE +%token SEMICOLON %token NAME %token COLON %token DOT @@ -18,6 +19,7 @@ prog: expr: | tbl = IDENTIFIER; COLON; r = row; NEWLINE; e = expr { Table (tbl,r, e) } + | tbl = IDENTIFIER; COLON; r = row; SEMICOLON; e = expr { Table (tbl,r, e) } | tbl = IDENTIFIER; COLON; r = row { Table (tbl,r, End) } ; diff --git a/test/test_parser.ml b/test/test_parser.ml index bfc980c..405219e 100644 --- a/test/test_parser.ml +++ b/test/test_parser.ml @@ -29,6 +29,7 @@ let relations_suite = [ ( "Can reference other tables" , `Quick , test_parse "user: id uuidv4\npurchases: id uuidv4, user_id user.id" ) + ; "Can use ; as a separator", `Quick, test_parse "user: id uuidv4; purchases: id uuidv4" ] -- cgit v1.2.3