diff options
Diffstat (limited to 'stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/extension.lux')
-rw-r--r-- | stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/extension.lux | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/extension.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/extension.lux index aeeb17528..b59e5ce37 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/extension.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/extension.lux @@ -21,7 +21,8 @@ [/// ["#" phase]]]]) -(syntax: (Vector {size s.nat} elemT) +(syntax: (Vector [size s.nat + elemT <code>.any]) (in (list (` [(~+ (list.repeated size elemT))])))) (type: .public (Nullary of) (-> (Vector 0 of) of)) @@ -30,7 +31,9 @@ (type: .public (Trinary of) (-> (Vector 3 of) of)) (type: .public (Variadic of) (-> (List of) of)) -(syntax: (arity: {arity s.nat} {name s.local_identifier} type) +(syntax: (arity: [arity s.nat + name s.local_identifier + type <code>.any]) (with_identifiers [g!_ g!extension g!name g!phase g!archive g!inputs g!of g!anchor g!expression g!directive] (do {! meta.monad} [g!input+ (monad.seq ! (list.repeated arity (macro.identifier "input")))] @@ -45,7 +48,7 @@ [(~+ (|> g!input+ (list\map (function (_ g!input) (list g!input (` ((~ g!phase) (~ g!archive) (~ g!input)))))) - list.concat))] + list.joined))] ((~' in) ((~ g!extension) [(~+ g!input+)]))) (~' _) |