[PATCH] D125677: [pseudo] Remove the explicit Accept actions.
Haojian Wu via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Jun 8 04:47:24 PDT 2022
hokein added inline comments.
================
Comment at: clang-tools-extra/pseudo/lib/GLR.cpp:85
- if (!PendingAccept.empty()) {
- LLVM_DEBUG({
- llvm::dbgs() << llvm::formatv("Accept: {0} accepted result:\n",
- PendingAccept.size());
- for (const auto &Accept : PendingAccept)
- llvm::dbgs() << " - " << G.symbolName(Accept.Head->Payload->symbol())
- << "\n";
- });
- assert(PendingAccept.size() == 1);
- return *PendingAccept.front().Head->Payload;
- }
+ const ForestNode *Result = nullptr;
+ StateID AcceptState = Params.Table.getGoToState(StartState, StartSymbol);
----------------
sammccall wrote:
> rather than mingling this with the glrReduce, I'd suggest collecting the set of final heads first and then analyzing them afterwards.
>
> This means looping a second time, but I think the logic around recognizing patterns that look like `accept` might grow (e.g. if we want to incorporate some error tolerance)
that sounds reasonable, but it requires some additional changes (to identify inactive heads in the callback of `glrReduce`):
- AddSteps now returns true/false whether there is any actions in LRTable[NewHead->state][nextTok];
- no available action in the acceptable state on the eof token in LRTable (see the change in lr-build-basic.test);
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D125677/new/
https://reviews.llvm.org/D125677
More information about the cfe-commits
mailing list