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

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

?? symbol.c

?? 本程序集是Allen I. Holub所寫的《Compiler Design in C》一書的附隨軟件
?? C
字號:
/*
 * 68K/386 32-bit C compiler.
 *
 * copyright (c) 1997, 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 either the original sources or derived sources 
 * are distributed along with any executables derived from the originals.
 *
 * The author is not responsible for any damages that may arise from use
 * of this software, either idirect or consequential.
 *
 * v1.35 March 1997
 * David Lindauer, gclind01@starbase.spd.louisville.edu
 *
 * Credits to Mathew Brandt for original K&R C compiler
 *
 */
/* Handles symbol tables 
 */
#include        <stdio.h>
#include				<malloc.h>
#include        "expr.h"
#include        "c.h"
#include 				"errors.h"

#define ROTR(x,bits) (((x << (16 - bits)) | (x >> bits)) & 0xffff)
#define ROTL(x,bits) (((x << bits) | (x >> (16 - bits))) & 0xffff)
#define HASHTABLESIZE 1023

extern TABLE oldlsym;
extern int prm_cplusplus,prm_cmangle;
HASHREC **globalhash=0;
HASHREC **defhash=0;

TABLE gsyms,lsyms,defsyms;

void symini(void)
{
	gsyms.head = gsyms.tail = lsyms.head = lsyms.tail = defsyms.head = defsyms.tail = 0;
	if (!globalhash) {
  	globalhash = (HASHREC *)malloc(HASHTABLESIZE * sizeof(HASHREC *));
  	defhash = (HASHREC *)malloc(HASHTABLESIZE * sizeof(HASHREC *));
	}
  memset(globalhash,0,HASHTABLESIZE * sizeof(HASHREC *));
  memset(defhash,0,HASHTABLESIZE * sizeof(HASHREC *));
}

/* Sym tab hash function */	
static unsigned int ComputeHash(char *string,int size)
{
  unsigned int len = strlen(string), rv;
  char *pe = len + string;
  unsigned char blank = ' ';

  rv = len | blank;
  while(len--) {
    unsigned char cback = (unsigned char)(*--pe) | blank;
    rv = ROTR(rv,2) ^ cback;
  }
  return(rv % size);
}
/* Add a hash item to the table */
HASHREC *AddHash(HASHREC *item,HASHREC **table,int size)
{
  int index = ComputeHash(item->key,size);
  HASHREC **p;

  item->link = 0;

  if (*(p = &table[index])) {
    HASHREC *q = *p,*r = *p;
    while (q) {
			r = q;
      if (!strcmp(r->key,item->key))
				return(r);
			q = q->link;
		}
		r->link = item;
  }
  else
    *p = item;
  return(0);
}
/*
 * Find something in the hash table
 */
HASHREC **LookupHash(char *key, HASHREC **table, int size)
{
  int index = ComputeHash(key,size);
  HASHREC **p;

  if (*(p = &table[index])) {
    HASHREC *q= *p;
    while (q) {
      if (!strcmp(q->key, key))
				return(p);
			p = *p;
			q=q->link;
		}
	}
	return(0);
}
/*
 * Some tables use hash tables and some use linked lists
 * This is the global symbol search routine
 */
SYM     *search(char *na,TABLE *table)
{
	SYM *thead = table->head;
	SYM **p;
	if (table == &gsyms) {
		p=((SYM **)LookupHash(na,globalhash,HASHTABLESIZE));
		if (p)
			p = *p;
		return (SYM *) p;
	}
	else if (table == &defsyms) {
		p=((SYM **)LookupHash(na,defhash,HASHTABLESIZE));
		if (p)
			p = *p;
		return (SYM *) p;
	}
	else
	       while( thead != 0) {
                if(strcmp(thead->name,na) == 0)
                        return thead;
                thead = thead->next;
                }
        return 0;
}

