From f1df1e080f9377d33ee1a46f31c64414abd6f03e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Axel=20S=C3=B8gaard?= Date: Wed, 13 Aug 2014 20:22:40 +0200 Subject: [PATCH] Expected and actual results in test-parse are now in sync again. Introduced reset-make-label-counter to do so. --- whalesong/compiler/expression-structs.rkt | 15 ++++++++++++++- whalesong/tests/test-parse.rkt | 11 +++++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/whalesong/compiler/expression-structs.rkt b/whalesong/compiler/expression-structs.rkt index 3d2f415..068a3b6 100644 --- a/whalesong/compiler/expression-structs.rkt +++ b/whalesong/compiler/expression-structs.rkt @@ -163,11 +163,24 @@ (define current-short-labels? (make-parameter #t)) +(define make-label-counter 0) + +(: reset-make-label-counter (-> Void)) +(define (reset-make-label-counter) + (set! make-label-counter 0)) + (: make-label (Symbol -> Symbol)) -(define make-label +#;(define make-label (let ([n 0]) (lambda (l) (set! n (add1 n)) (if (current-short-labels?) (string->symbol (format "_~a" n)) (string->symbol (format "~a~a" l n)))))) + +(define (make-label l) + (set! make-label-counter (+ make-label-counter 1)) + (define n make-label-counter) + (if (current-short-labels?) + (string->symbol (format "_~a" n)) + (string->symbol (format "~a~a" l n)))) diff --git a/whalesong/tests/test-parse.rkt b/whalesong/tests/test-parse.rkt index 658bd6e..94fa797 100644 --- a/whalesong/tests/test-parse.rkt +++ b/whalesong/tests/test-parse.rkt @@ -1,10 +1,17 @@ #lang racket/base - -(require "../parser/baby-parser.rkt" +(require (rename-in "../parser/baby-parser.rkt" + [parse baby-parse]) "../compiler/lexical-structs.rkt" "../compiler/expression-structs.rkt" (for-syntax racket/base)) + +(define (parse x) + (parameterize ([current-short-labels? #f]) + (reset-make-label-counter) + (baby-parse x))) + + (printf "test-parse.rkt\n"); ; Test out the compiler, using the simulator.