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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? c.h

?? C語言編譯器的源代碼
?? H
字號:
/*
 * 68K/386 32-bit C compiler.
 *
 * copyright (c) 1996, David Lindauer
 * 
 * This compiler is intended for educational use.  It may not be used
 * for profit without the express written consent of the author.
 *
 * It may be freely redistributed, as long as this notice remains intact
 * and sources are distributed along with any executables derived from them.
 *
 * The author is not responsible for damages, either direct or consequential,
 * that may arise from use of this software.
 *
 * v1.5 August 1996
 * David Lindauer, gclind01@starbase.spd.louisville.edu
 *
 * Credits to Mathew Brandt for original K&R C compiler
 *
 */

/*      compiler header file    */

#define TRUE 1
#define FALSE 0


/* declaration flags */
#define DF_INT 1
#define DF_ABS 2
#define DF_CONST 4
#define DF_VOL 8
#define DF_FUNCPARMS 16
#define DF_GLOBAL 32
#define DF_AUTOREG 64

#define UF_DEFINED 1
#define UF_USED	2
#define UF_ASSIGNED 4
#define UF_CANASSIGN 8

#define GF_ASSIGN 1
#define GF_CONTINUABLE 2
#define GF_CONTINUE 4
#define GF_GOTO 8
#define GF_DEF 16
#define GF_BREAK 32
#define GF_RETURN 64
#define GF_UNREACH 128
#define GF_NOPROTO 256
#define GF_AND 512
#define GF_SUPERAND 1024
#define GF_INLOOP 2048
#define GF_INFUNCPARMS 4096

#define PF_PRIVATE 0
#define PF_PROTECTED 1
#define PF_PUBLIC 2
#define PF_VIRTUAL 4
#define PF_PURE 8
#define PF_INLINE 16
#define PF_STATIC 32
#define PF_CLASSDEF 64
#define PF_CLASSFUNC 128
#define PF_CLASSHEAD 256

/* keywords and symbols */
enum e_sym {
        id, cconst, iconst, lconst, iuconst, luconst, sconst, lsconst,
	fconst, lrconst, rconst, plus, minus,
        star, divide, lshift, rshift, modop, eq, neq, lt, leq, gt,
        geq, assign, asplus, asminus, astimes, asdivide, asmodop,
        aslshift, asrshift, asand, asor, asxor, autoinc, autodec, hook, compl,
        comma, colon, semicolon, uparrow, openbr, closebr, begin, end,
        openpa, closepa, pointsto, dot, lor, land, not, or, and, ellipse, 
	classsel, pointstar, dotstar, kw_int,
        kw_void, kw_char, kw_float, kw_double, kw_struct, kw_union,
        kw_long, kw_short, kw_unsigned, kw_signed, kw_auto, kw_extern,
        kw_register, kw_typedef, kw_static, kw_goto, kw_return,
        kw_sizeof, kw_break, kw_continue, kw_if, kw_else, kw_for,
        kw_do, kw_while, kw_switch, kw_case, kw_default, kw_enum, kw_volatile,
	kw_const, kw_phitext, kw__trap, kw__interrupt, kw__abs, kw__genword,
	kw_public, kw_private, kw_protected, kw_class, kw_friend, kw_new,
	kw_delete, kw_this, kw_operator, kw_inline,
	kw_try,kw_throw,kw_catch, kw_template, kw__pascal, kw_asm,
	kw_asmreg,kw_asminst,
	/* These next are generic register names */	
	kw_D0,kw_D1,kw_D2,kw_D3,kw_D4,kw_D5,kw_D6,kw_D7,
	kw_D8,kw_D9,kw_DA,kw_DB,kw_DC,kw_DD,kw_DE,kw_DF,
	kw_A0,kw_A1,kw_A2,kw_A3,kw_A4,kw_A5,kw_A6,kw_A7,
	kw_A8,kw_A9,kw_AA,kw_AB,kw_AC,kw_AD,kw_AE,kw_AF,
	kw_F0,kw_F1,kw_F2,kw_F3,kw_F4,kw_F5,kw_F6,kw_F7,
	kw_F8,kw_F9,kw_FA,kw_FB,kw_FC,kw_FD,kw_FE,kw_FF,
	eol, eof };

