aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library/lux/control/parser/code.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/library/lux/control/parser/code.lux')
-rw-r--r--stdlib/source/library/lux/control/parser/code.lux106
1 files changed, 52 insertions, 54 deletions
diff --git a/stdlib/source/library/lux/control/parser/code.lux b/stdlib/source/library/lux/control/parser/code.lux
index d58874cf4..4e31cb1b4 100644
--- a/stdlib/source/library/lux/control/parser/code.lux
+++ b/stdlib/source/library/lux/control/parser/code.lux
@@ -24,8 +24,8 @@
(def: (un_paired pairs)
(All (_ a) (-> (List [a a]) (List a)))
(case pairs
- #.End #.End
- {#.Item [[x y] pairs']} (list& x y (un_paired pairs'))))
+ {.#End} {.#End}
+ {.#Item [[x y] pairs']} (list& x y (un_paired pairs'))))
(type: .public Parser
(//.Parser (List Code)))
@@ -40,30 +40,30 @@
(Parser Code)
(function (_ tokens)
(case tokens
- #.End
- {#try.Failure "There are no tokens to parse!"}
+ {.#End}
+ {try.#Failure "There are no tokens to parse!"}
- {#.Item [t tokens']}
- {#try.Success [tokens' t]})))
+ {.#Item [t tokens']}
+ {try.#Success [tokens' t]})))
(def: .public next
(Parser Code)
(function (_ tokens)
(case tokens
- #.End
- {#try.Failure "There are no tokens to parse!"}
+ {.#End}
+ {try.#Failure "There are no tokens to parse!"}
- {#.Item next _}
- {#try.Success [tokens next]})))
+ {.#Item next _}
+ {try.#Success [tokens next]})))
(template [<query> <check> <type> <tag> <eq> <desc>]
- [(with_expansions [<failure> (as_is {#try.Failure ($_ text\composite "Cannot parse " <desc> (remaining_inputs tokens))})]
+ [(with_expansions [<failure> (as_is {try.#Failure ($_ text\composite "Cannot parse " <desc> (remaining_inputs tokens))})]
(def: .public <query>
(Parser <type>)
(function (_ tokens)
(case tokens
- {#.Item [[_ {<tag> x}] tokens']}
- {#try.Success [tokens' x]}
+ {.#Item [[_ {<tag> x}] tokens']}
+ {try.#Success [tokens' x]}
_
<failure>)))
@@ -72,45 +72,44 @@
(-> <type> (Parser Any))
(function (_ tokens)
(case tokens
- {#.Item [[_ {<tag> actual}] tokens']}
+ {.#Item [[_ {<tag> actual}] tokens']}
(if (\ <eq> = expected actual)
- {#try.Success [tokens' []]}
+ {try.#Success [tokens' []]}
<failure>)
_
<failure>))))]
- [bit bit! Bit #.Bit bit.equivalence "bit"]
- [nat nat! Nat #.Nat nat.equivalence "nat"]
- [int int! Int #.Int int.equivalence "int"]
- [rev rev! Rev #.Rev rev.equivalence "rev"]
- [frac frac! Frac #.Frac frac.equivalence "frac"]
- [text text! Text #.Text text.equivalence "text"]
- [identifier identifier! Name #.Identifier name.equivalence "identifier"]
- [tag tag! Name #.Tag name.equivalence "tag"]
+ [bit bit! Bit .#Bit bit.equivalence "bit"]
+ [nat nat! Nat .#Nat nat.equivalence "nat"]
+ [int int! Int .#Int int.equivalence "int"]
+ [rev rev! Rev .#Rev rev.equivalence "rev"]
+ [frac frac! Frac .#Frac frac.equivalence "frac"]
+ [text text! Text .#Text text.equivalence "text"]
+ [identifier identifier! Name .#Identifier name.equivalence "identifier"]
)
(def: .public (this! code)
(-> Code (Parser Any))
(function (_ tokens)
(case tokens
- {#.Item [token tokens']}
+ {.#Item [token tokens']}
(if (code\= code token)
- {#try.Success [tokens' []]}
- {#try.Failure ($_ text\composite "Expected a " (code.format code) " but instead got " (code.format token)
+ {try.#Success [tokens' []]}
+ {try.#Failure ($_ text\composite "Expected a " (code.format code) " but instead got " (code.format token)
(remaining_inputs tokens))})
_
- {#try.Failure "There are no tokens to parse!"})))
+ {try.#Failure "There are no tokens to parse!"})))
(template [<query> <check> <tag> <eq> <desc>]
- [(with_expansions [<failure> (as_is {#try.Failure ($_ text\composite "Cannot parse " <desc> (remaining_inputs tokens))})]
+ [(with_expansions [<failure> (as_is {try.#Failure ($_ text\composite "Cannot parse " <desc> (remaining_inputs tokens))})]
(def: .public <query>
(Parser Text)
(function (_ tokens)
(case tokens
- {#.Item [[_ {<tag> ["" x]}] tokens']}
- {#try.Success [tokens' x]}
+ {.#Item [[_ {<tag> ["" x]}] tokens']}
+ {try.#Success [tokens' x]}
_
<failure>)))
@@ -119,16 +118,15 @@
(-> Text (Parser Any))
(function (_ tokens)
(case tokens
- {#.Item [[_ {<tag> ["" actual]}] tokens']}
+ {.#Item [[_ {<tag> ["" actual]}] tokens']}
(if (\ <eq> = expected actual)
- {#try.Success [tokens' []]}
+ {try.#Success [tokens' []]}
<failure>)
_
<failure>))))]
- [local_identifier local_identifier! #.Identifier text.equivalence "local identifier"]
- [ local_tag local_tag! #.Tag text.equivalence "local tag"]
+ [local_identifier local_identifier! .#Identifier text.equivalence "local identifier"]
)
(template [<name> <tag> <desc>]
@@ -137,46 +135,46 @@
(-> (Parser a) (Parser a)))
(function (_ tokens)
(case tokens
- {#.Item [[_ {<tag> members}] tokens']}
+ {.#Item [[_ {<tag> members}] tokens']}
(case (p members)
- {#try.Success [#.End x]} {#try.Success [tokens' x]}
- _ {#try.Failure ($_ text\composite "Parser was expected to fully consume " <desc> (remaining_inputs tokens))})
+ {try.#Success [{.#End} x]} {try.#Success [tokens' x]}
+ _ {try.#Failure ($_ text\composite "Parser was expected to fully consume " <desc> (remaining_inputs tokens))})
_
- {#try.Failure ($_ text\composite "Cannot parse " <desc> (remaining_inputs tokens))})))]
+ {try.#Failure ($_ text\composite "Cannot parse " <desc> (remaining_inputs tokens))})))]
- [form #.Form "form"]
- [variant #.Variant "variant"]
- [tuple #.Tuple "tuple"]
+ [form .#Form "form"]
+ [variant .#Variant "variant"]
+ [tuple .#Tuple "tuple"]
)
(def: .public end!
(Parser Any)
(function (_ tokens)
(case tokens
- #.End {#try.Success [tokens []]}
- _ {#try.Failure ($_ text\composite "Expected list of tokens to be empty!" (remaining_inputs tokens))})))
+ {.#End} {try.#Success [tokens []]}
+ _ {try.#Failure ($_ text\composite "Expected list of tokens to be empty!" (remaining_inputs tokens))})))
(def: .public end?
(Parser Bit)
(function (_ tokens)
- {#try.Success [tokens (case tokens
- #.End true
- _ false)]}))
+ {try.#Success [tokens (case tokens
+ {.#End} true
+ _ false)]}))
(def: .public (result parser inputs)
(All (_ a) (-> (Parser a) (List Code) (Try a)))
(case (parser inputs)
- {#try.Failure error}
- {#try.Failure error}
+ {try.#Failure error}
+ {try.#Failure error}
- {#try.Success [unconsumed value]}
+ {try.#Success [unconsumed value]}
(case unconsumed
- #.End
- {#try.Success value}
+ {.#End}
+ {try.#Success value}
_
- {#try.Failure (|> unconsumed
+ {try.#Failure (|> unconsumed
(list\each code.format)
(text.interposed ", ")
(text\composite "Unconsumed inputs: "))})))
@@ -195,5 +193,5 @@
result (//.or parser
..any)]
(case result
- {#.Left _} (//.failure (text\composite "Did NOT expect to parse code: " (code.format sample)))
- {#.Right output} (in output))))
+ {.#Left _} (//.failure (text\composite "Did NOT expect to parse code: " (code.format sample)))
+ {.#Right output} (in output))))