mirror of https://github.com/FOME-Tech/fome-fw.git
auto-sync
This commit is contained in:
parent
2a52a70893
commit
d910d0a572
|
@ -8,6 +8,27 @@
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "logic_expression.h"
|
#include "logic_expression.h"
|
||||||
|
|
||||||
|
LENameOrdinalPair * LE_FIRST = NULL;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* the main point of these static fields is that their constructor would register
|
||||||
|
* them in the magic list of operator name/ordinal pairs
|
||||||
|
*/
|
||||||
|
static LENameOrdinalPair leAnd(LE_OPERATOR_AND, "and");
|
||||||
|
static LENameOrdinalPair leOr(LE_OPERATOR_OR, "or");
|
||||||
|
static LENameOrdinalPair leMore(LE_OPERATOR_MORE, ">");
|
||||||
|
static LENameOrdinalPair leMoreOrEqual(LE_OPERATOR_MORE_OR_EQUAL, ">=");
|
||||||
|
|
||||||
|
LENameOrdinalPair::LENameOrdinalPair(le_action_e action, const char *name) {
|
||||||
|
this->next = NULL;
|
||||||
|
this->action = action;
|
||||||
|
this->name = name;
|
||||||
|
if (LE_FIRST != NULL) {
|
||||||
|
LE_FIRST->next = this;
|
||||||
|
}
|
||||||
|
LE_FIRST = this;
|
||||||
|
}
|
||||||
|
|
||||||
LEElement::LEElement() {
|
LEElement::LEElement() {
|
||||||
action = LE_UNDEFINED;
|
action = LE_UNDEFINED;
|
||||||
next = NULL;
|
next = NULL;
|
||||||
|
@ -156,10 +177,12 @@ const char *processToken(const char *line, char *buffer) {
|
||||||
}
|
}
|
||||||
|
|
||||||
le_action_e parseAction(const char * line) {
|
le_action_e parseAction(const char * line) {
|
||||||
if (strEqualCaseInsensitive("or", line)) {
|
LENameOrdinalPair *pair = LE_FIRST;
|
||||||
return LE_OPERATOR_OR;
|
while (pair != NULL) {
|
||||||
} else if (strEqualCaseInsensitive("AND", line)) {
|
if (strEqualCaseInsensitive(pair->name, line)) {
|
||||||
return LE_OPERATOR_AND;
|
// return pair->action;
|
||||||
|
}
|
||||||
|
pair = pair->next;
|
||||||
}
|
}
|
||||||
return LE_UNDEFINED;
|
return LE_UNDEFINED;
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,6 +72,15 @@ private:
|
||||||
FLStack<float, MAX_STACK_DEPTH> stack;
|
FLStack<float, MAX_STACK_DEPTH> stack;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class LENameOrdinalPair {
|
||||||
|
public:
|
||||||
|
LENameOrdinalPair(le_action_e action, const char *name);
|
||||||
|
LENameOrdinalPair *next;
|
||||||
|
le_action_e action;
|
||||||
|
const char *name;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
const char *processToken(const char *line, char *buffer);
|
const char *processToken(const char *line, char *buffer);
|
||||||
bool isNumeric(const char* line);
|
bool isNumeric(const char* line);
|
||||||
le_action_e parseAction(const char * line);
|
le_action_e parseAction(const char * line);
|
||||||
|
|
Loading…
Reference in New Issue