• 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
..
OWNERS Loading commit data...
bytecode-array-builder.cc Loading commit data...
bytecode-array-builder.h Loading commit data...
bytecode-array-iterator.cc Loading commit data...
bytecode-array-iterator.h Loading commit data...
bytecode-generator.cc Loading commit data...
bytecode-generator.h Loading commit data...
bytecode-register-allocator.cc Loading commit data...
bytecode-register-allocator.h Loading commit data...
bytecode-traits.h Loading commit data...
bytecodes.cc Loading commit data...
bytecodes.h Loading commit data...
constant-array-builder.cc Loading commit data...
constant-array-builder.h Loading commit data...
control-flow-builders.cc Loading commit data...
control-flow-builders.h Loading commit data...
handler-table-builder.cc Loading commit data...
handler-table-builder.h Loading commit data...
interpreter-assembler.cc Loading commit data...
interpreter-assembler.h Loading commit data...
interpreter.cc Loading commit data...
interpreter.h Loading commit data...
register-translator.cc Loading commit data...
register-translator.h Loading commit data...
source-position-table.cc Loading commit data...
source-position-table.h Loading commit data...