1
1
mirror of https://github.com/kanaka/mal.git synced 2024-09-21 10:37:58 +03:00
mal/bash/step1_read_print.sh
Alan Dipert 7838e3398e bash: use env in shebang
- Now works on Macs with Bash4 from homebrew
2015-02-10 15:59:50 -05:00

44 lines
635 B
Bash
Executable File

#!/usr/bin/env bash
source $(dirname $0)/reader.sh
source $(dirname $0)/printer.sh
# read
READ () {
[ "${1}" ] && r="${1}" || READLINE
READ_STR "${r}"
}
# eval
EVAL () {
local ast="${1}"
local env="${2}"
r=
[[ "${__ERROR}" ]] && return 1
r="${ast}"
}
# print
PRINT () {
if [[ "${__ERROR}" ]]; then
_pr_str "${__ERROR}" yes
r="Error: ${r}"
__ERROR=
else
_pr_str "${1}" yes
fi
}
# repl
REP () {
READ "${1}"
EVAL "${r}"
PRINT "${r}"
}
# repl loop
while true; do
READLINE "user> " || exit "$?"
[[ "${r}" ]] && REP "${r}" && echo "${r}"
done