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

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

?? symbol2.c

?? linux下開發的soap協議。建議大家學習學習!
?? C
?? 第 1 頁 / 共 5 頁
字號:
/*	symbol2.c	Module for symbol table handling and code generationThe contents of this file are subject to the Mozilla Public License Version 1.1(the "License"); you may not use this file except in compliance with theLicense. You may obtain a copy of the License athttp://www.cs.fsu.edu/~engelen/gsoapcompilerlicense.htmlSoftware distributed under the License is distributed on an "AS IS" basis,WITHOUT WARRANTY OF ANY KIND, either express or implied. See the Licensefor the specific language governing rights and limitations under the License.The Original Code is ''gSOAP compiler'' consisting of:error2.c, error2.h, init2.c, soapcpp2.c, soapcpp2.h, soapcpp2.l, soapcpp2.y, symbol2.c.The Initial Developer of the Original Code is Robert A. van Engelen.Copyright (C) 2000-2002 Robert A. van Engelen. All Rights Reserved.*/#include "soapcpp2.h"/* Use of Bison requires the inclusion of soapcpp2.tab.h instead of y.tab.h: */#ifdef WITH_BISON#include "soapcpp2.tab.h"#else#include "y.tab.h"#endifstatic	Symbol *symlist = (Symbol*) 0;	/* pointer to linked list of symbols */static	Symbol *nslist = (Symbol*) 0;	/* pointer to linked list of namespace prefix symbols */static	Tnode *Tptr[TYPES];Service *services = NULL;FILE *fout, *fhead, *fclient, *fserver, *fheader;static int typeNO = 0;	/* unique no. assigned to all types *//*install - add new symbol*/Symbol *install(const char *name, Token token){ Symbol *p;  p = (Symbol*)emalloc(sizeof(Symbol));  p->name = emalloc(strlen(name)+1);  strcpy(p->name, name);  p->token = token;  p->next = symlist;  symlist = p;  return p;}/*lookup - search for an identifier's name. If found, return pointer to symbol table entry. Return pointer 0 if not found.*/Symbol *lookup(const char *name){ Symbol *p;  for (p = symlist; p != (Symbol*) 0; p = p->next)    if (strcmp(p->name, name) == 0)      return p;  return (Symbol*)0;}/*gensym - generate new symbol from base name*/Symbol *gensym(const char *base){ static int num = 1;  int i;  char *b, buf[512];  strcpy(buf, base);  b = buf+strlen(base);  for (i = 0; i < num; i++);    *b++ = '_';  *b = '\0';  num++;  return install(buf, ID);}/*mktable - make a new symbol table incorporating a pointer to a previous table*/Table*mktable(Table *table){	Table	*p;	p = (Table*)emalloc(sizeof(Table));	p->sym = lookup("/**/");	p->list = (Entry*) 0;	if (table == (Table*) 0)		p->level = INTERNAL;	else	p->level = table->level+1;	p->prev = table;	return p;}/*mkmethod - make a new method by calling mktype*/Tnode*mkmethod(Tnode *ret, Table *args){	FNinfo *fn = (FNinfo*)emalloc(sizeof(FNinfo));	fn->ret = ret;	fn->args = args;	return mktype(Tfun, fn, 0);}/*freetable - free space by removing a table*/voidfreetable(Table *table){	Entry	*p, *q;	if (table == (Table*) 0)		return;	for (p = table->list; p != (Entry*) 0; p = q) {		q = p->next;		free(p);	}	free(table);}/*unlinklast - unlink last entry added to table*/Entry *unlinklast(Table *table){	Entry	**p, *q;	if (table == (Table*)0)		return (Entry*)0;	for (p = &table->list; *p != (Entry*)0 && (*p)->next != (Entry*)0;	     p = &(*p)->next);	q = *p;	*p = (Entry*)0;	return q;}/*enter - enter a symbol in a table. Error if already in the table*/Entry	*enter(table, sym)Table	*table;Symbol	*sym;{ Entry	*p, *q = (Entry*) 0;  for (p = table->list; p != (Entry*) 0; q = p, p = p->next)    if (p->sym == sym && p->info.typ->type != Tfun)    { sprintf(errbuf, "Duplicate declaration for %s (line %d)", sym->name, p->lineno);      semerror(errbuf);      return p;    }  p = (Entry*) emalloc(sizeof(Entry));  p->sym = sym;  p->info.typ = (Tnode*)0;  p->info.sto = Snone;  p->info.hasval = False;  p->info.minOccurs = 1;  p->info.maxOccurs = 1;  p->info.offset = 0;  p->level = table->level;  p->lineno = yylineno;  p->next = (Entry*) 0;  if (q == (Entry*) 0)    table->list = p;  else	q->next = p;  return p;}/*entry - return pointer to table entry of a symbol*/Entry	*entry(table, sym)Table	*table;Symbol	*sym;{  Table	*t;  Entry	*p;  for (t = table; t != (Table *) 0; t = t->prev)    for (p = t->list; p != (Entry *) 0; p = p->next)      if (p->sym == sym)	return p;  return (Entry *) 0;}Entry *enumentry(Symbol *sym){ Table	*t;  Entry	*p, *q;  for (t = enumtable; t; t = t->prev)    for (p = t->list; p; p = p->next)      if (q = entry(p->info.typ->ref, sym))	return q;  return NULL;}char *c_ident(Tnode*);char *c_storage(Storage);char *c_init(Entry*);char *c_type(Tnode*);char *c_type_id(Tnode*, char*);char *xsi_type(Tnode*);char *the_type(Tnode*);char *wsdl_type(Tnode*, char*);char *xml_tag(Tnode*);char *ns_convert(char*);char *ns_remove(char*);char *ns_overridden(Table*, Entry*);int has_ns(Tnode*);int has_ns_eq(char*, char*);int has_offset(Tnode*);int is_response(Tnode*);Entry *get_response(Tnode*);int is_primitive(Tnode*);Entry *is_dynamic_array(Tnode*);int is_binary(Tnode*);int is_hexBinary(Tnode*);int is_string(Tnode*);int is_wstring(Tnode*);int get_dimension(Tnode*);char *has_soapref(Tnode*);char *xsi_type_Tarray(Tnode*);    char *xsi_type_Darray(Tnode*);    void xml_def_table(Table *,Tnode *);void xml_out_generate(Tnode *);int no_of_var(Tnode*);char *pointer_stuff(Tnode*);void xml_def_pointer(Tnode*,Tnode*);void in_defs(Table*);void in_defs2(Table*);void out_defs(Table*);void in_attach(Table*);void out_attach(Table*);void serialize(Tnode*);void mark(Tnode*);void defaults(Tnode*);void soap_put(Tnode*);void soap_out(Tnode*);void soap_out_Darray(Tnode *);void soap_get(Tnode*);void soap_in(Tnode*); void soap_in_Darray(Tnode *);void soap_instan_class(Tnode *);int get_Darraydims(Tnode *typ);void function_input_output(Table*);void generate_proto(Table*, Entry*);void generate_call(Table*, Entry*);void generate_server(Table*, Entry*);void generate_header(Table*);void generate_schema(Table*);void gen_schema(FILE*,Table*,char*,char*,int,int,char*);void gen_wsdl(FILE*,Table*,char*,char*,char*,char*,char*,char*);/*mktype - make a (new) type with a reference to additional information and thewidth in bytes required to store objects of that type. A pointer to thetype is returned which can be compared to check if types are identical.*/Tnode *mktype(Type type, void *ref, int width){	Tnode	*p;	if (type != Tstruct && type != Tclass)	for (p = Tptr[type]; p != (Tnode*) 0; p = p->next)		if (p->ref == ref && p->sym == (Symbol*) 0 && p->width == width && p->transient == transient)			return p;	/* type alrady exists in table */	p = (Tnode*)emalloc(sizeof(Tnode));	/* install new type */	p->type = type;	p->ref = ref;	p->id = lookup("/**/");	p->sym = (Symbol*)0;	p->response = (Entry*)0;	p->width = width;	p->generated = False;	p->wsdl = False;	p->next = Tptr[type];	p->transient = transient;	Tptr[type] = p;	return p;}Tnode *mksymtype(Tnode *typ, Symbol *sym){	Tnode *p;	p = (Tnode*)emalloc(sizeof(Tnode));	/* install new type */	p->type = typ->type;	p->ref = typ->ref;	p->id = typ->id;	p->sym = sym;	p->width = typ->width;	p->generated = False;	p->wsdl = False;	p->next = Tptr[typ->type];	p->transient = transient;	Tptr[typ->type] = p;	return p;}/*	DO NOT REMOVE OR ALTER (SEE LICENCE AGREEMENT AND COPYING.txt)	*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区不卡在线观看| 国产视频一区在线播放| 成人国产视频在线观看| 精品一区二区久久| 蜜桃av一区二区在线观看| 奇米一区二区三区| 美腿丝袜亚洲三区| 久久精品国产精品亚洲红杏| 日韩精品一二三| 欧美aaaaa成人免费观看视频| 日本不卡高清视频| 久草这里只有精品视频| 国产一区二区主播在线| 国产成人综合网| 成人精品国产免费网站| 91美女视频网站| 欧美视频在线不卡| 精品国产一二三区| 国产精品毛片久久久久久久| 国产精品短视频| 亚洲成人免费av| 国产最新精品免费| 91色.com| 日韩精品一区二区三区三区免费| 久久久欧美精品sm网站| 亚洲免费伊人电影| 欧美bbbbb| 成人综合在线网站| 欧美日韩激情在线| 久久蜜桃一区二区| 亚洲免费在线观看| 久久精品国产一区二区三区免费看 | 久久99国内精品| 国产一区二区导航在线播放| 99久久婷婷国产精品综合| 欧美日韩一区二区三区在线| 精品国产乱码久久久久久影片| 中文字幕在线播放不卡一区| 天天射综合影视| 99久久免费精品| 8v天堂国产在线一区二区| 国产欧美一区二区三区在线看蜜臀| 国产精品乱码妇女bbbb| 中文字幕一区在线| 五月天亚洲精品| 99视频精品全部免费在线| 日韩欧美成人一区二区| 亚洲视频免费观看| 捆绑紧缚一区二区三区视频| 色综合久久久久久久久久久| 久久蜜桃一区二区| 日韩精品一区第一页| 在线观看视频一区二区| 国产精品视频你懂的| 狠狠色丁香久久婷婷综| 欧美一级免费观看| 一区二区三区免费观看| 成人免费黄色大片| 欧美不卡视频一区| 日韩精品色哟哟| 在线看一区二区| 最好看的中文字幕久久| 国产91精品精华液一区二区三区| 日韩三级中文字幕| 日韩成人一级片| 91精品国产一区二区三区香蕉| 亚洲宅男天堂在线观看无病毒| 成人免费观看av| 久久久久久久久伊人| 国产裸体歌舞团一区二区| 日韩一级片网址| 亚洲成a人在线观看| 国产电影精品久久禁18| 欧美大片免费久久精品三p | 欧美日韩免费在线视频| 亚洲综合色丁香婷婷六月图片| 99久久精品情趣| 亚洲天堂av一区| 色久优优欧美色久优优| 一区二区三区中文在线观看| 91久久免费观看| 午夜伦欧美伦电影理论片| 日韩美女一区二区三区| 麻豆精品一二三| 久久综合成人精品亚洲另类欧美 | 久久精品在线观看| 国产91精品免费| 伊人夜夜躁av伊人久久| 欧美精品亚洲一区二区在线播放| 日日骚欧美日韩| 久久综合色8888| caoporn国产一区二区| 亚洲另类春色校园小说| 欧美日韩精品一区二区三区蜜桃 | 在线观看日产精品| 亚洲成年人影院| 亚洲精品在线三区| 国产精品自拍在线| 亚洲色图一区二区三区| 欧美制服丝袜第一页| 亚洲色图欧美激情| 欧美日本免费一区二区三区| 韩国中文字幕2020精品| 亚洲美女免费视频| 日韩欧美亚洲国产精品字幕久久久| 国产伦精品一区二区三区视频青涩| 国产精品久久久久久久久免费丝袜| 91免费版在线看| 国产中文一区二区三区| 亚洲欧洲综合另类在线| 欧美电影一区二区| 国产91精品一区二区| 首页国产欧美久久| 自拍av一区二区三区| 91麻豆精品国产91久久久更新时间| 国产在线一区观看| 五月综合激情婷婷六月色窝| 欧美激情在线免费观看| 制服丝袜国产精品| 91蝌蚪国产九色| 国产成人精品一区二| 午夜精品成人在线视频| 欧美国产日韩一二三区| 日韩一区二区电影网| 成人激情免费视频| 久久精品久久综合| 亚洲福中文字幕伊人影院| 久久精品人人爽人人爽| 欧美日韩高清不卡| 色婷婷综合五月| 成人国产亚洲欧美成人综合网| 美女视频一区二区| 午夜精品福利一区二区三区蜜桃| 成人免费在线观看入口| 国产亚洲一区二区三区四区| 欧美一级搡bbbb搡bbbb| 欧美视频一区在线| 欧美午夜理伦三级在线观看| 91丨porny丨首页| 成人动漫视频在线| 国产99久久久国产精品潘金| 久久国产精品一区二区| 日韩精品每日更新| 午夜精品久久久久久久99水蜜桃| 国产精品麻豆视频| 国产欧美精品一区| 国产三级三级三级精品8ⅰ区| 欧美亚洲丝袜传媒另类| av色综合久久天堂av综合| 成人午夜视频在线观看| 成人av午夜影院| 99热精品国产| 在线精品亚洲一区二区不卡| 日本韩国视频一区二区| 日本高清视频一区二区| 在线免费观看日韩欧美| 欧美专区在线观看一区| 51精品国自产在线| 日韩免费视频线观看| 精品国产一区二区精华| 国产午夜亚洲精品羞羞网站| 国产欧美日本一区视频| 专区另类欧美日韩| 亚洲成人综合视频| 美脚の诱脚舐め脚责91| 国产美女视频91| 99久久99久久精品免费看蜜桃| 99热这里都是精品| 欧美美女黄视频| 精品国产乱码久久久久久久| 欧美极品美女视频| 一区二区三区资源| 日本不卡视频在线| 成人免费看片app下载| 在线国产电影不卡| 精品久久久久99| 亚洲欧洲精品天堂一级| 亚洲国产美女搞黄色| 狠狠色丁香九九婷婷综合五月| 成人免费福利片| 欧美疯狂性受xxxxx喷水图片| 欧美xxxxx裸体时装秀| 国产精品久久夜| 日韩精品1区2区3区| 国产精品99久| 欧美日韩国产123区| 久久这里只有精品视频网| 国产日韩欧美亚洲| 五月天中文字幕一区二区| 懂色av一区二区三区蜜臀| 欧美色图在线观看| 欧美国产欧美综合| 婷婷国产在线综合| 成人av综合在线| 91精品国模一区二区三区| 中文字幕精品一区二区三区精品 | 欧美变态口味重另类| 亚洲三级在线观看| 国产一区二区三区最好精华液| 欧美影院一区二区|