adding a debugprint statement in the il to make it easier for me to trace what's happening
This commit is contained in:
parent
2c3c6d0e0e
commit
01f2bc7566
|
@ -129,6 +129,8 @@ EOF
|
||||||
(assemble-label (make-Label (LinkedLabel-label stmt)))
|
(assemble-label (make-Label (LinkedLabel-label stmt)))
|
||||||
(assemble-label (make-Label (LinkedLabel-linked-to stmt))))
|
(assemble-label (make-Label (LinkedLabel-linked-to stmt))))
|
||||||
(next)]
|
(next)]
|
||||||
|
[(DebugPrint? stmt)
|
||||||
|
(next)]
|
||||||
[(AssignImmediateStatement? stmt)
|
[(AssignImmediateStatement? stmt)
|
||||||
(next)]
|
(next)]
|
||||||
[(AssignPrimOpStatement? stmt)
|
[(AssignPrimOpStatement? stmt)
|
||||||
|
@ -177,6 +179,8 @@ EOF
|
||||||
(format "~a" stmt))
|
(format "~a" stmt))
|
||||||
"")
|
"")
|
||||||
(cond
|
(cond
|
||||||
|
[(DebugPrint? stmt)
|
||||||
|
(format "MACHINE.params.currentOutputPort.write(~a);" (assemble-oparg (DebugPrint-value stmt)))]
|
||||||
[(AssignImmediateStatement? stmt)
|
[(AssignImmediateStatement? stmt)
|
||||||
(let: ([t : String (assemble-target (AssignImmediateStatement-target stmt))]
|
(let: ([t : String (assemble-target (AssignImmediateStatement-target stmt))]
|
||||||
[v : OpArg (AssignImmediateStatement-value stmt)])
|
[v : OpArg (AssignImmediateStatement-value stmt)])
|
||||||
|
|
|
@ -34,6 +34,8 @@
|
||||||
[(LinkedLabel? stmt)
|
[(LinkedLabel? stmt)
|
||||||
(list (LinkedLabel-label stmt)
|
(list (LinkedLabel-label stmt)
|
||||||
(LinkedLabel-linked-to stmt))]
|
(LinkedLabel-linked-to stmt))]
|
||||||
|
[(DebugPrint? stmt)
|
||||||
|
empty]
|
||||||
[(AssignImmediateStatement? stmt)
|
[(AssignImmediateStatement? stmt)
|
||||||
(let: ([v : OpArg (AssignImmediateStatement-value stmt)])
|
(let: ([v : OpArg (AssignImmediateStatement-value stmt)])
|
||||||
(collect-input v))]
|
(collect-input v))]
|
||||||
|
|
|
@ -120,7 +120,14 @@
|
||||||
PushControlFrame/Call
|
PushControlFrame/Call
|
||||||
PushControlFrame/Prompt
|
PushControlFrame/Prompt
|
||||||
|
|
||||||
PopControlFrame))
|
PopControlFrame
|
||||||
|
|
||||||
|
DebugPrint))
|
||||||
|
|
||||||
|
|
||||||
|
;; Debug print statement.
|
||||||
|
(define-struct: DebugPrint ([value : OpArg])
|
||||||
|
#:transparent)
|
||||||
|
|
||||||
|
|
||||||
(define-type Statement (U UnlabeledStatement
|
(define-type Statement (U UnlabeledStatement
|
||||||
|
|
|
@ -62,6 +62,9 @@
|
||||||
[(LinkedLabel? stmt)
|
[(LinkedLabel? stmt)
|
||||||
#f]
|
#f]
|
||||||
|
|
||||||
|
[(DebugPrint? stmt)
|
||||||
|
#f]
|
||||||
|
|
||||||
[(AssignImmediateStatement? stmt)
|
[(AssignImmediateStatement? stmt)
|
||||||
(equal? (AssignImmediateStatement-target stmt)
|
(equal? (AssignImmediateStatement-target stmt)
|
||||||
(AssignImmediateStatement-value stmt))]
|
(AssignImmediateStatement-value stmt))]
|
||||||
|
|
|
@ -96,6 +96,10 @@
|
||||||
'ok]
|
'ok]
|
||||||
[(LinkedLabel? i)
|
[(LinkedLabel? i)
|
||||||
'ok]
|
'ok]
|
||||||
|
[(DebugPrint? i)
|
||||||
|
;; Hack: just to monitor evaluation.
|
||||||
|
(displayln (evaluate-oparg m (DebugPrint-value i)))
|
||||||
|
'ok]
|
||||||
[(AssignImmediateStatement? i)
|
[(AssignImmediateStatement? i)
|
||||||
(step-assign-immediate! m i)]
|
(step-assign-immediate! m i)]
|
||||||
[(AssignPrimOpStatement? i)
|
[(AssignPrimOpStatement? i)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user