本文整理汇总了C++中TokenPtr::getLexeme方法的典型用法代码示例。如果您正苦于以下问题:C++ TokenPtr::getLexeme方法的具体用法?C++ TokenPtr::getLexeme怎么用?C++ TokenPtr::getLexeme使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TokenPtr
的用法示例。
在下文中一共展示了TokenPtr::getLexeme方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: findSymbol
/**
* find matching symbol
*/
TokenPtr SourceScope::findSymbol(TokenPtr token)
{
// find symbol in current scope
for (auto & sym : m_symbols) {
if (sym->getLexeme() == token->getLexeme()) return sym;
}
// parent scope
if (auto p = m_parent.lock()) return p->findSymbol(token);
// didn't find
return nullptr;
}
示例2: addSymbol
/**
* Add new identifier.
* return false if identifier with the given name already in the list
*/
bool SourceScope::addSymbol(TokenPtr token)
{
// find existing
auto iter = std::find_if(m_symbols.begin(), m_symbols.end(), [&](const TokenPtr & p) {
return p->getLexeme() == token->getLexeme();
});
// foung means it contains symbol already
if (iter != m_symbols.end()) return false;
// add it
m_symbols.push_back(token);
// success
return true;
}