diff options
author | Malte Voos <git@mal.tc> | 2024-07-08 22:01:42 +0200 |
---|---|---|
committer | Malte Voos <git@mal.tc> | 2024-07-08 22:01:42 +0200 |
commit | 97f84ccace4e634b4e02178a702818e69292dc9f (patch) | |
tree | 9cef95c62e3fa078db256c7fe657732fecef40a8 /src/parser/Grammar.mly | |
parent | 57de10d8728f51942f676b68f1f3ea29d9b78e6e (diff) | |
download | toytt-97f84ccace4e634b4e02178a702818e69292dc9f.tar.gz toytt-97f84ccace4e634b4e02178a702818e69292dc9f.zip |
implement top-level definitions
Diffstat (limited to 'src/parser/Grammar.mly')
-rw-r--r-- | src/parser/Grammar.mly | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/parser/Grammar.mly b/src/parser/Grammar.mly index d8e9ee0..d49c050 100644 --- a/src/parser/Grammar.mly +++ b/src/parser/Grammar.mly @@ -5,7 +5,8 @@ open Ast %token <string> IDENT %token LPR RPR %token LBR RBR -%token ARROW ASTERISK BACKSLASH COLON DOUBLE_COLON COMMA DOT FATARROW UNDERSCORE +%token ARROW ASSIGN ASTERISK BACKSLASH COLON DOUBLE_COLON COMMA DOT FATARROW UNDERSCORE +%token DEF %token BOOL TRUE FALSE BOOL_ELIM AT %token FST SND %token TYPE @@ -17,6 +18,7 @@ open Ast %left IDENT LPR APP BACKSLASH FST SND TYPE BOOL TRUE FALSE BOOL_ELIM %start <Ast.expr> start_expr +%start <Ast.file> start_file %% @@ -81,4 +83,11 @@ raw_expr: %inline expr: e = locate(raw_expr) { e } +item: + | DEF; name = ident; COLON; tp = expr; ASSIGN; tm = expr + { Def { name; tp; tm } } + +file: items = list(item) { items } + start_expr: e = expr; EOF { e } +start_file: f = file; EOF { f } |