Day 24
This commit is contained in:
38
24/interpreter.sh
Executable file
38
24/interpreter.sh
Executable file
@@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
|
||||
program=''
|
||||
input=$1
|
||||
input_i=0
|
||||
while read line; do
|
||||
case $line in
|
||||
"inp"*)
|
||||
program="${program}${line:4}"'=${input:$input_i:1};input_i=$((input_i+1));'
|
||||
;;
|
||||
"add"*)
|
||||
program="${program}${line:4:1}="'$(('"${line:4:1}+${line:6}"'))'";"
|
||||
;;
|
||||
"mul"*)
|
||||
program="${program}${line:4:1}="'$(('"${line:4:1}*${line:6}"'))'";"
|
||||
;;
|
||||
"div"*)
|
||||
program="${program}${line:4:1}="'$(('"${line:4:1}/${line:6}"'))'";"
|
||||
;;
|
||||
"mod"*)
|
||||
program="${program}${line:4:1}="'$(('"${line:4:1}%${line:6}"'))'";"
|
||||
;;
|
||||
"eql"*)
|
||||
program="${program}${line:4:1}="'$(('"${line:4:1}==${line:6}"'))'";"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
w=0
|
||||
x=0
|
||||
y=0
|
||||
z=0
|
||||
eval $program
|
||||
|
||||
echo w=$w
|
||||
echo x=$x
|
||||
echo y=$y
|
||||
echo z=$z
|
||||
Reference in New Issue
Block a user