本文整理汇总了C++中ASTPtr::computeStartEndCols方法的典型用法代码示例。如果您正苦于以下问题:C++ ASTPtr::computeStartEndCols方法的具体用法?C++ ASTPtr::computeStartEndCols怎么用?C++ ASTPtr::computeStartEndCols使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ASTPtr
的用法示例。
在下文中一共展示了ASTPtr::computeStartEndCols方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: generateCCs
static ASTPtr generateCCs(std::vector<ConsistentContent>* ccs, const char* format, const char*** wordSourcesPtr, const LengthFunc** lengthFuncsPtr, va_list args) {
ccs->clear();
std::string evaluatedFormat;
vsprintf(&evaluatedFormat, format, args);
const char* f_begin = evaluatedFormat.c_str();
const char* f_at = f_begin;
ASTPtr root;
try {
//printf("\n\n%s\n", format);
root = parseFormat(&f_at, wordSourcesPtr, lengthFuncsPtr);
root->convertLLSharesToLength();
root->computeStartEndCols(0, root->getFixedLength());
std::vector<FillerPtr> topFillersStack, bottomFillersStack;
root->flatten(root, root, ccs, true, &topFillersStack, &bottomFillersStack);
//root->print();
//printf("\n");
for (ConsistentContent& cc : *ccs) {
cc.generateCCLines();
}
root->computeNumContentLines();
root->computeNumTotalLines(true);
root->computeBlockVerticalFillersShares();
//printf("\n");
for (ConsistentContent& cc : *ccs) {
/*printf("\n");
cc.print();
printf("\n");
printf("content: %d fixed: %d total: %d\n", cc.srcAst->numContentLines, cc.srcAst->numFixedLines, cc.srcAst->numTotalLines);*/
cc.generateLinesChars(root->numTotalLines);
}
//printf("\n\n");
} catch (DSLException& e) {
fprintf(stderr, "%s\n", f_begin);
for (int i = 0; i < e.f_at - f_begin; ++i) {
fputc(' ', stderr);
}
fprintf(stderr, "^\n");
fprintf(stderr, "Error at %d: %s\n", e.f_at - f_begin, e.what());
return ASTPtr();
}
return root;
}