本文整理汇总了C++中Scanner::get_token方法的典型用法代码示例。如果您正苦于以下问题:C++ Scanner::get_token方法的具体用法?C++ Scanner::get_token怎么用?C++ Scanner::get_token使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Scanner
的用法示例。
在下文中一共展示了Scanner::get_token方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char** argv) {
char* cmdname = *argv++; --argc;
if (argc > 1) {
cerr << "Usage: " << cmdname << " [filename]" << endl;
exit(1);
}
Scanner* scanner;
ifstream* fin = 0;
if (argc > 0) {
char* fname = *argv++; --argc;
fin = new ifstream(fname);
string filename(fname);
if (!*fin) {
cerr << cmdname << ": unable to open " << fname <<
" for reading" << endl;
exit(1);
}
scanner = new Scanner(*fin, filename);
} else {
scanner = new Scanner(cin, "stdin");
}
AstlTropes::location loc;
semantic_type yylval;
int token;
while ((token = scanner->get_token(yylval, loc)) != 0) {
cout << yytname[token - 255];
if (yylval) {
cout << " \"" << yylval->get_token().get_text() << '"';
yylval = NodePtr(nullptr);
}
cout << " at " << make_loc(loc);
cout << endl;
}
delete scanner;
if (fin) delete fin;
}
示例2: yylex
inline int yylex(semantic_type* yylval, location* yylloc, Scanner& scanner) {
return scanner.get_token(*yylval, *yylloc);
}