minion/minion
2022-06-15 14:16:06 +02:00

29 lines
823 B
Bash
Executable file

#!/bin/bash
program=${1}
command=${2}
if [[ "x${program}" == "x" ]]; then
usage "${0} <program>.mn [lex|parse|run]"
exit 1
fi
if [[ "x${command}" == "x" ]]; then
command="run"
fi
if [[ "${command}" == "lex" ]]; then
./lexer.py ${program} | jq . > ${program}.tokens && cat ${program}.tokens
rm ${program}.tokens
exit 0
fi
if [[ "${command}" == "parse" ]]; then
./lexer.py ${program} | jq . > ${program}.tokens && ./parser.py ${program}.tokens | jq . > ${program}.ast && cat ${program}.ast
rm ${program}.tokens ${program}.ast
exit 0
fi
if [[ "${command}" == "run" ]]; then
./lexer.py ${program} | jq . > ${program}.tokens && ./parser.py ${program}.tokens | jq . > ${program}.ast && ./interpreter.py ${program}.ast
rm ${program}.tokens ${program}.ast
exit 0
fi
usage "${0} <program>.mn [lex|parse|run]"
exit 1