本文整理汇总了C++中Scanner::identifier方法的典型用法代码示例。如果您正苦于以下问题:C++ Scanner::identifier方法的具体用法?C++ Scanner::identifier怎么用?C++ Scanner::identifier使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Scanner
的用法示例。
在下文中一共展示了Scanner::identifier方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parseIdentifier
void TypeParser::parseIdentifier(Scanner &scanner, QStack<Info *> &stack, QString &array, bool in_array, bool &colon_prefix) {
if (in_array) {
array = scanner.identifier();
} else if (colon_prefix || stack.top()->qualified_name.isEmpty()) {
stack.top()->qualified_name << scanner.identifier();
colon_prefix = false;
} else {
//stack.top()->qualified_name.last().append(" " + scanner.identifier());
QString identifier = scanner.identifier();
QString &name = stack.top()->qualified_name.last();
bool set = false;
if (identifier != "int") set = true;
// TODO: this handles only one case
if (name != "short" && !name.endsWith(" short")
&& name != "long" && !name.endsWith(" long")) {
set = true;
}
if (set) name.append(" " + identifier);
}
}
示例2: main
int main(int argc, char *argv[])
{
ifstream inFile;
ofstream outFile;
bool error;
string input;
vector<Token>TokenList;
Scanner analyze;
inFile.open(argv[1]);
outFile.open(argv[2]);
while(getline(inFile,input))
{
error=analyze.identifier(input);
if(error==true)
{
analyze.initiateError(outFile);
return 0;
}
}
TokenList=analyze.tokenify();
Parser parse(TokenList);
try
{
parse.parse();
}
catch(string a)
{
Token temp=outputError(parse);
outFile<<"Failure!"<<endl;
outFile<<" "<<"("<<temp.getChar()<<","<<"\""<<temp.getInfo()<<"\""<<","<<temp.fetchLineNum()<<")"<<endl;
return 0;
}
parse.outToFile(outFile);
return 0;
}