From 720c5a33b6a49cf328fdd7611f49153cf8f60247 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Wed, 8 Apr 2020 14:51:57 +0300 Subject: Separate tests and examples into individual packages Also make cli module to be explicitly enabled via the config.cli configuration variable. --- cli/traversal/elements.hxx | 142 --------------------------------------------- 1 file changed, 142 deletions(-) delete mode 100644 cli/traversal/elements.hxx (limited to 'cli/traversal/elements.hxx') diff --git a/cli/traversal/elements.hxx b/cli/traversal/elements.hxx deleted file mode 100644 index a2ada23..0000000 --- a/cli/traversal/elements.hxx +++ /dev/null @@ -1,142 +0,0 @@ -// file : cli/traversal/elements.hxx -// author : Boris Kolpackov -// license : MIT; see accompanying LICENSE file - -#ifndef CLI_TRAVERSAL_ELEMENTS_HXX -#define CLI_TRAVERSAL_ELEMENTS_HXX - -#include - -#include - -namespace traversal -{ - using namespace cutl; - - // - // - typedef compiler::dispatcher node_dispatcher; - typedef compiler::dispatcher edge_dispatcher; - - // - // - struct node_base: node_dispatcher, edge_dispatcher - { - void - edge_traverser (edge_dispatcher& d) - { - edge_dispatcher::traverser (d); - } - - edge_dispatcher& - edge_traverser () - { - return *this; - } - - using node_dispatcher::dispatch; - using edge_dispatcher::dispatch; - - using edge_dispatcher::iterate_and_dispatch; - }; - - struct edge_base: edge_dispatcher, node_dispatcher - { - void - node_traverser (node_dispatcher& d) - { - node_dispatcher::traverser (d); - } - - node_dispatcher& - node_traverser () - { - return *this; - } - - using edge_dispatcher::dispatch; - using node_dispatcher::dispatch; - - using node_dispatcher::iterate_and_dispatch; - }; - - inline edge_base& - operator>> (node_base& n, edge_base& e) - { - n.edge_traverser (e); - return e; - } - - inline node_base& - operator>> (edge_base& e, node_base& n) - { - e.node_traverser (n); - return n; - } - - // - // - template - struct node: compiler::traverser_impl, - virtual node_base - { - }; - - template - struct edge: compiler::traverser_impl, - virtual edge_base - { - }; - - // Edges - // - - struct names: edge - { - names () - { - } - - names (node_dispatcher& n) - { - node_traverser (n); - } - - virtual void - traverse (type&); - }; - - // Nodes - // - - struct nameable: node {}; - - template - struct scope_template: node - { - public: - virtual void - traverse (T& s) - { - names (s); - } - - virtual void - names (T& s) - { - names (s, *this); - } - - virtual void - names (T& s, edge_dispatcher& d) - { - this->iterate_and_dispatch (s.names_begin (), s.names_end (), d); - } - }; - - typedef scope_template scope; - - struct type: node {}; -} - -#endif // CLI_TRAVERSAL_ELEMENTS_HXX -- cgit v1.1