本文整理汇总了C++中pANTLR3_LEXER::setCharStream方法的典型用法代码示例。如果您正苦于以下问题:C++ pANTLR3_LEXER::setCharStream方法的具体用法?C++ pANTLR3_LEXER::setCharStream怎么用?C++ pANTLR3_LEXER::setCharStream使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pANTLR3_LEXER
的用法示例。
在下文中一共展示了pANTLR3_LEXER::setCharStream方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
/*!
* \brief
* Stops using the current input stream and reverts to any prior
* input stream on the stack.
*
* \param lexer
* Description of parameter lexer.
*
* Pointer to a function that abandons the current input stream, whether it
* is empty or not and reverts to the previous stacked input stream.
*
* \remark
* The function fails silently if there are no prior input streams.
*/
static void
popCharStream (pANTLR3_LEXER lexer)
{
pANTLR3_INPUT_STREAM input;
// If we do not have a stream stack or we are already at the
// stack bottom, then do nothing.
//
if (lexer->rec->state->streams != NULL && lexer->rec->state->streams->size(lexer->rec->state->streams) > 0)
{
// We just leave the current stream to its fate, we do not close
// it or anything as we do not know what the programmer intended
// for it. This method can always be overridden of course.
// So just find out what was currently saved on the stack and use
// that now, then pop it from the stack.
//
input = (pANTLR3_INPUT_STREAM)(lexer->rec->state->streams->top);
lexer->rec->state->streams->pop(lexer->rec->state->streams);
// Now install the stream as the current one.
//
lexer->setCharStream(lexer, input);
lexer->input->istream->rewindLast(lexer->input->istream);
}
return;
}