diff options
Diffstat (limited to 'new-luxc/source/luxc/lang/extension.lux')
-rw-r--r-- | new-luxc/source/luxc/lang/extension.lux | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/new-luxc/source/luxc/lang/extension.lux b/new-luxc/source/luxc/lang/extension.lux index d38d564fb..248bfbb71 100644 --- a/new-luxc/source/luxc/lang/extension.lux +++ b/new-luxc/source/luxc/lang/extension.lux @@ -18,16 +18,24 @@ (exception: #export Cannot-Define-Translation-More-Than-Once) (exception: #export Cannot-Define-Statement-More-Than-Once) -(type: #export Expression +(type: #export Analysis + (-> (-> Code (Meta Code)) + (-> Type Code (Meta Top)) + (List Code) (Meta Code))) + +(type: #export Synthesis + (-> (List Code) (Meta Code))) + +(type: #export Translation (-> (List Code) (Meta Code))) (type: #export Statement (-> (List Code) (Meta Unit))) (type: #export Extensions - {#analysis (Dict Text Expression) - #synthesis (Dict Text Expression) - #translation (Dict Text Expression) + {#analysis (Dict Text Analysis) + #synthesis (Dict Text Synthesis) + #translation (Dict Text Translation) #statement (Dict Text Statement)}) (def: #export fresh @@ -61,10 +69,10 @@ #.None (//.throw <exception> name))))] - [find-analysis Expression #analysis Unknown-Analysis] - [find-synthesis Expression #synthesis Unknown-Synthesis] - [find-translation Expression #translation Unknown-Translation] - [find-statement Statement #statement Unknown-Statement] + [find-analysis Analysis #analysis Unknown-Analysis] + [find-synthesis Synthesis #synthesis Unknown-Synthesis] + [find-translation Translation #translation Unknown-Translation] + [find-statement Statement #statement Unknown-Statement] ) (do-template [<name> <type> <category> <exception>] @@ -77,8 +85,8 @@ _ (..set (update@ <category> (dict.put name extension) extensions))] (wrap [])))] - [install-analysis Expression #analysis Cannot-Define-Analysis-More-Than-Once] - [install-synthesis Expression #synthesis Cannot-Define-Synthesis-More-Than-Once] - [install-translation Expression #translation Cannot-Define-Translation-More-Than-Once] - [install-statement Statement #statement Cannot-Define-Statement-More-Than-Once] + [install-analysis Analysis #analysis Cannot-Define-Analysis-More-Than-Once] + [install-synthesis Synthesis #synthesis Cannot-Define-Synthesis-More-Than-Once] + [install-translation Translation #translation Cannot-Define-Translation-More-Than-Once] + [install-statement Statement #statement Cannot-Define-Statement-More-Than-Once] ) |