purrr.ss
#lang scheme/base
(require
 "tools.ss")
(require
 "coma/macro-eval.ss")
(require/provide
 "purrr/forth-begin.ss"   ;; parser driver in the form of 'begin' macros.
 "purrr/parsing-words.ss" ;; bindings for (non-concatenative) forth parser words
 "purrr/repl.ss"          ;; string -> toplevel form expansion
 "coma.ss"                ;; single stack pure macros
 "control.ss"             ;; dual stack control macros
 "comp.ss"                ;; compiler (macro instantiation + postprocess)
 "scat.ss"                ;; intermediate language
 "asm.ss"                 ;; for convenience, export assembler interface
 "target.ss"
 "live.ss"                ;; target interaction
 )

;; Macros defined in .f files use a superset of the macro/2stack
;; language state to implement multiple entry and exit points for
;; instantiated code, and multiple exit for macros. All macro
;; evaluation that's not part of instantiation needs to use this
;; augmented state. (i.e. this is used in macro/constants.ss)
(macro-eval-init-state
 state:compiler)


(loading "purrr")