本文整理汇总了C++中Word::Compile方法的典型用法代码示例。如果您正苦于以下问题:C++ Word::Compile方法的具体用法?C++ Word::Compile怎么用?C++ Word::Compile使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Word
的用法示例。
在下文中一共展示了Word::Compile方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: printf
// ------------------------------------------------------------------------
bool S4::Interpreter::Step() {
Lexeme l;
if (!NextWord(&l)) {
printf(".step:\tthinking it is end of input\n\t-->%s\n", programCounter);
return false;
}
Word *word;
switch (l.kind) {
case Lexeme::endOfInput:
printf(".step:\tendOfInput\n");
return false;
case Lexeme::integer:
if (IsCompileMode()) {
return true;
}
printf(".push:\tinteger %d\n", l.data.integer);
dataStack.push(CellFromInteger(l.data.integer));
return true;
case Lexeme::number:
if (IsCompileMode()) {
return true;
}
printf(".push:\tnumber %g\n", l.data.number);
dataStack.push(CellFromNumber(l.data.number));
return true;
case Lexeme::symbol:
printf(".eval:\tsymbol %s\n", l.data.symbol);
word = dictionary->Lookup(l.data.symbol);
if (!word) {
printf("error:\tundefined word '%s'\n", l.data.symbol);
return false;
}
if (IsCompileMode()) {
return word->Compile(this);
}
return word->Execute(this);
case Lexeme::text:
if (IsCompileMode()) {
return true;
}
printf(".push:\ttext %s\n", l.data.text);
dataStack.push(CellFromText(l.data.text));
return true;
}
printf("panic:\tunknown lexeme %d\n", l.kind);
exit(2);
// NOT REACHED
return false;
}