亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
久久不见久久见免费视频7 | 天涯成人国产亚洲精品一区av| 亚洲成人av资源| 国产一区二区福利视频| 91国偷自产一区二区开放时间 | 狠狠色丁香久久婷婷综合_中| 成人午夜免费电影| 日韩欧美亚洲国产精品字幕久久久| 中文字幕一区日韩精品欧美| 激情综合一区二区三区| 欧美日韩亚洲丝袜制服| 国产精品久久影院| 国产美女一区二区| 欧美电影精品一区二区| 午夜亚洲福利老司机| 91蝌蚪porny九色| 国产精品污网站| 国产一区二区在线免费观看| 337p亚洲精品色噜噜| 一区二区三区在线视频观看58| 国产成人欧美日韩在线电影| 日韩精品专区在线影院观看| 亚洲va欧美va人人爽午夜| 91香蕉视频黄| 国产精品久久久久9999吃药| 国产精品一二三在| 26uuu精品一区二区在线观看| 美女精品一区二区| 欧美成人三级在线| 另类小说色综合网站| 日韩一区二区麻豆国产| 日韩电影一区二区三区| 91精品国产色综合久久不卡蜜臀| 亚洲国产美国国产综合一区二区| 一本色道a无线码一区v| 亚洲婷婷在线视频| 在线观看国产精品网站| 亚洲一二三区不卡| 欧美理论在线播放| 日韩成人精品在线| 亚洲精品在线观| 国产91富婆露脸刺激对白 | 日韩天堂在线观看| 国精产品一区一区三区mba视频| 精品久久免费看| 国产精品一区免费视频| 国产无遮挡一区二区三区毛片日本| 国产精品主播直播| 日韩一区在线播放| 欧美影院一区二区三区| 三级精品在线观看| 久久视频一区二区| 不卡一二三区首页| 亚洲国产综合色| 欧美一区二区三区视频免费播放| 久久99蜜桃精品| 国产精品视频麻豆| 欧美精品久久一区二区三区| 久久99热狠狠色一区二区| 国产精品丝袜黑色高跟| 在线免费av一区| 久久99精品久久久久久| 国产精品久久久久久久久久免费看 | 亚洲精品一区二区三区影院| 成人app下载| 日韩中文字幕区一区有砖一区| 精品国产乱码久久久久久夜甘婷婷 | 色综合久久久久网| 麻豆成人免费电影| 亚洲欧洲一区二区三区| 欧美一级片在线看| 99精品1区2区| 麻豆成人91精品二区三区| 中文字幕中文乱码欧美一区二区| 在线区一区二视频| 成人免费毛片高清视频| 丝袜美腿亚洲综合| 国产精品久久久久久久久免费丝袜 | 色先锋aa成人| 国产一区二区调教| 亚洲成人一区二区| 日韩一区中文字幕| 亚洲精品一区二区三区在线观看| 欧美制服丝袜第一页| 国产jizzjizz一区二区| 日韩电影在线一区| 一片黄亚洲嫩模| 国产精品国产三级国产普通话三级| 日韩三级电影网址| 欧美无人高清视频在线观看| 国产精品小仙女| 男人的j进女人的j一区| 亚洲一区二区三区中文字幕| 亚洲国产精品高清| 2020国产精品自拍| 91精品国产色综合久久| 欧美中文字幕一区二区三区亚洲| 国产精品资源站在线| 精品一区二区在线观看| 污片在线观看一区二区| 亚洲卡通动漫在线| 国产精品第五页| 国产精品久久久久影视| 久久久久久久网| 久久久久久久免费视频了| 日韩美女视频在线| 日韩午夜激情视频| 日韩一区二区免费视频| 欧美人妖巨大在线| 欧美日韩在线播放一区| 欧美在线free| 欧美狂野另类xxxxoooo| 欧美亚洲国产bt| 欧美日韩美女一区二区| 欧美精品一二三| 欧美久久久一区| 51精品视频一区二区三区| 欧美精品少妇一区二区三区| 欧美日韩国产综合一区二区三区| 欧美亚洲综合色| 91精品久久久久久久99蜜桃| 91精品黄色片免费大全| 欧美一区二区三区免费观看视频 | 色综合 综合色| 精品婷婷伊人一区三区三| 欧美系列亚洲系列| 91精品国产手机| 欧美精品一区二区三区很污很色的| 欧美xfplay| 中文字幕免费一区| 亚洲欧美中日韩| 亚洲va中文字幕| 黄色资源网久久资源365| 国产高清不卡一区二区| 成人国产精品免费观看| 在线观看亚洲精品视频| 欧美一区二区精品在线| 欧美精品一区二区高清在线观看| 国产日韩精品一区二区三区| 国产精品美女一区二区| 亚洲一区二区三区精品在线| 日本人妖一区二区| 成人免费高清在线观看| 欧美日韩国产三级| 久久日一线二线三线suv| 综合久久综合久久| 免费在线观看精品| 国产91丝袜在线观看| 欧美日韩国产一级片| 久久亚洲欧美国产精品乐播 | 亚洲成国产人片在线观看| 久久99国产精品久久99果冻传媒| 国产91精品露脸国语对白| 欧美午夜精品免费| 国产亚洲一区二区三区四区 | 国产精品资源网站| 欧美日韩国产欧美日美国产精品| 精品久久久久香蕉网| 亚洲人成网站影音先锋播放| 蜜臀精品一区二区三区在线观看 | av电影在线不卡| 欧美不卡一区二区三区四区| 亚洲视频一区在线| 国产综合久久久久久鬼色 | 男女男精品网站| 91色九色蝌蚪| 久久蜜臀精品av| 午夜视频久久久久久| 91天堂素人约啪| 国产婷婷精品av在线| 蜜臀精品一区二区三区在线观看| 99热99精品| 久久人人97超碰com| 午夜亚洲国产au精品一区二区| 成人精品一区二区三区四区| 精品捆绑美女sm三区| 日韩精品亚洲专区| 欧美亚洲一区三区| 最新不卡av在线| 成人在线视频一区| 久久久国产午夜精品| 日韩主播视频在线| 精品视频在线免费看| 亚洲免费大片在线观看| 国产电影精品久久禁18| 精品福利在线导航| 免费在线观看不卡| 91精品久久久久久久99蜜桃| 亚洲一区二区美女| 欧美亚洲一区三区| 一级女性全黄久久生活片免费| 成人国产精品免费网站| 国产亚洲一区二区三区在线观看| 国模无码大尺度一区二区三区| 欧美一级艳片视频免费观看| 天天综合网天天综合色| 欧美日韩一级视频| 午夜国产精品影院在线观看| 欧美精品免费视频| 青青草原综合久久大伊人精品优势|