diff --git a/24/analysis.txt b/24/analysis.txt new file mode 100644 index 0000000..280b613 --- /dev/null +++ b/24/analysis.txt @@ -0,0 +1,79 @@ +w=i0 +x=1 +y=i0+2 +z=i0+2 + +w=i1 +x=1 +y=i1+16 +z=26*(i0+2)+i1+16 + +w=i2 +x=1 +y=i2+9 +z=26*(26*(i0+2)+i1+16)+i2+9 + +w=i3 +x=1 +y=i3 +z=26*(26*(26*(i0+2)+i1+16)+i2+9)+i3 + +w=i4 +x=0 +y=0 +z=26*(26*(i0+2)+i1+16)+i2+9 +[i4==i3-8] + +w=i5 +x=1 +y=i5+12 +z=26*(26*(26*(i0+2)+i1+16)+i2+9)+i5+12 +[i4==i3-8] + +w=i6 +x=0 +y=0 +z=26*(26*(i0+2)+i1+16)+i2+9 +[i4==i3-8][i6==i5-4] + +w=i7 +x=0 +y=0 +z=26*(i0+2)+i1+16 +[i4==i3-8][i6==i5-4][i7==i2+5] + +w=i8 +x=1 +y=i8+3 +z=26*(26*(i0+2)+i1+16)+i8+3 +[i4==i3-8][i6==i5-4][i7==i2+5] + +w=i9 +x=0 +y=0 +z=26*(i0+2)+i1+16 +[i4==i3-8][i6==i5-4][i7==i2+5][i9=i8] + +w=i10 +x=1 +y=i10+9 +z=26*(26*(i0+2)+i1+16)+i10+9 +[i4==i3-8][i6==i5-4][i7==i2+5][i9=i8] + +w=i11 +x=0 +y=0 +z=26*(i0+2)+i1+16 +[i4==i3-8][i6==i5-4][i7==i2+5][i9=i8][i11=i10+2] + +w=i12 +x=0 +y=0 +z=i0+2 +[i4==i3-8][i6==i5-4][i7==i2+5][i9=i8][i11=i10+2][i12=i1+1] + +w=i13 +x=0 +y=0 +z=0 +[i4==i3-8][i6==i5-4][i7==i2+5][i9==i8][i11==i10+2][i12==i1+1][i13==i0-5] diff --git a/24/interpreter.sh b/24/interpreter.sh new file mode 100755 index 0000000..f6db628 --- /dev/null +++ b/24/interpreter.sh @@ -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