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

Reply via email to