created >= and <= and != for the expr handling.

This commit is contained in:
Brad Arant 2024-09-30 16:53:49 -07:00
parent 339c975595
commit 8299aeaea9
3 changed files with 152 additions and 2 deletions

View File

@ -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);

BIN
jet-2.0

Binary file not shown.

View File

@ -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