/* storage classes */
enum e_sc {
        sc_static, sc_auto, sc_global, sc_external, sc_type, sc_defunc, sc_const,
        sc_member, sc_label, sc_ulabel, sc_argument, sc_memberreg, sc_autoreg,
	sc_externalfunc,sc_abs };

/* basic types */
enum e_bt {
	/* This first two lines MUST be ordered for the 
	 * lostconv stuff to work
	 */
        bt_char, bt_unsignedchar, bt_enum,bt_short, bt_unsignedshort, 
	bt_long, bt_unsigned, bt_float, bt_double, bt_longdouble, bt_untyped,
	bt_pointer,bt_ref,bt_void,bt_struct, bt_union, bt_func, bt_class, bt_iclass,
	bt_ifunc, bt_ptrfunc,bt_matchall, bt_ellipse, bt_bitfield };

struct slit {
        struct slit     *next;
        int             label;		/* label to use */
        char            *str;		/* string to dump */
	char		type;		/* ascii/phitext or wide */
        };

/* symbols */
struct sym {
        struct sym      *next;			/* next symbol (local tabs only) */
        char            *name;			/* symbol name */
        enum e_sc	storage_class;		/* storage class */
	int		extflag:1;		/* if external, was it used */
	int		absflag:1;		/* the _abs keyword was used */
	int		intflag:1;		/* the _interrupt keyword was used */
	int		indecltable:1;		/* global already in dump table */
	int		pascaldefn:1;		/* function: pascal type */
	int		inreg:1;  		/* function var is in reg, no stack space needed */
	int		funcparm:1;		/* function var is a param and has space allocated */
	int 		staticlabel:1;	/* Var is a static declared in a function */
/*	char		pflags;       
	struct sym 	*parent;      */          /* Parent class */
	int		linkid;			/* ID to use for linkage purposes (binary output) */
	ENODE *		defalt;			/* Default for function params */
						/* Also name for CPP overload lists */
	/* these fields depend on storage_class */
        union   {
                long            i;		/* int val */
                unsigned long   u;		/* nsigned val */
                double          f;		/* float val */
		struct stab {	
			struct sym *head, *tail; /* Overload table*/
			} overlist;
                char            *s;		/* string val */
                }
                        value;
	/* Type declarations */
        struct typ {
                enum e_bt		       type;	/* the type */
                char            val_flag;       /* set if is an array */
       		char		uflags;			/* Track usage */
		char		cflags;		/* const & vol flags */
		char 		classflags;	/* Public, protected, private */
		char		bits;		/* -1 for not a bit val, else bit field len */
		char		startbit;	/* start of bit field */	
                long            size;		/* total size of type */
		/* local symbol tables */
		struct stab lst;	 	/* Symbol table for structs & functions */
                struct typ      *btp;		/* pointer to next type (pointers & arrays */
                char            *sname;		/* structure name ? */
		struct sym *tdef;		/* Pointer to a typedef entry */
                }
                        *tp;
	struct decldata {
			struct decldata *link;
			enum { dd_byte,dd_word,dd_long,dd_float,dd_double,
			       dd_ldouble, dd_pcname, dd_dataname, dd_storage,
			       dd_label
			     } mode;
			union {
				long i;
				double f;
				struct sym *sp;
			} val;		
			long offset;
	} *init;
};

#define SYM     struct sym
#define TYP     struct typ
#define TABLE   struct stab

#define MAX_STRLEN      120
#define MAX_STLP1       121

/* struct for preprocessor if tracking */
typedef struct ifstruct {
		struct ifstruct *link;		/* link */
		short iflevel;			
		short elsetaken;
} IFSTRUCT;
		
