#lang scheme/base

;; Test module linking control unit to jump^ implemented in terms of
;; flat assembler output, and stack^ with partial evaluation only.


 ;; the unit we want to test

 ;; stub units for testing


  (stack^ jump^ control^ cjump^)

;; For testing Coma+Control macros using the 'macro>' Scheme macro
;; with only 2stack state (not the full compiler state). This uses
;; [label ...]  and [jw/if ...] pseudo ops. See for the real
;; work.

(define-syntax-rule (macro> . code)
  (state-print-code ((macro: . code) (state:2stack))))

;; Use the lexer on top to use command line interface to the compiler.

(define-syntax-rule (forth-compile str)
  (forth-lex-string/cps macro> str))