X-Git-Url: http://git.ieval.ro/?p=app-scheme79asm.git;a=blobdiff_plain;f=t%2FCompiler.t;h=d8f93a56f09078b3d63b45d8c54549b712663e97;hp=a73e3418b94b48d0f0e3e1ec6faf4b079999fee7;hb=ab8f838ff57d83083716775abf1c121430da5e5e;hpb=88f1ecae67fd3487c7d0add3cedbb10023d1adc4 diff --git a/t/Compiler.t b/t/Compiler.t index a73e341..d8f93a5 100644 --- a/t/Compiler.t +++ b/t/Compiler.t @@ -24,14 +24,14 @@ sub is_toplevel { is_sexp new->process_toplevel(to_sexp $string), $expected, "process_toplevel $string"; } -is_sexp new->process_quoted(to_sexp '5'), '(symbol 3)', 'process_quoted 5'; -is_sexp new->process_quoted(to_sexp '()'), '(list 0)', 'process_quoted ()'; -is_sexp new->process_quoted(to_sexp '(5 foo)'), '(list (list (list 0) (symbol 3)) (symbol 4))', 'process_quoted (5 foo)'; -is_sexp new->process_quoted(to_sexp '(((5)))'), '(list (list 0) (list (list 0) (list (list 0) (symbol 3))))', 'process_quoted (((5)))'; +is_sexp new->process_quoted(to_sexp '5'), '(SYMBOL 3)', 'process_quoted 5'; +is_sexp new->process_quoted(to_sexp '()'), '(LIST 0)', 'process_quoted ()'; +is_sexp new->process_quoted(to_sexp '(5 foo)'), '(LIST (LIST (LIST 0) (SYMBOL 3)) (SYMBOL 4))', 'process_quoted (5 foo)'; +is_sexp new->process_quoted(to_sexp '(((5)))'), '(LIST (LIST 0) (LIST (LIST 0) (LIST (LIST 0) (SYMBOL 3))))', 'process_quoted (((5)))'; -is_toplevel '(quote 5)', '(symbol 3)'; -is_toplevel '(if t \'(2 3) \'x)', '(if (list (symbol 5) (list (list (list 0) (symbol 3)) (symbol 4))) (symbol 2))'; -is_toplevel '(car \'(1 2))', '(call (car 0) (list (list (list 0) (symbol 3)) (symbol 4)))'; -is_toplevel '(lambda id (x) x)', '(proc (var -2))'; -is_toplevel '((lambda id (x) x) 5)', '(call (more (funcall 0) (proc (var -2))) (symbol 3))'; -is_toplevel '(lambda append (x y) (if (atom x) y (cons (car x) (append (cdr x) y))))', '(proc (if (list (call (more (cons 0) (call (more (more (funcall 0) (var -1)) (var -2)) (call (cdr 0) (var -3)))) (call (car 0) (var -3))) (var -2)) (call (atom 0) (var -3))))'; +is_toplevel '(quote 5)', '(SYMBOL 3)'; +is_toplevel '(if t \'(2 3) \'x)', '(IF (LIST (SYMBOL 5) (LIST (LIST (LIST 0) (SYMBOL 3)) (SYMBOL 4))) (SYMBOL 2))'; +is_toplevel '(car \'(1 2))', '(CALL (CAR 0) (LIST (LIST (LIST 0) (SYMBOL 3)) (SYMBOL 4)))'; +is_toplevel '(lambda id (x) x)', '(PROC (VAR -2))'; +is_toplevel '((lambda id (x) x) 5)', '(CALL (MORE (FUNCALL 0) (PROC (VAR -2))) (SYMBOL 3))'; +is_toplevel '(lambda append (x y) (if (atom x) y (cons (car x) (append (cdr x) y))))', '(PROC (IF (LIST (CALL (MORE (CONS 0) (CALL (MORE (MORE (FUNCALL 0) (VAR -1)) (VAR -2)) (CALL (CDR 0) (VAR -3)))) (CALL (CAR 0) (VAR -3))) (VAR -2)) (CALL (ATOM 0) (VAR -3))))';