当前位置: 首页>>代码示例>>C++>>正文


C++ Lex::AddDynamic方法代码示例

本文整理汇总了C++中Lex::AddDynamic方法的典型用法代码示例。如果您正苦于以下问题:C++ Lex::AddDynamic方法的具体用法?C++ Lex::AddDynamic怎么用?C++ Lex::AddDynamic使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Lex的用法示例。


在下文中一共展示了Lex::AddDynamic方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: convert_async


//.........这里部分代码省略.........
		do {
			 t = lex.GetToken();
		} while(isspace(t) || t == '\n');
		goto empty_attribute;
	}
	else if(l != 7 || memcmp(s, "dynamic", l) != 0) {
		fprintf(stderr, "%s:%ld: error: only one of 'timed' or 'dynamic' is supported as an attribute\n", lex.Filename(), lex.Line());
		g_errcnt++;
		do {
			 t = lex.GetToken();
		} while(isspace(t) || t == '\n');
		goto empty_attribute;
	}
	do {
		 t = lex.GetToken();
	} while(isspace(t) || t == '\n');
	if(t == '(') {
		// a user name may be specified!
		do {
			 t = lex.GetToken();
		} while(isspace(t) || t == '\n');
		if(t == Lex::IDENTIFIER) {
			s = lex.GetStart();
			e = lex.GetEnd();
			l = static_cast<int>(e - s);
			char* dname = new char[l + 1];
			str_keeper sk(dname);
			memcpy(dname, s, l);
			dname[l] = '\0';

// here we have (1) the name of the dynamic function
//		(2) the list of parameters for that function

			keep_params = lex.AddDynamic(params, dname, name);

			do {
				 t = lex.GetToken();
			} while(isspace(t) || t == '\n');
		}
		else {
			keep_params = lex.AddDynamic(params, "DynamicEvent", name);
		}
		if(t != ')') {
			fprintf(stderr, "%s:%ld: error: a ')' was expected after the dynamic attribute name\n", lex.Filename(), lex.Line());
			g_errcnt++;
			goto skip_attr;
		}
		do {
			 t = lex.GetToken();
		} while(isspace(t) || t == '\n');
	}
	else {
		keep_params = lex.AddDynamic(params, "DynamicEvent", name);
	}
empty_attribute:
	if(t == ',') {
		goto more_attributes;
	}
	if(t != ')') {
		fprintf(stderr, "%s:%ld: error: two ')' were expected to terminate the __attribute__\n", lex.Filename(), lex.Line());
		g_errcnt++;
		goto skip_attr;
	}
	do {
		 t = lex.GetToken();
	} while(isspace(t) || t == '\n');
开发者ID:m2osw,项目名称:turnwatcher,代码行数:67,代码来源:async_functions.cpp


注:本文中的Lex::AddDynamic方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。