adding a debugprint statement in the il to make it easier for me to trace what's happening

This commit is contained in:
Danny Yoo 2011-05-12 17:01:47 -04:00
parent 2c3c6d0e0e
commit 01f2bc7566
5 changed files with 21 additions and 1 deletions

View File

@ -129,6 +129,8 @@ EOF
(assemble-label (make-Label (LinkedLabel-label stmt)))
(assemble-label (make-Label (LinkedLabel-linked-to stmt))))
(next)]
[(DebugPrint? stmt)
(next)]
[(AssignImmediateStatement? stmt)
(next)]
[(AssignPrimOpStatement? stmt)
@ -177,6 +179,8 @@ EOF
(format "~a" stmt))
"")
(cond
[(DebugPrint? stmt)
(format "MACHINE.params.currentOutputPort.write(~a);" (assemble-oparg (DebugPrint-value stmt)))]
[(AssignImmediateStatement? stmt)
(let: ([t : String (assemble-target (AssignImmediateStatement-target stmt))]
[v : OpArg (AssignImmediateStatement-value stmt)])

View File

@ -34,6 +34,8 @@
[(LinkedLabel? stmt)
(list (LinkedLabel-label stmt)
(LinkedLabel-linked-to stmt))]
[(DebugPrint? stmt)
empty]
[(AssignImmediateStatement? stmt)
(let: ([v : OpArg (AssignImmediateStatement-value stmt)])
(collect-input v))]

View File

@ -120,7 +120,14 @@
PushControlFrame/Call
PushControlFrame/Prompt
PopControlFrame))
PopControlFrame
DebugPrint))
;; Debug print statement.
(define-struct: DebugPrint ([value : OpArg])
#:transparent)
(define-type Statement (U UnlabeledStatement

View File

@ -62,6 +62,9 @@
[(LinkedLabel? stmt)
#f]
[(DebugPrint? stmt)
#f]
[(AssignImmediateStatement? stmt)
(equal? (AssignImmediateStatement-target stmt)
(AssignImmediateStatement-value stmt))]

View File

@ -96,6 +96,10 @@
'ok]
[(LinkedLabel? i)
'ok]
[(DebugPrint? i)
;; Hack: just to monitor evaluation.
(displayln (evaluate-oparg m (DebugPrint-value i)))
'ok]
[(AssignImmediateStatement? i)
(step-assign-immediate! m i)]
[(AssignPrimOpStatement? i)