diff options
author | Malte Voos <git@mal.tc> | 2024-07-08 23:59:31 +0200 |
---|---|---|
committer | Malte Voos <git@mal.tc> | 2024-07-08 23:59:31 +0200 |
commit | 3cf472b13c9b329b711a5c254fc6f89268a99eda (patch) | |
tree | f04d63e829246924d1c8f808a06af8ad1ff9d327 /src/driver | |
parent | 66cf5d3c5fff84a1cac333c1aa81a8e1f21ee6f4 (diff) | |
download | toytt-3cf472b13c9b329b711a5c254fc6f89268a99eda.tar.gz toytt-3cf472b13c9b329b711a5c254fc6f89268a99eda.zip |
implement argument lists for top-level definitions
Diffstat (limited to 'src/driver')
-rw-r--r-- | src/driver/Driver.ml | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/driver/Driver.ml b/src/driver/Driver.ml index a2c4364..57eec82 100644 --- a/src/driver/Driver.ml +++ b/src/driver/Driver.ml @@ -1,9 +1,12 @@ let process_item (toplvl : TopLevel.t) (item : Ast.item) : TopLevel.t = let (name, item) = match item with - | Ast.Def { name; tp; tm } -> - let tp = Elaborator.check_tp_toplevel ~toplvl tp in - let tm = Elaborator.check_toplevel ~toplvl ~tm ~tp in - (name, TopLevel.Def { tp; tm = lazy (NbE.eval_toplevel tm) }) + | Ast.Def { name; args; tp; tm } -> + let (tp, tm) = Elaborator.check_def_toplevel ~toplvl ~args ~tp ~tm in + let item = TopLevel.Def { + tp = NbE.eval_toplevel tp; + tm = lazy (NbE.eval_toplevel tm); + } in + (name, item) in Yuujinchou.Trie.update_singleton name.value (fun _ -> Some (item, ())) toplvl |