├── .gitignore ├── .travis.yml ├── README.md ├── ast_tools ├── __init__.py ├── common.py ├── cst_utils │ ├── __init__.py │ ├── deep_node.py │ └── insert_statements.py ├── macros.py ├── metadata │ ├── __init__.py │ ├── always_returns_provider.py │ └── condition_provider.py ├── passes │ ├── __init__.py │ ├── base.py │ ├── bool_to_bit.py │ ├── cse.py │ ├── debug.py │ ├── if_inline.py │ ├── if_to_phi.py │ ├── loop_unroll.py │ ├── remove_asserts.py │ ├── ssa.py │ └── util.py ├── pattern.py ├── stack.py ├── transformers │ ├── __init__.py │ ├── if_inliner.py │ ├── loop_unroller.py │ ├── node_replacer.py │ ├── node_tracker.py │ ├── normalizers.py │ ├── renamer.py │ └── symbol_replacer.py ├── utils.py └── visitors │ ├── __init__.py │ ├── collect_names.py │ ├── collect_targets.py │ ├── node_finder.py │ └── used_names.py ├── docs └── developer.md ├── setup.py ├── tests ├── test_apply_passes.py ├── test_assert_remover.py ├── test_bool_to_bit.py ├── test_common.py ├── test_cse.py ├── test_if_to_phi.py ├── test_immutable_ast.py ├── test_inline.py ├── test_normalizers.py ├── test_passes.py ├── test_pattern.py ├── test_ssa.py ├── test_stack.py ├── test_unroll.py └── test_visitors.py └── util └── generate_ast ├── __init__.py ├── _base.px ├── _functions.px ├── _meta.px └── generate.py /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/.gitignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/.travis.yml -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/README.md -------------------------------------------------------------------------------- /ast_tools/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/__init__.py -------------------------------------------------------------------------------- /ast_tools/common.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/common.py -------------------------------------------------------------------------------- /ast_tools/cst_utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/cst_utils/__init__.py -------------------------------------------------------------------------------- /ast_tools/cst_utils/deep_node.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/cst_utils/deep_node.py -------------------------------------------------------------------------------- /ast_tools/cst_utils/insert_statements.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/cst_utils/insert_statements.py -------------------------------------------------------------------------------- /ast_tools/macros.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/macros.py -------------------------------------------------------------------------------- /ast_tools/metadata/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/metadata/__init__.py -------------------------------------------------------------------------------- /ast_tools/metadata/always_returns_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/metadata/always_returns_provider.py -------------------------------------------------------------------------------- /ast_tools/metadata/condition_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/metadata/condition_provider.py -------------------------------------------------------------------------------- /ast_tools/passes/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/passes/__init__.py -------------------------------------------------------------------------------- /ast_tools/passes/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/passes/base.py -------------------------------------------------------------------------------- /ast_tools/passes/bool_to_bit.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/passes/bool_to_bit.py -------------------------------------------------------------------------------- /ast_tools/passes/cse.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/passes/cse.py -------------------------------------------------------------------------------- /ast_tools/passes/debug.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/passes/debug.py -------------------------------------------------------------------------------- /ast_tools/passes/if_inline.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/passes/if_inline.py -------------------------------------------------------------------------------- /ast_tools/passes/if_to_phi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/passes/if_to_phi.py -------------------------------------------------------------------------------- /ast_tools/passes/loop_unroll.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/passes/loop_unroll.py -------------------------------------------------------------------------------- /ast_tools/passes/remove_asserts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/passes/remove_asserts.py -------------------------------------------------------------------------------- /ast_tools/passes/ssa.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/passes/ssa.py -------------------------------------------------------------------------------- /ast_tools/passes/util.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/passes/util.py -------------------------------------------------------------------------------- /ast_tools/pattern.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/pattern.py -------------------------------------------------------------------------------- /ast_tools/stack.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/stack.py -------------------------------------------------------------------------------- /ast_tools/transformers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/transformers/__init__.py -------------------------------------------------------------------------------- /ast_tools/transformers/if_inliner.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/transformers/if_inliner.py -------------------------------------------------------------------------------- /ast_tools/transformers/loop_unroller.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/transformers/loop_unroller.py -------------------------------------------------------------------------------- /ast_tools/transformers/node_replacer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/transformers/node_replacer.py -------------------------------------------------------------------------------- /ast_tools/transformers/node_tracker.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/transformers/node_tracker.py -------------------------------------------------------------------------------- /ast_tools/transformers/normalizers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/transformers/normalizers.py -------------------------------------------------------------------------------- /ast_tools/transformers/renamer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/transformers/renamer.py -------------------------------------------------------------------------------- /ast_tools/transformers/symbol_replacer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/transformers/symbol_replacer.py -------------------------------------------------------------------------------- /ast_tools/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/utils.py -------------------------------------------------------------------------------- /ast_tools/visitors/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/visitors/__init__.py -------------------------------------------------------------------------------- /ast_tools/visitors/collect_names.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/visitors/collect_names.py -------------------------------------------------------------------------------- /ast_tools/visitors/collect_targets.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/visitors/collect_targets.py -------------------------------------------------------------------------------- /ast_tools/visitors/node_finder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/visitors/node_finder.py -------------------------------------------------------------------------------- /ast_tools/visitors/used_names.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/ast_tools/visitors/used_names.py -------------------------------------------------------------------------------- /docs/developer.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/docs/developer.md -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/setup.py -------------------------------------------------------------------------------- /tests/test_apply_passes.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/tests/test_apply_passes.py -------------------------------------------------------------------------------- /tests/test_assert_remover.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/tests/test_assert_remover.py -------------------------------------------------------------------------------- /tests/test_bool_to_bit.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/tests/test_bool_to_bit.py -------------------------------------------------------------------------------- /tests/test_common.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/tests/test_common.py -------------------------------------------------------------------------------- /tests/test_cse.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/tests/test_cse.py -------------------------------------------------------------------------------- /tests/test_if_to_phi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/tests/test_if_to_phi.py -------------------------------------------------------------------------------- /tests/test_immutable_ast.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/tests/test_immutable_ast.py -------------------------------------------------------------------------------- /tests/test_inline.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/tests/test_inline.py -------------------------------------------------------------------------------- /tests/test_normalizers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/tests/test_normalizers.py -------------------------------------------------------------------------------- /tests/test_passes.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/tests/test_passes.py -------------------------------------------------------------------------------- /tests/test_pattern.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/tests/test_pattern.py -------------------------------------------------------------------------------- /tests/test_ssa.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/tests/test_ssa.py -------------------------------------------------------------------------------- /tests/test_stack.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/tests/test_stack.py -------------------------------------------------------------------------------- /tests/test_unroll.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/tests/test_unroll.py -------------------------------------------------------------------------------- /tests/test_visitors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/tests/test_visitors.py -------------------------------------------------------------------------------- /util/generate_ast/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/util/generate_ast/__init__.py -------------------------------------------------------------------------------- /util/generate_ast/_base.px: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/util/generate_ast/_base.px -------------------------------------------------------------------------------- /util/generate_ast/_functions.px: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/util/generate_ast/_functions.px -------------------------------------------------------------------------------- /util/generate_ast/_meta.px: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/util/generate_ast/_meta.px -------------------------------------------------------------------------------- /util/generate_ast/generate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonardt/ast_tools/HEAD/util/generate_ast/generate.py --------------------------------------------------------------------------------