亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? crt.h

?? 自己寫的關(guān)于編譯原理的實(shí)驗(yàn)報(bào)告的源代碼
?? H
字號:
#ifndef CRT_MODULE
#define CRT_MODULE
#include "collect.h"
#include "set.h"
#include <stdio.h>

#if Debug
#define CR_ASSERT(cond) \
if( !(cond) )\
{fprintf(stderr, "assertion error line %d, file(%s)\n", \
__LINE__, __FILE__); gets(NULL); exit(1); }
#else
#define CR_ASSERT(cond) ;
#endif

typedef unsigned char byte;
#define MAX_ID_LEN   32
#define MAX_STR_LEN  100

struct SemText{
  long pos;
  int  line,len, col;
};

typedef char     Name[MAX_ID_LEN];
typedef char     *PName;

#define EOFSYM   0       /* EOF Symbol */
/*#define NOSYM    0*/

#define TRUE  1          /* Boolean True */
#define FALSE 0          /* Boolean False */
#define UNDEF -1

#define T_CLASSTOKEN    1
#define T_CLASSLITTOKEN 2
#define T_LITTOKEN      3
#define T_PRAGMATOKEN   4

/******************************************************************
     Graph Node Constants, Definitions and Functions
********************************************************************/

#define NIL       0
#define T_NONE    0
#define T_T       1      /* terminal */
#define T_WT      2      /* weak terminal */
#define T_NT      3      /* no terminal */
#define T_OPT     4      /* optional */
#define T_REP     5      /* repetition */
#define T_ALT     6      /* alternation */
#define T_SEM     7      /* semantic action */
#define T_ATTR    8      /* attribute */
#define T_ANY     9      /* ANY symbol */
#define T_SYNC   10      /* SYNC */
#define T_P      11      /* Pragma */

#define T_CHAR    T_T    /* Simple Char */
#define T_CLASS   T_WT   /* Char Set */
#define T_CONTEXT T_T    /* Context Trans */
#define T_NORMAL  T_NONE /* Normal Trans */

typedef struct {
  int   type;            /* node's type */
  int   next;            /* next node  0 -> none, < 0 follow link */
  long  pointer1;        /* auxiliary pointer, see use below */				/*kws*/
  int   pointer2;
  int   pointer3;
  int   pointer4;
  int   SLine;
} GraphNode;

typedef GraphNode *PGraphNode;

#define INNER    pointer1    /* T_REP, T_OPT, T_ALT  */
#define ALT      pointer2    /* next T_ALT alternative
                                T_NT link to attributes*/
#define SYMLINK  pointer1    /* T_T, T_WT, T_NT link to table */

#define SETLINK1 pointer2    /* T_W, T_SYNC, T_ANY link to Sets */
#define SETLINK2 pointer3

#define SEMPOS   pointer1    /* T_ATTR, T_SEM */
#define SEMLEN   pointer2
#define SEMLINE  pointer3
#define SEMCOL   pointer4

#define STATE    pointer3    /* NFA graph */
#define CONTEXT  pointer4

int  MakeGraph(int type, int sem_link);
int  MakeSemGraph(int type, long filepos, int len, int line, int col);
int  MakeGraphOp(int type, int link);
int  LinkGraph(int current, int next);
int  LinkAltGraph(int current, int nextalt);
void SetGraphLine(int current, int line);
void ShowGraph(int graph);
void CleanGraphTab();

#define GetGraphP(p) (PGraphNode) Collection_At(&nodes_tab, p)

/******************************************************************
     Terminal Definitions and Functions
********************************************************************/

typedef struct {
  Name name;             /* Terminal Name */
  Name gen_name;         /* output name */
  byte type;
} TermNode;

typedef TermNode* PTermNode;

int  FindTerm(PName name);
void SetTermName(PTermNode tn);
int  NewTerm(PName  name);
void GetTermName(int sp, PName name);
void ShowTermTab();
#define GetTermP(p)     (PTermNode) Collection_At(&term_tab, p)

