diff options
Diffstat (limited to '')
-rw-r--r-- | src/lux/lexer.clj | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/lux/lexer.clj b/src/lux/lexer.clj index f0a8ba91a..b7729156a 100644 --- a/src/lux/lexer.clj +++ b/src/lux/lexer.clj @@ -84,12 +84,9 @@ (return (&/V "lux;Meta" (&/T meta (&/V "Text" token)))))) (def ^:private lex-ident - (&/try-all% (&/|list (|do [[_ [meta _]] (&reader/read-text ";") - [_ [_ token]] (&reader/read-regex +ident-re+)] - (return (&/V "lux;Meta" (&/T meta (&/T "lux" token))))) - (|do [[_ [meta token]] (&reader/read-regex +ident-re+)] + (&/try-all% (&/|list (|do [[_ [meta token]] (&reader/read-regex +ident-re+)] (&/try-all% (&/|list (|do [_ (&reader/read-text ";") - [_ [_ local-token]] (&reader/read-regex +ident-re+)] + [_ [_ local-token]] (&reader/read-regex +ident-re+)] (&/try-all% (&/|list (|do [unaliased (&module/dealias token)] (return (&/V "lux;Meta" (&/T meta (&/T unaliased local-token))))) (|do [? (&module/exists? token)] @@ -99,6 +96,13 @@ ))) (return (&/V "lux;Meta" (&/T meta (&/T "" token)))) ))) + (|do [[_ [meta _]] (&reader/read-text ";;") + [_ [_ token]] (&reader/read-regex +ident-re+) + module-name &/get-module-name] + (return (&/V "lux;Meta" (&/T meta (&/T module-name token))))) + (|do [[_ [meta _]] (&reader/read-text ";") + [_ [_ token]] (&reader/read-regex +ident-re+)] + (return (&/V "lux;Meta" (&/T meta (&/T "lux" token))))) ))) (def ^:private lex-symbol |