本文整理汇总了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');