Fixing parsing of numbers in mexpr mode.
This commit is contained in:
parent
6d887ff19b
commit
51a018b705
7 changed files with 47 additions and 13 deletions
|
|
@ -42,11 +42,16 @@
|
|||
;; Wrapping in a function call puts us into mexpr contest;
|
||||
;; "T" would be interpreted as a sexpr, which would not be
|
||||
;; quoted.
|
||||
(let [expected "(ATOM A)"
|
||||
(let [expected "(ATOM (QUOTE A))"
|
||||
actual (print-str (gsp "atom[A]"))]
|
||||
(is (= actual expected)))
|
||||
(let [expected "(ATOM A)"
|
||||
actual (print-str (gsp "atom[a]"))]
|
||||
(is (= actual expected)))
|
||||
|
||||
;; I'm not clear how `car[(A B C)]` should be translated, but
|
||||
;; I suspect as (CAR (LIST A B C)).
|
||||
|
||||
(let [expected "(CAR (LIST A B C))"
|
||||
actual (print-str (gsp "car[(A B C)]"))]
|
||||
(is (= actual expected)))
|
||||
|
|
@ -63,10 +68,10 @@
|
|||
|
||||
(deftest conditional-tests
|
||||
(testing "Conditional expressions"
|
||||
(let [expected "(COND ((ATOM X) X) (T (FF (CAR X))))"
|
||||
(let [expected "(COND ((ATOM X) X) ((QUOTE T) (FF (CAR X))))"
|
||||
actual (print-str (gsp "[atom[x]->x; T->ff[car[x]]]"))]
|
||||
(is (= actual expected)))
|
||||
(let [expected "(LABEL FF (LAMBDA (X) (COND ((ATOM X) X) (T (FF (CAR X))))))"
|
||||
(let [expected "(LABEL FF (LAMBDA (X) (COND ((ATOM X) X) ((QUOTE T) (FF (CAR X))))))"
|
||||
actual (print-str
|
||||
(generate
|
||||
(simplify
|
||||
|
|
@ -83,6 +88,6 @@
|
|||
|
||||
(deftest assignment-tests
|
||||
(testing "Function assignment"
|
||||
(let [expected "(SET (QUOTE FF) (QUOTE (LAMBDA (X) (COND ((ATOM X) X) (T (FF (CAR X)))))))"
|
||||
(let [expected "(SET (QUOTE FF) (QUOTE (LAMBDA (X) (COND ((ATOM X) X) ((QUOTE T) (FF (CAR X)))))))"
|
||||
actual (print-str (gsp "ff[x]=[atom[x] -> x; T -> ff[car[x]]]"))]
|
||||
(is (= actual expected)))))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue