Browse Source

Fixes, more tests.

Michał W. Urbańczyk 14 năm trước cách đây
mục cha
commit
0a48e51af9
3 tập tin đã thay đổi với 24 bổ sung12 xóa
  1. 1 4
      Data/s/std.verm
  2. 14 0
      Data/s/testy.erm
  3. 9 8
      Scripting/ERM/ERMInterpreter.cpp

+ 1 - 4
Data/s/std.verm

@@ -37,7 +37,4 @@ VERM
 		[* n [factorial [- n 1]]]
 	]
 ]
-![print [factorial 8]]
-
-; example 7 --- ERM integration
-![if [> 3 2] !!IF:M^Hello world^]
+![print [factorial 8]]

+ 14 - 0
Data/s/testy.erm

@@ -0,0 +1,14 @@
+ZVSE
+!?PI;
+	!!VRv2777:S4;
+	!!DO1/0/5/1&v2777<>1:P0;
+
+!?FU1;
+	!!VRv2778:Sx16%2;
+	!!IF&x16>3:M^Hello world number %X16! To duza liczba^;
+	!!IF&v2778==0&x16<=3:M^Hello world number %X16! To mala parzysta liczba^;
+	!!IF&v2778==1&x16<=3:M^Hello world number %X16! To mala nieparzysta liczba^;
+
+!?PI;
+	!!VRz10:S^Composed hello ^;
+	!!IF:M^%Z10%%world%%, v2777=%V2777, v2778=%V2778!^;

+ 9 - 8
Scripting/ERM/ERMInterpreter.cpp

@@ -872,6 +872,7 @@ struct StringFormatter
 					charsToReplace++;
 					replaceWithWhat << erm->ermGlobalEnv->getQuickVar(msg[percentPos+2]);
 				}
+				break;
 			case 'X':
 				replaceWithWhat << erm->getVar("x", getNum()).getInt();
 				break;
@@ -1295,16 +1296,16 @@ struct ERMExpDispatch : boost::static_visitor<>
 	}
 	void operator()(Treceiver const& trig) const
 	{
-		HLP helper;
-		if(trig.name == "VR")
+		HLP helper;			
+		//check condition
+		if(trig.condition.is_initialized())
 		{
-			//check condition
-			if(trig.condition.is_initialized())
-			{
-				if( !erm->checkCondition(trig.condition.get()) )
-					return;
-			}
+			if( !erm->checkCondition(trig.condition.get()) )
+				return;
+		}
 
+		if(trig.name == "VR")
+		{
 			//perform operations
 			if(trig.identifier.is_initialized())
 			{