hokein created this revision. hokein added a reviewer: sammccall. Herald added a project: All. hokein requested review of this revision. Herald added a subscriber: alextsao1999. Herald added a project: clang-tools-extra.
And print the line number in the debug message, which makes it easier to locate the position where we fail to parse. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D125481 Files: clang-tools-extra/pseudo/lib/GLR.cpp Index: clang-tools-extra/pseudo/lib/GLR.cpp =================================================================== --- clang-tools-extra/pseudo/lib/GLR.cpp +++ clang-tools-extra/pseudo/lib/GLR.cpp @@ -65,9 +65,14 @@ GSS.addNode(/*State=*/Params.Table.getStartState(Target), /*ForestNode=*/nullptr, {})}; for (const ForestNode &Terminal : Terminals) { - LLVM_DEBUG(llvm::dbgs() << llvm::formatv("Next token {0} (id={1})\n", - G.symbolName(Terminal.symbol()), - Terminal.symbol())); + LLVM_DEBUG(llvm::dbgs() << llvm::formatv( + "Next token {0} (id={1}, line={2})\n", + G.symbolName(Terminal.symbol()), Terminal.symbol(), + Tokens.tokens()[Terminal.startTokenIndex()].Line + 1)); + // No active heads, we fail to parse the input, bail out. + if (NewHeads.empty()) + break; + for (const auto *Head : NewHeads) AddSteps(Head, Terminal.symbol()); NewHeads.clear();
Index: clang-tools-extra/pseudo/lib/GLR.cpp =================================================================== --- clang-tools-extra/pseudo/lib/GLR.cpp +++ clang-tools-extra/pseudo/lib/GLR.cpp @@ -65,9 +65,14 @@ GSS.addNode(/*State=*/Params.Table.getStartState(Target), /*ForestNode=*/nullptr, {})}; for (const ForestNode &Terminal : Terminals) { - LLVM_DEBUG(llvm::dbgs() << llvm::formatv("Next token {0} (id={1})\n", - G.symbolName(Terminal.symbol()), - Terminal.symbol())); + LLVM_DEBUG(llvm::dbgs() << llvm::formatv( + "Next token {0} (id={1}, line={2})\n", + G.symbolName(Terminal.symbol()), Terminal.symbol(), + Tokens.tokens()[Terminal.startTokenIndex()].Line + 1)); + // No active heads, we fail to parse the input, bail out. + if (NewHeads.empty()) + break; + for (const auto *Head : NewHeads) AddSteps(Head, Terminal.symbol()); NewHeads.clear();
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits