#!/bin/sh # Translate SubX using the self-hosted translator. # # Possible knobs: # Whether to run a phase natively or in emulated mode. # Just always emulate for now since we debug on non-Linux. # Whether to stop after a phase. # Just always run all phases, but print out phases so it's clear where an # error happens. # Whether to trace a phase. Whether to always trace or rerun with tracing # enabled after an error. # Leave tracing to other scripts. We save intermediate files so it's easy # to rerun a single phase afterwards. # Whether to run a phase with debug information. (Need to juggle multiple # sets of debug files.) # Again, that's for subsequent scripts. set -e ./build echo " calls" cat $* |./subx_bin run apps/calls > a.calls echo " sigils" cat a.calls |./subx_bin run apps/sigils > a.sigils echo " tests" cat a.sigils |./subx_bin run apps/tests > a.tests echo " dquotes" cat a.tests |./subx_bin run apps/dquotes > a.dquotes echo " assort" cat a.dquotes |./subx_bin run apps/assort > a.assort echo " pack" cat a.assort |./subx_bin run apps/pack > a.pack echo " survey" cat a.pack |./subx_bin run apps/survey > a.survey echo " hex" cat a.survey |./subx_bin run apps/hex > a.elf chmod +x a.elf