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("INTEGER")) {
|
||||
|
||||
} else if(in.ifNext("ROUND")) {
|
||||
|
||||
} else if(in.ifNext("RANDOM")) {
|
||||
|
||||
} else if(in.ifNext("true")) {
|
||||
boolean = true;
|
||||
string = "true";
|
||||
@ -73,6 +79,150 @@ namespace jet {
|
||||
|
||||
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(isNumber) {
|
||||
Operand op(in);
|
||||
|
@ -38,7 +38,7 @@
|
||||
$[test$[ix$[ix1]]$[iz]]
|
||||
<if value1="X" value2="Y" type="ne">
|
||||
789
|
||||
<if expr="false">
|
||||
<if expr="3>1">
|
||||
123
|
||||
<else>
|
||||
456
|
||||
|
Loading…
x
Reference in New Issue
Block a user