#!/bin/bash program=${1} command=${2} if [[ "x${program}" == "x" ]]; then usage "${0} .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} .mn [lex|parse|run]" exit 1