浏览代码

Merge pull request #3 from RiveraGroup/feature/rall_error_checks

feature: rall output checks / error handling
mikau2 10 年之前
父节点
当前提交
3f295334ac
共有 1 个文件被更改,包括 17 次插入4 次删除
  1. 17 4
      rall

+ 17 - 4
rall

@@ -3,20 +3,33 @@
 if !($?rig) set rig='~/rigal/rigsc.446/bin'
 
 # ensure MP2 binaries have been built
-test -x MP2-parser     ||  $rig/rc MP2-parser -c
-test -x MP2-generator  ||  $rig/rc MP2-generator -c
+if !(-x MP2-parser) $rig/rc MP2-parser -c
+if !(-x MP2-generator) $rig/rc MP2-generator -c
 # cleanup rc/ic
-rm *.rsc
+rm *.rsc  >& /dev/null
 
 # parse into tree
 ./MP2-parser "$1" tree "$2" > temp.txt
+if !(-f tree) then
+	echo "ERROR: Unable to parse into syntax tree file (see 'temp.txt' for details)"
+	exit 1
+endif
 
 # generate C++ code
 ./MP2-generator tree > temp2.txt
+if !(-f "$1.cpp") then
+	echo "ERROR: Unable to generate '$1.cpp' C++ source code file (see 'temp2.txt' or 'RIGSC/bin/v tree' for details)"
+	rm .cpp >& /dev/null # weird bug in MP2-generator
+	exit 2
+endif
 
 # compile C++
 echo "C++ compiler: g++ $1.cpp -o $1 -Ofast"
 time g++ "$1.cpp" -o $1 -Ofast
+if !(-x "$1") then
+	echo "ERROR: Unable to compile binary file"
+	exit 3
+endif
 
 # run C++
 echo "$1 run: ./$1 > $1.txt"
@@ -25,4 +38,4 @@ time ./$1 > "$1.txt"
 echo "Completed $1 for scope $2"
 
 # cleanup
-rm temp.txt temp2.txt $1 tree
+rm temp.txt temp2.txt $1 tree  >& /dev/null