From: Mike D. Lowis Date: Tue, 17 Jul 2012 20:48:39 +0000 (-0400) Subject: Added tests for parsing infix operator application X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=41b4b28bdce57ef9f6818bbf3457fc164991f2b1;p=archive%2Fdlang-scm.git Added tests for parsing infix operator application --- diff --git a/source/parser.scm b/source/parser.scm index 5c0bdff..ab431ff 100644 --- a/source/parser.scm +++ b/source/parser.scm @@ -109,10 +109,10 @@ (op '())) (token-match in 'lpar) (set! parts (append (list (dlang/expression in)) parts)) - ;(set! parts (cons parts (list (dlang/operator in)))) - ;(set! parts (append parts (list (dlang/expression in)))) + (set! parts (append (list (dlang/operator in)) parts)) + (set! parts (append parts (list (dlang/expression in)))) (token-match in 'rpar) - ;(syntree-children-set! tree parts) + (syntree-children-set! tree parts) tree)) (define (dlang/operator in) diff --git a/tests/test_parser.scm b/tests/test_parser.scm index 05727ac..92ad46f 100644 --- a/tests/test_parser.scm +++ b/tests/test_parser.scm @@ -46,22 +46,17 @@ (define result (dlang/basic-expr lxr)) (syntree=? result (syntree 'id "abc" '()))))) -;(def-test "dlang/basic-expr should parse an infix operator application" -; (call-with-input-string "(1.0) * 2.0)" -; (lambda (input) -; (define lxr (make-lexer input)) -; (define result (dlang/basic-expr lxr)) -; (syntree=? result (syntree 'id "abc" '()) -; (define expect -; (syntree 'apply "" (list -; ; (syntree 'id "+" '()) -; (syntree 'number "1.0" '())))) -; ; (syntree 'number "1.0" '())))) -; (equal? result expect)))) -; ;(and (syntree? result) -; ; (equal? 'apply (syntree-type result)) -; ; (equal? "" (syntree-text result)) -; ; (equal? '() (syntree-children result)))))) +(def-test "dlang/basic-expr should parse an infix operator application" + (call-with-input-string "(1.0 * 2.0)" + (lambda (input) + (define lxr (make-lexer input)) + (define result (dlang/basic-expr lxr)) + (syntree=? result + (syntree 'apply "" + (list + (syntree 'id "*" '()) + (syntree 'number "1.0" '()) + (syntree 'number "2.0" '()))))))) ; dlang/operator-app ;------------------------------------------------------------------------------