/******************************************************************
     Class Definitions and Functions
********************************************************************/

typedef struct {
  Name name;             /* Set Name */
  Set  data;             /* Set of Elements */
} ClassNode;

typedef ClassNode *PClassNode;

int  FindClass(PName name);
int  FindClassWithSet(PSet data);
int  GetClassWithName(PName name, Set *data);
int  GetClassWithData(PSet data);
int  NewClass(PName name, PSet set);
void ShowClassTab();
#define GetClassP(p)     (PClassNode) Collection_At(&class_tab, p)

/******************************************************************
     Symbol Sets Definitions and Functions
********************************************************************/

#define ALL_SYNCS   0

typedef struct {
  Set  set;              /* Symbols Set */
  byte type;             /* Type Of Set (T_ANY, T_SYNC, T_WEEK) */
} SymSetNode;

typedef SymSetNode *PSymSetNode;

int  NewSymSet(PSet set, byte typ);
int  NewANY();
void GetSymSet(int index, PSet set);
void IncludeSymSet(int index, PSet set);
void ExcludeSymSet(int index, PSet set);
void ShowSymSetTab();
#define GetSymSetP(p)     (PSymSetNode) Collection_At(&symset_tab, p)

/******************************************************************
     Non-Terminal Definitions and Functions
********************************************************************/

typedef struct {
  Name name;             /* No Terminal Name */
  int  graph;            /* EBNF graph */
  int  has_attr;         /* TRUE => Attributes */
  int  attr;
  int  sem;              /* > 0 => Semantic */
  int  line_dec;         /* Line Number (for Error reporting) */
  int  line_use;
  int  nullable;         /* TRUE => Nullable */
  int  ready;            /* TRUE => First Set Ready */
  int  reachable;        /* TRUE => Reachable (Used in RHS of a production) */
  Set  first;            /* First Set */
  Set  follow;           /* Follow Set */
  Set  AuxNt;            /* Auxiliary No Terminal Set */
} NTermNode;

typedef NTermNode *PNTermNode;

int FindNTerm(PName name);
int NewNTerm(PName  name);
void ShowNTermTab();

#define GetNTermP(p)     (PNTermNode) Collection_At(&nterm_tab, p)

/******************************************************************
     Pragma Definitions and Functions
********************************************************************/

typedef struct {
  Name name;             /* Terminal Name */
  int has_attr;
  struct SemText sem_text;
} PragmaNode;

typedef PragmaNode *PPragmaNode;
int  FindPragma(PName name);
int  NewPragma(PName name);
void SetPragmaText(int sp, int gp);
void SetupPragmas();

#define GetPragmaP(p)     (PPragmaNode) Collection_At(&pragma_tab, p)
#define FIRST_PRAGMA      1024

/******************************************************************
     Names Definitions and Functions
********************************************************************/

typedef struct {
  Name name;             /* Terminal Name */
  Name user_name;
} NameNode;

typedef NameNode *PNameNode;
int  FindName(PName name);
void NewName(PName name, PName user_name);
#define GetNameP(p)     (PNameNode) Collection_At(&name_tab, p)

/******************************************************************
     General purpose Definitions and Functions
********************************************************************/

void upcase(char *s);
void AddIgnore(PSet set);
int  NewSym(PName name, int typ);
int  FindSym(PName name, int *typ);

void InitTab();
void DoneTab();

int  IsNullableGraph(int gp);
void CompFirstSet(int gp, PSet first);
void CompExpected(int gp, int nt, PSet set);
void CompFollowNode(int gp, int fgp);
void CompSymbolSets();

void PrintAscii(int s);
void PrintInt(int i);

void SetOptions(char *s);
extern void GenSemError(int nr); /* crp.c */

extern Collection nterm_tab;
extern Collection term_tab;
extern Collection nodes_tab;
extern Collection class_tab;
extern Collection symset_tab;
extern Collection pragma_tab;
extern Collection name_tab; /* ++++ */

