diff options
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/lux/target/jvm/type.lux | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/stdlib/source/lux/target/jvm/type.lux b/stdlib/source/lux/target/jvm/type.lux index 83a9d017a..d1af2ec02 100644 --- a/stdlib/source/lux/target/jvm/type.lux +++ b/stdlib/source/lux/target/jvm/type.lux @@ -8,8 +8,6 @@ ["<>" parser ("#@." monad) ["<t>" text (#+ Parser)]]] [data - ["." product] - ["." maybe ("#@." functor)] ["." text ("#@." equivalence) ["%" format (#+ format)]] [collection @@ -166,22 +164,25 @@ (format valid-var-characters/tail //name.internal-separator)) (template [<type> <name> <head> <tail> <adapter>] - [(def: <name> + [(def: #export <name> (Parser <type>) (:: <>.functor map <adapter> (<t>.slice (<t>.and! (<t>.one-of! <head>) (<t>.some! (<t>.one-of! <tail>))))))] [External class-name-parser valid-class-characters/head valid-class-characters/tail (|>> //name.internal //name.external)] - [Text var-name-parser valid-var-characters/head valid-var-characters/tail function.identity] + [Text var-name-parser valid-var-characters/head valid-var-characters/tail function.identity] ) -(def: var-parser - (Parser (Type Parameter)) +(def: #export var-parser + (Parser Text) (|> ..var-name-parser (<>.after (<t>.this /signature.var-prefix)) - (<>.before (<t>.this /descriptor.class-suffix)) - (<>@map ..var))) + (<>.before (<t>.this /descriptor.class-suffix)))) + +(def: var-parser' + (Parser (Type Parameter)) + (<>@map ..var ..var-parser)) (template [<name> <prefix> <constructor>] [(def: <name> @@ -213,7 +214,7 @@ (function (_ generic-parser) (let [class-parser (..class-parser generic-parser)] ($_ <>.either - ..var-parser + ..var-parser' ..wildcard-parser (..lower-parser class-parser) (..upper-parser class-parser) |