diff options
author | Eduardo Julian | 2021-09-09 00:29:12 -0400 |
---|---|---|
committer | Eduardo Julian | 2021-09-09 00:29:12 -0400 |
commit | ef77466323f85a3d1b65b46a3deb93652ef22085 (patch) | |
tree | c2715b8cf6e7864fef87e22ee6e206c7c1758849 /lux-bootstrapper/src/lux/analyser.clj | |
parent | 085c9a6ef151531cb01b842ed2f4366a49b78367 (diff) |
The old record syntax has been re-purposed as variant syntax.
Diffstat (limited to '')
-rw-r--r-- | lux-bootstrapper/src/lux/analyser.clj | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lux-bootstrapper/src/lux/analyser.clj b/lux-bootstrapper/src/lux/analyser.clj index 5ebda9c6e..f837d8cee 100644 --- a/lux-bootstrapper/src/lux/analyser.clj +++ b/lux-bootstrapper/src/lux/analyser.clj @@ -187,10 +187,12 @@ (analyse-variant+ analyse exo-type ?ident parameters)) ;; Pattern-matching syntax. - (&/$Record ?pattern-matching) - (|let [(&/$Item ?input (&/$End)) parameters] - (&/with-analysis-meta location exo-type - (&&lux/analyse-case analyse exo-type ?input ?pattern-matching))) + (&/$Variant ?pattern-matching) + (if (even? (&/|length ?pattern-matching)) + (|let [(&/$Item ?input (&/$End)) parameters] + (&/with-analysis-meta location exo-type + (&&lux/analyse-case analyse exo-type ?input (&/|as-pairs ?pattern-matching)))) + (&/fail-with-loc (str "[Analyser Error] Unknown syntax: " (&/show-ast (&/T [(&/T ["" -1 -1]) token]))))) ;; Function syntax. (&/$Tuple (&/$Item [_ (&/$Identifier "" ?self)] |