extern struct SemText global_defs;
extern int ignore_case;
extern int first_weak_set;
extern int no_sym;
extern FILE *lstfile;
extern Set  ANY_SET;
extern Set  ALL_TERMS;

extern int C_option;     /* TRUE => Generate Compiler */
extern int F_option;     /* TRUE => First & Follow */
extern int G_option;     /* TRUE => graph listing */
extern int L_option;     /* TRUE => Generate listing */
extern int P_option;     /* TRUE => Generate Parser Only */
extern int O_option;     /* TRUE => Generate OR only Terminal conditions */
extern int S_option;     /* TRUE => Symbol Table Listing */
extern int T_option;     /* TRUE => Gramar Test Only */
extern int A_option;     /* TRUE => Trace Automata */
extern int D_option;     /* TRUE => Debug #line */
extern int Z_option;     /* TRUE => generate .hpp and .cpp files */
extern int GenCplusplus;

extern char Frames_Path[];
extern char c_ext[];
extern char h_ext[];


#endif  /* CRT_MODULE */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区不卡免费| 国产一区在线观看视频| 精品粉嫩aⅴ一区二区三区四区| 国产成人精品一区二区三区四区| 一区二区三区在线播放| 欧美videos大乳护士334| 一本大道久久精品懂色aⅴ| 狠狠色综合播放一区二区| 一区二区日韩av| 国产精品少妇自拍| 日韩三级av在线播放| 91国产免费看| 成人精品一区二区三区四区| 美女网站色91| 日韩激情中文字幕| 亚洲精品ww久久久久久p站| 久久免费视频色| 欧美一区二区免费观在线| 欧美在线免费播放| 91丨porny丨在线| 国产成人午夜高潮毛片| 精品一区二区在线观看| 免费看日韩精品| 亚洲一区二区三区四区在线观看| 中文字幕一区二区视频| 亚洲国产精品av| 久久精品夜色噜噜亚洲aⅴ| 日韩一区二区三区免费观看| 欧美日本国产视频| 欧美日韩精品欧美日韩精品一综合| aa级大片欧美| 成人黄色一级视频| 国产成人精品免费| 国产成人免费在线| 韩国毛片一区二区三区| 麻豆专区一区二区三区四区五区| 天天亚洲美女在线视频| 午夜精品一区二区三区免费视频 | 欧美日本韩国一区二区三区视频 | 午夜久久久久久久久| 亚洲日本va午夜在线影院| 国产日韩亚洲欧美综合| 久久久噜噜噜久久中文字幕色伊伊| 精品欧美黑人一区二区三区| 欧美tickling挠脚心丨vk| 91精品国产色综合久久久蜜香臀| 欧美日韩国产天堂| 91精品国产一区二区人妖| 337p亚洲精品色噜噜狠狠| 欧美日韩电影在线播放| 3atv一区二区三区| 精品久久久久久久久久久院品网| 日韩欧美123| 久久品道一品道久久精品| 国产精品色在线| 亚洲欧美日韩小说| 亚洲成人一二三| 麻豆国产一区二区| 国产一区二区三区免费看| 国产河南妇女毛片精品久久久| 风间由美一区二区三区在线观看| 国产成人av在线影院| 不卡免费追剧大全电视剧网站| 色综合天天综合狠狠| 欧美色精品天天在线观看视频| 91精品国产高清一区二区三区| 日韩视频一区在线观看| 国产欧美精品一区二区色综合朱莉 | 国产欧美日韩激情| 亚洲女同女同女同女同女同69| 亚洲v精品v日韩v欧美v专区| 久久99国产精品久久99| 不卡高清视频专区| 欧美精品v国产精品v日韩精品| 日韩美女在线视频| 综合激情网...| 欧美a级一区二区| 成人av中文字幕| 欧美日韩不卡一区| 久久精品日产第一区二区三区高清版| 亚洲欧洲99久久| 日本大胆欧美人术艺术动态| 国产69精品久久99不卡| 欧美色偷偷大香| 精品国精品国产| 亚洲精品一二三| 狠狠色2019综合网| 日本丰满少妇一区二区三区| 日韩欧美亚洲国产精品字幕久久久| 国产精品青草综合久久久久99| 一区二区不卡在线播放| 国产在线不卡一区| 91国偷自产一区二区三区观看| 亚洲精品一线二线三线无人区| 国产精品成人一区二区艾草 | 一本一道综合狠狠老| 欧美大片国产精品| 一区二区三区欧美日| 久久精品国产久精国产| 在线一区二区视频| 国产免费久久精品| 久久精品国产一区二区| 欧美做爰猛烈大尺度电影无法无天| 久久综合九色综合97婷婷| 亚洲不卡av一区二区三区| www.综合网.com| 国产亚洲视频系列| 麻豆freexxxx性91精品| 在线亚洲高清视频| 国产精品视频免费| 韩国一区二区在线观看| 欧美日韩第一区日日骚| 亚洲欧美一区二区三区国产精品 | 狠狠v欧美v日韩v亚洲ⅴ| 欧洲另类一二三四区| 中文字幕视频一区二区三区久| 国产一区二区三区四区五区美女| 7777精品伊人久久久大香线蕉完整版 | 国v精品久久久网| 精品国产不卡一区二区三区| 日韩电影在线观看电影| 欧美三级日韩在线| 一区二区三区蜜桃网| 99re成人在线| 国产精品久久一级| 成人av网站在线观看| 久久久久国色av免费看影院| 极品少妇xxxx精品少妇| 日韩西西人体444www| 蜜臀a∨国产成人精品| 欧美一区二区三区思思人| 亚洲国产sm捆绑调教视频| 91极品视觉盛宴| 亚洲欧美激情一区二区| 91麻豆国产香蕉久久精品| 国产精品久久久久久久久图文区 | 亚洲欧美激情在线| 91在线码无精品| 亚洲精品国产视频| 欧美视频日韩视频| 亚洲福利国产精品| 在线成人av影院| 日本美女视频一区二区| 欧美成人伊人久久综合网| 看国产成人h片视频| 精品国产乱码久久久久久久久| 久久99精品国产麻豆不卡| 26uuu国产日韩综合| 成人综合在线观看| 综合久久一区二区三区| 欧美色图免费看| 丝袜脚交一区二区| www激情久久| 东方aⅴ免费观看久久av| 国产精品久久久久久久久晋中| 91视频免费播放| 亚洲成人资源在线| 久久综合色婷婷| 成人av电影免费观看| 亚洲一区在线观看网站| 欧美一区二区在线观看| 国产精品亚洲午夜一区二区三区| 日本一区二区电影| 91电影在线观看| 久久精品99国产精品日本| 国产丝袜美腿一区二区三区| 91视视频在线观看入口直接观看www | 欧美日韩国产综合草草| 久久99国产精品免费| 一区免费观看视频| 欧美精品色综合| 国产麻豆视频一区二区| 亚洲欧美日韩国产成人精品影院| 欧美日韩一级二级| 国产一区二区三区最好精华液| 亚洲日本免费电影| 日韩一级精品视频在线观看| 国产盗摄精品一区二区三区在线| 亚洲另类在线视频| 欧美videos中文字幕| 91在线精品一区二区| 麻豆一区二区三区| 亚洲精品成人少妇| 久久亚洲欧美国产精品乐播 | 国产片一区二区| 欧美色图天堂网| 国产精品资源网| 亚洲一区二区高清| 欧美激情一区二区三区| 欧美丰满高潮xxxx喷水动漫| 风间由美性色一区二区三区| 午夜精品久久久久久久久久久 | 国产不卡在线视频| 午夜欧美一区二区三区在线播放| 国产欧美日韩另类一区| 9191国产精品| 91网站黄www| 国产精品123| 日韩激情视频网站| 亚洲欧美影音先锋|