(require-library srfi-1 srfi-69 numbers) (module sassy (sassy sassy-expand sassy-make-bin sassy-make-elf sassy-hexdump sassy-print-symbols sassy-print-relocs sassy-data-stack sassy-data-align sassy-data-list sassy-heap-align sassy-heap-size sassy-data-size sassy-text-align sassy-text-org sassy-text-size sassy-text-list sassy-entry-point sassy-reloc? sassy-symbol? sassy-output? sassy-symbol-name sassy-symbol-scope sassy-symbol-table sassy-symbol-section sassy-symbol-offset sassy-symbol-size sassy-symbol-unres sassy-symbol-exists? sassy-reloc-list sassy-reloc-name sassy-reloc-section sassy-reloc-offset sassy-reloc-type sassy-reloc-patcher sassy-reloc-value sassy-reloc-width make-pushdown-stack make-pushup-stack push-stack-empty? push-stack-push push-stack-pointer push-stack-items push-stack-patch push-stack-push->patcher push-stack-save push-stack-direction push-stack-size push-stack-append! push-stack-align ) (import (except scheme + - * / = > < >= <= number->string string->number eqv? equal? exp log sin cos tan atan acos asin expt sqrt quotient modulo remainder numerator denominator abs min max gcd lcm positive? negative? odd? even? zero? exact? inexact? floor ceiling truncate round inexact->exact exact->inexact number? complex? real? rational? integer? real-part imag-part magnitude)) (import (except chicken add1 sub1 signum bitwise-and bitwise-ior bitwise-xor bitwise-not arithmetic-shift)) (import (except extras random randomize)) (import numbers srfi-1 srfi-69) ;=================================; ; ; ; SRFI 60 integers as bits ; ; ; ;=================================; ; Sassy uses the following subset: (define logior bitwise-ior) (define logand bitwise-and) (define lognot bitwise-not) (define ash arithmetic-shift) (include "other/srfi-60-pieces.scm") (include "other/srfi-56-pieces.scm") ;==============; ; ; ; Sassy ; ; ; ;==============; (include "meta-lambda.scm") (include "push-stacks.scm") (include "api.scm") (include "intern.scm") (include "macros.scm") (include "numbers.scm") (include "operands.scm") (include "text-block.scm") (include "opcodes.scm") (include "text.scm") (include "parse.scm") (include "main.scm") ;=======================; ; ; ; Output Modules ; ; ; ;=======================; (include "flat-bin.scm") (include "elf.scm") sassy ;========================; ; ; ; The test suite ; ; ; ;========================; ; eval the following two expressions in order to run all the tests. ; (load "tests/run-tests.scm") ; (sassy-run-tests 'all) )