87 lines
2.4 KiB
C
87 lines
2.4 KiB
C
#ifndef __HF__KEYWORDS_H__
|
|
#define __HF__KEYWORDS_H__
|
|
|
|
#include "parser.h"
|
|
|
|
enum HF__KEYWORD {
|
|
HF__KEYWORD__DUP,
|
|
HF__KEYWORD__DROP,
|
|
HF__KEYWORD__SWAP,
|
|
HF__KEYWORD__OVER,
|
|
HF__KEYWORD__ROT,
|
|
|
|
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,
|
|
HF__KEYWORD__SPACES,
|
|
HF__KEYWORD__CR,
|
|
HF__KEYWORDS__CRS,
|
|
HF__KEYWORD__DEBUG,
|
|
|
|
HF__KEYWORD__ABORT,
|
|
HF__KEYWORD__EXIT,
|
|
|
|
__HF__KEYWORD__N,
|
|
};
|
|
|
|
static const char *const HF__KEYWORD_STR[__HF__KEYWORD__N] = {
|
|
[HF__KEYWORD__DUP] = "dup", [HF__KEYWORD__DROP] = "drop",
|
|
[HF__KEYWORD__SWAP] = "swap", [HF__KEYWORD__OVER] = "over",
|
|
[HF__KEYWORD__ROT] = "rot",
|
|
|
|
[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",
|
|
[HF__KEYWORD__DEBUG] = "debug",
|
|
|
|
[HF__KEYWORD__ABORT] = "abort", [HF__KEYWORD__EXIT] = "exit",
|
|
|
|
};
|
|
|
|
static const enum hf__node_type HF__KEYWORD_NODE_TYPE[__HF__KEYWORD__N] = {
|
|
[HF__KEYWORD__DUP] = HF__NODE_TYPE__DUP,
|
|
[HF__KEYWORD__DROP] = HF__NODE_TYPE__DROP,
|
|
[HF__KEYWORD__SWAP] = HF__NODE_TYPE__SWAP,
|
|
[HF__KEYWORD__OVER] = HF__NODE_TYPE__OVER,
|
|
[HF__KEYWORD__ROT] = HF__NODE_TYPE__ROT,
|
|
|
|
[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,
|
|
[HF__KEYWORD__SPACES] = HF__NODE_TYPE__SPACES,
|
|
[HF__KEYWORD__CR] = HF__NODE_TYPE__CR,
|
|
[HF__KEYWORDS__CRS] = HF__NODE_TYPE__CRS,
|
|
[HF__KEYWORD__DEBUG] = HF__NODE_TYPE__DEBUG,
|
|
|
|
[HF__KEYWORD__ABORT] = HF__NODE_TYPE__ABORT,
|
|
[HF__KEYWORD__EXIT] = HF__NODE_TYPE__EXIT,
|
|
};
|
|
|
|
#endif
|