diff --git a/janet/myparser.janet b/janet/myparser.janet index 7ae9342..d444de3 100644 --- a/janet/myparser.janet +++ b/janet/myparser.janet @@ -84,7 +84,7 @@ The idea, however, is that Jesus: we must not have test-rule and apply-rule: com nil)) (defn apply-table - "Applies a struct-based rule." + "Applies a table-based rule." [rule parser] (def curr (current parser)) (def rule-fn (get rule :rule)) @@ -196,7 +196,7 @@ The idea, however, is that Jesus: we must not have test-rule and apply-rule: com (while (not passing) (array/push skipped (current parser)) (advance parser) - (set passing (apply-rule rule parser)) + (set passing (apply-rule rule parser)) ### compile error: unknown symbol rule (print "phew; I'm done panicking") (pprint (current parser)) (def the-error {:type :error :expected expected :token origin :skipped skipped}) @@ -204,7 +204,7 @@ The idea, however, is that Jesus: we must not have test-rule and apply-rule: com (array/push (parser :captured) the-error) (error parser))) -(defn * +(defn * "Sequences rules: matches if all rules are matched, in sequence." [& rules] @{:name (keyword (string/join (map name rules) "*")) @@ -213,7 +213,7 @@ The idea, however, is that Jesus: we must not have test-rule and apply-rule: com (var passing true) (def origin (stash parser)) (pprint origin) - (set failing nil) + (set failing nil) ### compile error: unknonw symbol failing (loop [rule :in rules :while passing] (def pass? (apply-rule rule parser)) (when (not pass?) @@ -247,7 +247,7 @@ The idea, however, is that Jesus: we must not have test-rule and apply-rule: com :rule (fn order-1 [parser] (def result (test (first rules) parser)) (if result - (apply-rule (order-0 ;rules)) + (apply-rule (order-0 ;rules)) ### compile error: unknown symbol order-0 nil))}) (defn capture-group @@ -328,9 +328,9 @@ The idea, however, is that Jesus: we must not have test-rule and apply-rule: com (def parser (new-parser tokens)) (try (do (apply-rule rule parser) parser) - ([err] err)) + ([err] err))) -(upscope +(upscope #XXX for repl use (defn literal->ast [token] {:type (get token :type) :data (get token :literal) :token token})