created >= and <= and != for the expr handling.
This commit is contained in:
parent
339c975595
commit
8299aeaea9
150
Operand.cpp
150
Operand.cpp
@ -55,6 +55,12 @@ namespace jet {
|
|||||||
|
|
||||||
} else if(in.ifNext("CONCAT")) {
|
} else if(in.ifNext("CONCAT")) {
|
||||||
|
|
||||||
|
} else if(in.ifNext("INTEGER")) {
|
||||||
|
|
||||||
|
} else if(in.ifNext("ROUND")) {
|
||||||
|
|
||||||
|
} else if(in.ifNext("RANDOM")) {
|
||||||
|
|
||||||
} else if(in.ifNext("true")) {
|
} else if(in.ifNext("true")) {
|
||||||
boolean = true;
|
boolean = true;
|
||||||
string = "true";
|
string = "true";
|
||||||
@ -73,6 +79,150 @@ namespace jet {
|
|||||||
|
|
||||||
in.skipWhitespace();
|
in.skipWhitespace();
|
||||||
|
|
||||||
|
if(in.ifNext("=")) {
|
||||||
|
Operand op(in);
|
||||||
|
if(isNumber && op.isNumber) {
|
||||||
|
if(doubleValue == op.doubleValue) {
|
||||||
|
boolean = true;
|
||||||
|
isNumber = false;
|
||||||
|
string = "true";
|
||||||
|
} else {
|
||||||
|
boolean = false;
|
||||||
|
isNumber = false;
|
||||||
|
string = "false";
|
||||||
|
}
|
||||||
|
} else if(!isNumber && !op.isNumber) {
|
||||||
|
if(string == op.string) {
|
||||||
|
boolean = true;
|
||||||
|
isNumber = false;
|
||||||
|
string = "true";
|
||||||
|
} else {
|
||||||
|
boolean = false;
|
||||||
|
isNumber = false;
|
||||||
|
string = "false";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(in.ifNext("<")) {
|
||||||
|
Operand op(in);
|
||||||
|
if(isNumber && op.isNumber) {
|
||||||
|
if(doubleValue < op.doubleValue) {
|
||||||
|
boolean = true;
|
||||||
|
isNumber = false;
|
||||||
|
string = "true";
|
||||||
|
} else {
|
||||||
|
boolean = false;
|
||||||
|
isNumber = false;
|
||||||
|
string = "false";
|
||||||
|
}
|
||||||
|
} else if(!isNumber && !op.isNumber) {
|
||||||
|
if(string < op.string) {
|
||||||
|
boolean = true;
|
||||||
|
isNumber = false;
|
||||||
|
string = "true";
|
||||||
|
} else {
|
||||||
|
boolean = false;
|
||||||
|
isNumber = false;
|
||||||
|
string = "false";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(in.ifNext(">")) {
|
||||||
|
Operand op(in);
|
||||||
|
if(isNumber && op.isNumber) {
|
||||||
|
if(doubleValue > op.doubleValue) {
|
||||||
|
boolean = true;
|
||||||
|
isNumber = false;
|
||||||
|
string = "true";
|
||||||
|
} else {
|
||||||
|
boolean = false;
|
||||||
|
isNumber = false;
|
||||||
|
string = "false";
|
||||||
|
}
|
||||||
|
} else if(!isNumber && !op.isNumber) {
|
||||||
|
if(string > op.string) {
|
||||||
|
boolean = true;
|
||||||
|
isNumber = false;
|
||||||
|
string = "true";
|
||||||
|
} else {
|
||||||
|
boolean = false;
|
||||||
|
isNumber = false;
|
||||||
|
string = "false";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(in.ifNext("!=") || in.ifNext("<>")) {
|
||||||
|
Operand op(in);
|
||||||
|
if(isNumber && op.isNumber) {
|
||||||
|
if(doubleValue != op.doubleValue) {
|
||||||
|
boolean = true;
|
||||||
|
isNumber = false;
|
||||||
|
string = "true";
|
||||||
|
} else {
|
||||||
|
boolean = false;
|
||||||
|
isNumber = false;
|
||||||
|
string = "false";
|
||||||
|
}
|
||||||
|
} else if(!isNumber && !op.isNumber) {
|
||||||
|
if(string != op.string) {
|
||||||
|
boolean = true;
|
||||||
|
isNumber = false;
|
||||||
|
string = "true";
|
||||||
|
} else {
|
||||||
|
boolean = false;
|
||||||
|
isNumber = false;
|
||||||
|
string = "false";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(in.ifNext("<=")) {
|
||||||
|
Operand op(in);
|
||||||
|
if(isNumber && op.isNumber) {
|
||||||
|
if(doubleValue <= op.doubleValue) {
|
||||||
|
boolean = true;
|
||||||
|
isNumber = false;
|
||||||
|
string = "true";
|
||||||
|
} else {
|
||||||
|
boolean = false;
|
||||||
|
isNumber = false;
|
||||||
|
string = "false";
|
||||||
|
}
|
||||||
|
} else if(!isNumber && !op.isNumber) {
|
||||||
|
if(string <= op.string) {
|
||||||
|
boolean = true;
|
||||||
|
isNumber = false;
|
||||||
|
string = "true";
|
||||||
|
} else {
|
||||||
|
boolean = false;
|
||||||
|
isNumber = false;
|
||||||
|
string = "false";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(in.ifNext(">=")) {
|
||||||
|
Operand op(in);
|
||||||
|
if(isNumber && op.isNumber) {
|
||||||
|
if(doubleValue >= op.doubleValue) {
|
||||||
|
boolean = true;
|
||||||
|
isNumber = false;
|
||||||
|
string = "true";
|
||||||
|
} else {
|
||||||
|
boolean = false;
|
||||||
|
isNumber = false;
|
||||||
|
string = "false";
|
||||||
|
}
|
||||||
|
} else if(!isNumber && !op.isNumber) {
|
||||||
|
if(string >= op.string) {
|
||||||
|
boolean = true;
|
||||||
|
isNumber = false;
|
||||||
|
string = "true";
|
||||||
|
} else {
|
||||||
|
boolean = false;
|
||||||
|
isNumber = false;
|
||||||
|
string = "false";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if(in.ifNext("+")) {
|
if(in.ifNext("+")) {
|
||||||
if(isNumber) {
|
if(isNumber) {
|
||||||
Operand op(in);
|
Operand op(in);
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
$[test$[ix$[ix1]]$[iz]]
|
$[test$[ix$[ix1]]$[iz]]
|
||||||
<if value1="X" value2="Y" type="ne">
|
<if value1="X" value2="Y" type="ne">
|
||||||
789
|
789
|
||||||
<if expr="false">
|
<if expr="3>1">
|
||||||
123
|
123
|
||||||
<else>
|
<else>
|
||||||
456
|
456
|
||||||
|
Loading…
x
Reference in New Issue
Block a user