added TSwitch support

This commit is contained in:
Nicolas Cannasse
2014-09-11 17:13:31 +02:00
parent e4cf5a7821
commit 8d35e2ff8c
5 changed files with 64 additions and 4 deletions
+17
View File
@@ -378,6 +378,23 @@ class Interp {
return o;
case ETernary(econd,e1,e2):
return if( expr(econd) == true ) expr(e1) else expr(e2);
case ESwitch(e, cases, def):
var val : Dynamic = expr(e);
var match = false;
for( c in cases ) {
for( v in c.values )
if( expr(v) == val ) {
match = true;
break;
}
if( match ) {
val = expr(c.expr);
break;
}
}
if( !match )
val = def == null ? null : expr(def);
return val;
}
return null;
}