Add boolean operations
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
03a9b46e33
commit
fa0f92a8ec
4 changed files with 116 additions and 0 deletions
|
@ -40,6 +40,8 @@ extern void hf__interpreter__free(struct hf__interpreter *interpreter);
|
|||
typedef struct hf__result (*hf__interpreter__word_func_t)(
|
||||
struct hf__interpreter *const, const struct hf__node *const);
|
||||
|
||||
extern int hf__interpreter__bool_to_flag(const bool x);
|
||||
|
||||
extern const hf__interpreter__word_func_t
|
||||
HF__INTERPRETER__WORD_FUNCTION[__HF__NODE_TYPE__N];
|
||||
|
||||
|
|
|
@ -13,6 +13,13 @@ enum HF__KEYWORD {
|
|||
HF__KEYWORD__ADD,
|
||||
HF__KEYWORD__SUB,
|
||||
|
||||
HF__KEYWORD__EQ,
|
||||
HF__KEYWORD__LT,
|
||||
HF__KEYWORD__GT,
|
||||
HF__KEYWORD__AND,
|
||||
HF__KEYWORD__OR,
|
||||
HF__KEYWORD__INVERT,
|
||||
|
||||
HF__KEYWORD__PERIOD,
|
||||
HF__KEYWORD__EMIT,
|
||||
HF__KEYWORD__SPACE,
|
||||
|
@ -34,6 +41,10 @@ static const char *const HF__KEYWORD_STR[__HF__KEYWORD__N] = {
|
|||
|
||||
[HF__KEYWORD__ADD] = "+", [HF__KEYWORD__SUB] = "-",
|
||||
|
||||
[HF__KEYWORD__EQ] = "=", [HF__KEYWORD__LT] = "<",
|
||||
[HF__KEYWORD__GT] = ">", [HF__KEYWORD__AND] = "and",
|
||||
[HF__KEYWORD__OR] = "or", [HF__KEYWORD__INVERT] = "invert",
|
||||
|
||||
[HF__KEYWORD__EMIT] = "emit", [HF__KEYWORD__PERIOD] = ".",
|
||||
[HF__KEYWORD__SPACE] = "space", [HF__KEYWORD__SPACES] = "spaces",
|
||||
[HF__KEYWORD__CR] = "cr", [HF__KEYWORDS__CRS] = "crs",
|
||||
|
@ -53,6 +64,13 @@ static const enum hf__node_type HF__KEYWORD_NODE_TYPE[__HF__KEYWORD__N] = {
|
|||
[HF__KEYWORD__ADD] = HF__NODE_TYPE__ADD,
|
||||
[HF__KEYWORD__SUB] = HF__NODE_TYPE__SUB,
|
||||
|
||||
[HF__KEYWORD__EQ] = HF__NODE_TYPE__EQ,
|
||||
[HF__KEYWORD__LT] = HF__NODE_TYPE__LT,
|
||||
[HF__KEYWORD__GT] = HF__NODE_TYPE__GT,
|
||||
[HF__KEYWORD__AND] = HF__NODE_TYPE__AND,
|
||||
[HF__KEYWORD__OR] = HF__NODE_TYPE__OR,
|
||||
[HF__KEYWORD__INVERT] = HF__NODE_TYPE__INVERT,
|
||||
|
||||
[HF__KEYWORD__PERIOD] = HF__NODE_TYPE__DOT,
|
||||
[HF__KEYWORD__EMIT] = HF__NODE_TYPE__EMIT,
|
||||
[HF__KEYWORD__SPACE] = HF__NODE_TYPE__SPACE,
|
||||
|
|
|
@ -24,6 +24,13 @@ enum hf__node_type {
|
|||
HF__NODE_TYPE__ADD,
|
||||
HF__NODE_TYPE__SUB,
|
||||
|
||||
HF__NODE_TYPE__EQ,
|
||||
HF__NODE_TYPE__LT,
|
||||
HF__NODE_TYPE__GT,
|
||||
HF__NODE_TYPE__AND,
|
||||
HF__NODE_TYPE__OR,
|
||||
HF__NODE_TYPE__INVERT,
|
||||
|
||||
HF__NODE_TYPE__DOT,
|
||||
HF__NODE_TYPE__EMIT,
|
||||
HF__NODE_TYPE__SPACE,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue