(cond ((and (pair? instruction)
(eq? (car instruction) 'label))
(write (cadr instruction) port)
- (write-char #\: port))
+ (write-char #\: port)
+ (newline port))
((and (pair? instruction)
(eq? (car instruction) 'comment))
(write-char #\tab port)
(cadr frob)
frob)
port))
- (cdr instruction)))
+ (cdr instruction))
+ (newline port))
+ ((record? instruction)
+ ;; Handles c:line and c:group instructions.
+ (write instruction port))
(else
(write-char #\tab port)
- (write instruction port)))
- (newline port))
+ (write instruction port)
+ (newline port))))
(define (rtl/lap-file-header tag scode port)
(write-char #\page port)
(indentation c:line-indentation)
(text c:line-text))
+(define-printer-method c:line?
+ (lambda (line port)
+ (c:write-line line port)))
+
(define-guarantee c:line "C line")
(define (c:line . items)
c:group?
(lines c:group-lines))
+(define-print-method c:group?
+ (lambda (group port)
+ (c:write-group group port)))
+
(define-guarantee c:group "C group")
(define (c:group . items)