Delete old/broken versions of let & if
This commit is contained in:
parent
3d080403dc
commit
85d4f99030
|
@ -342,14 +342,6 @@
|
||||||
(parse-let-expr (:parser assignment) parser)
|
(parse-let-expr (:parser assignment) parser)
|
||||||
(panic parser "Expected assignment"))))
|
(panic parser "Expected assignment"))))
|
||||||
|
|
||||||
(defn- parse-let [parser]
|
|
||||||
(let [pattern (parse-pattern (advance parser))]
|
|
||||||
(if (poisoned? pattern)
|
|
||||||
(panic (advance parser) "Expected pattern")
|
|
||||||
(parse-assignment pattern)
|
|
||||||
)
|
|
||||||
))
|
|
||||||
|
|
||||||
(defn- parse-let* [parser]
|
(defn- parse-let* [parser]
|
||||||
(let [pattern (parse-pattern (advance parser))]
|
(let [pattern (parse-pattern (advance parser))]
|
||||||
(parse-assignment pattern)))
|
(parse-assignment pattern)))
|
||||||
|
@ -382,26 +374,6 @@
|
||||||
(parse-then (accept ::token/newline ast))
|
(parse-then (accept ::token/newline ast))
|
||||||
))
|
))
|
||||||
|
|
||||||
;; TODO: Fix failure case here
|
|
||||||
(defn- parse-if [parser]
|
|
||||||
(let [
|
|
||||||
if-expr (parse-expr (advance parser) #{::token/then ::token/newline})
|
|
||||||
then (expect ::token/then "Expected then" (accept ::token/newline if-expr))
|
|
||||||
then-expr (parse-expr then)
|
|
||||||
else (expect ::token/else "Epected else" (accept ::token/newline then-expr))
|
|
||||||
else-expr (parse-expr else #{::token/else ::token/newline})
|
|
||||||
results (map #(get-in % [::ast ::ast/type]) [if-expr then then-expr else else-expr])
|
|
||||||
]
|
|
||||||
(if (some #(= ::ast/poison %) results)
|
|
||||||
(println ::ast/poison) ;; TODO: FIX THIS
|
|
||||||
(assoc else-expr ::ast {
|
|
||||||
::ast/type ::ast/if
|
|
||||||
:if-expr (::ast if-expr)
|
|
||||||
:then-expr (::ast then-expr)
|
|
||||||
:else-expr (::ast else-expr)
|
|
||||||
}))
|
|
||||||
))
|
|
||||||
|
|
||||||
(defn- parse-expr
|
(defn- parse-expr
|
||||||
([parser] (parse-expr parser sync-on))
|
([parser] (parse-expr parser sync-on))
|
||||||
([parser sync-on] (let [token (current parser)]
|
([parser sync-on] (let [token (current parser)]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user