• nikolaos's avatar
    This patch implements an alternative approach to the rewriting · 7f5c864a
    nikolaos authored
    of non-pattern expressions, according to the (internally circulated)
    design document.  Details to be provided here.
    
    1.  RewritableAssignmentExpression has been renamed to RewritableExpression.
        It is a wrapper for AST nodes that wait for some potential rewriting
        (that may or may not happen).  Also, Is... and As... macros now see
        through RewritableExpressions.
    
    2.  The function state keeps a list of rewritable expressions that must be
        rewritten only if they are used as non-pattern expressions.
    
    3.  Expression classifiers are now templates, parameterized by parser
        traits.  They keep some additional state: a pointer to the list of
        non-pattern rewritable expressions.  It is important that expression
        classifiers be used strictly in a stack fashion, from now on.
    
    4.  The RewriteNonPattern function has been simplified.
    
    BUG=chromium:579913
    LOG=N
    
    Review URL: https://codereview.chromium.org/1702063002
    
    Cr-Commit-Position: refs/heads/master@{#34154}
    7f5c864a
Name
Last commit
Last update
benchmarks Loading commit data...
build Loading commit data...
docs Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party/binutils Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
Makefile.nacl Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...