git » fp-git.git » commit 010aa17

added empty animation validation

author ecalot
2005-02-19 10:07:09 UTC
committer ecalot
2005-02-19 10:07:09 UTC
parent 6bf60dbe1dc5b2138964551ee8fbfdc7bb655baa

added empty animation validation

FP/src/conf/awk/states_conf_static.awk +21 -19

diff --git a/FP/src/conf/awk/states_conf_static.awk b/FP/src/conf/awk/states_conf_static.awk
index 27ae6fa..b7d4d98 100644
--- a/FP/src/conf/awk/states_conf_static.awk
+++ b/FP/src/conf/awk/states_conf_static.awk
@@ -164,25 +164,23 @@ function addExit (name) {
 }
 #1 tab (action)
 /^\t[^\t# ].*$/ {
-#	if (first) {
-		actionArray[currentAction,"description"]=rememberAction
-#		if (currentState) {
-			actionArray[currentAction,"isFirstInState"]=currentState
-#		} else {
-#			actionArray[currentAction,"isFirstInState"]=priorState
-#			priorState=""
-#		}
-		actionArray[currentAction,"animationStart"]=startAnimation
-		actionArray[currentAction,"animationSize"]=currentAnimation-startAnimation
-		actionArray[currentAction,"conditionStart"]=conditions
-		actionArray[currentAction,"nextState"]=nextState
-		actionArray[currentAction,"moveType"]=moveType
-		actionArray[currentAction,"moveOffset"]=moveOffset
-		actionArray[currentAction,"lastComma"]=","
-		currentState=""
-#	} else {
-#		first=1
-#	}
+	actionArray[currentAction,"description"]=rememberAction
+	actionArray[currentAction,"isFirstInState"]=currentState
+	if ((currentAnimation)&&(currentAnimation==startAnimation)) {
+		printf("Parsing error in %s: Missing action animation from line %d to line %d.\n",FILENAME,priorActionLine,FNR-1)>"/dev/stderr"
+		exit 27
+	}
+	actionArray[currentAction,"animationStart"]=startAnimation
+	actionArray[currentAction,"animationSize"]=currentAnimation-startAnimation
+	actionArray[currentAction,"conditionStart"]=conditions
+	actionArray[currentAction,"nextState"]=nextState
+	actionArray[currentAction,"moveType"]=moveType
+	actionArray[currentAction,"moveOffset"]=moveOffset
+	actionArray[currentAction,"lastComma"]=","
+	currentState=""
+
+	#remember prior action line in case the animation is empty
+	priorActionLine=FNR
 
 	currentAction++
 	startAnimation=currentAnimation
@@ -210,6 +208,10 @@ function addExit (name) {
 END {
 	actionArray[currentAction,"description"]=rememberAction
 	actionArray[currentAction,"isFirstInState"]=currentState
+	if ((currentAnimation)&&(currentAnimation==startAnimation)) {
+		printf("Parsing error in %s: Missing action animation from line %d to line %d.\n",FILENAME,priorActionLine,FNR-1)>"/dev/stderr"
+		exit 27
+	}
 	actionArray[currentAction,"animationStart"]=startAnimation
 	actionArray[currentAction,"animationSize"]=currentAnimation-startAnimation
 	actionArray[currentAction,"conditionStart"]=conditions