[flang] Trait-based parse tree traversal.
authorpeter klausler <pklausler@nvidia.com>
Wed, 28 Feb 2018 21:24:01 +0000 (13:24 -0800)
committerpeter klausler <pklausler@nvidia.com>
Wed, 28 Feb 2018 21:24:01 +0000 (13:24 -0800)
commit07a028098faf8899cb0bd7b0368765300dc3aa6a
treec34112bc2aca0254c8490b1dded22cbe029532d4
parent848bf57051d5f5d15570ae2639ce3b80f70fd181
[flang] Trait-based parse tree traversal.
Add a CLASS_TRAIT macro to idioms.h to define template metaprogramming
based on definable traits of user-defined classes.  Tweak the boilerplate
macros in parse-tree.h to add traits to the empty, wrapper, union, and
tuple classes in the parse tree.  Replace the macros in parse-tree-visitor.h
with trait-driven templates.

Original-commit: flang-compiler/f18@02400146fbebc8ef6d608699153146721a40dc37
Reviewed-on: https://github.com/flang-compiler/f18/pull/20
Tree-same-pre-rewrite: false
flang/lib/parser/idioms.h
flang/lib/parser/parse-tree-visitor.h
flang/lib/parser/parse-tree.h