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


================
Comment at: clang-tools-extra/pseudo/lib/cxx/CXX.cpp:17
+static const char *CxxBNF =
+#include "CXXBNF.inc"
+    ;
----------------
this is worth a try, but I think (some versions of?) MSVC don't like long 
string literals.

Stackoverflow says 2k per "chunk" ("one" "two" "three") and 64k total.
Integer arrays can be larger...

So let's start with simple readable options, and make them progressively uglier 
if we hit limits.


================
Comment at: clang-tools-extra/pseudo/lib/cxx/CXX.cpp:22
+  static std::vector<std::string> Diags;
+  static std::unique_ptr<Grammar> G = Grammar::parseBNF(CxxBNF, Diags);
+  assert(Diags.empty());
----------------
static Grammar &G = *Grammar::parseBNF(...).release();
to avoid destruction


================
Comment at: clang-tools-extra/pseudo/lib/cxx/CXX.cpp:28
+const LRTable &getLRTable() {
+  static LRTable Table = LRTable::buildSLR(getGrammar());
+  return Table;
----------------
similarly &Table = *new LRTable(buildSLR(...));


================
Comment at: clang-tools-extra/pseudo/lib/grammar/CMakeLists.txt:3
+
+add_clang_library(clangPseudoGrammar
+  Grammar.cpp
----------------
a comment why we want minimal deps here?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D125667

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

Reply via email to