⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nyacc.h

📁 編譯器的虛擬yacc工具
💻 H
字号:
#ifndef NULL#include <stdio.h>#endif#define NIL 0/* * nyacc structures for building the traversable * parse tree * */ typedef char ny_Boolean;typedef enum { ny_terminal, ny_nonTerminal } ny_NodeType;typedef enum { ny_item, ny_string, ny_assign, ny_concat, ny_beginr, ny_declr, ny_endr,		 ny_reference, ny_udf, ny_comma, ny_noop, ny_cond, ny_equal, ny_notequal,		 ny_andand, ny_oror } ny_Operation;typedef enum { ny_selective, ny_openr } ny_Selector;typedef enum { ny_passThru, ny_newMask } ny_TraversalType;typedef long unsigned ny_Mask;struct ny_Node;struct ny_Register;struct ny_subtree_t {  ny_Mask tmask;  ny_TraversalType tt;  ny_Selector stype;};struct ny_func_t {  char *(*f)();  struct ny_Order *args;};struct ny_cond_t {  struct ny_Order *ifbranch,*elsebranch;  struct ny_Order *condition;};struct ny_Order {  ny_Operation op,op2;  ny_Boolean filterStrings;  union{    char *str;    struct ny_subtree_t *st;    struct ny_func_t *func;    struct ny_cond_t *br;    struct ny_Register **reg2;  } u;  unsigned elem;  struct ny_Register **reg;  struct ny_Order *next;};struct ny_Translation {  ny_Mask mask;  struct ny_Order *order;  struct ny_Translation *next;};struct ny_RhsItem {  ny_NodeType type;  long blineno,elineno,bcwline,ecwline;  long int bcharno,echarno;  union {    char *str;    struct ny_Node *tree;  } item;  struct ny_RhsItem *next;};struct ny_Node {  struct ny_Translation *translations;  unsigned nchildren;  struct ny_RhsItem *children;};struct ny_Register {  ny_Operation op;  unsigned elem;  ny_Mask mask;  ny_Selector type;  ny_TraversalType tt;  ny_Boolean filtered;  char *str;  struct ny_Node *node;  struct ny_Register *next;};struct ny_RStackElem {  struct ny_Register *reg,**myaddress;  struct ny_RStackElem *next;};struct ny_RStack {  struct ny_RStackElem *top;  struct ny_RStack *next;};struct ny_CNStack {  struct ny_Node *node;  struct ny_CNStack *next;};struct ny_OStack {  struct ny_Order *order;  struct ny_OStack *next;};struct ny_ArgStack {  struct ny_Node *node;  unsigned nargs, carg, maxargs;  char **arguments;  unsigned *arglens;  struct ny_ArgStack *next;};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -