• nikolaos's avatar
    This patch implements an alternative approach to the rewriting · ed665880
    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
    
    Committed: https://crrev.com/7f5c864a6faf2b957b7273891e143b9bde35487c
    Cr-Commit-Position: refs/heads/master@{#34154}
    
    Review URL: https://codereview.chromium.org/1702063002
    
    Cr-Commit-Position: refs/heads/master@{#34162}
    ed665880
Name
Last commit
Last update
..
OWNERS Loading commit data...
ast-expression-rewriter.cc Loading commit data...
ast-expression-rewriter.h Loading commit data...
ast-expression-visitor.cc Loading commit data...
ast-expression-visitor.h Loading commit data...
ast-literal-reindexer.cc Loading commit data...
ast-literal-reindexer.h Loading commit data...
ast-numbering.cc Loading commit data...
ast-numbering.h Loading commit data...
ast-value-factory.cc Loading commit data...
ast-value-factory.h Loading commit data...
ast.cc Loading commit data...
ast.h Loading commit data...
modules.cc Loading commit data...
modules.h Loading commit data...
prettyprinter.cc Loading commit data...
prettyprinter.h Loading commit data...
scopeinfo.cc Loading commit data...
scopeinfo.h Loading commit data...
scopes.cc Loading commit data...
scopes.h Loading commit data...
variables.cc Loading commit data...
variables.h Loading commit data...