/* #define tracking */
typedef struct {
		char *string;
		short argcount;
		char **args;
} DEFSTRUCT;

/* error list */
struct errl {
		struct errl *link;
		short errornumber;
		void *data;
};

/* used for error skimming */
#define BALANCE struct balance
#define BAL_PAREN   0
#define BAL_BRACKET 0
#define ERRORS struct errl

struct balance {
		struct balance *back;
		short type;
		short count;
};

/* Global symbol table is a hash table */
#define HASHTABLESIZE 1023

typedef struct _hashrec_ {
   struct _hashrec_ *link;	/* Link to next element in list */
   char *key;	/* Full key */
} HASHREC;

typedef struct {
	char *word;
	short atype;
	short amode;
} ASMNAME;

typedef struct kwblk {
				struct kwblk *next;
        char            *word;
        short		stype;
	enum { KW_CPLUSPLUS=1,KW_INLINEASM=2 } flags;
	ASMNAME		*data;
        } KEYWORDS;

typedef struct {
	char *word;
	char regtype;
	char regnum;
	char size;
} ASMREG;

#include "cc.p"

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久午夜色播影院免费高清| 91麻豆免费看片| 成人综合在线观看| 91丝袜美腿高跟国产极品老师| 色综合激情久久| 日韩欧美在线网站| 中文在线一区二区| 亚洲va欧美va天堂v国产综合| 蜜臀精品一区二区三区在线观看 | 色噜噜偷拍精品综合在线| 欧美午夜一区二区三区免费大片| 日韩精品综合一本久道在线视频| 欧美激情在线免费观看| 亚洲午夜激情网站| 激情文学综合丁香| 在线观看日韩国产| 久久久噜噜噜久久人人看 | 欧美性xxxxxxxx| 久久只精品国产| 亚洲国产cao| 粉嫩av一区二区三区粉嫩| 欧美午夜不卡视频| 国产欧美精品日韩区二区麻豆天美| 亚洲综合色成人| 成人听书哪个软件好| 欧美精品欧美精品系列| 国产精品你懂的在线| 欧美aa在线视频| 一本一本大道香蕉久在线精品| 欧美不卡一二三| 亚洲综合清纯丝袜自拍| 国产suv精品一区二区883| 91精品国产综合久久久久久漫画| 成人欧美一区二区三区白人| 老司机一区二区| 欧美美女激情18p| 亚洲欧美综合色| 国产一二三精品| 欧美一区二区成人| 亚洲主播在线播放| av一区二区三区| 国产亚洲欧美在线| 久久99久久久欧美国产| 精品视频1区2区3区| 中文字幕中文字幕一区二区| 国产精品资源在线观看| 91精品国产综合久久久蜜臀图片| 一区二区三区欧美日| 成人午夜又粗又硬又大| 精品美女一区二区| 日韩国产一二三区| 色999日韩国产欧美一区二区| 欧美国产成人精品| 国产成人福利片| 久久久久久免费毛片精品| 久久精品99国产精品日本| 欧美高清视频一二三区| 亚洲二区在线视频| 在线亚洲欧美专区二区| 亚洲黄网站在线观看| 91影院在线免费观看| 中文乱码免费一区二区| 成人免费高清在线观看| 中文字幕精品一区二区精品绿巨人 | 国产精品一级片| xvideos.蜜桃一区二区| 久久精品国产一区二区三| 7777精品伊人久久久大香线蕉超级流畅 | 麻豆91在线播放| 制服丝袜一区二区三区| 亚洲线精品一区二区三区八戒| 一本久久综合亚洲鲁鲁五月天| 国产精品二三区| 色综合激情久久| 一区二区欧美国产| 欧美午夜免费电影| 五月婷婷欧美视频| 在线91免费看| 美女一区二区久久| 亚洲精品一区二区三区99| 精品无人码麻豆乱码1区2区| 欧美大片在线观看一区二区| 精品一二三四区| 国产午夜亚洲精品不卡| 成人动漫视频在线| 一区二区三区美女| 欧美日韩国产美| 久久精品国产久精国产| 久久久久久久电影| 99精品欧美一区| 伊人开心综合网| 欧美人妇做爰xxxⅹ性高电影| 日本欧美加勒比视频| 精品国产一区二区精华| 国产成人精品1024| 樱花草国产18久久久久| 欧美一区二区精品久久911| 激情久久五月天| 成人免费小视频| 欧美日韩国产小视频| 久久99国产精品免费网站| 国产色爱av资源综合区| 一本在线高清不卡dvd| 日韩二区在线观看| 欧美激情在线一区二区三区| 91国产免费观看| 久久疯狂做爰流白浆xx| 自拍偷在线精品自拍偷无码专区| 欧美专区日韩专区| 国内精品伊人久久久久av一坑| 国产精品你懂的在线欣赏| 欧美日韩视频第一区| 国内国产精品久久| 亚洲天堂精品在线观看| 制服丝袜中文字幕一区| 国产福利一区二区三区视频在线| 亚洲免费观看高清完整版在线| 欧美一级午夜免费电影| 99riav久久精品riav| 日韩有码一区二区三区| 国产精品麻豆一区二区| 7777女厕盗摄久久久| 99热精品一区二区| 久久99久久99| 亚洲精品v日韩精品| 欧美精品一区二区三区在线| 99久久婷婷国产综合精品 | 精品国产一区a| 色视频成人在线观看免| 韩国成人在线视频| 亚洲国产精品一区二区www在线| 久久久影院官网| 欧美日韩视频在线第一区 | 一区二区三区高清在线| 精品国产露脸精彩对白| 在线免费精品视频| 成人小视频在线观看| 青青草成人在线观看| 亚洲精品午夜久久久| 久久婷婷国产综合精品青草| 欧美色涩在线第一页| 成人av免费观看| 韩日欧美一区二区三区| 日韩制服丝袜av| 一区二区在线观看视频在线观看| 国产日韩精品一区二区三区| 欧美一区二区三区视频免费播放| 99re这里都是精品| 成人一区在线观看| 国模大尺度一区二区三区| 日本一不卡视频| 亚洲综合色视频| 亚洲日本乱码在线观看| 国产日产欧美一区二区三区 | 国产精品一区二区久久不卡| 日韩电影免费在线| 一区二区三区加勒比av| 中文久久乱码一区二区| 久久新电视剧免费观看| 欧美成人免费网站| 欧美另类高清zo欧美| 在线观看日韩毛片| 色欧美乱欧美15图片| 99免费精品在线观看| 成人高清伦理免费影院在线观看| 国产美女娇喘av呻吟久久| 青娱乐精品视频| 奇米亚洲午夜久久精品| 亚洲成人在线观看视频| 一区二区三区国产精华| 亚洲卡通欧美制服中文| 亚洲色图在线看| 亚洲天堂a在线| 亚洲人成7777| 一区二区三区中文字幕在线观看| 中文字幕在线不卡一区二区三区| 国产精品每日更新在线播放网址 | 99国产精品视频免费观看| 成人激情黄色小说| 成人午夜视频福利| 成人爽a毛片一区二区免费| 成人国产精品免费观看动漫| av网站免费线看精品| 99久久婷婷国产综合精品| 色综合久久综合网欧美综合网 | 五月婷婷激情综合网| 亚洲国产精品久久人人爱蜜臀| 一区二区三区日韩精品| 亚洲电影在线免费观看| 天天综合色天天综合色h| 日韩精品欧美成人高清一区二区| 日韩在线观看一区二区| 久久99精品久久久久久动态图 | 国产精品二三区| 亚洲欧美日韩成人高清在线一区| 亚洲视频狠狠干| 亚洲成人av中文| 久久99热国产| 成人av在线电影| 色综合天天综合网天天看片|