diff options
Diffstat (limited to 'lib/parser.mly')
-rw-r--r-- | lib/parser.mly | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/parser.mly b/lib/parser.mly index e9d06bc..6e21480 100644 --- a/lib/parser.mly +++ b/lib/parser.mly @@ -14,6 +14,7 @@ %token <int> INT %token LBRACE %token RBRACE +%token <string> STRING %start <ast_table option > prog %% @@ -30,10 +31,16 @@ expr: row: | row_title = IDENTIFIER; parent = IDENTIFIER; DOT; parent_id = IDENTIFIER; COMMA; r = row { Foreign (parent,parent_id,row_title, r) } | row_title = IDENTIFIER; parent = IDENTIFIER; DOT; parent_id = IDENTIFIER; { Foreign (parent,parent_id,row_title, End) } + | row_title = IDENTIFIER; UUIDV4; COMMA; r = row { Uuidv4 (row_title, r) } | row_title = IDENTIFIER; UUIDV4 { Uuidv4 (row_title, End) } + | row_title = IDENTIFIER; NAME; COMMA; r = row { Name (row_title, r) } | row_title = IDENTIFIER; NAME { Name (row_title, End) } + + | row_title = IDENTIFIER; const = STRING; COMMA; r = row { Const (row_title, const, r) } + | row_title = IDENTIFIER; const = STRING { Const (row_title, const, End) } + | row_title = IDENTIFIER; INTSYMBOL;LBRACE;min = INT;COMMA;max = INT;RBRACE;COMMA; r = row { Int (row_title,min,max,r) } | row_title = IDENTIFIER; INTSYMBOL;LBRACE;min = INT;COMMA;max = INT;RBRACE; { Int (row_title,min,max,End) } ; |