Fix grammar produced by explicate-control
This commit is contained in:
parent
85dbf65800
commit
df520e99ca
|
|
@ -7,7 +7,7 @@
|
|||
(define (explicate-control sexp)
|
||||
(match sexp
|
||||
[`(program ,info ,exp)
|
||||
`(program ,info ,(explicate-control-tail exp))]))
|
||||
`(program ,info ((start . ,(explicate-control-tail exp))))]))
|
||||
|
||||
; after a remove-complex-opera*, all expressions
|
||||
; are compatible with C0
|
||||
|
|
|
|||
|
|
@ -26,34 +26,39 @@
|
|||
(test-eq
|
||||
(pass (list-ref programs 0))
|
||||
`(program ()
|
||||
(return (+ 2 3))))
|
||||
((start .
|
||||
(return (+ 2 3))))))
|
||||
|
||||
(test-eq
|
||||
(pass (list-ref programs 1))
|
||||
`(program ()
|
||||
(seq (assign tmp.1 (- 2))
|
||||
(return (+ tmp.1 3)))))
|
||||
((start .
|
||||
(seq (assign tmp.1 (- 2))
|
||||
(return (+ tmp.1 3)))))))
|
||||
|
||||
(test-eq
|
||||
(pass (list-ref programs 2))
|
||||
`(program ()
|
||||
(seq (assign x.1 20)
|
||||
(seq (assign x.2 22)
|
||||
(seq (assign y.1 (+ x.1 x.2))
|
||||
(return y.1))))))
|
||||
((start .
|
||||
(seq (assign x.1 20)
|
||||
(seq (assign x.2 22)
|
||||
(seq (assign y.1 (+ x.1 x.2))
|
||||
(return y.1))))))))
|
||||
|
||||
(test-eq
|
||||
(pass (list-ref programs 3))
|
||||
`(program ()
|
||||
(seq (assign a.1 42)
|
||||
(seq (assign b.1 a.1)
|
||||
(return b.1)))))
|
||||
((start .
|
||||
(seq (assign a.1 42)
|
||||
(seq (assign b.1 a.1)
|
||||
(return b.1)))))))
|
||||
|
||||
(test-eq
|
||||
(pass (list-ref programs 4))
|
||||
`(program ()
|
||||
(seq (assign tmp.1 (- 1))
|
||||
(seq (assign x.1 (+ tmp.1 2))
|
||||
(seq (assign tmp.2 (+ x.1 2))
|
||||
(seq (assign tmp.3 (+ 4 5))
|
||||
(return (+ tmp.2 tmp.3))))))))
|
||||
((start .
|
||||
(seq (assign tmp.1 (- 1))
|
||||
(seq (assign x.1 (+ tmp.1 2))
|
||||
(seq (assign tmp.2 (+ x.1 2))
|
||||
(seq (assign tmp.3 (+ 4 5))
|
||||
(return (+ tmp.2 tmp.3))))))))))
|
||||
|
|
|
|||
Loading…
Reference in New Issue