SYM     *gsearch(char *na)
{       SYM     *sp;
        if( (sp = search(na,&lsyms)) == 0)
                sp = search(na,&gsyms);
        return sp;
}
/* The global symbol insert routine */
void insert(SYM *sp,TABLE *table)

{
	if (table == &gsyms) {
		if (AddHash(sp,globalhash,HASHTABLESIZE))
			gensymerror(ERR_DUPSYM,sp->name);
	}
  else if (table == &defsyms) {
		AddHash(sp,defhash,HASHTABLESIZE);
	}
	else if (table == &lsyms) {
		SYM *thead = table->head,*qhead = 0;
		/* Only check the current local block... */
	  while( thead != oldlsym.head) {
        if(strcmp(thead->name,sp->name) == 0) {
              qhead = thead;
					 		break;
					}	
        thead = thead->next;
        }
		if (qhead) 
       gensymerror(ERR_DUPSYM,sp->name);
		else {
		/* Putting local symbols in backwards */
      if( table->head == 0) {
        table->head = table->tail = sp;
      	sp->next = 0;
			}
      else    {
				sp->next = table->head;
				table->head = sp;
      }
		}
	}
	else if( search(sp->name,table) == 0) {
                if( table->head == 0)
                        table->head = table->tail = sp;
                else    {
                        table->tail->next = sp;
                        table->tail = sp;
                        }
                sp->next = 0;
                }
        else
                gensymerror(ERR_DUPSYM,sp->name);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
另类小说综合欧美亚洲| 国产午夜精品福利| 正在播放亚洲一区| 欧美亚洲自拍偷拍| 91精品国产欧美一区二区18 | 成人av在线影院| 成人精品在线视频观看| 99久久综合99久久综合网站| 国产成人99久久亚洲综合精品| 国产精品自拍一区| 99久久精品国产麻豆演员表| 91丝袜国产在线播放| 欧美日韩和欧美的一区二区| 制服丝袜成人动漫| 国产女人aaa级久久久级| 亚洲人被黑人高潮完整版| 亚洲成av人片一区二区梦乃| 日本免费在线视频不卡一不卡二| 久久国产综合精品| 欧美亚洲一区三区| 久久综合色综合88| 一区二区三区四区精品在线视频 | 欧美区在线观看| 亚洲精品成人悠悠色影视| 国产成人精品一区二区三区网站观看 | 国产精品久久久久久久久免费丝袜 | 丁香网亚洲国际| 日韩美一区二区三区| 一区二区高清视频在线观看| 免费成人你懂的| 欧美日韩国产一区二区三区地区| 国产精品欧美综合在线| 韩国一区二区三区| 国产日韩精品一区二区三区| 日韩国产在线一| 欧美日本视频在线| 亚洲男同性视频| 92国产精品观看| 久久久久久久电影| 国产一区二区福利视频| 日韩免费高清av| 国产精品一区二区黑丝| 日韩欧美色综合| 国产曰批免费观看久久久| 欧美日韩在线播放| 国产一区视频导航| 精品欧美一区二区久久| 激情欧美一区二区三区在线观看| 欧美高清一级片在线| 三级精品在线观看| 久久久不卡网国产精品一区| 粉嫩aⅴ一区二区三区四区五区| 久久嫩草精品久久久久| 韩国理伦片一区二区三区在线播放| 日韩一区二区免费高清| 国产精品1区二区.| 亚洲欧美福利一区二区| 91精品91久久久中77777| 国内国产精品久久| 一区二区三区日韩精品| 欧美精品vⅰdeose4hd| 国产在线精品不卡| 亚洲成人激情综合网| 国产精品视频第一区| 在线观看日韩一区| 国产福利电影一区二区三区| 偷拍日韩校园综合在线| 国产精品亲子伦对白| 日韩一区二区三区在线| 色成人在线视频| 高清不卡在线观看| 国产精品自拍在线| 久久超碰97中文字幕| 亚洲色欲色欲www在线观看| 久久亚洲综合av| 欧美xxx久久| 日韩欧美一区二区视频| 欧美日韩国产电影| 99精品黄色片免费大全| av色综合久久天堂av综合| 欧美性受极品xxxx喷水| 国产成人精品免费在线| 91网上在线视频| 92精品国产成人观看免费| 91色视频在线| 欧美人牲a欧美精品| 欧美精品在线一区二区三区| 欧美系列在线观看| 欧美色欧美亚洲另类二区| 欧美精品色一区二区三区| 日韩午夜中文字幕| 欧美国产日韩在线观看| 中文字幕国产精品一区二区| 国产免费观看久久| 玉足女爽爽91| 久久国内精品自在自线400部| 精品一区二区在线视频| 成人在线视频一区二区| 99精品视频在线免费观看| 日本韩国一区二区| 91精品在线观看入口| 国产人成一区二区三区影院| 亚洲国产精品欧美一二99| 人人爽香蕉精品| 色综合久久综合网97色综合| 欧美亚洲综合久久| 国产精品污www在线观看| 五月综合激情婷婷六月色窝| 国产成人丝袜美腿| 欧美一区二区精品在线| 国产精品欧美精品| 精品亚洲成a人在线观看| 99久久精品国产网站| 精品国产凹凸成av人网站| 国产乱人伦偷精品视频免下载| 成人小视频在线| 久久久综合精品| 日韩av二区在线播放| 欧美专区日韩专区| 中文字幕在线一区| www.成人在线| 国产精品丝袜一区| 成人免费的视频| 亚洲国产激情av| 成人久久18免费网站麻豆 | 天堂影院一区二区| 色综合中文字幕国产| 国产亚洲成年网址在线观看| 亚洲电影视频在线| 欧美一区二区三区在线观看| 午夜精品影院在线观看| 欧美日韩卡一卡二| 免费高清在线视频一区·| 日韩欧美一级片| eeuss国产一区二区三区| 中文字幕中文字幕一区二区| jvid福利写真一区二区三区| 中文字幕精品三区| 欧美在线视频全部完| 亚洲高清在线视频| 精品裸体舞一区二区三区| 国产成+人+日韩+欧美+亚洲| 18涩涩午夜精品.www| 欧美精选一区二区| 成人永久免费视频| 亚洲h精品动漫在线观看| 亚洲欧美一区二区三区久本道91| 精品写真视频在线观看| 久久人人97超碰com| 91一区二区在线| 国产资源精品在线观看| 亚洲少妇中出一区| 精品久久久久久最新网址| 粉嫩aⅴ一区二区三区四区| 日本欧美肥老太交大片| 国产精品久久久久7777按摩| 日韩色在线观看| 欧美日韩综合不卡| 92精品国产成人观看免费| 成人高清免费观看| 精品一区二区三区的国产在线播放| 中文字幕日韩欧美一区二区三区| 欧美性高清videossexo| 91在线免费看| 成人激情小说网站| 国产美女精品一区二区三区| 日韩激情一区二区| 一区二区三区波多野结衣在线观看| 中文字幕乱码亚洲精品一区| 亚洲精品一区二区三区香蕉| 精品区一区二区| 久久蜜臀中文字幕| 欧美成人激情免费网| 欧美一区二区三区成人| 精品国内二区三区| 精品乱人伦小说| 日本一区二区三级电影在线观看| 宅男噜噜噜66一区二区66| 欧美电影一区二区| 欧美日本韩国一区| 日韩欧美一级片| 精品国产自在久精品国产| 久久综合九色综合97婷婷| 制服丝袜亚洲播放| 日韩免费福利电影在线观看| 欧美成人性福生活免费看| 精品国产成人系列| 国产精品免费看片| 亚洲精品久久7777| 麻豆精品视频在线| 成人午夜又粗又硬又大| 欧美午夜免费电影| 欧美精品一区二区久久久| 国产精品久久三区| 天堂在线一区二区| 99r国产精品| 欧美xxxx老人做受| 亚洲国产毛片aaaaa无费看| 久久福利资源站| 91国内精品野花午夜精品|