hokein accepted this revision.
hokein added inline comments.
This revision is now accepted and ready to land.


================
Comment at: clang-tools-extra/pseudo/include/clang-pseudo/grammar/LRTable.h:72
   // action types, this class becomes less useful. Remove it.
   class Action {
   public:
----------------
The Action can be removed now (I guess your plan is to remove it in a follow-up 
patch).


================
Comment at: clang-tools-extra/pseudo/include/clang-pseudo/grammar/LRTable.h:128
   // Expected to be called by LR parsers.
   // REQUIRES: Nonterminal is valid here.
+  llvm::Optional<StateID> getGoToState(StateID State,
----------------
If we're going to change the return type to `llvm::Optional`.

I think we can remove this comment , as the the invariant is not guaranteed by 
the API now, but rather than moving to the caller.


================
Comment at: clang-tools-extra/pseudo/include/clang-pseudo/grammar/LRTable.h:131
+                                       SymbolID Nonterminal) const {
+    return Gotos.get(numStates() * Nonterminal + State);
+  }
----------------
add nonterminal assertion?


================
Comment at: clang-tools-extra/pseudo/include/clang-pseudo/grammar/LRTable.h:213
+  // Lookup is constant time with a low factor (no hashing).
+  class SparseTable {
+    using Word = uint64_t;
----------------
As discussed offline, we could be more specific for the name (something like 
`StateIDTable`).

We might also want to put the key calculation logic (`numStates() * Nonterminal 
+ State`, and `numStates() * symbolToToken(Terminal) + State`) to an inline 
function, we have a few places using them duplicately. 


================
Comment at: clang-tools-extra/pseudo/include/clang-pseudo/grammar/LRTable.h:223
+    SparseTable() = default;
+    SparseTable(const llvm::DenseMap<unsigned, StateID> &V, unsigned NumKeys) {
+      assert(
----------------
nit: V => KV
it feels more natural to make it a static `build` method, but up to you.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D128485/new/

https://reviews.llvm.org/D128485

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to