#!/bin/sh
# Hackily check for certain kinds of errors.
#
# We still rely exclusively on linux/bootstrap/bootstrap for some static
# checks on bare SubX code that aren't implemented yet in the self-hosted
# translator phases.
#
# However, boot.subx uses instructions that bootstrap doesn't recognize. So we
# won't check it.

set -e

cat $* [0-9]*.mu                                      |linux/mu      > a.subx

cat misc_checks.subx mu-init.subx [0-9]*.subx a.subx  |linux/braces  > a.braces
cat a.braces                                          |linux/calls   > a.calls
cat a.calls                                           |linux/sigils  > a.sigils

CXXFLAGS=-g linux/bootstrap/bootstrap --debug translate a.sigils -o a.elf
# Translation will never succeed,
# but if we get to "missing reference to global" errors, they're expected and
# we've gotten to the end of what bootstrap can check for us.
