#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