diff options
Diffstat (limited to 'TAO/CIAO/CCF/CCF/IDL2')
169 files changed, 0 insertions, 22691 deletions
diff --git a/TAO/CIAO/CCF/CCF/IDL2/IDL2.mpc b/TAO/CIAO/CCF/CCF/IDL2/IDL2.mpc deleted file mode 100644 index 74273a71a7f..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/IDL2.mpc +++ /dev/null @@ -1,16 +0,0 @@ -//$Id$ - -project(IDL2): cidlc { - sharedname = - staticname = IDL2 - libout = .. - - Source_Files { - . - ./SemanticGraph - ./Traversal - ./SemanticAction - ./SemanticAction/Impl - - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/LexicalAnalyzer.cpp b/TAO/CIAO/CCF/CCF/IDL2/LexicalAnalyzer.cpp deleted file mode 100644 index e357a1a0c28..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/LexicalAnalyzer.cpp +++ /dev/null @@ -1,964 +0,0 @@ -// file : CCF/IDL2/LexicalAnalyzer.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/LexicalAnalyzer.hpp" - -#include <stdlib.h> // strtol -#include <iostream> - -using std::cerr; -using std::endl; -using std::string; -using std::pair; -using std::size_t; - -namespace CCF -{ - namespace IDL2 - { - LexicalAnalyzer:: - LexicalAnalyzer (CompilerElements::TokenStream<Char>& is) - : loc_ ("C"), is_ (is) - { - // Keywords (alphabetic order). - // - - keyword_table_.insert ("abstract" ); - keyword_table_.insert ("attribute" ); - keyword_table_.insert ("__binclude" ); - keyword_table_.insert ("case" ); - keyword_table_.insert ("const" ); - keyword_table_.insert ("custom" ); - keyword_table_.insert ("default" ); - keyword_table_.insert ("exception" ); - keyword_table_.insert ("enum" ); - keyword_table_.insert ("factory" ); - keyword_table_.insert ("getraises" ); - keyword_table_.insert ("in" ); - keyword_table_.insert ("inout" ); - keyword_table_.insert ("interface" ); - keyword_table_.insert ("__qinclude" ); - keyword_table_.insert ("local" ); - keyword_table_.insert ("module" ); - keyword_table_.insert ("native" ); - keyword_table_.insert ("oneway" ); - keyword_table_.insert ("out" ); - keyword_table_.insert ("private" ); - keyword_table_.insert ("public" ); - keyword_table_.insert ("raises" ); - keyword_table_.insert ("readonly" ); - keyword_table_.insert ("sequence" ); - keyword_table_.insert ("setraises" ); - keyword_table_.insert ("struct" ); - keyword_table_.insert ("supports" ); - keyword_table_.insert ("switch" ); - keyword_table_.insert ("truncatable"); - keyword_table_.insert ("typedef" ); - keyword_table_.insert ("typeid" ); - keyword_table_.insert ("typeprefix" ); - keyword_table_.insert ("union" ); - keyword_table_.insert ("valuetype" ); - - // Identifiers (alphabetic order). - // - // Note: if you are planning to hack something up - // in the code below, first make sure you understand - // how everything works! - // - - IdentifierTreeNode end; - - identifier_tree_["Object" ] = end; - identifier_tree_["ValueBase"] = end; - identifier_tree_["any" ] = end; - identifier_tree_["boolean" ] = end; - identifier_tree_["char" ] = end; - identifier_tree_["double" ] = end; - identifier_tree_["float" ] = end; - - IdentifierTreeNode long_; - long_["" ] = end; - long_["double"] = end; - long_["long" ] = end; - - identifier_tree_["long" ] = long_; - identifier_tree_["octet" ] = end; - identifier_tree_["short" ] = end; - identifier_tree_["string" ] = end; - - IdentifierTreeNode unsigned_long_; - unsigned_long_["" ] = end; - unsigned_long_["long"] = end; - - IdentifierTreeNode unsigned_; - unsigned_["long" ] = unsigned_long_; - unsigned_["short" ] = end; - - identifier_tree_["unsigned" ] = unsigned_; - identifier_tree_["void" ] = end; - identifier_tree_["wchar" ] = end; - identifier_tree_["wstring" ] = end; - - // punctuation (pair-matched). - // - punctuation_table_.insert (":"); - punctuation_table_.insert (","); - punctuation_table_.insert ("{"); - punctuation_table_.insert ("}"); - punctuation_table_.insert ("["); - punctuation_table_.insert ("]"); - punctuation_table_.insert ("("); - punctuation_table_.insert (")"); - punctuation_table_.insert ("<"); - punctuation_table_.insert (">"); - punctuation_table_.insert (";"); - - // operators - // - operator_table_.insert ("+"); // add - operator_table_.insert ("&"); // and - operator_table_.insert ("~"); // com - operator_table_.insert ("/"); // div - operator_table_.insert ("="); // eq - operator_table_.insert ("<<"); // lsh - operator_table_.insert ("*"); // mul - operator_table_.insert ("|"); // or - operator_table_.insert ("%"); // rem - operator_table_.insert ("-"); // sub - operator_table_.insert (">>"); // rsh - operator_table_.insert ("^"); // xor - } - - - LexicalAnalyzer::Char LexicalAnalyzer:: - get () - { - if (!ibuffer_.empty ()) - { - Char c = ibuffer_.front (); - ibuffer_.pop_front (); - return c; - } - else - { - return is_.next (); - } - } - - LexicalAnalyzer::Char LexicalAnalyzer:: - peek () - { - if (ibuffer_.empty ()) - { - ibuffer_.push_back (is_.next ()); - } - - return ibuffer_.front (); - } - - LexicalAnalyzer::Char LexicalAnalyzer:: - peek_more () - { - while (ibuffer_.size () < 2) - { - ibuffer_.push_back (is_.next ()); - } - - return ibuffer_.at (1); - } - - void LexicalAnalyzer:: - ret (Char const& c) - { - ibuffer_.push_front (c); - } - - - TokenPtr LexicalAnalyzer:: - next () - { - while (true) // Recovery loop. - { - Char c = skip_space (get ()); - - if (is_eos (c)) return TokenPtr (new EndOfStream (0)); - - TokenPtr token; - - if (character_literal (c, token)) return token; - - if (string_literal (c, token)) return token; - - if (integer_literal (c, token)) return token; - - // Check for identifier after literals because it can be - // triggered by wide string prefix (L"..."). - // - if (is_alpha (c) || c == '_' || (c == ':' && peek () == ':')) - { - return identifier (c); - } - - // Check for punctuation after identifier because ':' in - // scoped name will trigger. - // - if (operator_ (c, token)) return token; - - if (punctuation (c, token)) return token; - - cerr << c.line () << ": error: unable to derive any token " - << "from \'" << c << "\'" << endl; - - - //Do some primitive error recovery. - // - while (c != ';') - { - c = skip_space (get ()); - if (is_eos (c)) return TokenPtr (new EndOfStream (0)); - } - } - } - - LexicalAnalyzer::Char LexicalAnalyzer:: - skip_space (Char c) - { - while (!is_eos (c) && is_space (c)) c = get (); - - return c; - } - - bool LexicalAnalyzer:: - read_simple_identifier (string& lexeme, CharBuffer& buf) - { - Char c = skip_space (get ()); - - buf.push_back (c); - - if (is_eos (c)) return false; - - if (is_alpha (c) || c == '_') - { - lexeme += c; - - while (true) - { - c = peek (); - - if (is_eos (c)) - { - cerr << "warning: no new line at the end of file" << endl; - break; - } - - if (is_alnum (c) || c == '_') - { - get (); - buf.push_back (c); - lexeme += c; - continue; - } - - break; - } - - return true; - } - - return false; - } - - - bool LexicalAnalyzer:: - traverse_identifier_tree (string& lexeme, IdentifierTreeNode const& node) - { - if (node.map_.empty ()) return true; - - CharBuffer buf; - string part; - - if (read_simple_identifier (part, buf)) - { - IdentifierTreeNode::PrefixMap::const_iterator i ( - node.map_.find (part)); - - if (i != node.map_.end ()) - { - if (traverse_identifier_tree (part, i->second)) - { - lexeme += " " + part; - return true; - } - } - } - - // Return characters to the buffer in case we couldn't - // match anything. - - for(;!buf.empty (); buf.pop_back ()) ret (buf.back ()); - - // Check is the node.map_ contains empty key which indicates - // that what we've got is good enough. - // - return node.map_.find ("") != node.map_.end (); - } - - - TokenPtr LexicalAnalyzer:: - identifier (Char c) - { - unsigned long line (c.line ()); - - string lexeme; - - enum - { - simple, - scoped, - other - } type = simple; - - if (c == ':') - { - //@@ not checking for eos here - if ((c = get ()) != ':') - { - cerr << "error: " << c.line () << ": \':\' expected." - << endl; - - return TokenPtr (new EndOfStream (0)); - //@@ error handling is lame for lexical analyzer. - } - - lexeme = "::"; - type = scoped; - c = get (); - } - - // First caracter of an identifier. - // - if (is_eos (c)) - { - cerr << "error: invalid identifier" << endl; - return TokenPtr (new EndOfStream (0)); - } - - if (is_alpha (c) || c == '_') - { - lexeme += c; - } - else - { - cerr << "error: invalid identifier" << endl; - return TokenPtr (new EndOfStream (0)); - } - - while (true) - { - c = peek (); - - if (is_eos (c)) - { - cerr << "warning: no new line at the end of file" << endl; - break; - } - - // cerr << "lexer::identifier: peeking on \'" << c.char_ () - // << "\'; current lexeme \'" << lexeme << "\'" - // << endl; - - if (is_alnum (c) || c == '_') - { - get (); - lexeme += c; - continue; - } - - if (c == ':' && peek_more () == ':') - { - get (); - get (); - lexeme += "::"; - if (type == simple) type = other; - continue; - } - - break; - } - - //cerr << "lexer: found identifier with lexeme \'" - // << lexeme << "\'" << endl; - - if (type == simple) - { - // Check if it's a keyword. - { - KeywordTable::const_iterator i (keyword_table_.find (lexeme)); - - if (i != keyword_table_.end ()) - { - return TokenPtr (new Keyword (*i, line)); - } - - // This part is tricky. If it's after 6pm then come back - // in the morning. In essence I want the same name - // ('string' and 'wstring') to be recognized as a keyword - // in one case and as an identifier in the other. When - // we see 'string' followed by '<' we want it to be a - // keyword. If it's just all by itself then we want to treat - // it as an identifier (since it is a complete construct - // by itself). So here we are going to check for that. - // - - if (lexeme == "string" || lexeme == "wstring") - { - Char c = skip_space (get ()); - ret (c); - - if (c == '<') - { - return TokenPtr (new Keyword (lexeme, line)); - } - } - } - - // Check if it is a reserved identifier. - // - - { - IdentifierTreeNode::PrefixMap::const_iterator i ( - identifier_tree_.map_.find (lexeme)); - - if (i != identifier_tree_.map_.end ()) - { - if (traverse_identifier_tree (lexeme, i->second)) - { - return TokenPtr ( - new SimpleIdentifier (lexeme, line)); - } - else - { - //@@ error - } - } - } - - // Check if it is a boolean literal. - // - if (lexeme == "TRUE" || lexeme == "FALSE") - { - return TokenPtr (new BooleanLiteral (lexeme, line)); - } - - // Default to SimpleIdentifier. - // - return TokenPtr (new SimpleIdentifier (lexeme, line)); - } - else if (type == scoped) - { - return TokenPtr (new ScopedIdentifier (lexeme, line)); - } - else //type == other - { - return TokenPtr (new Identifier (lexeme, line)); - } - } - - bool LexicalAnalyzer:: - punctuation (Char c, TokenPtr& token) - { - unsigned long line (c.line ()); - - PunctuationTable::const_iterator i = punctuation_table_.begin (); - - while (true) - { - for (;i != punctuation_table_.end () && (*i)[0] != c; ++i); - - if (i == punctuation_table_.end ()) return false; - - if (i->size () == 2) // two-character punctuation - { - Char pc (peek ()); - - if (!is_eos (pc) && (*i)[1] == pc) - { - get (); - } - else - { - // Move on to the next candidate. - // - ++i; - continue; - } - } - - token = TokenPtr (new Punctuation (*i, line)); - return true; - } - } - - bool LexicalAnalyzer:: - operator_ (Char c, TokenPtr& token) - { - unsigned long line (c.line ()); - - OperatorTable::const_iterator i = operator_table_.begin (); - - while (true) - { - for (;i != operator_table_.end () && (*i)[0] != c; ++i); - - if (i == operator_table_.end ()) return false; - - if (i->size () == 2) // two-character operator - { - Char pc (peek ()); - - if (!is_eos (pc) && (*i)[1] == pc) - { - get (); - } - else - { - // Move on to the next candidate. - // - ++i; - continue; - } - } - - token = TokenPtr (new Operator (*i, line)); - return true; - } - } - - pair<char, size_t> LexicalAnalyzer:: - scan_char (char const* s) throw (Format) - { - if (*s == '\0') - { - throw Format (); - } - else if (*s != '\\') - { - return pair<char, size_t> (*s, 1); - } - else - { - // Expected size is 2. - // - pair<char, size_t> r ('\0', 2); - - switch (*++s) - { - case 'n': - r.first = '\n'; - break; - - case 't': - r.first = '\t'; - break; - - case 'v': - r.first = '\v'; - break; - - case 'b': - r.first = '\b'; - break; - - case 'r': - r.first = '\r'; - break; - - case 'f': - r.first = '\f'; - break; - - case 'a': - r.first = '\a'; - break; - - case '\\': - r.first = '\\'; - break; - - case '?': - r.first = '\?'; - break; - - case '\'': - r.first = '\''; - break; - - case '"': - r.first = '\"'; - break; - - case 'x': - { - // hex - - char c (*++s); - - if(is_hex_digit (c)) - { - // Maximum 2 digits. - // - string holder (s, 2); - - char* end; - - // Cannot fail. -1 < v < 256. - // - long v (strtol(holder.c_str (), &end, 16)); - - r.first = static_cast<char> (v); - r.second = 2 + end - holder.c_str (); - } - else - { - throw Format (); - } - break; - } - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - { - // Maximum 3 digits. - // - string holder (s, 3); - - char* end; - - // Cannot fail. - // - long v (strtol(holder.c_str (), &end, 8)); - - if (v < 0 || v > 255) throw Format (); - - r.first = static_cast<char> (v); - r.second = 1 + end - holder.c_str (); - - break; - } - default: - { - throw Format (); - } - } - - return r; - - } - } - - string LexicalAnalyzer:: - scan_string (string const& s) throw (Format) - { - string r; - - char const* p = s.c_str (); - - while (*p != '\0') - { - pair<char, size_t> c (scan_char (p)); - - if (c.first == '\0') throw Format (); - - r += c.first; - p += c.second; - } - - return r; - } - - - bool LexicalAnalyzer:: - character_literal (Char c, TokenPtr& token) - { - if (c != '\'') return false; - - unsigned long line (c.line ()); - string lexeme; - - Char prev (c); - - while (true) - { - c = get (); - - if (is_eos (c)) - { - cerr << "error: end of file while reading character literal" - << endl; - break; - } - - if (c == '\'' && prev != '\\') break; - - lexeme += c; - prev = c; - } - - try - { - pair<char, size_t> r (scan_char (lexeme.c_str ())); - if (r.second != lexeme.size ()) throw Format (); - - token = TokenPtr (new CharacterLiteral (r.first, lexeme, line)); - return true; - } - catch (Format const&) - { - cerr << "error: invalid character literal format" << endl; - return false; - } - } - - bool LexicalAnalyzer:: - string_literal (Char c, TokenPtr& token) - { - if (c != '\"') return false; - - unsigned long line (c.line ()); - string lexeme; - string value; - - try - { - while (true) - { - string r (string_literal_trailer ()); - value += scan_string (r); - lexeme += '\"' + r + '\"'; - - // Check if there are more strings. - // - - c = skip_space (get ()); - - if (c != '\"') - { - ret (c); // put it back - break; - } - - - // Add single space as a string separator. - // - lexeme += " "; - } - - // cerr << "string literal: <" << lexeme << ">/<" << value << ">" - // << endl; - - token = TokenPtr (new StringLiteral (value, lexeme, line)); - return true; - } - catch (Format const&) - { - cerr << "error: invalid string literal format" << endl; - return false; - } - } - - string LexicalAnalyzer:: - string_literal_trailer () - { - string r; - - Char prev ('\"', 0); - - while (true) - { - Char c = get (); - - if (is_eos (c)) - { - cerr << "error: end of file while reading string literal" << endl; - break; - } - - if (c == '\"' && prev != '\\') break; - - r += c; - prev = c; - } - - return r; - } - - unsigned long long LexicalAnalyzer:: - scan_integer (string const& s, unsigned short base) - throw (Format, Boundary) - { - unsigned long long const max (~0ULL); - unsigned long long bound (max / base); - - - char const* p (s.c_str ()); - - // Skip leading 0 if any. - // - while (*p != '\0' && *p == '0') ++p; - - - unsigned long long result (0); - - while(*p != '\0') - { - unsigned short digit; - - char c (to_upper (*p)); - - if (is_dec_digit (c)) - { - digit = c - '0'; - } - else if (is_hex_digit (c)) - { - digit = c - 'A' + 10; - } - else - { - throw Format (); - } - - if (digit > base) throw Format (); - - if (result > bound) - { - // cerr << "boundary: base: " << base << "; bound: " << std::hex - // << bound << "; result: " << std::hex << result << endl; - - throw Boundary (); - } - - - result *= base; - result += digit; - - ++p; - } - - return result; - } - - //@@ need to return unparsed characters for recovery (like in - // integer_literal). - // - bool LexicalAnalyzer:: - integer_literal (Char c, TokenPtr& token) - { - try - { - if (!is_dec_digit (c)) return false; - - unsigned long line (c.line ()); - - ret (c); // Temporarily return the character. - - string lexeme, number; - - unsigned short base (10); // assume 10 - - // Determine base and get rid of its identifications. - // - // - if (c == '0') - { - lexeme += c; - - get (); - - Char pc (peek ()); - - if (!is_eos (pc)) - { - if (pc == 'x' || pc == 'X') - { - get (); - base = 16; - lexeme += pc; - - c = peek (); - } - else - { - base = 8; - if (!is_oct_digit (pc)) - { - number += c; // this is needed to handle single 0 - } - - c = pc; - } - } - else - { - number += c; // this is needed to handle single 0 - } - } - - while (true) - { - // Make sure c is a legal character. - // - - if (is_eos (c)) break; - - if (base == 8 && !is_oct_digit (c)) - { - break; - } - else if (base == 10 && !is_dec_digit (c)) - { - break; - } - else if (!is_hex_digit (c)) - { - break; - } - - get (); - - lexeme += c; - number += c; - - c = peek (); - } - - if (number.empty ()) throw Format (); - - unsigned long long value (scan_integer (number, base)); - - //cerr << "integer literal: <" << lexeme << ">/<" << number << ">/<" - // << value << ">" << endl; - - token = TokenPtr (new IntegerLiteral (value, lexeme, line)); - return true; - } - catch (Format const&) - { - cerr << "error: invalid integer literal format" << endl; - return false; - } - catch (Boundary const&) - { - cerr << "error: integer literal is too big" << endl; - return false; - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/LexicalAnalyzer.hpp b/TAO/CIAO/CCF/CCF/IDL2/LexicalAnalyzer.hpp deleted file mode 100644 index e75641e40c8..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/LexicalAnalyzer.hpp +++ /dev/null @@ -1,203 +0,0 @@ -// file : CCF/IDL2/LexicalAnalyzer.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_LEXICAL_ANALYZER_HPP -#define CCF_IDL2_LEXICAL_ANALYZER_HPP - -#include <set> -#include <map> -#include <deque> -#include <locale> -#include <string> - -#include "CCF/CompilerElements/TokenStream.hpp" -#include "CCF/CompilerElements/PreprocessorToken.hpp" -#include "CCF/IDL2/Token.hpp" - -namespace CCF -{ - namespace IDL2 - { - //@@ Call to get() after eof is illegal. - // - // - - class LexicalAnalyzer : public CompilerElements::TokenStream<TokenPtr> - { - public: - virtual - ~LexicalAnalyzer () throw () {} - - public: - - typedef - CompilerElements::CPP::Token - Char; - - typedef - std::deque<Char> - CharBuffer; - - LexicalAnalyzer (CompilerElements::TokenStream<Char>& is); - - virtual TokenPtr - next (); - - protected: - virtual Char - skip_space (Char c); - - virtual TokenPtr - identifier (Char c); - - virtual bool - punctuation (Char c, TokenPtr& token); - - virtual bool - operator_ (Char c, TokenPtr& token); - - virtual bool - character_literal (Char c, TokenPtr& token); - - virtual bool - string_literal (Char c, TokenPtr& token); - - virtual std::string - string_literal_trailer (); - - virtual bool - integer_literal (Char c, TokenPtr& token); - - // Literal scanners. - // - // - class Format {}; - class Boundary {}; - - std::pair<char, std::size_t> - scan_char (char const* s) throw (Format); - - std::string - scan_string (std::string const& s) throw (Format); - - unsigned long long - scan_integer (std::string const& s, unsigned short base) - throw (Format, Boundary); - - protected: - virtual Char - get (); - - virtual Char - peek (); - - virtual Char - peek_more (); - - virtual void - ret (Char const& c); - - protected: - // Character utility functions. - // - bool - is_alpha (char c) const - { - return std::isalpha (c, loc_); - } - - bool - is_oct_digit (char c) const - { - return std::isdigit (c, loc_) && c != '8' && c != '9'; - } - - bool - is_dec_digit (char c) const - { - return std::isdigit (c, loc_); - } - - bool - is_hex_digit (char c) const - { - return std::isxdigit (c, loc_); - } - - bool - is_alnum (char c) const - { - return std::isalnum (c, loc_); - } - - bool - is_space (char c) const - { - return std::isspace (c, loc_); - } - - bool - is_eos (Char const& c) const - { - return c == Char::eos; - } - - char - to_upper (char c) const - { - return std::toupper (c, loc_); - } - - protected: - typedef - std::set<std::string> - KeywordTable; - - struct IdentifierTreeNode - { - typedef - std::map<std::string, IdentifierTreeNode> - PrefixMap; - - IdentifierTreeNode& - operator[] (char const* key) - { - return map_[key]; - } - - PrefixMap map_; - }; - - typedef - std::set<std::string> - PunctuationTable; - - typedef - std::set<std::string> - OperatorTable; - - protected: - bool - read_simple_identifier (std::string& lexeme, CharBuffer& buf); - - bool - traverse_identifier_tree (std::string& lexeme, - IdentifierTreeNode const& node); - - protected: - std::locale loc_; - - CompilerElements::TokenStream<Char>& is_; - - CharBuffer ibuffer_; - - KeywordTable keyword_table_; - IdentifierTreeNode identifier_tree_; - PunctuationTable punctuation_table_; - OperatorTable operator_table_; - }; - } -} - -#endif // CCF_IDL2_LEXICAL_ANALYZER_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Parser.cpp b/TAO/CIAO/CCF/CCF/IDL2/Parser.cpp deleted file mode 100644 index bfc725d4d36..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Parser.cpp +++ /dev/null @@ -1,1445 +0,0 @@ -// file : CCF/IDL2/Parser.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/Parser.hpp" - -// -// Note: DO NOT run emacs indenter (or any other indentation tool) over -// this file because it will most likely break BNF indentation. -// - -namespace CCF -{ - namespace IDL2 - { - using Parsing::DiagnosticType; - using Parsing::RecoveryMethod; - - Parser:: - ~Parser () - { - } - - Parser:: - Parser (CompilerElements::Context& context, - Diagnostic::Stream& dout, - LexicalAnalyzer const& l, - SemanticAction::Factory& f) - : dout_ (dout), - lexer_ (l), - actions_ (f), - - error_handler (context, dout), - - ABSTRACT ("abstract" ), - ATTRIBUTE ("attribute" ), - BINCLUDE ("__binclude" ), - CASE ("case" ), - CONST ("const" ), - CUSTOM ("custom" ), - DEFAULT ("default" ), - ENUM ("enum" ), - EXCEPTION ("exception" ), - FACTORY ("factory" ), - GETRAISES ("getraises" ), - IN ("in" ), - INOUT ("inout" ), - INTERFACE ("interface" ), - QINCLUDE ("__qinclude" ), - LOCAL ("local" ), - MODULE ("module" ), - NATIVE ("native" ), - ONEWAY ("oneway" ), - OUT ("out" ), - PRIVATE ("private" ), - PUBLIC ("public" ), - RAISES ("raises" ), - READONLY ("readonly" ), - SEQUENCE ("sequence" ), - SETRAISES ("setraises" ), - STRING ("string" ), - STRUCT ("struct" ), - SUPPORTS ("supports" ), - SWITCH ("switch" ), - TRUNCATABLE ("truncatable"), - TYPEDEF ("typedef" ), - TYPEID ("typeid" ), - TYPEPREFIX ("typeprefix" ), - UNION ("union" ), - VALUETYPE ("valuetype" ), - WSTRING ("wstring" ), - - COLON (":"), - COMMA (","), - LCBRACE ("{"), - RCBRACE ("}"), - LSBRACE ("["), - RSBRACE ("]"), - LPAREN ("("), - RPAREN (")"), - LT ("<"), - GT (">"), - SEMI (";"), - - - ADD ("+"), - AND ("&"), - COM ("~"), - DIV ("/"), - EQ ("="), - LSH ("<<"), - MUL ("*"), - OR ("|"), - REM ("%"), - SUB ("-"), - RSH (">>"), - XOR ("^"), - - - // Attribute - // - // - act_attribute_begin_ro ( - f.attribute (), &SemanticAction::Attribute::begin_ro), - - act_attribute_begin_rw ( - f.attribute (), &SemanticAction::Attribute::begin_rw), - - act_attribute_type ( - f.attribute (), &SemanticAction::Attribute::type), - - act_attribute_name ( - f.attribute (), &SemanticAction::Attribute::name), - - act_attribute_get_raises ( - f.attribute (), &SemanticAction::Attribute::get_raises), - - act_attribute_set_raises ( - f.attribute (), &SemanticAction::Attribute::set_raises), - - act_attribute_end ( - f.attribute (), &SemanticAction::Attribute::end), - - // Const - // - act_const_begin ( - f.const_ (), &SemanticAction::Const::begin), - - act_const_expr ( - f.const_ (), &SemanticAction::Const::expr), - - // Enum - // - // - act_enum_begin ( - f.enum_ (), &SemanticAction::Enum::begin), - - act_enum_enumerator ( - f.enum_ (), &SemanticAction::Enum::enumerator), - - act_enum_end ( - f.enum_ (), &SemanticAction::Enum::end), - - - // Expression - // - - act_const_expr_flush ( - f.numeric_expression (), - &SemanticAction::NumericExpression::flush), - - act_numeric_expression_const ( - f.numeric_expression (), - &SemanticAction::NumericExpression::const_), - - act_numeric_expression_integer_literal ( - f.numeric_expression (), - &SemanticAction::NumericExpression::integer_literal), - - act_numeric_expression_pos ( - f.numeric_expression (), - &SemanticAction::NumericExpression::pos), - - act_numeric_expression_neg ( - f.numeric_expression (), - &SemanticAction::NumericExpression::neg), - - act_numeric_expression_com ( - f.numeric_expression (), - &SemanticAction::NumericExpression::com), - - act_numeric_expression_mul ( - f.numeric_expression (), - &SemanticAction::NumericExpression::mul), - - act_numeric_expression_div ( - f.numeric_expression (), - &SemanticAction::NumericExpression::div), - - act_numeric_expression_rem ( - f.numeric_expression (), - &SemanticAction::NumericExpression::rem), - - act_numeric_expression_add ( - f.numeric_expression (), - &SemanticAction::NumericExpression::add), - - act_numeric_expression_sub ( - f.numeric_expression (), - &SemanticAction::NumericExpression::sub), - - act_numeric_expression_rsh ( - f.numeric_expression (), - &SemanticAction::NumericExpression::rsh), - - act_numeric_expression_lsh ( - f.numeric_expression (), - &SemanticAction::NumericExpression::lsh), - - act_numeric_expression_and ( - f.numeric_expression (), - &SemanticAction::NumericExpression::and_), - - act_numeric_expression_xor ( - f.numeric_expression (), - &SemanticAction::NumericExpression::xor_), - - act_numeric_expression_or ( - f.numeric_expression (), - &SemanticAction::NumericExpression::or_), - - // Exception - // - // - act_exception_begin ( - f.exception (), &SemanticAction::Exception::begin), - - act_exception_open_scope ( - f.exception (), &SemanticAction::Scope::open_scope), - - act_exception_close_scope ( - f.exception (), &SemanticAction::Scope::close_scope), - - act_exception_end ( - f.exception (), &SemanticAction::Exception::end), - - - // Include - // - // - act_include_quote ( - f.include (), &SemanticAction::Include::quote), - - act_include_bracket ( - f.include (), &SemanticAction::Include::bracket), - - act_include_end ( - f.include (), &SemanticAction::Include::end), - - - // Interface - // - // - act_interface_begin_abstract_def ( - f.interface (), &SemanticAction::Interface::begin_abstract_def), - - act_interface_begin_abstract_fwd ( - f.interface (), &SemanticAction::Interface::begin_abstract_fwd), - - act_interface_begin_local_def ( - f.interface (), &SemanticAction::Interface::begin_local_def), - - act_interface_begin_local_fwd ( - f.interface (), &SemanticAction::Interface::begin_local_fwd), - - act_interface_begin_unconstrained_def ( - f.interface (), - &SemanticAction::Interface::begin_unconstrained_def), - - act_interface_begin_unconstrained_fwd ( - f.interface (), - &SemanticAction::Interface::begin_unconstrained_fwd), - - act_interface_inherits ( - f.interface (), &SemanticAction::Interface::inherits), - - act_interface_open_scope ( - f.interface (), &SemanticAction::Scope::open_scope), - - act_interface_close_scope ( - f.interface (), &SemanticAction::Scope::close_scope), - - act_interface_end (f.interface (), &SemanticAction::Interface::end), - - - // Member - // - // - act_member_type ( - f.member (), &SemanticAction::Member::type), - - act_member_name ( - f.member (), &SemanticAction::Member::name), - - act_member_end ( - f.member (), &SemanticAction::Member::end), - - - // Module - // - // - act_module_begin (f.module (), &SemanticAction::Module::begin), - - act_module_open_scope ( - f.module (), &SemanticAction::Scope::open_scope), - - act_module_close_scope ( - f.module (), &SemanticAction::Scope::close_scope), - - act_module_end (f.module (), &SemanticAction::Module::end), - - - // Native - // - // - act_native_name ( - f.native (), &SemanticAction::Native::name), - - act_native_end ( - f.native (), &SemanticAction::Native::end), - - - // Operation - // - // - act_operation_one_way ( - f.operation (), &SemanticAction::Operation::one_way), - - act_operation_two_way ( - f.operation (), &SemanticAction::Operation::two_way), - - act_operation_type ( - f.operation (), &SemanticAction::Operation::type), - - act_operation_name ( - f.operation (), &SemanticAction::Operation::name), - - act_operation_parameter ( - this, &Parser::act_operation_parameter_core), - - act_operation_raises ( - f.operation (), &SemanticAction::Operation::raises), - - - // Struct - // - // - act_struct_begin_def ( - f.struct_ (), &SemanticAction::Struct::begin_def), - - act_struct_begin_fwd ( - f.struct_ (), &SemanticAction::Struct::begin_fwd), - - act_struct_open_scope ( - f.struct_ (), &SemanticAction::Scope::open_scope), - - act_struct_close_scope ( - f.struct_ (), &SemanticAction::Scope::close_scope), - - act_struct_end (f.struct_ (), &SemanticAction::Struct::end), - - - // Typedef - // - // - act_typedef_begin ( - f.typedef_ (), &SemanticAction::Typedef::begin), - - act_typedef_begin_unbounded_seq ( - f.typedef_ (), &SemanticAction::Typedef::begin_unbounded_seq), - - act_typedef_begin_bounded_seq ( - f.typedef_ (), &SemanticAction::Typedef::begin_bounded_seq), - - act_typedef_begin_bounded_string ( - f.typedef_ (), &SemanticAction::Typedef::begin_bounded_string), - - act_typedef_begin_bounded_wstring ( - f.typedef_ (), &SemanticAction::Typedef::begin_bounded_wstring), - - act_typedef_begin_array ( - f.typedef_ (), &SemanticAction::Typedef::begin_array), - - act_typedef_bound ( - f.typedef_ (), &SemanticAction::Typedef::bound), - - act_typedef_declarator ( - f.typedef_ (), &SemanticAction::Typedef::declarator), - - act_typedef_end ( - f.typedef_ (), &SemanticAction::Typedef::end), - - - // TypeId - // - // - act_type_id_begin (f.type_id (), &SemanticAction::TypeId::begin), - act_type_id_end (f.type_id (), &SemanticAction::TypeId::end), - - - // TypePrefix - // - // - act_type_prefix_begin (f.type_prefix (), - &SemanticAction::TypePrefix::begin), - - act_type_prefix_end (f.type_prefix (), - &SemanticAction::TypePrefix::end), - - // Union - // - // - act_union_begin_def ( - f.union_ (), &SemanticAction::Union::begin_def), - - act_union_begin_fwd ( - f.union_ (), &SemanticAction::Union::begin_fwd), - - act_union_type ( - f.union_ (), &SemanticAction::Union::type), - - act_union_open_scope ( - f.union_ (), &SemanticAction::Scope::open_scope), - - act_union_member_type ( - f.union_ (), &SemanticAction::Union::member_type), - - act_union_member_name ( - f.union_ (), &SemanticAction::Union::member_name), - - act_union_close_scope ( - f.union_ (), &SemanticAction::Scope::close_scope), - - act_union_end ( - f.union_ (), &SemanticAction::Union::end), - - - // ValueType - // - // - act_value_type_begin_abstract_def ( - f.value_type (), &SemanticAction::ValueType::begin_abstract_def), - - act_value_type_begin_abstract_fwd ( - f.value_type (), &SemanticAction::ValueType::begin_abstract_fwd), - - act_value_type_begin_concrete_def ( - f.value_type (), &SemanticAction::ValueType::begin_concrete_def), - - act_value_type_begin_concrete_fwd ( - f.value_type (), &SemanticAction::ValueType::begin_concrete_fwd), - - act_value_type_inherits ( - f.value_type (), &SemanticAction::ValueType::inherits), - - act_value_type_supports ( - f.value_type (), &SemanticAction::ValueType::supports), - - act_value_type_open_scope ( - f.value_type (), &SemanticAction::Scope::open_scope), - - act_value_type_close_scope ( - f.value_type (), &SemanticAction::Scope::close_scope), - - act_value_type_end ( - f.value_type (), &SemanticAction::ValueType::end), - - - // ValueTypeFactory - // - act_value_type_factory_name ( - f.value_type_factory (), &SemanticAction::ValueTypeFactory::name), - - act_value_type_factory_parameter ( - f.value_type_factory (), &SemanticAction::ValueTypeFactory::parameter), - - act_value_type_factory_raises ( - f.value_type_factory (), &SemanticAction::ValueTypeFactory::raises), - - - - // ValueTypeMember - // - act_value_type_member_begin_private ( - f.value_type_member (), - &SemanticAction::ValueTypeMember::begin_private), - - act_value_type_member_begin_public ( - f.value_type_member (), - &SemanticAction::ValueTypeMember::begin_public), - - act_value_type_member_type ( - f.value_type_member (), &SemanticAction::ValueTypeMember::type), - - act_value_type_member_name ( - f.value_type_member (), &SemanticAction::ValueTypeMember::name), - - act_value_type_member_end ( - f.value_type_member (), &SemanticAction::ValueTypeMember::end) - - { - language = - guard - ( - *import >> +declaration >> EOS - - )[root_error_handler] - ; - - - /* - language = - guard - ( - +(*import >> (+declaration)) >> EOS - ) - ; - */ - - import = include_decl - ; - - include_decl = - ( - (QINCLUDE >> string_literal[act_include_quote]) - | (BINCLUDE >> string_literal[act_include_bracket]) - ) - >> SEMI[act_include_end] - ; - - // There are two classes of types: First class include - // interface and valuetype. Seond class include all other - // types like struct, etc. I wonder how I can represent it - // in the grammar. - // - - declaration = - abstract_type_decl - | const_decl - | extension - | local_type_decl - | module_decl - | type_decl - | type_id_decl - | type_prefix_decl - | unconstrained_interface_decl - | concrete_value_type_decl - ; - - type_decl = - enum_decl - | exception_decl - | native_decl - | struct_decl - | typedef_decl - | union_decl - ; - - type_id_decl = - TYPEID - >> ( - identifier - >> string_literal - )[act_type_id_begin] - >> SEMI[act_type_id_end] - ; - - type_prefix_decl = - TYPEPREFIX - >> ( - identifier - >> string_literal - )[act_type_prefix_begin] - >> SEMI[act_type_prefix_end] - ; - - abstract_type_decl = - ABSTRACT - >> guard - ( - assertion ("interface or valuetype declaration expected") - ( - (INTERFACE >> assertion ()(abstract_interface_decl)) - | - (VALUETYPE >> assertion ()(abstract_value_type_decl)) - ) - )[error_handler] - ; - - local_type_decl = - LOCAL - >> guard - ( - assertion ("interface declaration expected") - ( - INTERFACE >> assertion ()(local_interface_decl) - ) - )[error_handler] - ; - - module_decl = - MODULE - >> guard - ( - assertion ("module name expected") - ( - simple_identifier[act_module_begin] - ) - >> assertion ("\'{\' expected", - f.module (), - &SemanticAction::Module::end) - ( - LCBRACE[act_module_open_scope] - ) - >> assertion ("declaration expected", - f.module (), - &SemanticAction::Module::close_scope, - &SemanticAction::Module::end, - RecoveryMethod::STANDARD, - DiagnosticType::BEFORE) - ( - hood (+declaration) - [ - handler (f.module (), - &SemanticAction::Module::close_scope, - &SemanticAction::Module::end) - ] - ) - >> assertion ("declaration or \'}\' expected", - f.module (), - &SemanticAction::Module::close_scope, - &SemanticAction::Module::end, - RecoveryMethod::STANDARD, - DiagnosticType::BEFORE) - ( - RCBRACE[act_module_close_scope] - ) - >> assertion ("\';\' is missing", - f.module (), - &SemanticAction::Module::end, - RecoveryMethod::NONE) - ( - SEMI[act_module_end] - ) - )[error_handler] - ; - - // const - // - // - const_decl = - CONST - >> (identifier >> simple_identifier)[act_const_begin] - >> EQ[act_const_expr_flush] // flush expression stacks - >> const_expr[act_const_expr] - >> SEMI - ; - - - // const expression - // - // - - const_expr = - boolean_const_expr - | character_const_expr - | numeric_const_expr - | string_const_expr - ; - - boolean_const_expr = boolean_literal; - - character_const_expr = character_literal; - - - // - // - numeric_const_expr = numeric_or_expr; - - numeric_or_expr = - numeric_xor_expr - >> *(OR >> numeric_xor_expr)[act_numeric_expression_or] - ; - - numeric_xor_expr = - numeric_and_expr - >> *(XOR >> numeric_and_expr)[act_numeric_expression_xor] - ; - - - numeric_and_expr = - numeric_shift_expr - >> *(AND >> numeric_shift_expr)[act_numeric_expression_and] - ; - - numeric_shift_expr = - numeric_add_expr - >> *( - (RSH >> numeric_add_expr)[act_numeric_expression_rsh] - | (LSH >> numeric_add_expr)[act_numeric_expression_lsh] - ) - ; - - numeric_add_expr = - numeric_mul_expr - >> *( - (ADD >> numeric_mul_expr)[act_numeric_expression_add] - | (SUB >> numeric_mul_expr)[act_numeric_expression_sub] - ) - ; - - numeric_mul_expr = - numeric_unary_expr - >> *( - (MUL >> numeric_unary_expr)[act_numeric_expression_mul] - | (DIV >> numeric_unary_expr)[act_numeric_expression_div] - | (REM >> numeric_unary_expr)[act_numeric_expression_rem] - ) - ; - - numeric_unary_expr = - numeric_primary_expr - | ADD >> numeric_primary_expr[act_numeric_expression_pos] - | SUB >> numeric_primary_expr[act_numeric_expression_neg] - | COM >> numeric_primary_expr[act_numeric_expression_com] - ; - - numeric_primary_expr = - identifier[act_numeric_expression_const] - | integer_literal[act_numeric_expression_integer_literal] - | LPAREN >> numeric_const_expr >> RPAREN - ; - - - // - // - string_const_expr = string_literal; - - - // enum - // - // - enum_decl = - ENUM - >> simple_identifier[act_enum_begin] - >> LCBRACE - >> enumerator_decl >> *(COMMA >> enumerator_decl) - >> RCBRACE - >> SEMI[act_enum_end] - ; - - enumerator_decl = identifier[act_enum_enumerator]; - - - // interface - // - // - abstract_interface_decl = - guard - ( - ( - simple_identifier - >> SEMI - )[act_interface_begin_abstract_fwd][act_interface_end] - | - ( - ( - simple_identifier - >> COLON - )[act_interface_begin_abstract_def] - - >> interface_inheritance_spec - >> LCBRACE[act_interface_open_scope] - >> interface_def_trailer - ) - | - ( - ( - simple_identifier - >> LCBRACE - )[act_interface_begin_abstract_def][act_interface_open_scope] - - >> interface_def_trailer - ) - )[error_handler] - ; - - - local_interface_decl = - guard - ( - ( - simple_identifier - >> SEMI - )[act_interface_begin_local_fwd][act_interface_end] - | - ( - ( - simple_identifier - >> COLON - )[act_interface_begin_local_def] - - >> interface_inheritance_spec - >> LCBRACE[act_interface_open_scope] - >> interface_def_trailer - ) - | - ( - ( - simple_identifier - >> LCBRACE - )[act_interface_begin_local_def][act_interface_open_scope] - - >> interface_def_trailer - ) - )[error_handler] - ; - - - unconstrained_interface_decl = - guard - ( - INTERFACE - >> ( - ( - simple_identifier - >> SEMI - )[act_interface_begin_unconstrained_fwd][act_interface_end] - | - ( - ( - simple_identifier - >> COLON - )[act_interface_begin_unconstrained_def] - - >> interface_inheritance_spec - >> LCBRACE[act_interface_open_scope] - >> interface_def_trailer - ) - | - ( - ( - simple_identifier - >> LCBRACE - )[act_interface_begin_unconstrained_def][act_interface_open_scope] - - >> interface_def_trailer - ) - ) - )[error_handler] - ; - - interface_inheritance_spec = - assertion ("interface name expected", - f.interface (), - &SemanticAction::Interface::end) - ( - identifier[act_interface_inherits] - ) - >> *( - COMMA - >> assertion ("interface name expected", - f.interface (), - &SemanticAction::Interface::end) - ( - identifier[act_interface_inherits] - ) - ) - ; - - interface_def_trailer = - interface_body - >> assertion ("declaration or \'}\' expected", - f.interface (), - &SemanticAction::Interface::close_scope, - &SemanticAction::Interface::end, - RecoveryMethod::STANDARD, - DiagnosticType::BEFORE) - ( - RCBRACE[act_interface_close_scope] - ) - >> assertion ("\';\' is missing", - f.interface (), - &SemanticAction::Interface::end, - RecoveryMethod::NONE) - ( - SEMI[act_interface_end] - ) - ; - - /* - - interface_decl_trailer = - assertion ("\';\', \'{\' or inheritance specification expected", - f.interface (), - &SemanticAction::Interface::end) - ( - SEMI[act_interface_end] - | - ( - !(COLON >> interface_inheritance_spec) - >> LCBRACE[act_interface_open_scope] - >> interface_body - >> assertion ("declaration or \'}\' expected", - f.interface (), - &SemanticAction::Interface::close_scope, - &SemanticAction::Interface::end, - RecoveryMethod::STANDARD, - DiagnosticType::BEFORE) - ( - RCBRACE[act_interface_close_scope] - ) - >> assertion ("\';\' is missing", - f.interface (), - &SemanticAction::Interface::end, - RecoveryMethod::NONE) - ( - SEMI[act_interface_end] - ) - ) - ) - ; - */ - - interface_body = - *( - const_decl - | type_decl - | type_id_decl - | type_prefix_decl - - | attribute_decl - | operation_decl - ) - ; - - - // attribute - // - // - attribute_decl = - ( - (READONLY >> ATTRIBUTE)[act_attribute_begin_ro] - >> attribute_ro_decl_trailer - ) - | - ( - ATTRIBUTE[act_attribute_begin_rw] - >> attribute_rw_decl_trailer - ) - ; - - - attribute_ro_decl_trailer = - identifier[act_attribute_type] - >> simple_identifier[act_attribute_name] - >> !( - (RAISES >> LPAREN >> attribute_get_raises_list >> RPAREN) - | - +(COMMA >> simple_identifier[act_attribute_name]) - ) - >> SEMI[act_attribute_end] - ; - - attribute_rw_decl_trailer = - identifier[act_attribute_type] - >> simple_identifier[act_attribute_name] - >> !( - attribute_rw_raises_spec - | - +(COMMA >> simple_identifier[act_attribute_name]) - ) - >> SEMI[act_attribute_end] - ; - - attribute_rw_raises_spec = - ( - (GETRAISES >> LPAREN >> attribute_get_raises_list >> RPAREN) - >> !(SETRAISES >> LPAREN >> attribute_set_raises_list >> RPAREN) - ) - | - (SETRAISES >> LPAREN >> attribute_set_raises_list >> RPAREN) - ; - - attribute_get_raises_list = - identifier[act_attribute_get_raises] - >> *(COMMA >> identifier[act_attribute_get_raises]) - ; - - - attribute_set_raises_list = - identifier[act_attribute_set_raises] - >> *(COMMA >> identifier[act_attribute_set_raises]) - ; - - - // exception - // - // - exception_decl = - EXCEPTION - >> simple_identifier[act_exception_begin] - >> LCBRACE[act_exception_open_scope] - >> exception_body - >> RCBRACE[act_exception_close_scope] - >> SEMI[act_exception_end] - ; - - exception_body = - *member_decl - ; - - - // direction specifier - // - // - direction_specifier = - IN - | OUT - | INOUT - ; - - - // member - // - // - member_decl = - identifier[act_member_type] - >> simple_identifier[act_member_name] - >> *(COMMA >> simple_identifier[act_member_name]) - >> SEMI[act_member_end] - ; - - // native - // - // - native_decl = - NATIVE - >> simple_identifier[act_native_name] - >> SEMI[act_native_end] - ; - - - // operation - // - // - operation_decl = - ( - ( - ONEWAY[act_operation_one_way] - >> identifier[act_operation_type] - ) - | - ( - identifier[act_operation_two_way][act_operation_type] - ) - ) - >> operation_decl_trailer - ; - - - operation_decl_trailer = - simple_identifier[act_operation_name] - >> LPAREN - >> operation_parameter_list - >> RPAREN - >> !(RAISES >> LPAREN >> operation_raises_list >> RPAREN) - >> SEMI - ; - - operation_parameter_list = - *( - operation_parameter - >> *(COMMA >> operation_parameter) - ) - ; - - operation_parameter = - ( - direction_specifier - >> identifier - >> simple_identifier - )[act_operation_parameter] - ; - - operation_raises_list = - identifier[act_operation_raises] - >> *(COMMA >> identifier[act_operation_raises]) - ; - - - // struct - // - // - struct_decl = - guard - ( - STRUCT - >> ( - ( - simple_identifier - >> SEMI - )[act_struct_begin_fwd][act_struct_end] - | - ( - ( - simple_identifier - >> LCBRACE - )[act_struct_begin_def][act_struct_open_scope] - >> struct_def_trailer - ) - ) - )[error_handler] - ; - - /* - struct_decl = - STRUCT - >> simple_identifier - >> LCBRACE - >> struct_body - >> RCBRACE - >> SEMI - ; - */ - - - struct_def_trailer = - struct_body - >> assertion ("member or \'}\' expected", - f.struct_ (), - &SemanticAction::Struct::close_scope, - &SemanticAction::Struct::end, - RecoveryMethod::STANDARD, - DiagnosticType::BEFORE) - ( - RCBRACE[act_struct_close_scope] - ) - >> assertion ("\';\' is missing", - f.struct_ (), - &SemanticAction::Struct::end, - RecoveryMethod::NONE) - ( - SEMI[act_struct_end] - ) - ; - - - struct_body = - +member_decl - ; - - - // typedef - // - // - - typedef_decl = - TYPEDEF - >> typedef_type_spec - >> typedef_declarator - >> *(COMMA >> typedef_declarator) - >> SEMI[act_typedef_end] - ; - - typedef_declarator = - ( simple_identifier - >> !( LSBRACE[act_typedef_begin_array][act_const_expr_flush] - >> numeric_const_expr[act_typedef_bound] - >> RSBRACE - ) - >> *( LSBRACE[act_const_expr_flush] - >> numeric_const_expr[act_typedef_bound] - >> RSBRACE - ) - )[act_typedef_declarator] - ; - - typedef_type_spec = - identifier[act_typedef_begin] - | - ( - SEQUENCE - >> LT - >> - ( - (identifier >> GT)[act_typedef_begin_unbounded_seq] - | - ( - identifier[act_typedef_begin_bounded_seq] - >> COMMA[act_const_expr_flush] // flush expression stacks - >> numeric_const_expr[act_typedef_bound] - >> GT - ) - ) - ) - | - ( - STRING - >> LT[act_const_expr_flush] // flush expression stacks - >> numeric_const_expr[act_typedef_begin_bounded_string] - >> GT - ) - | - ( - WSTRING - >> LT[act_const_expr_flush] // flush expression stacks - >> numeric_const_expr[act_typedef_begin_bounded_wstring] - >> GT - ) - ; - - // union - // - // - union_decl = - guard - ( - UNION - >> ( - ( - simple_identifier - >> SEMI - )[act_union_begin_fwd][act_union_end] - | - ( - ( - simple_identifier - >> SWITCH - )[act_union_begin_def] - >> union_def_trailer - ) - ) - )[error_handler] - ; - - union_def_trailer = - LPAREN - >> identifier[act_union_type] - >> RPAREN - >> LCBRACE[act_union_open_scope] - >> union_body - >> assertion ("member or \'}\' expected", - f.union_ (), - &SemanticAction::Union::close_scope, - &SemanticAction::Union::end, - RecoveryMethod::STANDARD, - DiagnosticType::BEFORE) - ( - RCBRACE[act_union_close_scope] - ) - >> assertion ("\';\' is missing", - f.union_ (), - &SemanticAction::Union::end, - RecoveryMethod::NONE) - ( - SEMI[act_union_end] - ) - ; - - - union_body = - +( - +union_case_label - >> identifier[act_union_member_type] - >> simple_identifier[act_union_member_name] - >> SEMI - ) - ; - - union_case_label = - ( - CASE[act_const_expr_flush] // flush expression stacks - >> const_expr - >> COLON - ) - | - (DEFAULT >> COLON) - ; - - // valuetype - // - // - abstract_value_type_decl = - guard - ( - ( - simple_identifier - >> SEMI - )[act_value_type_begin_abstract_fwd][act_value_type_end] - | - ( - ( - simple_identifier - >> COLON - )[act_value_type_begin_abstract_def] - - >> value_type_inheritance_spec - >> !(SUPPORTS >> value_type_supports_spec) - >> LCBRACE[act_value_type_open_scope] - >> value_type_def_trailer - ) - | - ( - ( - simple_identifier - >> SUPPORTS - )[act_value_type_begin_abstract_def] - - >> value_type_supports_spec - >> LCBRACE[act_value_type_open_scope] - >> value_type_def_trailer - ) - | - ( - ( - simple_identifier - >> LCBRACE - )[act_value_type_begin_abstract_def][act_value_type_open_scope] - - >> value_type_def_trailer - ) - )[error_handler] - ; - - concrete_value_type_decl = - guard - ( - VALUETYPE - >> ( - ( - simple_identifier - >> SEMI - )[act_value_type_begin_concrete_fwd][act_value_type_end] - | - ( - ( - simple_identifier - >> COLON - )[act_value_type_begin_concrete_def] - - >> value_type_inheritance_spec - >> !(SUPPORTS >> value_type_supports_spec) - >> LCBRACE[act_value_type_open_scope] - >> value_type_def_trailer - ) - | - ( - ( - simple_identifier - >> SUPPORTS - )[act_value_type_begin_concrete_def] - - >> value_type_supports_spec - >> LCBRACE[act_value_type_open_scope] - >> value_type_def_trailer - ) - | - ( - ( - simple_identifier - >> LCBRACE - )[act_value_type_begin_concrete_def][act_value_type_open_scope] - - >> value_type_def_trailer - ) - ) - )[error_handler] - ; - - - value_type_inheritance_spec = - identifier[act_value_type_inherits] - >> *( - COMMA - >> identifier[act_value_type_inherits] - ) - ; - - value_type_supports_spec = - identifier[act_value_type_supports] - >> *( - COMMA - >> identifier[act_value_type_supports] - ) - ; - - value_type_def_trailer = - value_type_body - >> RCBRACE[act_value_type_close_scope] - >> SEMI[act_value_type_end] - ; - - value_type_body = - *( - const_decl - | type_decl - | type_id_decl - | type_prefix_decl - - | attribute_decl - | operation_decl - | value_type_member_decl - | value_type_factory_decl - ) - ; - - - // valuetype factory - // - // - value_type_factory_decl = - FACTORY - >> simple_identifier[act_value_type_factory_name] - >> LPAREN - >> value_type_factory_parameter_list - >> RPAREN - >> !(RAISES >> LPAREN >> value_type_factory_raises_list >> RPAREN) - >> SEMI - ; - - value_type_factory_parameter_list = - *( - value_type_factory_parameter - >> *(COMMA >> value_type_factory_parameter) - ) - ; - - value_type_factory_parameter = - IN - >> (identifier >> simple_identifier)[act_value_type_factory_parameter] - ; - - value_type_factory_raises_list = - identifier[act_value_type_factory_raises] - >> *(COMMA >> identifier[act_value_type_factory_raises]) - ; - - - // valuetype member - // - // - value_type_member_decl = - ( - PUBLIC[act_value_type_member_begin_public] - | PRIVATE[act_value_type_member_begin_private] - ) - >> identifier[act_value_type_member_type] - >> simple_identifier[act_value_type_member_name] - >> *(COMMA >> simple_identifier[act_value_type_member_name]) - >> SEMI[act_value_type_member_end] - ; - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/Parser.hpp b/TAO/CIAO/CCF/CCF/IDL2/Parser.hpp deleted file mode 100644 index b0e307024c5..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Parser.hpp +++ /dev/null @@ -1,865 +0,0 @@ -// file : CCF/IDL2/Parser.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_PARSER_HPP -#define CCF_IDL2_PARSER_HPP - -#include "CCF/CompilerElements/Context.hpp" -#include "CCF/CompilerElements/Diagnostic.hpp" -#include "CCF/CompilerElements/FileSystem.hpp" - -#include "CCF/IDL2/SemanticAction.hpp" -#include "CCF/IDL2/LexicalAnalyzer.hpp" - -#include "CCF/IDL2/Parsing/Elements.hpp" -#include "CCF/IDL2/Parsing/Action.hpp" -#include "CCF/IDL2/Parsing/Recovery.hpp" - -// #$%^ing MS. -// -#ifdef CONST -#undef CONST -#undef FACTORY -#undef IN -#undef OUT -#endif - - -namespace CCF -{ - namespace IDL2 - { - using Parsing::ActionExecutor; - using Parsing::NoArgAction; - using Parsing::OneArgAction; - using Parsing::TwoArgAction; - - class Parser - { - public: - virtual - ~Parser (); - - protected: - Diagnostic::Stream& dout_; - LexicalAnalyzer const& lexer_; - SemanticAction::Factory& actions_; - - protected: - typedef - Parsing::Iterator - Iterator; - - // - // Primitives - // - - typedef - Parsing::EndOfStreamParser - EndOfStreamParser; - - typedef - Parsing::KeywordParser - KeywordParser; - - typedef - Parsing::PunctuationParser - PunctuationParser; - - typedef - Parsing::OperatorParser - OperatorParser; - - typedef - Parsing::IdentifierParser - IdentifierParser; - - typedef - Parsing::SimpleIdentifierParser - SimpleIdentifierParser; - - - typedef - Parsing::RecoveryDescriptor - RecoveryDescriptor; - - typedef - Parsing::Assertion - Assertion; - - typedef - Parsing::RecoveryStatus - RecoveryStatus; - - typedef - Parsing::Guard - Guard; - - //@@ names are not thought out weel for error handling - - struct ErrorHandler - { - ErrorHandler (CompilerElements::Context& context, - Diagnostic::Stream& dout) - : dout_ (dout), - context_ (context) - { - } - - RecoveryStatus - operator() (Parsing::Scanner const& s, Parsing::Error e) const - { - Iterator i = e.where; - - switch (e.descriptor->diagnostic_) - { - case Parsing::DiagnosticType::BEFORE: - { - Diagnostic::Error rec ( - context_.get<fs::path> ("file-path").native_file_string (), - (*i)->line ()); - - rec << "before \'" << (*i)->lexeme () << "\': " - << e.descriptor->description_; - - dout_ << rec; - break; - } - case Parsing::DiagnosticType::AFTER: - { - i--; - - Diagnostic::Error rec ( - context_.get<fs::path> ("file-path").native_file_string (), - (*i)->line ()); - - rec << "after \'" << (*i)->lexeme () << "\': " - << e.descriptor->description_; - - dout_ << rec; - break; - } - case Parsing::DiagnosticType::NONE: - { - } - } - - if (e.descriptor->action_one_.get ()) - e.descriptor->action_one_->execute (); - - if (e.descriptor->action_two_.get ()) - e.descriptor->action_two_->execute (); - - switch (e.descriptor->recovery_) - { - case Parsing::RecoveryMethod::STANDARD: - { - unsigned long balance = 0; - - for (Iterator t = e.where; t != s.last; t++) - { - //std::cerr << "error recovery: skipping " << (*t)->lexeme () - // << std::endl; - - if ((*t)->lexeme () == "{") balance++; - else if ((*t)->lexeme () == "}") - { - if (balance > 0) balance--; - else - { - t++; - if ((*t)->lexeme () == ";") t++; - - int length = t - s.first; - s.first += length; - return RecoveryStatus (RecoveryStatus::accept, length); - } - } - - if (balance == 0 && (*t)->lexeme () == ";") - { - int length = t - s.first + 1; - s.first += length; - return RecoveryStatus (RecoveryStatus::accept, length); - } - } - - switch (e.descriptor->diagnostic_) - { - case Parsing::DiagnosticType::BEFORE: - { - Diagnostic::Error rec ( - context_.get<fs::path> ("file-path").native_file_string (), - (*i)->line ()); - - rec << "before \'" << (*i)->lexeme () << "\': " - << "unable to recover from previous error: bailing out"; - - dout_ << rec; - break; - } - case Parsing::DiagnosticType::AFTER: - { - Diagnostic::Error rec ( - context_.get<fs::path> ("file-path").native_file_string (), - (*i)->line ()); - rec << "after \'" << (*i)->lexeme () << "\': " - << "unable to recover from previous error: bailing out"; - - dout_ << rec; - break; - } - case Parsing::DiagnosticType::NONE: - { - } - } - - e.descriptor->recovery_ = Parsing::RecoveryMethod::BAIL_OUT; - e.descriptor->diagnostic_ = Parsing::DiagnosticType::NONE; - - e.descriptor->action_one_.reset (); - e.descriptor->action_two_.reset (); - - // return RecoveryStatus (RecoveryStatus::rethrow); - throw e; - } - case Parsing::RecoveryMethod::NONE: - default: - { - int length = e.where - s.first; - s.first += length; - return RecoveryStatus (RecoveryStatus::accept, length); - } - case Parsing::RecoveryMethod::BAIL_OUT: - { - e.descriptor->recovery_ = Parsing::RecoveryMethod::BAIL_OUT; - e.descriptor->diagnostic_ = Parsing::DiagnosticType::NONE; - - e.descriptor->action_one_.reset (); - e.descriptor->action_two_.reset (); - - // return RecoveryStatus (RecoveryStatus::rethrow); - throw e; - } - } - } - - Diagnostic::Stream& dout_; - CompilerElements::Context& context_; - }; - - struct RootErrorHandler - { - RecoveryStatus - operator() (Parsing::Scanner const&, Parsing::Error&) const - { - return RecoveryStatus (RecoveryStatus::fail); - } - }; - - struct handler - { - template<typename Object> - handler (Object& obj, - void (Object::*action_one)()) - : action_one_ (Parsing::call_thunk (obj, action_one)), - action_two_ (0) - { - } - - template<typename Object> - handler (Object& obj, - void (Object::*action_one)(), - void (Object::*action_two)()) - : action_one_ (Parsing::call_thunk (obj, action_one)), - action_two_ (Parsing::call_thunk (obj, action_two)) - { - } - - handler (handler const& h) - : action_one_ (h.action_one_.get () ? h.action_one_->clone () : 0), - action_two_ (h.action_two_.get () ? h.action_two_->clone () : 0) - { - } - - RecoveryStatus - operator() (Parsing::Scanner const&, Parsing::Error e) const - { - assert ( - e.descriptor->diagnostic_ == Parsing::DiagnosticType::NONE && - e.descriptor->recovery_ == Parsing::RecoveryMethod::BAIL_OUT - ); - - if (action_one_.get ()) action_one_->execute (); - if (action_two_.get ()) action_two_->execute (); - - // return RecoveryStatus (RecoveryStatus::rethrow); - throw e; - } - - std::auto_ptr<Parsing::Thunk> action_one_; - std::auto_ptr<Parsing::Thunk> action_two_; - }; - - Guard guard; - Guard hood; - Assertion assertion; - ErrorHandler error_handler; - RootErrorHandler root_error_handler; - - // End of stream parser. - // - EndOfStreamParser EOS; - - // Keyword parsers (alphabetic order). - // - KeywordParser ABSTRACT; - KeywordParser ATTRIBUTE; - KeywordParser BINCLUDE; - KeywordParser CASE; - KeywordParser CONST; - KeywordParser CUSTOM; - KeywordParser DEFAULT; - KeywordParser ENUM; - KeywordParser EXCEPTION; - KeywordParser FACTORY; - KeywordParser GETRAISES; - KeywordParser IN; - KeywordParser INOUT; - KeywordParser INTERFACE; - KeywordParser QINCLUDE; - KeywordParser LOCAL; - KeywordParser MODULE; - KeywordParser NATIVE; - KeywordParser ONEWAY; - KeywordParser OUT; - KeywordParser PRIVATE; - KeywordParser PUBLIC; - KeywordParser RAISES; - KeywordParser READONLY; - KeywordParser SEQUENCE; - KeywordParser SETRAISES; - KeywordParser STRING; - KeywordParser STRUCT; - KeywordParser SUPPORTS; - KeywordParser SWITCH; - KeywordParser TRUNCATABLE; - KeywordParser TYPEDEF; - KeywordParser TYPEID; - KeywordParser TYPEPREFIX; - KeywordParser UNION; - KeywordParser VALUETYPE; - KeywordParser WSTRING; - - // Punctuation parsers (alphabetic group order). - // - PunctuationParser COLON; - PunctuationParser COMMA; - PunctuationParser LCBRACE; - PunctuationParser RCBRACE; - PunctuationParser LSBRACE; - PunctuationParser RSBRACE; - PunctuationParser LPAREN; - PunctuationParser RPAREN; - PunctuationParser LT; - PunctuationParser GT; - PunctuationParser SEMI; - - OperatorParser ADD; - OperatorParser AND; - OperatorParser COM; - OperatorParser DIV; - OperatorParser EQ; - OperatorParser LSH; - OperatorParser MUL; - OperatorParser OR; - OperatorParser REM; - OperatorParser SUB; - OperatorParser RSH; - OperatorParser XOR; - - - IdentifierParser identifier; - SimpleIdentifierParser simple_identifier; - - Parsing::BooleanLiteralParser boolean_literal; - Parsing::CharacterLiteralParser character_literal; - Parsing::IntegerLiteralParser integer_literal; - Parsing::StringLiteralParser string_literal; - - // - // Language - // - typedef - Parsing::Rule - Rule; - - Rule language; - Rule import; - Rule declaration; - Rule extension; - - Rule include_decl; - - Rule type_decl; - - Rule module_decl; - - Rule const_decl; - Rule const_expr; - - Rule enum_decl; - Rule enumerator_decl; - - Rule boolean_const_expr; - Rule character_const_expr; - Rule numeric_const_expr; - - Rule numeric_or_expr; - Rule numeric_xor_expr; - Rule numeric_and_expr; - Rule numeric_shift_expr; - Rule numeric_add_expr; - Rule numeric_mul_expr; - Rule numeric_unary_expr; - Rule numeric_primary_expr; - - Rule string_const_expr; - - Rule abstract_type_decl; - Rule local_type_decl; - - Rule abstract_interface_decl; - Rule local_interface_decl; - Rule unconstrained_interface_decl; - Rule interface_inheritance_spec; - Rule interface_def_trailer; - Rule interface_body; - - Rule attribute_decl; - Rule attribute_ro_decl_trailer; - Rule attribute_rw_decl_trailer; - Rule attribute_rw_raises_spec; - Rule attribute_get_raises_list; - Rule attribute_set_raises_list; - - Rule exception_decl; - Rule exception_body; - - Rule direction_specifier; - - Rule member_decl; - - Rule native_decl; - - Rule operation_decl; - Rule operation_decl_trailer; - Rule operation_parameter_list; - Rule operation_parameter; - Rule operation_raises_list; - - Rule struct_decl; - Rule struct_def_trailer; - Rule struct_body; - - Rule typedef_decl; - Rule typedef_declarator; - Rule typedef_type_spec; - - Rule type_id_decl; - Rule type_prefix_decl; - - Rule union_decl; - Rule union_def_trailer; - Rule union_body; - Rule union_case_label; - - Rule abstract_value_type_decl; - Rule concrete_value_type_decl; - Rule value_type_inheritance_spec; - Rule value_type_supports_spec; - Rule value_type_def_trailer; - Rule value_type_body; - - Rule value_type_factory_decl; - Rule value_type_factory_parameter_list; - Rule value_type_factory_parameter; - Rule value_type_factory_raises_list; - - Rule value_type_member_decl; - public: - Parser (CompilerElements::Context& context, - Diagnostic::Stream& dout, - LexicalAnalyzer const& l, - SemanticAction::Factory& f); - - virtual Rule const& - start() const - { - return language; - } - - protected: - - // - // Semantic actions - // - typedef - NoArgAction<SemanticAction::Scope> - ScopeAction; - - - // Attribute - // - // - NoArgAction<SemanticAction::Attribute> - act_attribute_begin_ro, act_attribute_begin_rw; - - OneArgAction<IdentifierPtr, SemanticAction::Attribute> - act_attribute_type; - - OneArgAction<SimpleIdentifierPtr, SemanticAction::Attribute> - act_attribute_name; - - OneArgAction<IdentifierPtr, SemanticAction::Attribute> - act_attribute_get_raises; - - OneArgAction<IdentifierPtr, SemanticAction::Attribute> - act_attribute_set_raises; - - NoArgAction<SemanticAction::Attribute> - act_attribute_end; - - // Const - // - TwoArgAction<IdentifierPtr, SimpleIdentifierPtr, SemanticAction::Const> - act_const_begin; - - NoArgAction<SemanticAction::Const> - act_const_expr; - - - // Enum - // - // - OneArgAction<SimpleIdentifierPtr, SemanticAction::Enum> - act_enum_begin, act_enum_enumerator; - - NoArgAction<SemanticAction::Enum> - act_enum_end; - - // Expression - // - NoArgAction<SemanticAction::NumericExpression> - act_const_expr_flush; - - OneArgAction<IdentifierPtr, SemanticAction::NumericExpression> - act_numeric_expression_const; - - OneArgAction<IntegerLiteralPtr, SemanticAction::NumericExpression> - act_numeric_expression_integer_literal; - - NoArgAction<SemanticAction::NumericExpression> - act_numeric_expression_pos, - act_numeric_expression_neg, - act_numeric_expression_com, - act_numeric_expression_mul, - act_numeric_expression_div, - act_numeric_expression_rem, - act_numeric_expression_add, - act_numeric_expression_sub, - act_numeric_expression_rsh, - act_numeric_expression_lsh, - act_numeric_expression_and, - act_numeric_expression_xor, - act_numeric_expression_or; - - - // Exception - // - // - OneArgAction<SimpleIdentifierPtr, SemanticAction::Exception> - act_exception_begin; - - ScopeAction - act_exception_open_scope; - - ScopeAction - act_exception_close_scope; - - NoArgAction<SemanticAction::Exception> - act_exception_end; - - - // Include - // - // - OneArgAction<StringLiteralPtr, SemanticAction::Include> - act_include_quote, act_include_bracket; - - NoArgAction<SemanticAction::Include> - act_include_end; - - // Interface - // - // - OneArgAction<SimpleIdentifierPtr, SemanticAction::Interface> - act_interface_begin_abstract_def, - act_interface_begin_abstract_fwd, - act_interface_begin_local_def, - act_interface_begin_local_fwd, - act_interface_begin_unconstrained_def, - act_interface_begin_unconstrained_fwd; - - OneArgAction<IdentifierPtr, SemanticAction::Interface> - act_interface_inherits; - - ScopeAction - act_interface_open_scope; - - ScopeAction - act_interface_close_scope; - - NoArgAction<SemanticAction::Interface> - act_interface_end; - - - // Member - // - // - OneArgAction<IdentifierPtr, SemanticAction::Member> - act_member_type; - - OneArgAction<SimpleIdentifierPtr, SemanticAction::Member> - act_member_name; - - NoArgAction<SemanticAction::Member> - act_member_end; - - - // Module - // - // - OneArgAction<SimpleIdentifierPtr, SemanticAction::Module> - act_module_begin; - - ScopeAction - act_module_open_scope; - - ScopeAction - act_module_close_scope; - - NoArgAction<SemanticAction::Module> - act_module_end; - - // Native - // - // - OneArgAction<SimpleIdentifierPtr, SemanticAction::Native> - act_native_name; - - NoArgAction<SemanticAction::Native> - act_native_end; - - - // Operation - // - // - NoArgAction<SemanticAction::Operation> - act_operation_one_way, act_operation_two_way; - - OneArgAction<IdentifierPtr, SemanticAction::Operation> - act_operation_type; - - OneArgAction<SimpleIdentifierPtr, SemanticAction::Operation> - act_operation_name; - - void - act_operation_parameter_core (Iterator begin, Iterator) const - { - SemanticAction::Operation::Direction::Value d; - - if((*begin)->lexeme () == "in") - { - d = SemanticAction::Operation::Direction::in; - } - else if((*begin)->lexeme () == "out") - { - d = SemanticAction::Operation::Direction::out; - } - else - { - d = SemanticAction::Operation::Direction::inout; - } - - begin++; - - actions_.operation ().parameter ( - d, - ReferenceCounting::strict_cast<Identifier>(*begin), - ReferenceCounting::strict_cast<SimpleIdentifier>(*(begin + 1))); - } - - ActionExecutor<Parser> - act_operation_parameter; - - OneArgAction<IdentifierPtr, SemanticAction::Operation> - act_operation_raises; - - - // Struct - // - // - OneArgAction<SimpleIdentifierPtr, SemanticAction::Struct> - act_struct_begin_def; - - OneArgAction<SimpleIdentifierPtr, SemanticAction::Struct> - act_struct_begin_fwd; - - ScopeAction - act_struct_open_scope; - - ScopeAction - act_struct_close_scope; - - NoArgAction<SemanticAction::Struct> - act_struct_end; - - - // Typedef - // - // - OneArgAction<IdentifierPtr, SemanticAction::Typedef> - act_typedef_begin; - - OneArgAction<IdentifierPtr, SemanticAction::Typedef> - act_typedef_begin_unbounded_seq; - - OneArgAction<IdentifierPtr, SemanticAction::Typedef> - act_typedef_begin_bounded_seq; - - NoArgAction<SemanticAction::Typedef> - act_typedef_begin_bounded_string; - - NoArgAction<SemanticAction::Typedef> - act_typedef_begin_bounded_wstring; - - NoArgAction<SemanticAction::Typedef> - act_typedef_begin_array; - - NoArgAction<SemanticAction::Typedef> - act_typedef_bound; - - OneArgAction<SimpleIdentifierPtr, SemanticAction::Typedef> - act_typedef_declarator; - - NoArgAction<SemanticAction::Typedef> - act_typedef_end; - - - // TypeId - // - // - TwoArgAction<IdentifierPtr, - StringLiteralPtr, - SemanticAction::TypeId> - act_type_id_begin; - - NoArgAction<SemanticAction::TypeId> - act_type_id_end; - - - // TypePrefix - // - // - TwoArgAction<IdentifierPtr, - StringLiteralPtr, - SemanticAction::TypePrefix> - act_type_prefix_begin; - - NoArgAction<SemanticAction::TypePrefix> - act_type_prefix_end; - - // Union - // - // - OneArgAction<SimpleIdentifierPtr, SemanticAction::Union> - act_union_begin_def, act_union_begin_fwd; - - OneArgAction<IdentifierPtr, SemanticAction::Union> - act_union_type; - - ScopeAction - act_union_open_scope; - - OneArgAction<IdentifierPtr, SemanticAction::Union> - act_union_member_type; - - OneArgAction<SimpleIdentifierPtr, SemanticAction::Union> - act_union_member_name; - - ScopeAction - act_union_close_scope; - - NoArgAction<SemanticAction::Union> - act_union_end; - - - // ValueType - // - OneArgAction<SimpleIdentifierPtr, SemanticAction::ValueType> - act_value_type_begin_abstract_def, - act_value_type_begin_abstract_fwd, - act_value_type_begin_concrete_def, - act_value_type_begin_concrete_fwd; - - OneArgAction<IdentifierPtr, SemanticAction::ValueType> - act_value_type_inherits, act_value_type_supports; - - ScopeAction - act_value_type_open_scope; - - ScopeAction - act_value_type_close_scope; - - NoArgAction<SemanticAction::ValueType> - act_value_type_end; - - - // ValueTypeFactory - // - OneArgAction<SimpleIdentifierPtr, SemanticAction::ValueTypeFactory> - act_value_type_factory_name; - - TwoArgAction<IdentifierPtr, - SimpleIdentifierPtr, - SemanticAction::ValueTypeFactory> - act_value_type_factory_parameter; - - OneArgAction<IdentifierPtr, SemanticAction::ValueTypeFactory> - act_value_type_factory_raises; - - - // ValueTypeMember - // - NoArgAction<SemanticAction::ValueTypeMember> - act_value_type_member_begin_private; - - NoArgAction<SemanticAction::ValueTypeMember> - act_value_type_member_begin_public; - - OneArgAction<IdentifierPtr, SemanticAction::ValueTypeMember> - act_value_type_member_type; - - OneArgAction<SimpleIdentifierPtr, SemanticAction::ValueTypeMember> - act_value_type_member_name; - - NoArgAction<SemanticAction::ValueTypeMember> - act_value_type_member_end; - - }; - } -} - -#endif // CCF_IDL2_PARSER_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Parsing/Action.hpp b/TAO/CIAO/CCF/CCF/IDL2/Parsing/Action.hpp deleted file mode 100644 index 2737abafb58..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Parsing/Action.hpp +++ /dev/null @@ -1,142 +0,0 @@ -// file : CCF/IDL2/Parsing/Action.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_PARSING_ACTION_HPP -#define CCF_IDL2_PARSING_ACTION_HPP - -#include "CCF/IDL2/Parsing/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Parsing - { - // - // - // - template <typename Obj> - class ActionExecutor - { - public: - - typedef - void (Obj::*SemanticAction)(Iterator, Iterator) const; - - ActionExecutor (Obj const* obj, SemanticAction action) - : obj_ (obj), action_ (action) - { - } - - void operator () (Iterator begin, Iterator end) const - { - (obj_->*action_) (begin, end); - } - - private: - Obj const* obj_; - SemanticAction action_; - }; - - - // - // - // - template <typename Obj> - class NoArgAction - { - public: - - typedef - void (Obj::*Action)(); - - NoArgAction (Obj& obj, Action action) - : obj_ (obj), action_ (action) - { - } - - void operator () (Iterator, Iterator) const - { - (obj_.*action_) (); - } - - private: - Obj& obj_; - Action action_; - }; - - - //@@ Should prbably use Type instead of TypePtr - // - // - // - template <typename TypePtr, typename Obj> - class OneArgAction - { - public: - - typedef - void (Obj::*Action)(TypePtr const&); - - OneArgAction (Obj& obj, Action action) - : obj_ (obj), action_ (action) - { - } - - void operator () (Iterator begin, Iterator end) const - { - if (end - begin != 1 ) - { - //@@ throw - } - - //@@ error handling if the strict_cast fails - (obj_.*action_) ( - ReferenceCounting::strict_cast<typename TypePtr::Type> (*begin)); - } - - private: - Obj& obj_; - Action action_; - }; - - - // - // - // - template <typename Arg1, typename Arg2, typename Obj> - class TwoArgAction - { - public: - - typedef - void (Obj::*Action)(Arg1 const&, Arg2 const&); - - TwoArgAction (Obj& obj, Action action) - : obj_ (obj), action_ (action) - { - } - - void operator () (Iterator begin, Iterator end) const - { - if (end - begin != 2 ) - { - //@@ throw - } - - //@@ error handling if strict_cast fails - (obj_.*action_) ( - ReferenceCounting::strict_cast<typename Arg1::Type> (*begin), - ReferenceCounting::strict_cast<typename Arg2::Type> (*(begin + 1))); - } - - private: - Obj& obj_; - Action action_; - }; - } - } -} - -#endif // CCF_IDL2_PARSING_ACTION_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Parsing/Elements.hpp b/TAO/CIAO/CCF/CCF/IDL2/Parsing/Elements.hpp deleted file mode 100644 index 88e091d8845..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Parsing/Elements.hpp +++ /dev/null @@ -1,168 +0,0 @@ -// file : CCF/IDL2/Parsing/Elements.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_PARSING_ELEMENTS_HPP -#define CCF_IDL2_PARSING_ELEMENTS_HPP - -#include <string> - -#include <boost/spirit.hpp> - -#include "CCF/IDL2/Token.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Parsing - { - using namespace boost::spirit; - - typedef - TokenList::iterator - Iterator; - - typedef - scanner<Iterator, scanner_policies<> > - Scanner; - - typedef - rule<Scanner> - Rule; - - - // - // - // - template <typename Type> - struct IdentityParser : public parser <IdentityParser<Type> > - { - typedef - IdentityParser - self_t; - - IdentityParser (std::string lexeme) - : lexeme_ (lexeme) - { - } - - typename parser_result<self_t, Scanner>::type - parse(Scanner const& scan) const - { - if (!scan.at_end()) - { - TokenPtr t = *scan; - - if(ReferenceCounting::strict_cast<Type> (t) != 0 && - lexeme_ == t->lexeme ()) - { - Iterator save(scan.first); - ++scan; - return scan.create_match(1, t, save, scan.first); - } - } - return scan.no_match(); - } - - private: - std::string lexeme_; - }; - - typedef - IdentityParser<Keyword> - KeywordParser; - - typedef - IdentityParser<Punctuation> - PunctuationParser; - - typedef - IdentityParser<Operator> - OperatorParser; - - // - // - // - template <typename Type> - struct TypeParser : public parser <TypeParser<Type> > - { - typedef - TypeParser - self_t; - - typename parser_result<self_t, Scanner>::type - parse(Scanner const& scan) const - { - if (!scan.at_end()) - { - TokenPtr t = *scan; - - if(ReferenceCounting::strict_cast<Type> (t) != 0) - { - Iterator save(scan.first); - ++scan; - return scan.create_match(1, t, save, scan.first); - } - } - return scan.no_match(); - } - }; - - typedef - TypeParser<EndOfStream> - EndOfStreamParser; - - typedef - TypeParser<Identifier> - IdentifierParser; - - typedef - TypeParser<SimpleIdentifier> - SimpleIdentifierParser; - - typedef - TypeParser<ScopedIdentifier> - ScopedIdentifierParser; - - // Literal parsers. - // - - typedef - TypeParser<BooleanLiteral> - BooleanLiteralParser; - - typedef - TypeParser<CharacterLiteral> - CharacterLiteralParser; - - typedef - TypeParser<IntegerLiteral> - IntegerLiteralParser; - - typedef - TypeParser<StringLiteral> - StringLiteralParser; - - // - // - // - inline bool - parse (Iterator const& first_, - Iterator const& last, - Rule const& rule) - { - Iterator first = first_; - Scanner scan(first, last); - match<nil_t> hit = rule.parse(scan); - - bool result = parse_info<Iterator>( - first, hit, hit && (first == last), hit.length()).full; - - return result; - } - } - } -} - -#endif // CCF_IDL2_PARSING_ELEMENTS_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Parsing/Recovery.hpp b/TAO/CIAO/CCF/CCF/IDL2/Parsing/Recovery.hpp deleted file mode 100644 index f9024f77f72..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Parsing/Recovery.hpp +++ /dev/null @@ -1,288 +0,0 @@ -// file : CCF/IDL2/Parsing/Recovery.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_PARSING_RECOVERY_HPP -#define CCF_IDL2_PARSING_RECOVERY_HPP - -#include <memory> - -#include "CCF/CompilerElements/ReferenceCounting.hpp" -#include "CCF/IDL2/Parsing/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Parsing - { - - // - // - // - struct RecoveryMethod - { - enum Value - { - NONE, - STANDARD, - BAIL_OUT - }; - }; - - - // - // - // - struct DiagnosticType - { - enum Value - { - BEFORE, - AFTER, - NONE - }; - }; - - - // - // - // - class Thunk - { - public: - virtual - ~Thunk () {} - - virtual void - execute () = 0; - - virtual Thunk* - clone () const = 0; - }; - - - // - // - // - template<typename Object> - class ThunkImpl : public Thunk - { - public: - typedef void (Object::*Func)(); - - ThunkImpl (Object& obj, Func func) - : obj_(obj), - func_ (func) - { - } - - virtual void - execute () - { - (obj_.*func_)(); - } - - virtual Thunk* - clone () const - { - return new ThunkImpl<Object> (obj_, func_); - } - - private: - Object& obj_; - Func func_; - }; - - // - // - // - template<typename Object> - Thunk* - call_thunk (Object& obj, void (Object::*func)()) - { - return new ThunkImpl<Object> (obj, func); - } - - - // - // - // - struct RecoveryDescriptor : - public virtual ReferenceCounting::DefaultImpl <> - { - virtual ~RecoveryDescriptor () throw () {} - - RecoveryDescriptor (std::string d, - RecoveryMethod::Value recovery, - DiagnosticType::Value diagnostic) - : action_one_ (0), - action_two_ (0), - description_ (d), - recovery_ (recovery), - diagnostic_ (diagnostic) - { - } - - template<typename Object> - RecoveryDescriptor (std::string d, - RecoveryMethod::Value recovery, - DiagnosticType::Value diagnostic, - Object& obj, - void (Object::*action_one)()) - : action_one_ (call_thunk (obj, action_one)), - action_two_ (0), - description_ (d), - recovery_ (recovery), - diagnostic_ (diagnostic) - { - } - - template<typename Object> - RecoveryDescriptor (std::string d, - RecoveryMethod::Value recovery, - DiagnosticType::Value diagnostic, - Object& obj, - void (Object::*action_one)(), - void (Object::*action_two)()) - : action_one_ (call_thunk (obj, action_one)), - action_two_ (call_thunk (obj, action_two)), - description_ (d), - recovery_ (recovery), - diagnostic_ (diagnostic) - { - } - - RecoveryDescriptor (RecoveryDescriptor const& rd) - : action_one_ (rd.action_one_.get () ? rd.action_one_->clone () : 0), - action_two_ (rd.action_two_.get () ? rd.action_two_->clone () : 0), - description_ (rd.description_), - recovery_ (rd.recovery_), - diagnostic_ (rd.diagnostic_) - { - } - - - std::auto_ptr<Thunk> action_one_; - std::auto_ptr<Thunk> action_two_; - std::string description_; - RecoveryMethod::Value recovery_; - DiagnosticType::Value diagnostic_; - }; - - typedef - ReferenceCounting::StrictPtr<RecoveryDescriptor> - RecoveryDescriptorPtr; - - - // I have to use a pointer to RecoveryDescriptor instead of - // just RecoveryDescriptor to subvert constness of descriptor - // member in spirit::parser_error. - // - // - - typedef - parser_error<RecoveryDescriptorPtr, Iterator> - Error; - - - // - // - // - struct Assertion - { - typedef - assertion<RecoveryDescriptorPtr> - AssertionImpl; - - AssertionImpl - operator () (RecoveryMethod::Value recovery = RecoveryMethod::NONE) - { - return AssertionImpl ( - RecoveryDescriptorPtr ( - new RecoveryDescriptor ("", recovery, DiagnosticType::NONE))); - } - - AssertionImpl - operator () (std::string d, - RecoveryMethod::Value recovery = RecoveryMethod::STANDARD, - DiagnosticType::Value diagnostic = DiagnosticType::AFTER) - { - return AssertionImpl ( - RecoveryDescriptorPtr ( - new RecoveryDescriptor (d, recovery, diagnostic))); - } - - template<typename Object> - AssertionImpl - operator () (std::string d, - Object& obj, - void (Object::*action_one)(), - RecoveryMethod::Value recovery = RecoveryMethod::STANDARD, - DiagnosticType::Value diagnostic = DiagnosticType::AFTER) - { - return AssertionImpl ( - RecoveryDescriptorPtr ( - new RecoveryDescriptor ( - d, recovery, diagnostic, obj, action_one))); - } - - template<typename Object> - AssertionImpl - operator () (Object& obj, - void (Object::*action_one)(), - RecoveryMethod::Value recovery = RecoveryMethod::BAIL_OUT) - { - return AssertionImpl ( - RecoveryDescriptorPtr ( - new RecoveryDescriptor ( - "", recovery, DiagnosticType::NONE, obj, action_one))); - } - - template<typename Object> - AssertionImpl - operator () (std::string d, - Object& obj, - void (Object::*action_one)(), - void (Object::*action_two)(), - RecoveryMethod::Value recovery = RecoveryMethod::STANDARD, - DiagnosticType::Value diagnostic = DiagnosticType::AFTER) - { - return AssertionImpl ( - RecoveryDescriptorPtr ( - new RecoveryDescriptor ( - d, recovery, diagnostic, obj, action_one, action_two))); - } - - - template<typename Object> - AssertionImpl - operator () (Object& obj, - void (Object::*action_one)(), - void (Object::*action_two)(), - RecoveryMethod::Value recovery = RecoveryMethod::BAIL_OUT) - { - return AssertionImpl ( - RecoveryDescriptorPtr ( - new RecoveryDescriptor ("", - recovery, - DiagnosticType::NONE, - obj, - action_one, - action_two))); - } - - }; - - typedef - error_status<> - RecoveryStatus; - - typedef - guard<RecoveryDescriptorPtr> - Guard; - } - } -} - -#endif // CCF_IDL2_PARSING_RECOVERY_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction.hpp deleted file mode 100644 index 7311cf90910..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// file : CCF/IDL2/SemanticAction.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_HPP -#define CCF_IDL2_SEMANTIC_ACTION_HPP - -#include "CCF/IDL2/SemanticAction/Elements.hpp" - -#include "CCF/IDL2/SemanticAction/Factory.hpp" - -#include "CCF/IDL2/SemanticAction/Attribute.hpp" -#include "CCF/IDL2/SemanticAction/Const.hpp" -#include "CCF/IDL2/SemanticAction/Enum.hpp" -#include "CCF/IDL2/SemanticAction/Exception.hpp" -#include "CCF/IDL2/SemanticAction/Include.hpp" -#include "CCF/IDL2/SemanticAction/Interface.hpp" -#include "CCF/IDL2/SemanticAction/Member.hpp" -#include "CCF/IDL2/SemanticAction/Module.hpp" -#include "CCF/IDL2/SemanticAction/Native.hpp" -#include "CCF/IDL2/SemanticAction/NumericExpression.hpp" -#include "CCF/IDL2/SemanticAction/Operation.hpp" -#include "CCF/IDL2/SemanticAction/Struct.hpp" -#include "CCF/IDL2/SemanticAction/Typedef.hpp" -#include "CCF/IDL2/SemanticAction/TypeId.hpp" -#include "CCF/IDL2/SemanticAction/Union.hpp" -#include "CCF/IDL2/SemanticAction/ValueType.hpp" -#include "CCF/IDL2/SemanticAction/ValueTypeFactory.hpp" -#include "CCF/IDL2/SemanticAction/ValueTypeMember.hpp" - -#endif // CCF_IDL2_SEMANTIC_ACTION_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Attribute.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Attribute.hpp deleted file mode 100644 index d113d9136cf..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Attribute.hpp +++ /dev/null @@ -1,43 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Attribute.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_ATTRIBUTE_HPP -#define CCF_IDL2_SEMANTIC_ACTION_ATTRIBUTE_HPP - -#include "CCF/IDL2/SemanticAction/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - struct Attribute - { - virtual void - begin_ro () = 0; - - virtual void - begin_rw () = 0; - - virtual void - type (IdentifierPtr const& id) = 0; - - virtual void - name (SimpleIdentifierPtr const& id) = 0; - - virtual void - get_raises (IdentifierPtr const& id) = 0; - - virtual void - set_raises (IdentifierPtr const& id) = 0; - - virtual void - end () = 0; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_ATTRIBUTE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Const.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Const.hpp deleted file mode 100644 index dcb7c0054ac..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Const.hpp +++ /dev/null @@ -1,29 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Const.hpp -// author : Boris Kolpackov <boris@kolpackov.net> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_CONST_HPP -#define CCF_IDL2_SEMANTIC_ACTION_CONST_HPP - -#include "CCF/IDL2/SemanticAction/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - struct Const - { - virtual void - begin (IdentifierPtr const& type, - SimpleIdentifierPtr const& name) = 0; - - virtual void - expr () = 0; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_CONST_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Elements.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Elements.hpp deleted file mode 100644 index 18687171a78..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Elements.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Elements.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_ELEMENTS_HPP -#define CCF_IDL2_SEMANTIC_ACTION_ELEMENTS_HPP - -#include "CCF/IDL2/Token.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - struct Scope - { - virtual void - open_scope () = 0; - - virtual void - close_scope () = 0; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_ELEMENTS_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Enum.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Enum.hpp deleted file mode 100644 index c0822d44470..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Enum.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Enum.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_ENUM_HPP -#define CCF_IDL2_SEMANTIC_ACTION_ENUM_HPP - -#include "CCF/IDL2/SemanticAction/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - struct Enum - { - virtual void - begin (SimpleIdentifierPtr const& id) = 0; - - virtual void - enumerator (SimpleIdentifierPtr const& id) = 0; - - virtual void - end () = 0; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_ENUM_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Exception.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Exception.hpp deleted file mode 100644 index 02230082b49..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Exception.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Exception.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_EXCEPTION_HPP -#define CCF_IDL2_SEMANTIC_ACTION_EXCEPTION_HPP - -#include "CCF/IDL2/SemanticAction/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - struct Exception : Scope - { - virtual void - begin (SimpleIdentifierPtr const& id) = 0; - - virtual void - open_scope () = 0; - - virtual void - close_scope () = 0; - - virtual void - end () = 0; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_EXCEPTION_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Factory.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Factory.hpp deleted file mode 100644 index 2f84d760710..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Factory.hpp +++ /dev/null @@ -1,104 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Factory.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_FACTORY_HPP -#define CCF_IDL2_SEMANTIC_ACTION_FACTORY_HPP - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - struct Attribute; - struct Const; - struct Enum; - struct Exception; - struct Include; - struct Interface; - struct Member; - struct Module; - struct Native; - struct NumericExpression; - struct Operation; - struct Struct; - struct Typedef; - struct TypeId; - struct TypePrefix; - struct Union; - struct ValueType; - struct ValueTypeFactory; - struct ValueTypeMember; - - // - // - // - struct Factory - { - virtual - ~Factory () {} - - virtual Attribute& - attribute () = 0; - - virtual Const& - const_ () = 0; - - virtual SemanticAction::Enum& - enum_ () = 0; - - virtual SemanticAction::Exception& - exception () = 0; - - virtual Include& - include () = 0; - - virtual Interface& - interface () = 0; - - virtual Member& - member () = 0; - - virtual Module& - module () = 0; - - virtual Native& - native () = 0; - - virtual NumericExpression& - numeric_expression () = 0; - - virtual Operation& - operation () = 0; - - virtual Struct& - struct_ () = 0; - - virtual Typedef& - typedef_ () = 0; - - virtual TypeId& - type_id () = 0; - - virtual TypePrefix& - type_prefix () = 0; - - virtual Union& - union_ () = 0; - - virtual ValueType& - value_type () = 0; - - virtual ValueTypeFactory& - value_type_factory () = 0; - - virtual ValueTypeMember& - value_type_member () = 0; - }; - - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_FACTORY_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Attribute.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Attribute.cpp deleted file mode 100644 index dcffba1dc92..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Attribute.cpp +++ /dev/null @@ -1,189 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Attribute.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticAction/Impl/Attribute.hpp" - -#include <iostream> - -using std::cerr; -using std::endl; - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - using namespace SemanticGraph; - - Attribute:: - Attribute (Context& c) - : Base (c) - { - } - - void Attribute:: - begin_ro () - { - if (ctx.trace ()) cerr << "readonly attribute" << endl; - - readonly_ = true; - - - } - - void Attribute:: - begin_rw () - { - if (ctx.trace ()) cerr << "readwrite attribute" << endl; - - readonly_ = false; - } - - void Attribute:: - type (IdentifierPtr const& id) - { - if (ctx.trace ()) cerr << id << endl; - - Name name (id->lexeme ()); - ScopedName from (ctx.scope ().scoped_name ()); - - type_ = 0; - - try - { - try - { - type_ = &resolve<Type> (from, name, Flags::complete); - } - catch (Resolve const&) - { - cerr << "error: invalid attribute declaration" << endl; - throw; - } - } - catch (NotFound const&) - { - cerr << "no type with name \'" << name - << "\' visible from scope \'" << from << "\'" << endl; - } - catch (WrongType const&) - { - cerr << "declaration with name \'" << name - << "\' visible from scope \'" << from - << "\' is not a type declaration" << endl; - cerr << "using non-type as an attribute type is illegal" << endl; - } - catch (NotComplete const& e) - { - cerr << "type \'" << e.name () << "\' is not complete" << endl; - } - } - - void Attribute:: - name (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << id << endl; - - if (type_ != 0) - { - if (readonly_) - a_ = &ctx.tu ().new_node<ReadAttribute> (); - else - a_ = &ctx.tu ().new_node<ReadWriteAttribute> (); - - ctx.tu ().new_edge<Belongs> (*a_, *type_); - ctx.tu ().new_edge<Defines> (ctx.scope (), *a_, id->lexeme ()); - } - } - - void Attribute:: - get_raises (IdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "get-raise " << id << endl; - - Name name (id->lexeme ()); - ScopedName from (ctx.scope ().scoped_name ()); - - try - { - try - { - SemanticGraph::Exception& e ( - resolve<SemanticGraph::Exception> (from, name)); - - ctx.tu ().new_edge<GetRaises> ( - dynamic_cast<ReadAttribute&> (*a_), e); - } - catch (Resolve const&) - { - cerr << "error: invalid raises declaration" << endl; - throw; - } - } - catch (NotFound const&) - { - cerr << "no exception with name \'" << name - << "\' visible from scope \'" << from << "\'" << endl; - } - catch (WrongType const&) - { - cerr << "declaration with name \'" << name - << "\' visible from scope \'" << from - << "\' is not an exception declaration" << endl; - cerr << "using non-exception type in raises declaration is " - << "illegal" << endl; - } - } - - void Attribute:: - set_raises (IdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "set-raise " << id << endl; - - Name name (id->lexeme ()); - ScopedName from (ctx.scope ().scoped_name ()); - - try - { - try - { - SemanticGraph::Exception& e ( - resolve<SemanticGraph::Exception> (from, name)); - - ctx.tu ().new_edge<SetRaises> ( - dynamic_cast<WriteAttribute&> (*a_), e); - } - catch (Resolve const&) - { - cerr << "error: invalid raises declaration" << endl; - throw; - } - } - catch (NotFound const&) - { - cerr << "no exception with name \'" << name - << "\' visible from scope \'" << from << "\'" << endl; - } - catch (WrongType const&) - { - cerr << "declaration with name \'" << name - << "\' visible from scope \'" << from - << "\' is not an exception declaration" << endl; - cerr << "using non-exception type in raises declaration is " - << "illegal" << endl; - } - } - - void Attribute:: - end () - { - if (ctx.trace ()) cerr << "end" << endl; - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Attribute.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Attribute.hpp deleted file mode 100644 index 88bc8e5016a..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Attribute.hpp +++ /dev/null @@ -1,55 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Attribute.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_IMPL_ATTRIBUTE_HPP -#define CCF_IDL2_SEMANTIC_ACTION_IMPL_ATTRIBUTE_HPP - -#include "CCF/IDL2/SemanticGraph/Attribute.hpp" -#include "CCF/IDL2/SemanticAction/Attribute.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - struct Attribute : SemanticAction::Attribute, Base - { - Attribute (Context& c); - - virtual void - begin_ro (); - - virtual void - begin_rw (); - - virtual void - type (IdentifierPtr const& id); - - virtual void - name (SimpleIdentifierPtr const& id); - - virtual void - get_raises (IdentifierPtr const& id); - - virtual void - set_raises (IdentifierPtr const& id); - - virtual void - end (); - - private: - bool readonly_; - SemanticGraph::Type* type_; - SemanticGraph::Attribute* a_; - }; - } - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_IMPL_ATTRIBUTE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Const.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Const.cpp deleted file mode 100644 index 6a55fa768c4..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Const.cpp +++ /dev/null @@ -1,112 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Const.cpp -// author : Boris Kolpackov <boris@kolpackov.net> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticAction/Impl/Const.hpp" - -#include "CCF/IDL2/SemanticGraph/Fundamental.hpp" -#include "CCF/IDL2/SemanticGraph/IntExpression.hpp" - -#include <iostream> - -using std::cerr; -using std::endl; - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - using namespace SemanticGraph; - - Const:: - Const (Context& c) - : Base (c) - { - } - - void Const:: - begin (IdentifierPtr const& type_id, - SimpleIdentifierPtr const& name_id) - { - if (ctx.trace ()) - cerr << "const " << type_id << " " << name_id << endl; - - const_ = 0; - - SimpleName name (name_id->lexeme ()); - Name type_name (type_id->lexeme ()); - ScopedName from (ctx.scope ().scoped_name ()); - - try - { - try - { - Type& t (resolve<Type> (from, type_name, Flags::complete)); - - if (dynamic_cast<Octet*> (&t) || - dynamic_cast<Short*> (&t) || - dynamic_cast<UnsignedShort*> (&t) || - dynamic_cast<Long*> (&t) || - dynamic_cast<UnsignedLong*> (&t) || - dynamic_cast<LongLong*> (&t) || - dynamic_cast<UnsignedLongLong*> (&t)) - { - // Integer constant. - // - const_ = &ctx.tu ().new_node<SemanticGraph::IntConst> (); - - ctx.tu ().new_edge<Belongs> (*const_, t); - ctx.tu ().new_edge<Defines> (ctx.scope (), *const_, name); - } - - } - catch (Resolve const&) - { - cerr << "error: invalid const declaration" << endl; - throw; - } - - //@@ I am not handling NotUnique here. For example if - // I provide module name as type then the compiler - // will ICE. Think about other places it may happen - // (attribute, value memebr, typeded, others?). - // - } - catch (NotFound const&) - { - cerr << "no type with name \'" << name - << "\' visible from scope \'" << from << "\'" << endl; - } - catch (WrongType const&) - { - cerr << "declaration with name \'" << name - << "\' visible from scope \'" << from - << "\' is not a type declaration" << endl; - cerr << "using non-type as a const type is illegal" << endl; - } - catch (NotComplete const& e) - { - cerr << "type \'" << e.name () << "\' is not complete" << endl; - } - } - - void Const:: - expr () - { - //@@ Need to check if int_exp_stack is empty. - // - if (const_ && ctx.int_exp_size () > 0) - { - IntExpression& expr (ctx.int_exp_pop ()); - - ctx.tu ().new_edge<Initializes> (expr, *const_); - } - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Const.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Const.hpp deleted file mode 100644 index 37ac3153d16..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Const.hpp +++ /dev/null @@ -1,39 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Const.hpp -// author : Boris Kolpackov <boris@kolpackov.net> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_IMPL_CONST_HPP -#define CCF_IDL2_SEMANTIC_ACTION_IMPL_CONST_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" -#include "CCF/IDL2/SemanticAction/Const.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - struct Const : SemanticAction::Const, Base - { - Const (Context& c); - - virtual void - begin (IdentifierPtr const& type, - SimpleIdentifierPtr const& name); - - virtual void - expr (); - - private: - SemanticGraph::Const* const_; - }; - } - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_IMPL_CONST_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Elements.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Elements.cpp deleted file mode 100644 index 0076b9d757c..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Elements.cpp +++ /dev/null @@ -1,133 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Elements.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticAction/Impl/Elements.hpp" - -#include <iostream> - -using std::cerr; -using std::endl; - -namespace -{ - bool trace (false); -} - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - // @@ Need pointer iterator adapter. - - using namespace SemanticGraph; - using SemanticGraph::Scope; - - Nameables - resolve (TranslationUnit& tu, - ScopedName const& from, - Name const& name) throw (NotFound) - { - - if (trace) cerr << "resolve: starting resolution process for \'" - << name << "\' from \'" << from << "\'" << endl; - - Nameables r; - - // Check if name is already scoped. - // - if (name.scoped ()) - { - r = tu.lookup (ScopedName (name)); - } - else - { - // Obtain all nodes corresponding to this scope name. - // - - for (ScopedName next (from);;) - { - Nameables scopes (tu.lookup (next)); - - // Lookup the name in each scope. - // - for (Nameables::const_iterator - i (scopes.begin ()), end (scopes.end ()); - i != end; ++i) - { - if (Scope* s = dynamic_cast<Scope*> (*i)) - { - s->lookup (name, r); - } - } - - if (r.begin () != r.end () || next.simple ()) - { - // Found something -or- at the root scope. - // - break; - } - - next = ScopedName (next.begin (), next.end () - 1); - } - } - - if (r.begin () == r.end ()) - { - if (trace) cerr << "resolve: resolution process for \'" - << name << "\' from \'" << from << "\' failed." - << endl; - - throw NotFound (); - } - else - { - if (trace) cerr << "resolve: resolution process for \'" - << name << "\' from \'" << from << "\' succeeded:" - << endl; - - for (Nameables::const_iterator i (r.begin ()), end (r.end ()); - i != end; ++i) - { - if (trace) cerr << "\t\'" << (**i).scoped_name () << "\'" - << endl; - } - } - - return r; - } - - - // Lookup *all* scopes for a simple name - // - // - Nameable* - lookup (SemanticGraph::TranslationUnit& tu, - SemanticGraph::Scope& in, - SemanticGraph::SimpleName const& name) throw (NotUnique) - { - Nameables r; - - Nameables scopes (tu.lookup (in.scoped_name ())); - - for (Nameables::const_iterator - i (scopes.begin ()), end (scopes.end ()); - i != end; ++i) - { - dynamic_cast<Scope&> (**i).lookup (name, r); - } - - if (r.size () > 1) throw NotUnique (); - - if (r.empty ()) return 0; - - return *(r.begin ()); - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Elements.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Elements.hpp deleted file mode 100644 index 9b32c0931e1..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Elements.hpp +++ /dev/null @@ -1,304 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Elements.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_IMPL_ELEMENTS_HPP -#define CCF_IDL2_SEMANTIC_ACTION_IMPL_ELEMENTS_HPP - -#include <stack> - -#include "CCF/IDL2/SemanticGraph/Translation.hpp" -#include "CCF/IDL2/SemanticGraph/IntExpression.hpp" - -#include "CCF/IDL2/SemanticAction/Elements.hpp" - -/* - Design notes: - - (1) I am using stack-based approach to handle cases like this: - - struct A - { - struct B - { - struct C - { - ... - } c; - - } b; - }; - - Even though you can't write the same let's say for interface - I am still using stack approach for consistency and possible - meta-coding. - -*/ - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - - // - // - // - class Context - { - public: - Context (bool trace, - SemanticGraph::TranslationUnit& tu) - : trace_ (trace), - tu_ (tu) - { - } - - bool - trace () - { - return trace_; - } - - SemanticGraph::TranslationUnit& - tu () const - { - return tu_; - } - - SemanticGraph::Scope& - scope () const - { - return *scope_; - } - - void - scope (SemanticGraph::Scope& scope) - { - scope_ = &scope; - } - - SemanticGraph::TranslationRegion& - region () const - { - return *region_; - } - - void - region (SemanticGraph::TranslationRegion& r) - { - region_ = &r; - } - - public: - void - int_exp_push (SemanticGraph::IntExpression& e) - { - int_exp_stack_.push (&e); - } - - SemanticGraph::IntExpression& - int_exp_pop () - { - SemanticGraph::IntExpression& e (*int_exp_stack_.top ()); - int_exp_stack_.pop (); - return e; - } - - std::size_t - int_exp_size () - { - return int_exp_stack_.size (); - } - - void - int_exp_flush () - { - while (int_exp_stack_.size ()) - int_exp_stack_.pop (); - } - - private: - bool trace_; - SemanticGraph::TranslationUnit& tu_; - SemanticGraph::TranslationRegion* region_; - SemanticGraph::Scope* scope_; - - std::stack<SemanticGraph::IntExpression*> int_exp_stack_; - - private: - Context (Context const&); - void operator= (Context const&); - }; - - - // - // - // - class Base - { - protected: - virtual - ~Base () - { - } - - Base (Context& c) - : ctx (c) - { - } - - protected: - - class Resolve {}; - - template <typename Id> - struct ExceptionTemplate : Resolve - { - explicit - ExceptionTemplate (SemanticGraph::ScopedName name) - : name_ (name) - { - } - - SemanticGraph::ScopedName - name () const - { - return name_; - } - - private: - SemanticGraph::ScopedName name_; - }; - - - struct NotFound : Resolve {}; - - class WrongType_ {}; - typedef ExceptionTemplate<WrongType_> WrongType; - - class NotUnique : Resolve {}; - - class NotDefined_ {}; - typedef ExceptionTemplate<NotDefined_> NotDefined; - - class NotComplete_ {}; - typedef ExceptionTemplate<NotComplete_> NotComplete; - - struct Flags - { - enum Value - { - none = 0x00, - complete = 0x01, - defined = 0x02 - }; - }; - - template <typename T> - T& - resolve (SemanticGraph::ScopedName const& from, - SemanticGraph::Name const& name, - Flags::Value flags = Flags::none) - throw (NotFound, NotUnique, WrongType, NotDefined, NotComplete); - - - class AlreadyInherited_ {}; - typedef ExceptionTemplate<AlreadyInherited_> AlreadyInherited; - - class AlreadySupported_ {}; - typedef ExceptionTemplate<AlreadySupported_> AlreadySupported; - - template<typename I> - void - check_inheritance (I begin, I end, SemanticGraph::Nameable& t) - throw (AlreadyInherited); - - template<typename I> - void - check_support (I begin, I end, SemanticGraph::Nameable& t) - throw (AlreadySupported); - - protected: - Context& ctx; - }; - - - // - // - // - template <typename T> - class ScopeBase : public Base - { - protected: - ScopeBase (Context& c) - : Base (c) - { - } - - protected: - T& - now () const - { - return *now_; - } - - void - now (T& t) - { - now_ = &t; - } - - void - push (SemanticGraph::Scope& t) - { - stack_.push (&t); - } - - void - pop () - { - stack_.pop (); - } - - SemanticGraph::Scope& - top () - { - return *stack_.top (); - } - - private: - T* now_; - std::stack<SemanticGraph::Scope*> stack_; - }; - - - // - // - // - class NotFound {}; - class NotUnique {}; - - SemanticGraph::Nameables - resolve (SemanticGraph::TranslationUnit& tu, - SemanticGraph::ScopedName const& from, - SemanticGraph::Name const& name) throw (NotFound); - - - - - SemanticGraph::Nameable* - lookup (SemanticGraph::TranslationUnit& tu, - SemanticGraph::Scope& in, - SemanticGraph::SimpleName const& name) throw (NotUnique); - } - } - } -} - -#include "CCF/IDL2/SemanticAction/Impl/Elements.tpp" - -#endif // CCF_IDL2_SEMANTIC_ACTION_IMPL_ELEMENTS_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Elements.tpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Elements.tpp deleted file mode 100644 index 13d4e8905d4..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Elements.tpp +++ /dev/null @@ -1,94 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Elements.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - template <typename T> - T& Base:: - resolve (SemanticGraph::ScopedName const& from, - SemanticGraph::Name const& name, - Flags::Value flags) - throw (NotFound, NotUnique, WrongType, NotDefined, NotComplete) - { - using namespace SemanticGraph; - - try - { - Nameables nodes (Impl::resolve (ctx.tu (), from, name)); - - - if (nodes.size () != 1) throw NotUnique (); - - Nameable& node (**(nodes.begin ())); - - try - { - T& t (dynamic_cast<T&> (node)); - - if (flags & Flags::defined) - { - if (!t.defined ()) throw NotDefined (node.scoped_name ()); - } - - if (flags & Flags::complete) - { - SemanticGraph::Type& type ( - dynamic_cast<SemanticGraph::Type&> (t)); - - if (!type.complete ()) - { - throw NotComplete (node.scoped_name ()); - } - } - - return t; - } - catch (std::bad_cast const&) - { - throw WrongType (node.scoped_name ()); - } - } - catch (Impl::NotFound const&) - { - throw NotFound (); - } - } - - template<typename I> - void Base:: - check_inheritance (I begin, I end, SemanticGraph::Nameable& t) - throw (AlreadyInherited) - { - for (;begin != end; ++begin) - { - if ((**begin).inheritee () == t) - { - throw AlreadyInherited (t.scoped_name ()); - } - } - } - - template<typename I> - void Base:: - check_support (I begin, I end, SemanticGraph::Nameable& t) - throw (AlreadySupported) - { - for (;begin != end; ++begin) - { - if ((**begin).supportee () == t) - { - throw AlreadySupported (t.scoped_name ()); - } - } - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Enum.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Enum.cpp deleted file mode 100644 index a87d87470b2..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Enum.cpp +++ /dev/null @@ -1,69 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Enum.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticAction/Impl/Enum.hpp" - -#include <iostream> - -using std::cerr; -using std::endl; - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - using namespace SemanticGraph; - - Enum:: - Enum (Context& c) - : Base (c) - { - } - - void Enum:: - begin (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "enum " << id << endl; - - type_ = 0; - - SimpleName name (id->lexeme ()); - - //@@ Need to check for redeclaration of the name. - // - - type_ = &ctx.tu ().new_node<SemanticGraph::Enum> (); - ctx.tu ().new_edge<Defines> (ctx.scope (), *type_, name); - } - - void Enum:: - enumerator (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "enumerator " << id << endl; - - //@@ Need to check for redeclaration of the name. - // - - SimpleName name (id->lexeme ()); - - if (type_ != 0) - { - Enumerator& e (ctx.tu ().new_node<Enumerator> ()); - ctx.tu ().new_edge<Belongs> (e, *type_); - } - } - - void Enum:: - end () - { - if (ctx.trace ()) cerr << "end" << endl; - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Enum.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Enum.hpp deleted file mode 100644 index df25fb0455f..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Enum.hpp +++ /dev/null @@ -1,41 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Enum.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_IMPL_ENUM_HPP -#define CCF_IDL2_SEMANTIC_ACTION_IMPL_ENUM_HPP - -#include "CCF/IDL2/SemanticGraph/Enum.hpp" -#include "CCF/IDL2/SemanticAction/Enum.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - struct Enum : SemanticAction::Enum, Base - { - Enum (Context& c); - - virtual void - begin (SimpleIdentifierPtr const& id); - - virtual void - enumerator (SimpleIdentifierPtr const& id); - - virtual void - end (); - - private: - SemanticGraph::Enum* type_; - }; - } - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_IMPL_ENUM_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Exception.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Exception.cpp deleted file mode 100644 index 5fb70498011..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Exception.cpp +++ /dev/null @@ -1,69 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Exception.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticAction/Impl/Exception.hpp" - -#include <iostream> - -using std::cerr; -using std::endl; - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - using namespace SemanticGraph; - - Exception:: - Exception (Context& c) - : ScopeBase<SemanticGraph::Exception> (c) - { - } - - void Exception:: - begin (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "exception " << id << endl; - - SimpleName name (id->lexeme ()); - - //@@ Need to check for redeclaration of the name. Can not - // do that because I don't have mechanism for throwing - // exception from SA. - // - now (ctx.tu ().new_node<SemanticGraph::Exception> ()); - ctx.tu ().new_edge<Defines> (ctx.scope (), now (), name); - } - - void Exception:: - open_scope () - { - if (ctx.trace ()) cerr << "scope open" << endl; - - push (ctx.scope ()); - ctx.scope (now ()); - } - - void Exception:: - close_scope () - { - ctx.scope (top ()); - pop (); - - if (ctx.trace ()) cerr << "scope close" << endl; - } - - void Exception:: - end () - { - if (ctx.trace ()) cerr << "end" << endl; - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Exception.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Exception.hpp deleted file mode 100644 index 6ed44048b36..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Exception.hpp +++ /dev/null @@ -1,42 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Exception.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_IMPL_EXCEPTION_HPP -#define CCF_IDL2_SEMANTIC_ACTION_IMPL_EXCEPTION_HPP - -#include "CCF/IDL2/SemanticGraph/Exception.hpp" -#include "CCF/IDL2/SemanticAction/Exception.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - struct Exception : SemanticAction::Exception, - ScopeBase<SemanticGraph::Exception> - { - Exception (Context& c); - - virtual void - begin (SimpleIdentifierPtr const& id); - - virtual void - open_scope (); - - virtual void - close_scope (); - - virtual void - end (); - }; - } - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_IMPL_EXCEPTION_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Factory.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Factory.cpp deleted file mode 100644 index 9c5ac4df626..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Factory.cpp +++ /dev/null @@ -1,86 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Factory.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/Fundamental.hpp" - -#include "CCF/IDL2/SemanticAction/Impl/Factory.hpp" - - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - using namespace SemanticGraph; - - Factory:: - Factory (CompilerElements::Context& context, - Diagnostic::Stream&, - SemanticGraph::TranslationUnit& tu) - : ctx_ (context.get ("trace-semantic-action", false), tu), - - attribute_ (ctx_), - const__ (ctx_), - enum__ (ctx_), - exception_ (ctx_), - include_ (ctx_), - interface_ (ctx_), - member_ (ctx_), - module_ (ctx_), - native_ (ctx_), - numeric_expression_ (ctx_), - operation_ (ctx_), - struct__ (ctx_), - typedef__ (ctx_), - type_id_ (ctx_), - type_prefix_ (ctx_), - union__ (ctx_), - value_type_ (ctx_), - value_type_factory_ (ctx_), - value_type_member_ (ctx_) - { - // Implied translation region with fundamental types. - // - TranslationRegion& ftr (tu.new_node<TranslationRegion> ()); - tu.new_edge<ContainsImplied> (tu, ftr, ".fundamental"); - - Root& fr (tu.new_node<Root> ()); - tu.new_edge<ContainsRoot> (ftr, fr); - - tu.new_edge<Defines> (fr, tu.new_node<Object> (), "Object"); - tu.new_edge<Defines> (fr, tu.new_node<ValueBase> (), "ValueBase"); - tu.new_edge<Defines> (fr, tu.new_node<Any> (), "any"); - tu.new_edge<Defines> (fr, tu.new_node<Boolean> (), "boolean"); - tu.new_edge<Defines> (fr, tu.new_node<Char> (), "char"); - tu.new_edge<Defines> (fr, tu.new_node<Double> (), "double"); - tu.new_edge<Defines> (fr, tu.new_node<Float> (), "float"); - tu.new_edge<Defines> (fr, tu.new_node<Long> (), "long"); - tu.new_edge<Defines> (fr, tu.new_node<LongDouble> (), "long double"); - tu.new_edge<Defines> (fr, tu.new_node<LongLong> (), "long long"); - tu.new_edge<Defines> (fr, tu.new_node<Octet> (), "octet"); - tu.new_edge<Defines> (fr, tu.new_node<Short> (), "short"); - tu.new_edge<Defines> (fr, tu.new_node<String> (), "string"); - tu.new_edge<Defines> (fr, tu.new_node<UnsignedLong> (), "unsigned long"); - tu.new_edge<Defines> (fr, tu.new_node<UnsignedLongLong> (), "unsigned long long"); - tu.new_edge<Defines> (fr, tu.new_node<UnsignedShort> (), "unsigned short"); - tu.new_edge<Defines> (fr, tu.new_node<Void> (), "void"); - tu.new_edge<Defines> (fr, tu.new_node<Wchar> (), "wchar"); - tu.new_edge<Defines> (fr, tu.new_node<Wstring> (), "wstring"); - - TranslationRegion& principal (tu.new_node<TranslationRegion> ()); - tu.new_edge<ContainsPrincipal> (tu, principal); - - Root& root (tu.new_node<Root> ()); - tu.new_edge<ContainsRoot> (principal, root); - - ctx_.region (principal); - ctx_.scope (root); - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Factory.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Factory.hpp deleted file mode 100644 index 4a0b8aceb8b..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Factory.hpp +++ /dev/null @@ -1,194 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Factory.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_IMPL_FACTORY_HPP -#define CCF_IDL2_SEMANTIC_ACTION_IMPL_FACTORY_HPP - -#include "CCF/CompilerElements/Diagnostic.hpp" - -#include "CCF/IDL2/SemanticGraph/Translation.hpp" - -#include "CCF/IDL2/SemanticAction/Factory.hpp" - -#include "CCF/IDL2/SemanticAction/Impl/Elements.hpp" - -//@@ It would be nice to move this includes into .cpp -// -#include "CCF/IDL2/SemanticAction/Impl/Attribute.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Const.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Enum.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Exception.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Include.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Interface.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Member.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Module.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Native.hpp" -#include "CCF/IDL2/SemanticAction/Impl/NumericExpression.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Operation.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Struct.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Typedef.hpp" -#include "CCF/IDL2/SemanticAction/Impl/TypeId.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Union.hpp" -#include "CCF/IDL2/SemanticAction/Impl/ValueType.hpp" -#include "CCF/IDL2/SemanticAction/Impl/ValueTypeFactory.hpp" -#include "CCF/IDL2/SemanticAction/Impl/ValueTypeMember.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - struct Factory : virtual IDL2::SemanticAction::Factory - { - Factory (CompilerElements::Context& context, - Diagnostic::Stream& dout, - SemanticGraph::TranslationUnit& tu); - - virtual SemanticAction::Attribute& - attribute () - { - return attribute_; - } - - virtual SemanticAction::Const& - const_ () - { - return const__; - } - - virtual SemanticAction::Enum& - enum_ () - { - return enum__; - } - - virtual SemanticAction::Exception& - exception () - { - return exception_; - } - - virtual SemanticAction::Include& - include () - { - return include_; - } - - virtual SemanticAction::Interface& - interface () - { - return interface_; - } - - virtual SemanticAction::Member& - member () - { - return member_; - } - - virtual SemanticAction::Module& - module () - { - return module_; - } - - virtual SemanticAction::Native& - native () - { - return native_; - } - - virtual SemanticAction::NumericExpression& - numeric_expression () - { - return numeric_expression_; - } - - virtual SemanticAction::Operation& - operation () - { - return operation_; - } - - virtual SemanticAction::Struct& - struct_ () - { - return struct__; - } - - virtual SemanticAction::Typedef& - typedef_ () - { - return typedef__; - } - - virtual SemanticAction::TypeId& - type_id () - { - return type_id_; - } - - virtual SemanticAction::TypePrefix& - type_prefix () - { - return type_prefix_; - } - - virtual SemanticAction::Union& - union_ () - { - return union__; - } - - virtual SemanticAction::ValueType& - value_type () - { - return value_type_; - } - - virtual ValueTypeFactory& - value_type_factory () - { - return value_type_factory_; - } - - virtual SemanticAction::ValueTypeMember& - value_type_member () - { - return value_type_member_; - } - - protected: - Context ctx_; - - private: - Attribute attribute_; - Const const__; - Enum enum__; - Exception exception_; - Include include_; - Interface interface_; - Member member_; - Module module_; - Native native_; - NumericExpression numeric_expression_; - Operation operation_; - Struct struct__; - Typedef typedef__; - TypeId type_id_; - TypePrefix type_prefix_; - Union union__; - ValueType value_type_; - ValueTypeFactory value_type_factory_; - ValueTypeMember value_type_member_; - }; - } - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_IMPL_FACTORY_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Include.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Include.cpp deleted file mode 100644 index ad6561030f4..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Include.cpp +++ /dev/null @@ -1,50 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Include.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticAction/Impl/Include.hpp" - -#include <iostream> - -using std::cerr; -using std::endl; - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - // @@ This is left unimplemented for now. Later code from - // IDL3 should be copied here. Or better yet this implementation - // should allow customization via overriding. - // - Include:: - Include (Context& c) - : ctx (c) - { - } - - void Include:: - quote (StringLiteralPtr const& sl) - { - if (ctx.trace ()) cerr << "__qinclude " << sl << endl; - } - - void Include:: - bracket (StringLiteralPtr const& sl) - { - if (ctx.trace ()) cerr << "__binclude " << sl << endl; - } - - void Include:: - end () - { - if (ctx.trace ()) cerr << "end" << endl; - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Include.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Include.hpp deleted file mode 100644 index 57b573e23a3..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Include.hpp +++ /dev/null @@ -1,41 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Include.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_IMPL_INCLUDE_HPP -#define CCF_IDL2_SEMANTIC_ACTION_IMPL_INCLUDE_HPP - - -#include "CCF/IDL2/SemanticAction/Include.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - struct Include : SemanticAction::Include - { - Include (Context& c); - - virtual void - quote (StringLiteralPtr const& sl); - - virtual void - bracket (StringLiteralPtr const& sl); - - virtual void - end (); - - private: - Context& ctx; - }; - } - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_IMPL_INCLUDE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Interface.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Interface.cpp deleted file mode 100644 index 4f26c633caa..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Interface.cpp +++ /dev/null @@ -1,247 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Interface.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticAction/Impl/Interface.hpp" - -#include <iostream> - -using std::cerr; -using std::endl; - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - using namespace SemanticGraph; - - Interface:: - Interface (Context& c) - : ScopeBase<SemanticGraph::Interface> (c) - { - } - - void Interface:: - begin_abstract_def (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "abstract interface def " << id << endl; - - qualifier_ = Qualifier::abstract; - - SimpleName name (id->lexeme ()); - - //@@ Not handling NotUnique exception. - // - if (Nameable* s = lookup (ctx.tu (), ctx.scope (), name)) - { - now (dynamic_cast<AbstractInterface&>(*s)); - } - else - { - now (ctx.tu ().new_node<AbstractInterface> ()); - } - - ctx.tu ().new_edge<Defines> (ctx.scope (), now (), name); - } - - void Interface:: - begin_abstract_fwd (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "abstract interface fwd " << id << endl; - - SimpleName name (id->lexeme ()); - - if (Nameable* s = lookup (ctx.tu (), ctx.scope (), name)) - { - now (dynamic_cast<AbstractInterface&>(*s)); - } - else - { - now (ctx.tu ().new_node<AbstractInterface> ()); - } - - ctx.tu ().new_edge<Mentions> (ctx.scope (), now (), name); - } - - void Interface:: - begin_local_def (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "local interface def " << id << endl; - - qualifier_ = Qualifier::local; - - SimpleName name (id->lexeme ()); - - if (Nameable* s = lookup (ctx.tu (), ctx.scope (), name)) - { - now (dynamic_cast<LocalInterface&>(*s)); - } - else - { - now (ctx.tu ().new_node<LocalInterface> ()); - } - - ctx.tu ().new_edge<Defines> (ctx.scope (), now (), name); - } - - void Interface:: - begin_local_fwd (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "local interface fwd " << id << endl; - - SimpleName name (id->lexeme ()); - - if (Nameable* s = lookup (ctx.tu (), ctx.scope (), name)) - { - now (dynamic_cast<LocalInterface&>(*s)); - } - else - { - now (ctx.tu ().new_node<LocalInterface> ()); - } - - ctx.tu ().new_edge<Mentions> (ctx.scope (), now (), name); - } - - void Interface:: - begin_unconstrained_def (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "unconstrained interface def " << id - << endl; - - qualifier_ = Qualifier::unconstrained; - - SimpleName name (id->lexeme ()); - - if (Nameable* s = lookup (ctx.tu (), ctx.scope (), name)) - { - now (dynamic_cast<UnconstrainedInterface&>(*s)); - } - else - { - now (ctx.tu ().new_node<UnconstrainedInterface> ()); - } - - ctx.tu ().new_edge<Defines> (ctx.scope (), now (), name); - } - - void Interface:: - begin_unconstrained_fwd (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "unconstrained interface fwd " << id - << endl; - - SimpleName name (id->lexeme ()); - - if (Nameable* s = lookup (ctx.tu (), ctx.scope (), name)) - { - now (dynamic_cast<UnconstrainedInterface&>(*s)); - } - else - { - now (ctx.tu ().new_node<UnconstrainedInterface> ()); - } - - ctx.tu ().new_edge<Mentions> (ctx.scope (), now (), name); - } - - void Interface:: - inherits (IdentifierPtr const& id) - { - if (ctx.trace ()) cerr << " inherits " << id << endl; - - Name name (id->lexeme ()); - ScopedName from (ctx.scope ().scoped_name ()); - - try - { - try - { - SemanticGraph::Interface& i ( - resolve<SemanticGraph::Interface> (from, name, Flags::defined)); - - switch (qualifier_) - { - case Qualifier::abstract: - { - if (dynamic_cast<AbstractInterface*> (&i)) break; - - throw WrongType (i.scoped_name ()); - } - case Qualifier::unconstrained: - { - if (dynamic_cast<UnconstrainedInterface*> (&i) || - dynamic_cast<AbstractInterface*> (&i)) break; - - throw WrongType (i.scoped_name ()); - } - default: break; - } - - check_inheritance (now ().inherits_begin (), - now ().inherits_end (), - i); - - ctx.tu ().new_edge<Inherits> (now (), i); - ctx.tu ().new_edge<Extends> (now (), i); - } - catch (Resolve const&) - { - cerr << "error: invalid inheritance specification" << endl; - throw; - } - } - catch (NotFound const&) - { - cerr << "no interface with name \'" << name - << "\' visible from scope \'" << from << "\'" << endl; - } - catch (WrongType const&) - { - cerr << "incompatible type in inheritance specification" << endl; - } - catch (NotDefined const& e) - { - cerr << "attempt to inherit from forward-declared interface " - << e.name () << endl; - cerr << "inheritance from forward-declared interface is illegal" - << endl; - } - catch (AlreadyInherited const& e) - { - cerr << "directly inheriting from interface \'" << e.name () - << "\' more than once is illegal" << endl; - } - } - - void Interface:: - open_scope () - { - if (ctx.trace ()) cerr << "scope open" << endl; - - push (ctx.scope ()); - ctx.scope (now ()); - } - - void Interface:: - close_scope () - { - ctx.scope (top ()); - pop (); - - if (ctx.trace ()) cerr << "scope close" << endl; - } - - void Interface:: - end () - { - if (ctx.trace ()) cerr << "end" << endl; - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Interface.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Interface.hpp deleted file mode 100644 index f25315a1a28..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Interface.hpp +++ /dev/null @@ -1,69 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Interface.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_IMPL_INTERFACE_HPP -#define CCF_IDL2_SEMANTIC_ACTION_IMPL_INTERFACE_HPP - -#include "CCF/IDL2/SemanticGraph/Interface.hpp" -#include "CCF/IDL2/SemanticAction/Interface.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - struct Interface : SemanticAction::Interface, - ScopeBase<SemanticGraph::Interface> - { - Interface (Context& c); - - virtual void - begin_abstract_def (SimpleIdentifierPtr const& id); - - virtual void - begin_abstract_fwd (SimpleIdentifierPtr const& id); - - virtual void - begin_local_def (SimpleIdentifierPtr const& id); - - virtual void - begin_local_fwd (SimpleIdentifierPtr const& id); - - virtual void - begin_unconstrained_def (SimpleIdentifierPtr const& id); - - virtual void - begin_unconstrained_fwd (SimpleIdentifierPtr const& id); - - virtual void - inherits (IdentifierPtr const& id); - - virtual void - open_scope (); - - virtual void - close_scope (); - - virtual void - end (); - - private: - struct Qualifier - { - enum Value { abstract, local, unconstrained }; - }; - - Qualifier::Value qualifier_; - }; - - } - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_IMPL_INTERFACE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Member.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Member.cpp deleted file mode 100644 index b68f3251f48..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Member.cpp +++ /dev/null @@ -1,106 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Member.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticAction/Impl/Member.hpp" - -#include "CCF/IDL2/SemanticGraph/Member.hpp" - -#include <iostream> - -using std::cerr; -using std::endl; - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - using namespace SemanticGraph; - - Member:: - Member (Context& c) - : Base (c) - { - } - - void Member:: - type (IdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "member " << id << endl; - - type_ = 0; - - Name name (id->lexeme ()); - ScopedName from (ctx.scope ().scoped_name ()); - - try - { - try - { - // With introduction of CORBA 3.1 we have a new beast: - // struct with incoplete members which itself becomes - // incomplete. - // - type_ = &resolve<Type> (from, name/*, Flags::complete*/); - } - catch (Resolve const&) - { - cerr << "error: invalid member declaration" << endl; - throw; - } - - //@@ I am not handling NotUnique here. For example if - // I provide module name as type then the compiler - // will ICE. Think about other places it may happen - // (attribute, value memebr, typeded, others?). - // - } - catch (NotFound const&) - { - cerr << "no type with name \'" << name - << "\' visible from scope \'" << from << "\'" << endl; - } - catch (WrongType const&) - { - cerr << "declaration with name \'" << name - << "\' visible from scope \'" << from - << "\' is not a type declaration" << endl; - cerr << "using non-type as a member type is illegal" << endl; - } - catch (NotComplete const& e) - { - cerr << "type \'" << e.name () << "\' is not complete" << endl; - } - } - - - void Member:: - name (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << " " << id << endl; - - if (type_) - { - SimpleName name (id->lexeme ()); - - SemanticGraph::Member& m ( - ctx.tu ().new_node<SemanticGraph::Member> ()); - - ctx.tu ().new_edge<Belongs> (m, *type_); - ctx.tu ().new_edge<Defines> (ctx.scope (), m, name); - } - } - - void Member:: - end () - { - if (ctx.trace ()) cerr << "end" << endl; - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Member.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Member.hpp deleted file mode 100644 index 2ec51a1ab01..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Member.hpp +++ /dev/null @@ -1,41 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Member.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_IMPL_MEMBER_HPP -#define CCF_IDL2_SEMANTIC_ACTION_IMPL_MEMBER_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" -#include "CCF/IDL2/SemanticAction/Member.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - struct Member : SemanticAction::Member, Base - { - Member (Context& c); - - virtual void - type (IdentifierPtr const& id); - - virtual void - name (SimpleIdentifierPtr const& id); - - virtual void - end (); - - private: - SemanticGraph::Type* type_; - }; - } - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_IMPL_MEMBER_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Module.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Module.cpp deleted file mode 100644 index 180ac9508c6..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Module.cpp +++ /dev/null @@ -1,63 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Module.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticAction/Impl/Module.hpp" - -#include <iostream> - -using std::cerr; -using std::endl; - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - using namespace SemanticGraph; - - Module:: - Module (Context& c) - : ScopeBase<SemanticGraph::Module> (c) - { - } - - void Module:: - begin (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "module " << id << endl; - - now (ctx.tu ().new_node<SemanticGraph::Module> ()); - ctx.tu ().new_edge<Defines> (ctx.scope (), now (), id->lexeme ()); - } - - void Module:: - open_scope () - { - if (ctx.trace ()) cerr << "scope open" << endl; - - push (ctx.scope ()); - ctx.scope (now ()); - } - - void Module:: - close_scope () - { - ctx.scope (top ()); - pop (); - - if (ctx.trace ()) cerr << "scope close" << endl; - } - - void Module:: - end () - { - if (ctx.trace ()) cerr << "end" << endl; - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Module.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Module.hpp deleted file mode 100644 index 1fbbc4c78fc..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Module.hpp +++ /dev/null @@ -1,42 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Module.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_IMPL_MODULE_HPP -#define CCF_IDL2_SEMANTIC_ACTION_IMPL_MODULE_HPP - -#include "CCF/IDL2/SemanticGraph/Module.hpp" -#include "CCF/IDL2/SemanticAction/Module.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - struct Module : SemanticAction::Module, - ScopeBase<SemanticGraph::Module> - { - Module (Context& c); - - virtual void - begin (SimpleIdentifierPtr const& id); - - virtual void - open_scope (); - - virtual void - close_scope (); - - virtual void - end (); - }; - } - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_IMPL_MODULE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Native.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Native.cpp deleted file mode 100644 index bb4cf12b9af..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Native.cpp +++ /dev/null @@ -1,50 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Native.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/Native.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Native.hpp" - -#include <iostream> - -using std::cerr; -using std::endl; - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - using namespace SemanticGraph; - - Native:: - Native (Context& c) - : Base (c) - { - } - - void Native:: - name (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "native " << id << endl; - - SimpleName name (id->lexeme ()); - - SemanticGraph::Native& n ( - ctx.tu ().new_node<SemanticGraph::Native> ()); - - ctx.tu ().new_edge<Defines> (ctx.scope (), n, name); - } - - void Native:: - end () - { - if (ctx.trace ()) cerr << "end" << endl; - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Native.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Native.hpp deleted file mode 100644 index 52875c58862..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Native.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Native.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_IMPL_NATIVE_HPP -#define CCF_IDL2_SEMANTIC_ACTION_IMPL_NATIVE_HPP - -#include "CCF/IDL2/SemanticAction/Native.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - struct Native : SemanticAction::Native, Base - { - Native (Context& c); - - virtual void - name (SimpleIdentifierPtr const& id); - - virtual void - end (); - }; - } - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_IMPL_NATIVE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/NumericExpression.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/NumericExpression.cpp deleted file mode 100644 index 49f26cbcacb..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/NumericExpression.cpp +++ /dev/null @@ -1,338 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/NumericExpression.cpp -// author : Boris Kolpackov <boris@kolpackov.net> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticAction/Impl/NumericExpression.hpp" - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" -#include "CCF/IDL2/SemanticGraph/IntExpression.hpp" - -#include <iostream> - -using std::cerr; -using std::endl; - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - using namespace SemanticGraph; - - NumericExpression:: - NumericExpression (Context& c) - : Base (c) - { - } - - void NumericExpression:: - flush () - { - if (ctx.trace ()) - cerr << "expression" << endl; - - ctx.int_exp_flush (); - } - - void NumericExpression:: - const_ (IdentifierPtr const& id) - { - if (ctx.trace ()) - cerr << "const " << id << endl; - - Name name (id->lexeme ()); - ScopedName from (ctx.scope ().scoped_name ()); - - try - { - try - { - Const& c (resolve<Const> (from, name)); - - if (IntConst* ic = dynamic_cast<IntConst*> (&c)) - { - ctx.int_exp_push (*ic); - } - } - catch (Resolve const&) - { - cerr << "error: invalid reference to const" << endl; - throw; - } - } - catch (NotFound const&) - { - cerr << "no const with name \'" << name - << "\' visible from scope \'" << from << "\'" << endl; - } - catch (WrongType const&) - { - cerr << "declaration with name \'" << name - << "\' visible from scope \'" << from - << "\' is not a const declaration" << endl; - cerr << "using non-const as a reference to const is illegal" - << endl; - } - } - - void NumericExpression:: - integer_literal (IntegerLiteralPtr const& il) - { - if (ctx.trace ()) - cerr << "integer literal " << il->value () << endl; - - ctx.int_exp_push (ctx.tu ().new_node<IntLiteral> (il->value ())); - } - - void NumericExpression:: - pos () - { - if (ctx.trace ()) - cerr << "unary +" << endl; - - // Nothing to do. - } - - void NumericExpression:: - neg () - { - if (ctx.trace ()) - cerr << "unary -" << endl; - - if (ctx.int_exp_size () < 1) - return; - - IntExpression& expr (ctx.int_exp_pop ()); - - IntNeg& neg (ctx.tu ().new_node<IntNeg> ()); - - ctx.tu ().new_edge<IntNegates> (neg, expr); - - ctx.int_exp_push (neg); - } - - void NumericExpression:: - com () - { - if (ctx.trace ()) - cerr << "unary ~" << endl; - - if (ctx.int_exp_size () < 1) - return; - - IntExpression& expr (ctx.int_exp_pop ()); - - IntCom& com (ctx.tu ().new_node<IntCom> ()); - - ctx.tu ().new_edge<IntComplements> (com, expr); - - ctx.int_exp_push (com); - } - - void NumericExpression:: - mul () - { - if (ctx.trace ()) - cerr << "*" << endl; - - if (ctx.int_exp_size () < 2) - return; - - IntExpression& multiplier (ctx.int_exp_pop ()); - IntExpression& multiplicand (ctx.int_exp_pop ()); - - IntMul& mul (ctx.tu ().new_node<IntMul> ()); - - ctx.tu ().new_edge<IntMultiplies> (mul, multiplicand); - ctx.tu ().new_edge<IntMultiplies> (mul, multiplier); - - ctx.int_exp_push (mul); - } - - void NumericExpression:: - div () - { - if (ctx.trace ()) - cerr << "/" << endl; - - if (ctx.int_exp_size () < 2) - return; - - IntExpression& divisor (ctx.int_exp_pop ()); - IntExpression& divident (ctx.int_exp_pop ()); - - IntDiv& div (ctx.tu ().new_node<IntDiv> ()); - - ctx.tu ().new_edge<IntDivides> (div, divident); - ctx.tu ().new_edge<IntDivides> (div, divisor); - - ctx.int_exp_push (div); - } - - void NumericExpression:: - rem () - { - if (ctx.trace ()) - cerr << "%" << endl; - - if (ctx.int_exp_size () < 2) - return; - - IntExpression& divisor (ctx.int_exp_pop ()); - IntExpression& divident (ctx.int_exp_pop ()); - - IntRem& rem (ctx.tu ().new_node<IntRem> ()); - - ctx.tu ().new_edge<IntDivides> (rem, divident); - ctx.tu ().new_edge<IntDivides> (rem, divisor); - - ctx.int_exp_push (rem); - } - - - void NumericExpression:: - add () - { - if (ctx.trace ()) - cerr << "+" << endl; - - if (ctx.int_exp_size () < 2) - return; - - IntExpression& second_item (ctx.int_exp_pop ()); - IntExpression& first_item (ctx.int_exp_pop ()); - - IntAdd& add (ctx.tu ().new_node<IntAdd> ()); - - ctx.tu ().new_edge<IntAdds> (add, first_item); - ctx.tu ().new_edge<IntAdds> (add, second_item); - - ctx.int_exp_push (add); - } - - void NumericExpression:: - sub () - { - if (ctx.trace ()) - cerr << "-" << endl; - - if (ctx.int_exp_size () < 2) - return; - - IntExpression& subtrahend (ctx.int_exp_pop ()); - IntExpression& minuend (ctx.int_exp_pop ()); - - IntSub& sub (ctx.tu ().new_node<IntSub> ()); - - ctx.tu ().new_edge<IntSubtracts> (sub, minuend); - ctx.tu ().new_edge<IntSubtracts> (sub, subtrahend); - - ctx.int_exp_push (sub); - } - - void NumericExpression:: - rsh () - { - if (ctx.trace ()) - cerr << ">>" << endl; - - if (ctx.int_exp_size () < 2) - return; - - IntExpression& factor (ctx.int_exp_pop ()); - IntExpression& pattern (ctx.int_exp_pop ()); - - IntRsh& rsh (ctx.tu ().new_node<IntRsh> ()); - - ctx.tu ().new_edge<IntShifts> (rsh, pattern); - ctx.tu ().new_edge<IntShifts> (rsh, factor); - - ctx.int_exp_push (rsh); - } - - void NumericExpression:: - lsh () - { - if (ctx.trace ()) - cerr << "<<" << endl; - - if (ctx.int_exp_size () < 2) - return; - - IntExpression& factor (ctx.int_exp_pop ()); - IntExpression& pattern (ctx.int_exp_pop ()); - - IntLsh& lsh (ctx.tu ().new_node<IntLsh> ()); - - ctx.tu ().new_edge<IntShifts> (lsh, pattern); - ctx.tu ().new_edge<IntShifts> (lsh, factor); - - ctx.int_exp_push (lsh); - } - - void NumericExpression:: - and_ () - { - if (ctx.trace ()) - cerr << "&" << endl; - - if (ctx.int_exp_size () < 2) - return; - - IntExpression& second_pattern (ctx.int_exp_pop ()); - IntExpression& first_pattern (ctx.int_exp_pop ()); - - IntAnd& and_ (ctx.tu ().new_node<IntAnd> ()); - - ctx.tu ().new_edge<IntConjuncts> (and_, first_pattern); - ctx.tu ().new_edge<IntConjuncts> (and_, second_pattern); - - ctx.int_exp_push (and_); - } - - void NumericExpression:: - xor_ () - { - if (ctx.trace ()) - cerr << "^" << endl; - - if (ctx.int_exp_size () < 2) - return; - - IntExpression& second_pattern (ctx.int_exp_pop ()); - IntExpression& first_pattern (ctx.int_exp_pop ()); - - IntXor& xor_ (ctx.tu ().new_node<IntXor> ()); - - ctx.tu ().new_edge<IntExclusivelyDisjuncts> (xor_, first_pattern); - ctx.tu ().new_edge<IntExclusivelyDisjuncts> (xor_, second_pattern); - - ctx.int_exp_push (xor_); - } - - void NumericExpression:: - or_ () - { - if (ctx.trace ()) - cerr << "|" << endl; - - if (ctx.int_exp_size () < 2) - return; - - IntExpression& second_pattern (ctx.int_exp_pop ()); - IntExpression& first_pattern (ctx.int_exp_pop ()); - - IntOr& or_ (ctx.tu ().new_node<IntOr> ()); - - ctx.tu ().new_edge<IntInclusivelyDisjuncts> (or_, first_pattern); - ctx.tu ().new_edge<IntInclusivelyDisjuncts> (or_, second_pattern); - - ctx.int_exp_push (or_); - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/NumericExpression.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/NumericExpression.hpp deleted file mode 100644 index 53fc8b2e010..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/NumericExpression.hpp +++ /dev/null @@ -1,80 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/NumericExpression.hpp -// author : Boris Kolpackov <boris@kolpackov.net> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_IMPL_NUMERIC_EXPRESSION_HPP -#define CCF_IDL2_SEMANTIC_ACTION_IMPL_NUMERIC_EXPRESSION_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" -#include "CCF/IDL2/SemanticAction/NumericExpression.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - struct NumericExpression : SemanticAction::NumericExpression, Base - { - NumericExpression (Context& c); - - virtual void - flush (); - - virtual void - const_ (IdentifierPtr const&); - - virtual void - integer_literal (IntegerLiteralPtr const&); - - virtual void - pos (); - - virtual void - neg (); - - virtual void - com (); - - virtual void - mul (); - - virtual void - div (); - - virtual void - rem (); - - virtual void - add (); - - virtual void - sub (); - - virtual void - rsh (); - - virtual void - lsh (); - - virtual void - and_ (); - - virtual void - xor_ (); - - virtual void - or_ (); - - - private: - }; - } - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_IMPL_NUMERIC_EXPRESSION_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Operation.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Operation.cpp deleted file mode 100644 index 6a334438bdf..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Operation.cpp +++ /dev/null @@ -1,243 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Operation.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/Fundamental.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Operation.hpp" - -#include <iostream> - -using std::cerr; -using std::endl; - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - using namespace SemanticGraph; - - Operation:: - Operation (Context& c) - : Base (c) - { - } - - void Operation:: - one_way () - { - if (ctx.trace ()) cerr << "oneway "; - - op_ = &ctx.tu ().new_node<OneWayOperation> (); - } - - void Operation:: - two_way () - { - if (ctx.trace ()) cerr << "twoway "; - - op_ = &ctx.tu ().new_node<TwoWayOperation> (); - } - - void Operation:: - type (IdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "operation " << id; - - type_ = 0; - - Name name (id->lexeme ()); - ScopedName from (ctx.scope ().scoped_name ()); - - struct NotVoid : Resolve {}; - - try - { - try - { - Type& t (resolve<Type> (from, name, Flags::complete)); - - if (dynamic_cast<OneWayOperation*>(op_)) - { - if (dynamic_cast<Void*> (&t) == 0) throw NotVoid (); - } - - type_ = &t; - } - catch (Resolve const&) - { - cerr << "error: invalid operation declaration" << endl; - throw; - } - } - catch (NotFound const&) - { - cerr << "no type with name \'" << name - << "\' visible from scope \'" << from << "\'" << endl; - } - catch (WrongType const&) - { - cerr << "declaration with name \'" << name - << "\' visible from scope \'" << from - << "\' is not a type declaration" << endl; - cerr << "using non-type as an operation return type is illegal" - << endl; - } - catch (NotComplete const& e) - { - cerr << "type \'" << e.name () << "\' is not complete" << endl; - } - catch (NotVoid const&) - { - cerr << "oneway operation should have void as a return type" - << endl; - } - } - - void Operation:: - name (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << " " << id << endl; - - SimpleName name (id->lexeme ()); - ctx.tu ().new_edge<Defines> (ctx.scope (), *op_, name); - - if (type_) - { - ctx.tu ().new_edge<Returns> (*op_, *type_); - } - } - - - void Operation:: - parameter (Direction::Value direction, - IdentifierPtr const& type_id, - SimpleIdentifierPtr const& name_id) - { - if (ctx.trace ()) cerr << "parameter " << direction << " " - << type_id << " " << name_id << endl; - - Name name (type_id->lexeme ()); - ScopedName from (ctx.scope ().scoped_name ()); - - struct NotIn : Resolve {}; - - try - { - try - { - if (dynamic_cast<OneWayOperation*>(op_) && - direction != Direction::in) - { - throw NotIn (); - } - - Type& t (resolve<Type> (from, name, Flags::complete)); - - Parameter* p (0); - - switch (direction) - { - case Direction::in: - { - p = &ctx.tu ().new_node<InParameter> (name_id->lexeme ()); - break; - } - case Direction::out: - { - p = &ctx.tu ().new_node<OutParameter> (name_id->lexeme ()); - break; - } - case Direction::inout: - { - p = &ctx.tu ().new_node<InOutParameter> (name_id->lexeme ()); - break; - } - } - - ctx.tu ().new_edge<Belongs> (*p, t); - ctx.tu ().new_edge<Receives> (*op_, *p); - } - catch (Resolve const&) - { - cerr << "error: invalid parameter declaration" << endl; - throw; - } - } - catch (NotFound const&) - { - cerr << "no type with name \'" << name - << "\' visible from scope \'" << from << "\'" << endl; - } - catch (WrongType const&) - { - cerr << "declaration with name \'" << name - << "\' visible from scope \'" << from - << "\' is not a type declaration" << endl; - cerr << "using non-type as an operation parameter type is " - << "illegal" << endl; - } - catch (NotComplete const& e) - { - cerr << "type \'" << e.name () << "\' is not complete" << endl; - } - catch (NotIn const&) - { - cerr << "parameter of oneway operation should have \'in\' " - << "direction" << endl; - } - } - - - void Operation:: - raises (IdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "raises " << id << endl; - - Name name (id->lexeme ()); - ScopedName from (ctx.scope ().scoped_name ()); - - struct OneWay : Resolve {}; - - try - { - try - { - if (dynamic_cast<OneWayOperation*>(op_)) throw OneWay (); - - SemanticGraph::Exception& e ( - resolve<SemanticGraph::Exception> (from, name)); - - ctx.tu ().new_edge<Raises> (*op_, e); - } - catch (Resolve const&) - { - cerr << "error: invalid raises declaration" << endl; - throw; - } - } - catch (NotFound const&) - { - cerr << "no exception with name \'" << name - << "\' visible from scope \'" << from << "\'" << endl; - } - catch (WrongType const&) - { - cerr << "declaration with name \'" << name - << "\' visible from scope \'" << from - << "\' is not an exception declaration" << endl; - cerr << "using non-exception type in raises declaration is " - << "illegal" << endl; - } - catch (OneWay const&) - { - cerr << "oneway operation may not raise exceptions" << endl; - } - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Operation.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Operation.hpp deleted file mode 100644 index f38a4949206..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Operation.hpp +++ /dev/null @@ -1,57 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Operation.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_IMPL_OPERATION_HPP -#define CCF_IDL2_SEMANTIC_ACTION_IMPL_OPERATION_HPP - -#include "CCF/IDL2/SemanticGraph/Operation.hpp" -#include "CCF/IDL2/SemanticAction/Operation.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - // - // - // - struct Operation : SemanticAction::Operation, Base - { - Operation (Context& c); - - virtual void - one_way (); - - virtual void - two_way (); - - virtual void - type (IdentifierPtr const& id); - - virtual void - name (SimpleIdentifierPtr const& id); - - virtual void - parameter (Direction::Value direction, - IdentifierPtr const& type_id, - SimpleIdentifierPtr const& name_id); - - virtual void - raises (IdentifierPtr const& id); - - private: - SemanticGraph::Type* type_; - SemanticGraph::Operation* op_; - }; - - } - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_IMPL_OPERATION_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Struct.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Struct.cpp deleted file mode 100644 index 3f98a2607f8..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Struct.cpp +++ /dev/null @@ -1,97 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Struct.cpp -// author : Jeff Parsons <j.parsons@vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticAction/Impl/Struct.hpp" - -#include <iostream> - -using std::cerr; -using std::endl; - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - using namespace SemanticGraph; - - Struct:: - Struct (Context& c) - : ScopeBase<SemanticGraph::Struct> (c) - { - } - - // @@ I need a mechanism for propagating exceptions from - // semantic actions to the parser in order to stop - // semantic action invocation. - // - - void Struct:: - begin_def (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "struct def " << id << endl; - - SimpleName name (id->lexeme ()); - - if (Nameable* s = lookup (ctx.tu (), ctx.scope (), name)) - { - now (dynamic_cast<SemanticGraph::Struct&>(*s)); - } - else - { - now (ctx.tu ().new_node<SemanticGraph::Struct> ()); - } - - ctx.tu ().new_edge<Defines> (ctx.scope (), now (), name); - } - - void Struct:: - begin_fwd (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "struct fwd " << id << endl; - - SimpleName name (id->lexeme ()); - - if (Nameable* s = lookup (ctx.tu (), ctx.scope (), name)) - { - now (dynamic_cast<SemanticGraph::Struct&>(*s)); - } - else - { - now (ctx.tu ().new_node<SemanticGraph::Struct> ()); - } - - ctx.tu ().new_edge<Mentions> (ctx.scope (), now (), name); - } - - void Struct:: - open_scope () - { - if (ctx.trace ()) cerr << "scope open" << endl; - - push (ctx.scope ()); - ctx.scope (now ()); - } - - void Struct:: - close_scope () - { - ctx.scope (top ()); - pop (); - - if (ctx.trace ()) cerr << "scope close" << endl; - } - - void Struct:: - end () - { - if (ctx.trace ()) cerr << "end" << endl; - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Struct.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Struct.hpp deleted file mode 100644 index 0fafd69962f..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Struct.hpp +++ /dev/null @@ -1,45 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Struct.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_IMPL_STRUCT_HPP -#define CCF_IDL2_SEMANTIC_ACTION_IMPL_STRUCT_HPP - -#include "CCF/IDL2/SemanticGraph/Struct.hpp" -#include "CCF/IDL2/SemanticAction/Struct.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - struct Struct : SemanticAction::Struct, - ScopeBase<SemanticGraph::Struct> - { - Struct (Context& c); - - virtual void - begin_def (SimpleIdentifierPtr const& id); - - virtual void - begin_fwd (SimpleIdentifierPtr const& id); - - virtual void - open_scope (); - - virtual void - close_scope (); - - virtual void - end (); - }; - } - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_IMPL_STRUCT_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/TypeId.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/TypeId.cpp deleted file mode 100644 index a87fb5c4bcb..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/TypeId.cpp +++ /dev/null @@ -1,134 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/TypeId.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticAction/Impl/TypeId.hpp" - -#include "CCF/IDL2/SemanticGraph/TypeId.hpp" - -// These inclusions are needed to ensure that typeprefix is applied to a -// suitable declaration. - -#include "CCF/IDL2/SemanticGraph/Module.hpp" -#include "CCF/IDL2/SemanticGraph/Interface.hpp" -#include "CCF/IDL2/SemanticGraph/ValueType.hpp" - -#include <iostream> - -using std::cerr; -using std::endl; - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - using namespace SemanticGraph; - - // TypeId - // - // - TypeId:: - TypeId (Context& c) - : ctx (c) - { - } - - void TypeId:: - begin (IdentifierPtr const& d, StringLiteralPtr const& id) - { - if (ctx.trace ()) cerr << "typeid " << d << " " << id << endl; - - Name name (d->lexeme ()); - SemanticGraph::StringLiteral tid (id->value ()); - - try - { - ScopedName from (ctx.scope ().scoped_name ()); - Nameables nodes (resolve (ctx.tu (), from, name)); - - ScopedName full ((**(nodes.begin ())).scoped_name ()); - - SemanticGraph::TypeId& ti ( - ctx.tu ().new_node<SemanticGraph::TypeId> (full, tid)); - - ctx.tu ().new_edge<Defines> (ctx.scope (), ti, "typeid"); - } - catch (NotFound const&) - { - cerr << "error: invalid typeid declaration" << endl; - cerr << "no declaration with name \'" - << name << "\' visible from scope \'" - << ctx.scope ().scoped_name () << "\'" << endl; - } - } - - void TypeId:: - end () - { - if (ctx.trace ()) cerr << "end" << endl; - } - - - // TypePrefix - // - // - TypePrefix:: - TypePrefix (Context& c) - : ctx (c) - { - } - - void TypePrefix:: - begin (IdentifierPtr const& d, StringLiteralPtr const& prefix) - { - if (ctx.trace ()) cerr << "typeprefix " << d << " " << prefix - << endl; - - Name name (d->lexeme ()); - SemanticGraph::StringLiteral tprefix (prefix->value ()); - - try - { - ScopedName from (ctx.scope ().scoped_name ()); - Nameables nodes (resolve (ctx.tu (), from, name)); - - Nameable& node (**(nodes.begin ())); - - dynamic_cast<SemanticGraph::Scope&> (node); - - ScopedName full (node.scoped_name ()); - - SemanticGraph::TypePrefix& tp ( - ctx.tu ().new_node<SemanticGraph::TypePrefix> (full, tprefix)); - - ctx.tu ().new_edge<Defines> (ctx.scope (), tp, "typeprefix"); - } - catch (NotFound const&) - { - cerr << "error: invalid typeprefix declaration" << endl; - cerr << "no declaration with name \'" - << name << "\' visible from scope \'" - << ctx.scope ().scoped_name () << "\'" << endl; - } - catch (std::bad_cast const&) - { - cerr << "error: invalid typeprefix declaration" << endl; - cerr << "no suitable declaration with name \'" - << name << "\' visible from scope \'" - << ctx.scope ().scoped_name () << "\'" << endl; - } - } - - void TypePrefix:: - end () - { - if (ctx.trace ()) cerr << "end" << endl; - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/TypeId.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/TypeId.hpp deleted file mode 100644 index e88971eade4..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/TypeId.hpp +++ /dev/null @@ -1,58 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/TypeId.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_IMPL_TYPE_ID_HPP -#define CCF_IDL2_SEMANTIC_ACTION_IMPL_TYPE_ID_HPP - -#include "CCF/IDL2/SemanticAction/TypeId.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - // - // - // - struct TypeId : SemanticAction::TypeId - { - TypeId (Context& c); - - virtual void - begin (IdentifierPtr const& d, StringLiteralPtr const& id); - - virtual void - end (); - - private: - Context& ctx; - }; - - - // - // - // - struct TypePrefix : SemanticAction::TypePrefix - { - TypePrefix (Context& c); - - virtual void - begin (IdentifierPtr const& d, StringLiteralPtr const& prefix); - - virtual void - end (); - - private: - Context& ctx; - }; - } - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_IMPL_TYPE_ID_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Typedef.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Typedef.cpp deleted file mode 100644 index 315b69d0e51..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Typedef.cpp +++ /dev/null @@ -1,292 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Typedef.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticAction/Impl/Typedef.hpp" - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" - -#include "CCF/IDL2/SemanticGraph/Array.hpp" -#include "CCF/IDL2/SemanticGraph/Sequence.hpp" -#include "CCF/IDL2/SemanticGraph/String.hpp" - -#include <iostream> - -using std::cerr; -using std::endl; - -//@@ names used in smantic actions are inconsistent -// e.g. begin () vs name (), etc -// - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - using namespace SemanticGraph; - - Typedef:: - Typedef (Context& c) - : Base (c) - { - } - - void Typedef:: - begin (IdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "typedef " << id << endl; - - define_ = false; - type_ = 0; - array_type_ = 0; - - Name name (id->lexeme ()); - ScopedName from (ctx.scope ().scoped_name ()); - - try - { - try - { - type_ = &resolve<Type> (from, name); - } - catch (Resolve const&) - { - cerr << "error: invalid typedef declaration" << endl; - throw; - } - } - catch (NotFound const&) - { - cerr << "no type with name \'" << name - << "\' visible from scope \'" << from << "\'" << endl; - } - catch (WrongType const&) - { - cerr << "declaration with name \'" << name - << "\' visible from scope \'" << from - << "\' is not a type declaration" << endl; - cerr << "using non-type in typedef is illegal" << endl; - } - } - - void Typedef:: - begin_unbounded_seq (IdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "typedef u-sequence<" << id << ">" << endl; - - define_ = true; - type_ = 0; - array_type_ = 0; - - Name name (id->lexeme ()); - ScopedName from (ctx.scope ().scoped_name ()); - - try - { - try - { - Type& t (resolve<Type> (from, name)); - - UnboundedSequence& s (ctx.tu ().new_node<UnboundedSequence> ()); - ctx.tu ().new_edge<ArgumentsWithType> (t, s); - - type_ = &s; - } - catch (Resolve const&) - { - cerr << "error: invalid sequence declaration" << endl; - throw; - } - } - catch (NotFound const&) - { - cerr << "no type with name \'" << name - << "\' visible from scope \'" << from << "\'" << endl; - } - catch (WrongType const&) - { - cerr << "declaration with name \'" << name - << "\' visible from scope \'" << from - << "\' is not a type declaration" << endl; - cerr << "using non-type in sequence specialization is illegal" - << endl; - } - } - - void Typedef:: - begin_bounded_seq (IdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "typedef b-sequence<" << id << ">" << endl; - - define_ = true; - type_ = 0; - array_type_ = 0; - - Name name (id->lexeme ()); - ScopedName from (ctx.scope ().scoped_name ()); - - try - { - try - { - Type& t (resolve<Type> (from, name)); - - BoundedSequence& s (ctx.tu ().new_node<BoundedSequence> ()); - ctx.tu ().new_edge<ArgumentsWithType> (t, s); - - type_ = &s; - } - catch (Resolve const&) - { - cerr << "error: invalid sequence declaration" << endl; - throw; - } - } - catch (NotFound const&) - { - cerr << "no type with name \'" << name - << "\' visible from scope \'" << from << "\'" << endl; - } - catch (WrongType const&) - { - cerr << "declaration with name \'" << name - << "\' visible from scope \'" << from - << "\' is not a type declaration" << endl; - cerr << "using non-type in sequence specialization is illegal" - << endl; - } - } - - void Typedef:: - begin_bounded_string () - { - if (ctx.trace ()) cerr << "typedef b-string" << endl; - - define_ = true; - type_ = 0; - array_type_ = 0; - - type_ = &ctx.tu ().new_node<BoundedString> (); - bound (); - } - - void Typedef:: - begin_bounded_wstring () - { - if (ctx.trace ()) cerr << "typedef b-wstring" << endl; - - define_ = true; - type_ = 0; - array_type_ = 0; - - type_ = &ctx.tu ().new_node<BoundedWideString> (); - bound (); - } - - void Typedef:: - begin_array () - { - if (ctx.trace ()) cerr << "array" << endl; - - define_ = true; - array_type_ = 0; - - if (type_ == 0) - return; - - if (type_->named_begin () == type_->named_end ()) - { - cerr << "error: anonymous types in array declarations " - << "are not supported" << endl; - - cerr << "use another typedef to name this type" << endl; - - return; - } - - Array& a (ctx.tu ().new_node<Array> ()); - ctx.tu ().new_edge<ArgumentsWithType> (*type_, a); - - array_type_ = &a; - } - - void Typedef:: - bound () - { - if (ctx.trace ()) cerr << "bound" << endl; - - if (ctx.int_exp_size () < 1) - return; - - IntExpression& expr (ctx.int_exp_pop ()); - - if (array_type_ != 0) - { - Specialization& s (dynamic_cast<Specialization&> (*array_type_)); - ctx.tu ().new_edge<ArgumentsWithValue> (expr, s); - } - else if (type_ != 0) - { - Specialization& s (dynamic_cast<Specialization&> (*type_)); - ctx.tu ().new_edge<ArgumentsWithValue> (expr, s); - } - } - - void Typedef:: - declarator (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << " " << id << endl; - - SimpleName name (id->lexeme ()); - - try - { - if (lookup (ctx.tu (), ctx.scope (), name) == 0) - { - if (array_type_ != 0) - { - assert (define_); - - ctx.tu ().new_edge<Defines> (ctx.scope (), *array_type_, name); - - define_ = false; - array_type_ = 0; - } - else if (type_ != 0) - { - if (define_) - { - ctx.tu ().new_edge<Defines> (ctx.scope (), *type_, name); - define_ = false; - } - else - { - ctx.tu ().new_edge<Aliases> (ctx.scope (), *type_, name); - } - } - return; - } - } - catch (NotUnique const& ) - { - } - - cerr << "error: invalid typedef declaration" << endl; - cerr << "error: redeclaration of name " << name << endl; - - array_type_ = 0; - } - - void Typedef:: - end () - { - if (ctx.trace ()) cerr << "end" << endl; - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Typedef.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Typedef.hpp deleted file mode 100644 index 904a04ee56b..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Typedef.hpp +++ /dev/null @@ -1,61 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Typedef.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_IMPL_TYPEDEF_HPP -#define CCF_IDL2_SEMANTIC_ACTION_IMPL_TYPEDEF_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" -#include "CCF/IDL2/SemanticAction/Typedef.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - struct Typedef : SemanticAction::Typedef, Base - { - Typedef (Context& c); - - virtual void - begin (IdentifierPtr const& id); - - virtual void - begin_unbounded_seq (IdentifierPtr const& id); - - virtual void - begin_bounded_seq (IdentifierPtr const& id); - - virtual void - begin_bounded_string (); - - virtual void - begin_bounded_wstring (); - - virtual void - begin_array (); - - virtual void - bound (); - - virtual void - declarator (SimpleIdentifierPtr const& id); - - virtual void - end (); - - private: - bool define_; - SemanticGraph::Type* type_; - SemanticGraph::Type* array_type_; - }; - } - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_IMPL_TYPEDEF_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Union.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Union.cpp deleted file mode 100644 index b11d10e4f45..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Union.cpp +++ /dev/null @@ -1,213 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Union.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticAction/Impl/Union.hpp" - -#include "CCF/IDL2/SemanticGraph/Enum.hpp" -#include "CCF/IDL2/SemanticGraph/Fundamental.hpp" - -#include <iostream> - -using std::cerr; -using std::endl; - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - using namespace SemanticGraph; - - Union:: - Union (Context& c) - : ScopeBase<SemanticGraph::Union> (c) - { - } - - void Union:: - begin_def (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "union def " << id << endl; - - SimpleName name (id->lexeme ()); - - if (Nameable* s = lookup (ctx.tu (), ctx.scope (), name)) - { - now (dynamic_cast<SemanticGraph::Union&>(*s)); - } - else - { - now (ctx.tu ().new_node<SemanticGraph::Union> ()); - } - - ctx.tu ().new_edge<Defines> (ctx.scope (), now (), name); - } - - void Union:: - begin_fwd (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "union fwd " << id << endl; - - SimpleName name (id->lexeme ()); - - if (Nameable* s = lookup (ctx.tu (), ctx.scope (), name)) - { - now (dynamic_cast<SemanticGraph::Union&>(*s)); - } - else - { - now (ctx.tu ().new_node<SemanticGraph::Union> ()); - } - - ctx.tu ().new_edge<Mentions> (ctx.scope (), now (), name); - } - - void Union:: - type (IdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "type " << id << endl; - - type_ = 0; - - Name name (id->lexeme ()); - ScopedName from (ctx.scope ().scoped_name ()); - - try - { - try - { - type_ = &resolve<Type> (from, name); - - if (!(dynamic_cast<Enum*> (type_) || - dynamic_cast<Boolean*> (type_) || - dynamic_cast<Char*> (type_) || - dynamic_cast<Wchar*> (type_) || - dynamic_cast<Short*> (type_) || - dynamic_cast<UnsignedShort*> (type_) || - dynamic_cast<Long*> (type_) || - dynamic_cast<UnsignedLong*> (type_) || - dynamic_cast<LongLong*> (type_) || - dynamic_cast<UnsignedLongLong*> (type_))) - { - throw WrongType (type_->scoped_name ()); - } - - ctx.tu ().new_edge<ArgumentsWithType> (*type_, now ()); - } - catch (Resolve const&) - { - cerr << "error: invalid union declaration" << endl; - throw; - } - } - catch (NotFound const&) - { - cerr << "no type with name \'" << name - << "\' visible from scope \'" << from << "\'" << endl; - } - catch (WrongType const&) - { - cerr << "declaration with name \'" << name - << "\' visible from scope \'" << from - << "\' is not a valid discriminant type" << endl; - } - } - - void Union:: - open_scope () - { - if (ctx.trace ()) cerr << "scope open" << endl; - - push (ctx.scope ()); - ctx.scope (now ()); - } - - void Union:: - member_type (IdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "type " << id << endl; - - member_type_ = 0; - - Name name (id->lexeme ()); - ScopedName from (ctx.scope ().scoped_name ()); - - try - { - try - { - // With introduction of CORBA 3.1 we have a new beast: - // union with incoplete members which itself becomes - // incomplete. - // - member_type_ = &resolve<Type> (from, name/*, Flags::complete*/); - } - catch (Resolve const&) - { - cerr << "error: invalid union member declaration" << endl; - throw; - } - - //@@ I am not handling NotUnique here. For example if - // I provide module name as type then the compiler - // will ICE. Think about other places it may happen - // (attribute, value memebr, typeded, others?). - // - } - catch (NotFound const&) - { - cerr << "no type with name \'" << name - << "\' visible from scope \'" << from << "\'" << endl; - } - catch (WrongType const&) - { - cerr << "declaration with name \'" << name - << "\' visible from scope \'" << from - << "\' is not a type declaration" << endl; - cerr << "using non-type as an member type is illegal" << endl; - } - catch (NotComplete const& e) - { - cerr << "type \'" << e.name () << "\' is not complete" << endl; - } - } - - void Union:: - member_name (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "name " << id << endl; - - if (member_type_) - { - SimpleName name (id->lexeme ()); - - SemanticGraph::UnionMember& m ( - ctx.tu ().new_node<SemanticGraph::UnionMember> ()); - - ctx.tu ().new_edge<Belongs> (m, *member_type_); - ctx.tu ().new_edge<Defines> (ctx.scope (), m, name); - } - } - - void Union:: - close_scope () - { - ctx.scope (top ()); - pop (); - - if (ctx.trace ()) cerr << "scope close" << endl; - } - - void Union:: - end () - { - if (ctx.trace ()) cerr << "end" << endl; - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Union.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Union.hpp deleted file mode 100644 index 8ab8022c62a..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/Union.hpp +++ /dev/null @@ -1,57 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/Union.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_IMPL_UNION_HPP -#define CCF_IDL2_SEMANTIC_ACTION_IMPL_UNION_HPP - -#include "CCF/IDL2/SemanticGraph/Union.hpp" -#include "CCF/IDL2/SemanticAction/Union.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - struct Union : SemanticAction::Union, ScopeBase<SemanticGraph::Union> - { - Union (Context& c); - - virtual void - begin_def (SimpleIdentifierPtr const& id); - - virtual void - begin_fwd (SimpleIdentifierPtr const& id); - - virtual void - type (IdentifierPtr const& id); - - virtual void - open_scope (); - - virtual void - member_type (IdentifierPtr const& id); - - virtual void - member_name (SimpleIdentifierPtr const& id); - - virtual void - close_scope (); - - virtual void - end (); - - private: - SemanticGraph::Type* type_; - SemanticGraph::Type* member_type_; - }; - } - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_IMPL_UNION_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/ValueType.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/ValueType.cpp deleted file mode 100644 index 159aa228b4c..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/ValueType.cpp +++ /dev/null @@ -1,267 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/ValueType.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticAction/Impl/ValueType.hpp" - -#include <iostream> - -using std::cerr; -using std::endl; - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - using namespace SemanticGraph; - - ValueType:: - ValueType (Context& c) - : ScopeBase<SemanticGraph::ValueType> (c) - { - } - - void ValueType:: - begin_abstract_def (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "abstract valuetype def " << id << endl; - - qualifier_ = Qualifier::abstract; - - SimpleName name (id->lexeme ()); - - if (Nameable* s = lookup (ctx.tu (), ctx.scope (), name)) - { - now (dynamic_cast<AbstractValueType&>(*s)); - } - else - { - now (ctx.tu ().new_node<AbstractValueType> ()); - } - - ctx.tu ().new_edge<Defines> (ctx.scope (), now (), name); - } - - void ValueType:: - begin_abstract_fwd (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "abstract valuetype fwd " << id << endl; - - SimpleName name (id->lexeme ()); - - if (Nameable* s = lookup (ctx.tu (), ctx.scope (), name)) - { - now (dynamic_cast<AbstractValueType&>(*s)); - } - else - { - now (ctx.tu ().new_node<AbstractValueType> ()); - } - - ctx.tu ().new_edge<Mentions> (ctx.scope (), now (), name); - } - - void ValueType:: - begin_concrete_def (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "concrete valuetype def " << id << endl; - - qualifier_ = Qualifier::concrete; - - SimpleName name (id->lexeme ()); - - if (Nameable* s = lookup (ctx.tu (), ctx.scope (), name)) - { - now (dynamic_cast<ConcreteValueType&>(*s)); - } - else - { - now (ctx.tu ().new_node<ConcreteValueType> ()); - } - - ctx.tu ().new_edge<Defines> (ctx.scope (), now (), name); - } - - void ValueType:: - begin_concrete_fwd (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "concrete valuetype fwd " << id << endl; - - SimpleName name (id->lexeme ()); - - if (Nameable* s = lookup (ctx.tu (), ctx.scope (), name)) - { - now (dynamic_cast<ConcreteValueType&>(*s)); - } - else - { - now (ctx.tu ().new_node<ConcreteValueType> ()); - } - - ctx.tu ().new_edge<Mentions> (ctx.scope (), now (), name); - } - - void ValueType:: - inherits (IdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "inherits " << id << endl; - - Name name (id->lexeme ()); - ScopedName from (ctx.scope ().scoped_name ()); - - try - { - try - { - SemanticGraph::ValueType& v ( - resolve<SemanticGraph::ValueType> (from, name, Flags::defined)); - - check_inheritance (now ().inherits_begin (), - now ().inherits_end (), - v); - - - bool abstract (dynamic_cast<AbstractValueType*> (&v) != 0); - - if (dynamic_cast<AbstractValueType*> (&now ()) != 0) - { - // Abstract valuetype may only inherit from abstract ones. - // - if (!abstract) - { - cerr << "abstract valuetype `" << now ().name () - << "\' may not inherit from concrete valuetype `" - << v.scoped_name () << "\'" << endl; - return; - } - } - else - { - // Concrete valuetype may inherit from single concrete - // valutype in which case it should be the first in the - // inheritance list. - // - if (now ().inherits_begin () != now ().inherits_end () && - !abstract) - { - cerr << "concrete valuetype `" << v.scoped_name () - << "\' is not the first in the inheritance list of " - << "valuetype `" << now ().name () << "\'" << endl; - return; - } - } - - ctx.tu ().new_edge<Inherits> (now (), v); - ctx.tu ().new_edge<Extends> (now (), v); - } - catch (Resolve const&) - { - cerr << "error: invalid inheritance specification" << endl; - throw; - } - } - catch (NotFound const&) - { - cerr << "no valuetype with name \'" << name - << "\' visible from scope \'" << from << "\'" << endl; - } - catch (WrongType const&) - { - cerr << "incompatible type in inheritance specification" << endl; - } - catch (NotDefined const& e) - { - cerr << "attempt to inherit from the forward-declared valuetype " - << e.name () << endl; - cerr << "inheritance from a forward-declared valuetype is illegal" - << endl; - } - catch (AlreadyInherited const& e) - { - cerr << "directly inheriting from valuetype \'" << e.name () - << "\' more than once is illegal" << endl; - } - } - - void ValueType:: - supports (IdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "supports " << id << endl; - - Name name (id->lexeme ()); - ScopedName from (ctx.scope ().scoped_name ()); - - try - { - try - { - SemanticGraph::Interface& i ( - resolve<SemanticGraph::Interface> (from, name, Flags::defined)); - - check_support (now ().supports_begin (), - now ().supports_end (), - i); - - ctx.tu ().new_edge<Supports> (now (), i); - ctx.tu ().new_edge<Extends> (now (), i); - } - catch (Resolve const&) - { - cerr << "error: invalid supports specification" << endl; - throw; - } - } - catch (NotFound const&) - { - cerr << "no interface with name \'" << name - << "\' visible from scope \'" << from << "\'" << endl; - } - catch (WrongType const&) - { - cerr << "incompatible type in supports specification" << endl; - } - catch (NotDefined const& e) - { - cerr << "attempt to support forward-declared interface " - << e.name () << endl; - cerr << "support of forward-declared interface is illegal" - << endl; - } - catch (AlreadySupported const& e) - { - cerr << "directly supporting interface \'" << e.name () - << "\' more than once is illegal" << endl; - } - } - - void ValueType:: - open_scope () - { - if (ctx.trace ()) cerr << "scope open" << endl; - - push (ctx.scope ()); - ctx.scope (now ()); - } - - void ValueType:: - close_scope () - { - ctx.scope (top ()); - pop (); - - if (ctx.trace ()) cerr << "scope close" << endl; - } - - void ValueType:: - end () - { - if (ctx.trace ()) cerr << "end" << endl; - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/ValueType.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/ValueType.hpp deleted file mode 100644 index da0bea59a84..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/ValueType.hpp +++ /dev/null @@ -1,65 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/ValueType.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_IMPL_VALUE_TYPE_HPP -#define CCF_IDL2_SEMANTIC_ACTION_IMPL_VALUE_TYPE_HPP - -#include "CCF/IDL2/SemanticGraph/ValueType.hpp" -#include "CCF/IDL2/SemanticAction/ValueType.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - struct ValueType : SemanticAction::ValueType, - ScopeBase<SemanticGraph::ValueType> - { - ValueType (Context& c); - - virtual void - begin_abstract_def (SimpleIdentifierPtr const& id); - - virtual void - begin_abstract_fwd (SimpleIdentifierPtr const& id); - - virtual void - begin_concrete_def (SimpleIdentifierPtr const& id); - - virtual void - begin_concrete_fwd (SimpleIdentifierPtr const& id); - - virtual void - inherits (IdentifierPtr const& id); - - virtual void - supports (IdentifierPtr const& id); - - virtual void - open_scope (); - - virtual void - close_scope (); - - virtual void - end (); - - private: - struct Qualifier - { - enum Value { abstract, concrete }; - }; - - Qualifier::Value qualifier_; - }; - } - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_IMPL_VALUE_TYPE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeFactory.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeFactory.cpp deleted file mode 100644 index be0ccecd926..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeFactory.cpp +++ /dev/null @@ -1,139 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/ValueTypeFactory.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticAction/Impl/ValueTypeFactory.hpp" - -#include <iostream> - -using std::cerr; -using std::endl; - - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - using namespace SemanticGraph; - - ValueTypeFactory:: - ValueTypeFactory (Context& c) - : Base (c) - { - } - - void ValueTypeFactory:: - name (SimpleIdentifierPtr const& id) - { - if (ctx.trace ()) cerr << " " << id << endl; - - f_ = 0; - - SemanticGraph::ValueType& h ( - dynamic_cast<SemanticGraph::ValueType&>(ctx.scope ())); - - SimpleName name (id->lexeme ()); - - f_ = &ctx.tu ().new_node<SemanticGraph::ValueTypeFactory> (); - - ctx.tu ().new_edge<Returns> (*f_, h); - ctx.tu ().new_edge<Defines> (ctx.scope (), *f_, name); - } - - - void ValueTypeFactory:: - parameter (IdentifierPtr const& type_id, - SimpleIdentifierPtr const& name_id) - { - if (ctx.trace ()) cerr << "parameter in " << " " - << type_id << " " << name_id << endl; - - if (f_ == 0) return; - - Name name (type_id->lexeme ()); - ScopedName from (ctx.scope ().scoped_name ()); - - try - { - try - { - Type& t (resolve<Type> (from, name, Flags::complete)); - - Parameter& p ( - ctx.tu ().new_node<InParameter> (name_id->lexeme ())); - - ctx.tu ().new_edge<Belongs> (p, t); - ctx.tu ().new_edge<Receives> (*f_, p); - } - catch (Resolve const&) - { - cerr << "error: invalid parameter declaration" << endl; - throw; - } - } - catch (NotFound const&) - { - cerr << "no type with name \'" << name - << "\' visible from scope \'" << from << "\'" << endl; - } - catch (WrongType const&) - { - cerr << "declaration with name \'" << name - << "\' visible from scope \'" << from - << "\' is not a type declaration" << endl; - cerr << "using non-type as an factory parameter type is " - << "illegal" << endl; - } - catch (NotComplete const& e) - { - cerr << "type \'" << e.name () << "\' is not complete" << endl; - } - } - - void ValueTypeFactory:: - raises (IdentifierPtr const& id) - { - if (ctx.trace ()) cerr << "raises " << id << endl; - - if (f_ == 0) return; - - Name name (id->lexeme ()); - ScopedName from (ctx.scope ().scoped_name ()); - - try - { - try - { - SemanticGraph::Exception& e ( - resolve<SemanticGraph::Exception> (from, name)); - - ctx.tu ().new_edge<Raises> (*f_, e); - } - catch (Resolve const&) - { - cerr << "error: invalid raises declaration" << endl; - throw; - } - } - catch (NotFound const&) - { - cerr << "no exception with name \'" << name - << "\' visible from scope \'" << from << "\'" << endl; - } - catch (WrongType const&) - { - cerr << "declaration with name \'" << name - << "\' visible from scope \'" << from - << "\' is not an exception declaration" << endl; - cerr << "using non-exception type in raises declaration is " - << "illegal" << endl; - } - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeFactory.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeFactory.hpp deleted file mode 100644 index 949492152e5..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeFactory.hpp +++ /dev/null @@ -1,42 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/ValueTypeFactory.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_IMPL_VALUE_TYPE_FACTORY_HPP -#define CCF_IDL2_SEMANTIC_ACTION_IMPL_VALUE_TYPE_FACTORY_HPP - -#include "CCF/IDL2/SemanticGraph/ValueType.hpp" -#include "CCF/IDL2/SemanticAction/ValueTypeFactory.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - struct ValueTypeFactory : SemanticAction::ValueTypeFactory, Base - { - ValueTypeFactory (Context& c); - - virtual void - name (SimpleIdentifierPtr const& id); - - virtual void - parameter (IdentifierPtr const& type_id, - SimpleIdentifierPtr const& name_id); - - virtual void - raises (IdentifierPtr const& id); - - private: - SemanticGraph::ValueTypeFactory* f_; - }; - } - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_IMPL_VALUE_TYPE_FACTORY_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeMember.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeMember.cpp deleted file mode 100644 index c6de66ccc1b..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeMember.cpp +++ /dev/null @@ -1,138 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/ValueTypeMember.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticAction/Impl/ValueTypeMember.hpp" - -#include "CCF/IDL2/SemanticGraph/ValueTypeMember.hpp" - -#include <iostream> - -using std::cerr; -using std::endl; - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - using namespace SemanticGraph; - - ValueTypeMember:: - ValueTypeMember (Context& c) - : Base (c) - { - } - - void ValueTypeMember:: - begin_private () - { - if (ctx.trace ()) cerr << "private valuetype member" << endl; - - access_ = SemanticGraph::ValueTypeMember::Access::private_; - } - - void ValueTypeMember:: - begin_public () - { - if (ctx.trace ()) cerr << "public valuetype member" << endl; - - access_ = SemanticGraph::ValueTypeMember::Access::public_; - } - - void ValueTypeMember:: - type (IdentifierPtr const& id) - { - if (ctx.trace ()) cerr << " type: " << id << endl; - - type_ = 0; - - Name name (id->lexeme ()); - ScopedName from (ctx.scope ().scoped_name ()); - - try - { - try - { - type_ = &resolve<Type> (from, name, Flags::complete); - } - catch (Resolve const&) - { - cerr << "error: invalid valuetype member declaration" << endl; - throw; - } - - //@@ I am not handling NotUnique here. For example if - // I provide module name as type then the compiler - // will ICE. Think about other places it may happen - // (attribute, value memebr, typeded, others?). - // - } - catch (NotFound const&) - { - cerr << "no type with name \'" << name - << "\' visible from scope \'" << from << "\'" << endl; - } - catch (WrongType const&) - { - cerr << "declaration with name \'" << name - << "\' visible from scope \'" << from - << "\' is not a type declaration" << endl; - cerr << "using non-type as a valuetype member type is illegal" - << endl; - } - catch (NotComplete const& e) - { - cerr << "type \'" << e.name () << "\' is not complete" << endl; - } - } - - - void ValueTypeMember:: - name (SimpleIdentifierPtr const& id) - { - using namespace SemanticGraph; - - if (ctx.trace ()) cerr << " name: " << id << endl; - - if (type_) - { - SimpleName name (id->lexeme ()); - - SemanticGraph::ValueTypeMember* m; - - switch (access_) - { - case SemanticGraph::ValueTypeMember::Access::private_: - { - m = &ctx.tu ().new_node<ValueTypePrivateMember> (); - break; - } - case SemanticGraph::ValueTypeMember::Access::public_: - { - m = &ctx.tu ().new_node<ValueTypePublicMember> (); - break; - } - default: - { - abort (); - } - } - - ctx.tu ().new_edge<Belongs> (*m, *type_); - ctx.tu ().new_edge<Defines> (ctx.scope (), *m, name); - } - } - - void ValueTypeMember:: - end () - { - if (ctx.trace ()) cerr << "end" << endl; - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeMember.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeMember.hpp deleted file mode 100644 index 96e575cd35f..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeMember.hpp +++ /dev/null @@ -1,48 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Impl/ValueTypeMember.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_IMPL_VALUE_TYPE_MEMBER_HPP -#define CCF_IDL2_SEMANTIC_ACTION_IMPL_VALUE_TYPE_MEMBER_HPP - -#include "CCF/IDL2/SemanticGraph/ValueTypeMember.hpp" -#include "CCF/IDL2/SemanticAction/ValueTypeMember.hpp" -#include "CCF/IDL2/SemanticAction/Impl/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace Impl - { - struct ValueTypeMember : SemanticAction::ValueTypeMember, Base - { - ValueTypeMember (Context& c); - - virtual void - begin_private (); - - virtual void - begin_public (); - - virtual void - type (IdentifierPtr const& id); - - virtual void - name (SimpleIdentifierPtr const& id); - - virtual void - end (); - - private: - SemanticGraph::ValueTypeMember::Access::Value access_; - SemanticGraph::Type* type_; - }; - } - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_IMPL_VALUE_TYPE_MEMBER_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Include.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Include.hpp deleted file mode 100644 index f67dbfd1914..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Include.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Include.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_INCLUDE_HPP -#define CCF_IDL2_SEMANTIC_ACTION_INCLUDE_HPP - -#include "CCF/IDL2/SemanticAction/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - struct Include - { - virtual void - quote (StringLiteralPtr const& sl) = 0; - - virtual void - bracket (StringLiteralPtr const& sl) = 0; - - virtual void - end () = 0; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_INCLUDE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Interface.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Interface.hpp deleted file mode 100644 index ebbb2398764..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Interface.hpp +++ /dev/null @@ -1,52 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Interface.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_INTERFACE_HPP -#define CCF_IDL2_SEMANTIC_ACTION_INTERFACE_HPP - -#include "CCF/IDL2/SemanticAction/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - struct Interface : Scope - { - virtual void - begin_abstract_def (SimpleIdentifierPtr const& id) = 0; - - virtual void - begin_abstract_fwd (SimpleIdentifierPtr const& id) = 0; - - virtual void - begin_local_def (SimpleIdentifierPtr const& id) = 0; - - virtual void - begin_local_fwd (SimpleIdentifierPtr const& id) = 0; - - virtual void - begin_unconstrained_def (SimpleIdentifierPtr const& id) = 0; - - virtual void - begin_unconstrained_fwd (SimpleIdentifierPtr const& id) = 0; - - virtual void - inherits (IdentifierPtr const& id) = 0; - - virtual void - open_scope () = 0; - - virtual void - close_scope () = 0; - - virtual void - end () = 0; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_INTERFACE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Member.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Member.hpp deleted file mode 100644 index a5e835ee351..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Member.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Member.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_MEMBER_HPP -#define CCF_IDL2_SEMANTIC_ACTION_MEMBER_HPP - -#include "CCF/IDL2/SemanticAction/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - struct Member - { - virtual void - type (IdentifierPtr const& id) = 0; - - virtual void - name (SimpleIdentifierPtr const& id) = 0; - - virtual void - end () = 0; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_MEMBER_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Module.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Module.hpp deleted file mode 100644 index 08411592eac..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Module.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Module.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_MODULE_HPP -#define CCF_IDL2_SEMANTIC_ACTION_MODULE_HPP - -#include "CCF/IDL2/SemanticAction/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - struct Module : Scope - { - virtual void - begin (SimpleIdentifierPtr const& id) = 0; - - virtual void - open_scope () = 0; - - virtual void - close_scope () = 0; - - virtual void - end () = 0; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_MODULE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Native.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Native.hpp deleted file mode 100644 index ed7fd4422f5..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Native.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Native.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_NATIVE_HPP -#define CCF_IDL2_SEMANTIC_ACTION_NATIVE_HPP - -#include "CCF/IDL2/SemanticAction/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - struct Native - { - virtual void - name (SimpleIdentifierPtr const& id) = 0; - - virtual void - end () = 0; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_NATIVE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/NumericExpression.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/NumericExpression.hpp deleted file mode 100644 index 09dcc964cb6..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/NumericExpression.hpp +++ /dev/null @@ -1,70 +0,0 @@ -// file : CCF/IDL2/SemanticAction/NumericExpression.hpp -// author : Boris Kolpackov <boris@kolpackov.net> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_NUMERIC_EXPRESSION_HPP -#define CCF_IDL2_SEMANTIC_ACTION_NUMERIC_EXPRESSION_HPP - -#include "CCF/IDL2/SemanticAction/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - struct NumericExpression - { - virtual void - flush () = 0; - - virtual void - const_ (IdentifierPtr const&) = 0; - - virtual void - integer_literal (IntegerLiteralPtr const&) = 0; - - virtual void - pos () = 0; - - virtual void - neg () = 0; - - virtual void - com () = 0; - - virtual void - mul () = 0; - - virtual void - div () = 0; - - virtual void - rem () = 0; - - virtual void - add () = 0; - - virtual void - sub () = 0; - - virtual void - rsh () = 0; - - virtual void - lsh () = 0; - - virtual void - and_ () = 0; - - virtual void - xor_ () = 0; - - virtual void - or_ () = 0; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_NUMERIC_EXPRESSION_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Operation.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Operation.cpp deleted file mode 100644 index 5b6190d1b4a..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Operation.cpp +++ /dev/null @@ -1,28 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Operation.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticAction/Operation.hpp" - -#include <ostream> - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - namespace - { - char* labels[] = {"in", "out", "inout"}; - } - - std::ostream& - - operator<< (std::ostream& o, Operation::Direction::Value d) - { - return o << labels[d]; - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Operation.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Operation.hpp deleted file mode 100644 index 89e83c50b9b..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Operation.hpp +++ /dev/null @@ -1,57 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Operation.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_OPERATION_HPP -#define CCF_IDL2_SEMANTIC_ACTION_OPERATION_HPP - -#include <iosfwd> - -#include "CCF/IDL2/SemanticAction/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - struct Operation - { - virtual void - one_way () = 0; - - virtual void - two_way () = 0; - - virtual void - type (IdentifierPtr const& id) = 0; - - virtual void - name (SimpleIdentifierPtr const& id) = 0; - - struct Direction - { - enum Value - { - in = 0, - out, - inout - }; - - friend std::ostream& - operator<< (std::ostream& o, Value d); - }; - - virtual void - parameter (Direction::Value direction, - IdentifierPtr const& type_id, - SimpleIdentifierPtr const& name_id) = 0; - - virtual void - raises (IdentifierPtr const& id) = 0; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_OPERATION_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Struct.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Struct.hpp deleted file mode 100644 index 00581af6016..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Struct.hpp +++ /dev/null @@ -1,37 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Struct.hpp -// author : Jeff Parsons <j.parsons@vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_STRUCT_HPP -#define CCF_IDL2_SEMANTIC_ACTION_STRUCT_HPP - -#include "CCF/IDL2/SemanticAction/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - struct Struct : Scope - { - virtual void - begin_def (SimpleIdentifierPtr const& id) = 0; - - virtual void - begin_fwd (SimpleIdentifierPtr const& id) = 0; - - virtual void - open_scope () = 0; - - virtual void - close_scope () = 0; - - virtual void - end () = 0; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_STRUCT_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/TypeId.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/TypeId.hpp deleted file mode 100644 index 1c8d7bdadae..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/TypeId.hpp +++ /dev/null @@ -1,38 +0,0 @@ -// file : CCF/IDL2/SemanticAction/TypeId.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_TYPE_ID_HPP -#define CCF_IDL2_SEMANTIC_ACTION_TYPE_ID_HPP - -#include "CCF/IDL2/SemanticAction/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - struct TypeId - { - virtual void - begin (IdentifierPtr const& name, StringLiteralPtr const& id) = 0; - - virtual void - end () = 0; - }; - - - struct TypePrefix - { - virtual void - begin (IdentifierPtr const& name, StringLiteralPtr const& prefix) = 0; - - virtual void - end () = 0; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_TYPE_ID_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Typedef.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Typedef.hpp deleted file mode 100644 index d1782591270..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Typedef.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Typedef.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_TYPEDEF_HPP -#define CCF_IDL2_SEMANTIC_ACTION_TYPEDEF_HPP - -#include "CCF/IDL2/SemanticAction/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - struct Typedef - { - virtual void - begin (IdentifierPtr const& id) = 0; - - virtual void - begin_unbounded_seq (IdentifierPtr const& id) = 0; - - virtual void - begin_bounded_seq (IdentifierPtr const& id) = 0; - - virtual void - begin_bounded_string () = 0; - - virtual void - begin_bounded_wstring () = 0; - - virtual void - begin_array () = 0; - - virtual void - bound () = 0; - - virtual void - declarator (SimpleIdentifierPtr const& id) = 0; - - virtual void - end () = 0; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_TYPEDEF_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Union.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Union.hpp deleted file mode 100644 index dac2297294d..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/Union.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// file : CCF/IDL2/SemanticAction/Union.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_UNION_HPP -#define CCF_IDL2_SEMANTIC_ACTION_UNION_HPP - -#include "CCF/IDL2/SemanticAction/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - struct Union : Scope - { - virtual void - begin_def (SimpleIdentifierPtr const& id) = 0; - - virtual void - begin_fwd (SimpleIdentifierPtr const& id) = 0; - - virtual void - type (IdentifierPtr const& id) = 0; - - //@@ Scope declares these functions. Why do I need to - // repeat it here? - // - virtual void - open_scope () = 0; - - virtual void - member_type (IdentifierPtr const& id) = 0; - - virtual void - member_name (SimpleIdentifierPtr const& id) = 0; - - virtual void - close_scope () = 0; - - virtual void - end () = 0; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_UNION_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/ValueType.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/ValueType.hpp deleted file mode 100644 index 9d990567778..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/ValueType.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// file : CCF/IDL2/SemanticAction/ValueType.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_VALUE_TYPE_HPP -#define CCF_IDL2_SEMANTIC_ACTION_VALUE_TYPE_HPP - -#include "CCF/IDL2/SemanticAction/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - struct ValueType : Scope - { - virtual void - begin_abstract_def (SimpleIdentifierPtr const& id) = 0; - - virtual void - begin_abstract_fwd (SimpleIdentifierPtr const& id) = 0; - - virtual void - begin_concrete_def (SimpleIdentifierPtr const& id) = 0; - - virtual void - begin_concrete_fwd (SimpleIdentifierPtr const& id) = 0; - - virtual void - inherits (IdentifierPtr const& id) = 0; - - virtual void - supports (IdentifierPtr const& id) = 0; - - virtual void - open_scope () = 0; - - virtual void - close_scope () = 0; - - virtual void - end () = 0; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_VALUE_TYPE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/ValueTypeFactory.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/ValueTypeFactory.hpp deleted file mode 100644 index 4d47407f360..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/ValueTypeFactory.hpp +++ /dev/null @@ -1,32 +0,0 @@ -// file : CCF/IDL2/SemanticAction/ValueTypeFactory.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_VALUE_TYPE_FACTORY_HPP -#define CCF_IDL2_SEMANTIC_ACTION_VALUE_TYPE_FACTORY_HPP - -#include "CCF/IDL2/SemanticAction/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - struct ValueTypeFactory - { - virtual void - name (SimpleIdentifierPtr const& id) = 0; - - virtual void - parameter (IdentifierPtr const& type, - SimpleIdentifierPtr const& name) = 0; - - virtual void - raises (IdentifierPtr const& id) = 0; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_VALUE_TYPE_FACTORY_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/ValueTypeMember.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/ValueTypeMember.hpp deleted file mode 100644 index 9eec25ef934..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticAction/ValueTypeMember.hpp +++ /dev/null @@ -1,37 +0,0 @@ -// file : CCF/IDL2/SemanticAction/ValueTypeMember.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_ACTION_VALUE_TYPE_MEMBER_HPP -#define CCF_IDL2_SEMANTIC_ACTION_VALUE_TYPE_MEMBER_HPP - -#include "CCF/IDL2/SemanticAction/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticAction - { - struct ValueTypeMember - { - virtual void - begin_private () = 0; - - virtual void - begin_public () = 0; - - virtual void - type (IdentifierPtr const& id) = 0; - - virtual void - name (SimpleIdentifierPtr const& id) = 0; - - virtual void - end () = 0; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_ACTION_MEMBER_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph.hpp deleted file mode 100644 index 224b0abb7df..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph.hpp +++ /dev/null @@ -1,32 +0,0 @@ -// file : CCF/IDL2/SemanticGraph.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" - -#include "CCF/IDL2/SemanticGraph/Array.hpp" -#include "CCF/IDL2/SemanticGraph/Attribute.hpp" -#include "CCF/IDL2/SemanticGraph/Enum.hpp" -#include "CCF/IDL2/SemanticGraph/Exception.hpp" -#include "CCF/IDL2/SemanticGraph/Fundamental.hpp" -#include "CCF/IDL2/SemanticGraph/Interface.hpp" -#include "CCF/IDL2/SemanticGraph/Literals.hpp" -#include "CCF/IDL2/SemanticGraph/Member.hpp" -#include "CCF/IDL2/SemanticGraph/Module.hpp" -#include "CCF/IDL2/SemanticGraph/Name.hpp" -#include "CCF/IDL2/SemanticGraph/Native.hpp" -#include "CCF/IDL2/SemanticGraph/IntExpression.hpp" -#include "CCF/IDL2/SemanticGraph/Operation.hpp" -#include "CCF/IDL2/SemanticGraph/Sequence.hpp" -#include "CCF/IDL2/SemanticGraph/String.hpp" -#include "CCF/IDL2/SemanticGraph/Struct.hpp" -#include "CCF/IDL2/SemanticGraph/Translation.hpp" -#include "CCF/IDL2/SemanticGraph/TypeId.hpp" -#include "CCF/IDL2/SemanticGraph/Union.hpp" -#include "CCF/IDL2/SemanticGraph/ValueType.hpp" -#include "CCF/IDL2/SemanticGraph/ValueTypeMember.hpp" - -#endif // CCF_IDL2_SEMANTIC_GRAPH_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Array.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Array.cpp deleted file mode 100644 index 3847a6b1ae3..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Array.cpp +++ /dev/null @@ -1,37 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Array.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/Array.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - using Introspection::TypeInfo; - using Introspection::Access; - - // Array - // - // - namespace - { - TypeInfo - array_init_ () - { - TypeInfo ti (typeid (Array)); - ti.add_base ( - Access::PUBLIC, true, Specialization::static_type_info ()); - return ti; - } - - TypeInfo array_ (array_init_ ()); - } - - TypeInfo const& Array:: - static_type_info () { return array_; } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Array.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Array.hpp deleted file mode 100644 index 47542f6772a..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Array.hpp +++ /dev/null @@ -1,57 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Array.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_ARRAY_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_ARRAY_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - // - // - // - class Array : public virtual Specialization - { - public: - Type& - type () const - { - return - dynamic_cast<ArgumentsWithType&> (**arguments_begin ()).type (); - } - - // You will have to iterate through Arguments edges starting - // from begin + 1 to get to the list of bounds. I suggest that - // you use traversal instead. - // - - virtual bool - complete () const - { - // Is this the right semantic for arrays? - // - return type ().complete (); - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Array () - { - type_info (static_type_info ()); - } - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_GRAPH_ARRAY_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Attribute.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Attribute.cpp deleted file mode 100644 index 5986dc8db51..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Attribute.cpp +++ /dev/null @@ -1,140 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Attribute.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/Attribute.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - using Introspection::TypeInfo; - using Introspection::Access; - - // Attribute - // - // - namespace - { - TypeInfo - attribute_init_ () - { - TypeInfo ti (typeid (Attribute)); - ti.add_base (Access::PUBLIC, true, Nameable::static_type_info ()); - ti.add_base (Access::PUBLIC, true, Instance::static_type_info ()); - return ti; - } - - TypeInfo attribute_ (attribute_init_ ()); - } - - TypeInfo const& Attribute:: - static_type_info () { return attribute_; } - - - // GetRaises - // - // - namespace - { - TypeInfo - get_raises_init_ () - { - TypeInfo ti (typeid (GetRaises)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo get_raises_ (get_raises_init_ ()); - } - - TypeInfo const& GetRaises:: - static_type_info () { return get_raises_; } - - - // ReadAttribute - // - // - namespace - { - TypeInfo - read_attribute_init_ () - { - TypeInfo ti (typeid (ReadAttribute)); - ti.add_base (Access::PUBLIC, true, Attribute::static_type_info ()); - return ti; - } - - TypeInfo read_attribute_ (read_attribute_init_ ()); - } - - TypeInfo const& ReadAttribute:: - static_type_info () { return read_attribute_; } - - - // SetRaises - // - // - namespace - { - TypeInfo - set_raises_init_ () - { - TypeInfo ti (typeid (SetRaises)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo set_raises_ (set_raises_init_ ()); - } - - TypeInfo const& SetRaises:: - static_type_info () { return set_raises_; } - - - // WriteAttribute - // - // - namespace - { - TypeInfo - write_attribute_init_ () - { - TypeInfo ti (typeid (WriteAttribute)); - ti.add_base (Access::PUBLIC, true, Attribute::static_type_info ()); - return ti; - } - - TypeInfo write_attribute_ (write_attribute_init_ ()); - } - - TypeInfo const& WriteAttribute:: - static_type_info () { return write_attribute_; } - - - // ReadWriteAttribute - // - // - namespace - { - TypeInfo - read_write_attribute_init_ () - { - TypeInfo ti (typeid (ReadWriteAttribute)); - ti.add_base ( - Access::PUBLIC, true, ReadAttribute::static_type_info ()); - ti.add_base ( - Access::PUBLIC, true, WriteAttribute::static_type_info ()); - return ti; - } - - TypeInfo read_write_attribute_ (read_write_attribute_init_ ()); - } - - TypeInfo const& ReadWriteAttribute:: - static_type_info () { return read_write_attribute_; } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Attribute.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Attribute.hpp deleted file mode 100644 index a307d09e012..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Attribute.hpp +++ /dev/null @@ -1,256 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Attribute.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_ATTRIBUTE_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_ATTRIBUTE_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" -#include "CCF/IDL2/SemanticGraph/Exception.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - // - // - // - class Attribute : public virtual Nameable, public virtual Instance - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Attribute () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class ReadAttribute; - - // - // - // - class GetRaises : public virtual Edge - { - public: - ReadAttribute& - attribute () const - { - return *attribute_; - } - - Exception& - exception () const - { - return *exception_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - GetRaises () - { - type_info (static_type_info ()); - } - - void - set_left_node (ReadAttribute& a) - { - attribute_ = &a; - } - - void - set_right_node (Exception& n) - { - exception_ = &n; - } - - private: - ReadAttribute* attribute_; - Exception* exception_; - }; - - - // - // - // - class ReadAttribute : public virtual Attribute - { - typedef - std::vector<GetRaises*> - GetRaises_; - - public: - typedef - GetRaises_::const_iterator - GetRaisesIterator; - - GetRaisesIterator - get_raises_begin () const - { - return get_raises_.begin (); - } - - GetRaisesIterator - get_raises_end () const - { - return get_raises_.end (); - } - - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - ReadAttribute () - { - type_info (static_type_info ()); - } - - void - add_edge_left (GetRaises& e) - { - get_raises_.push_back (&e); - } - - private: - GetRaises_ get_raises_; - }; - - - // - // - // - class WriteAttribute; - - // - // - // - class SetRaises : public virtual Edge - { - public: - WriteAttribute& - attribute () const - { - return *attribute_; - } - - Exception& - exception () const - { - return *exception_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - SetRaises () - { - type_info (static_type_info ()); - } - - void - set_left_node (WriteAttribute& a) - { - attribute_ = &a; - } - - void - set_right_node (Exception& n) - { - exception_ = &n; - } - - private: - WriteAttribute* attribute_; - Exception* exception_; - }; - - - class WriteAttribute : public virtual Attribute - { - typedef - std::vector<SetRaises*> - SetRaises_; - - public: - typedef - SetRaises_::const_iterator - SetRaisesIterator; - - SetRaisesIterator - set_raises_begin () const - { - return set_raises_.begin (); - } - - SetRaisesIterator - set_raises_end () const - { - return set_raises_.end (); - } - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - WriteAttribute () - { - type_info (static_type_info ()); - } - - void - add_edge_left (SetRaises& e) - { - set_raises_.push_back (&e); - } - - private: - SetRaises_ set_raises_; - }; - - - // - // - // - class ReadWriteAttribute : public virtual ReadAttribute, - public virtual WriteAttribute - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - ReadWriteAttribute () - { - type_info (static_type_info ()); - } - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_GRAPH_ATTRIBUTE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Elements.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Elements.cpp deleted file mode 100644 index cae24c8a60f..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Elements.cpp +++ /dev/null @@ -1,600 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Elements.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - using Introspection::TypeInfo; - using Introspection::Access; - - // Edge - // - // - Edge:: - ~Edge () - { - } - - Edge:: - Edge () - { - type_info (static_type_info ()); - } - - namespace - { - TypeInfo - edge_init_ () - { - TypeInfo ti (typeid (Edge)); - // I don't really need this information - // ti.add_base (Access::PUBLIC, true, Object::static_type_info ()); - return ti; - } - - TypeInfo edge_ (edge_init_ ()); - } - - TypeInfo const& Edge:: - static_type_info () { return edge_; } - - - // Node - // - // - Node:: - ~Node () - { - } - - Node:: - Node () - { - type_info (static_type_info ()); - } - - namespace - { - TypeInfo - node_init_ () - { - TypeInfo ti (typeid (Node)); - // I don't really need this information - // ti.add_base (Access::PUBLIC, true, Object::static_type_info ()); - return ti; - } - - TypeInfo node_ (node_init_ ()); - } - - TypeInfo const& Node:: - static_type_info () { return node_; } - - - // Names - // - // - namespace - { - TypeInfo - names_init_ () - { - TypeInfo ti (typeid (Names)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo names_ (names_init_ ()); - } - - TypeInfo const& Names:: - static_type_info () { return names_; } - - - // Defines - // - // - namespace - { - TypeInfo - defines_init_ () - { - TypeInfo ti (typeid (Defines)); - ti.add_base ( - Access::PUBLIC, true, Names::static_type_info ()); - return ti; - } - - TypeInfo defines_ (defines_init_ ()); - } - - TypeInfo const& Defines:: - static_type_info () { return defines_; } - - - // Mentions - // - // - namespace - { - TypeInfo - mentions_init_ () - { - TypeInfo ti (typeid (Mentions)); - ti.add_base (Access::PUBLIC, true, Names::static_type_info ()); - return ti; - } - - TypeInfo mentions_ (mentions_init_ ()); - } - - TypeInfo const& Mentions:: - static_type_info () { return mentions_; } - - - // Aliases - // - // - namespace - { - TypeInfo - aliases_init_ () - { - TypeInfo ti (typeid (Aliases)); - ti.add_base ( - Access::PUBLIC, true, Names::static_type_info ()); - return ti; - } - - TypeInfo aliases_ (aliases_init_ ()); - } - - TypeInfo const& Aliases:: - static_type_info () { return aliases_; } - - - // Nameable - // - // - - SimpleName Nameable:: - name () const - { - // The first entry should either be Mentions or Defines - // and it is the 'primary' name of the nameable entity. - // - return named_[0]->name (); - } - - ScopedName Nameable:: - scoped_name () const - { - // In general, scope that named us is named, in turn, - // by somebody else. - // - return ScopedName (named_[0]->scope ().scoped_name (), name ()); - } - - namespace - { - TypeInfo - nameable_init_ () - { - TypeInfo ti (typeid (Nameable)); - ti.add_base (Access::PUBLIC, true, Node::static_type_info ()); - return ti; - } - - TypeInfo nameable_ (nameable_init_ ()); - } - - TypeInfo const& Nameable:: - static_type_info () { return nameable_; } - - - // Extends - // - // - namespace - { - TypeInfo - extends_init_ () - { - TypeInfo ti (typeid (Extends)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo extends_ (extends_init_ ()); - } - - TypeInfo const& Extends:: - static_type_info () { return extends_; } - - // Scope - // - // - Nameables Scope:: - lookup (Name const& name) const - { - Nameables r; - lookup (name, r); - return r; - } - - void Scope:: - lookup (Name const& name, Nameables& result) const - { - SimpleName first (*name.begin ()); - - NamesIteratorPair pair (find (first)); - - if (pair.first != pair.second) // Found something. - { - if (name.simple ()) // last name - { - for (NamesIterator n (pair.first); n != pair.second; ++n) - { - result.insert (&((**n).named ())); - } - } - else - { - Name rest (name.begin () + 1, name.end ()); - - for (NamesIterator n (pair.first); n != pair.second; ++n) - { - Nameable& node ((**n).named ()); - if (Scope* s = dynamic_cast<Scope*> (&node)) - { - s->lookup (rest, result); - } - } - } - } - else // Try scopes that we are an extension of. - { - for (ExtendsIterator i (extends_begin ()), e (extends_end ()); - i != e; ++i) - { - (**i).extendee ().lookup (name, result); - } - } - } - - void Scope:: - add_edge_left (Names& e) - { - names_.push_back (&e); - names_map_[e.name ()].push_back (&e); - } - - namespace - { - TypeInfo - scope_init_ () - { - TypeInfo ti (typeid (Scope)); - ti.add_base (Access::PUBLIC, true, Nameable::static_type_info ()); - return ti; - } - - TypeInfo scope_ (scope_init_ ()); - } - - TypeInfo const& Scope:: - static_type_info () { return scope_; } - - - // Type - // - // - namespace - { - TypeInfo - type_init_ () - { - TypeInfo ti (typeid (Type)); - ti.add_base (Access::PUBLIC, true, Nameable::static_type_info ()); - return ti; - } - - TypeInfo type_ (type_init_ ()); - } - - TypeInfo const& Type:: - static_type_info () { return type_; } - - - // Instance - // - // - namespace - { - TypeInfo - instance_init_ () - { - TypeInfo ti (typeid (Instance)); - ti.add_base (Access::PUBLIC, true, Node::static_type_info ()); - return ti; - } - - TypeInfo instance_ (instance_init_ ()); - } - - TypeInfo const& Instance:: - static_type_info () { return instance_; } - - - // Belongs - // - // - namespace - { - TypeInfo - belongs_init_ () - { - TypeInfo ti (typeid (Belongs)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo belongs_ (belongs_init_ ()); - } - - TypeInfo const& Belongs:: - static_type_info () { return belongs_; } - - - // Specialization - // - // - namespace - { - TypeInfo - specialization_init_ () - { - TypeInfo ti (typeid (Specialization)); - ti.add_base (Access::PUBLIC, true, Type::static_type_info ()); - return ti; - } - - TypeInfo specialization_ ( - specialization_init_ ()); - } - - TypeInfo const& Specialization:: - static_type_info () { return specialization_; } - - void Specialization:: - add_edge_right (ArgumentsWithType& e) - { - arguments_.push_back (&e); - } - - void Specialization:: - add_edge_right (ArgumentsWithValue& e) - { - arguments_.push_back (&e); - } - - // Arguments - // - // - namespace - { - TypeInfo - arguments_init_ () - { - TypeInfo ti (typeid (Arguments)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo arguments_ (arguments_init_ ()); - } - - TypeInfo const& Arguments:: - static_type_info () { return arguments_; } - - - // ArgumentsWithType - // - // - namespace - { - TypeInfo - arguments_with_type_init_ () - { - TypeInfo ti (typeid (ArgumentsWithType)); - ti.add_base (Access::PUBLIC, true, Arguments::static_type_info ()); - return ti; - } - - TypeInfo arguments_with_type_ (arguments_with_type_init_ ()); - } - - TypeInfo const& ArgumentsWithType:: - static_type_info () { return arguments_with_type_; } - - - // ArgumentsWithValue - // - // - namespace - { - TypeInfo - arguments_with_value_init_ () - { - TypeInfo ti (typeid (ArgumentsWithValue)); - ti.add_base (Access::PUBLIC, true, Arguments::static_type_info ()); - return ti; - } - - TypeInfo arguments_with_value_ (arguments_with_value_init_ ()); - } - - TypeInfo const& ArgumentsWithValue:: - static_type_info () { return arguments_with_value_; } - - Expression& ArgumentsWithValue:: - value () const - { - return dynamic_cast<Expression&> (argument ()); - } - - void ArgumentsWithValue:: - set_left_node (Expression& n) - { - Arguments::set_left_node (n); - } - - // IsA - // - // - namespace - { - TypeInfo - is_a_init_ () - { - TypeInfo ti (typeid (IsA)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo is_a_ (is_a_init_ ()); - } - - TypeInfo const& IsA:: - static_type_info () { return is_a_; } - - - // Inherits - // - // - namespace - { - TypeInfo - inherits_init_ () - { - TypeInfo ti (typeid (Inherits)); - ti.add_base (Access::PUBLIC, true, IsA::static_type_info ()); - return ti; - } - - TypeInfo inherits_ (inherits_init_ ()); - } - - TypeInfo const& Inherits:: - static_type_info () { return inherits_; } - - - // Initializes - // - // - namespace - { - TypeInfo - initializes_init_ () - { - TypeInfo ti (typeid (Initializes)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo initializes_ (initializes_init_ ()); - } - - TypeInfo const& Initializes:: - static_type_info () { return initializes_; } - - - // Expression - // - // - namespace - { - TypeInfo - expression_init_ () - { - TypeInfo ti (typeid (Expression)); - ti.add_base (Access::PUBLIC, true, Node::static_type_info ()); - return ti; - } - - TypeInfo expression_ (expression_init_ ()); - } - - TypeInfo const& Expression:: - static_type_info () { return expression_; } - - - // Const - // - // - namespace - { - TypeInfo - const_init_ () - { - TypeInfo ti (typeid (Const)); - ti.add_base (Access::PUBLIC, true, Instance::static_type_info ()); - ti.add_base (Access::PUBLIC, true, Nameable::static_type_info ()); - ti.add_base (Access::PUBLIC, true, Expression::static_type_info ()); - return ti; - } - - TypeInfo const_ (const_init_ ()); - } - - TypeInfo const& Const:: - static_type_info () { return const_; } - - - // Contains - // - // - namespace - { - TypeInfo - contains_init_ () - { - TypeInfo ti (typeid (Contains)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo contains_ (contains_init_ ()); - } - - TypeInfo const& Contains:: - static_type_info () { return contains_; } - - - // Container - // - // - namespace - { - TypeInfo - container_init_ () - { - TypeInfo ti (typeid (Container)); - ti.add_base (Access::PUBLIC, true, Node::static_type_info ()); - return ti; - } - - TypeInfo container_ (container_init_ ()); - } - - TypeInfo const& Container:: - static_type_info () { return container_; } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Elements.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Elements.hpp deleted file mode 100644 index 24a18fd3205..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Elements.hpp +++ /dev/null @@ -1,1026 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Elements.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_ELEMENTS_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_ELEMENTS_HPP - -#include <set> -#include <vector> - -#include "Graph.hpp" - -#include "CCF/CompilerElements/Introspection.hpp" -#include "CCF/CompilerElements/Context.hpp" - -#include "CCF/IDL2/SemanticGraph/Name.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - // - // - // - - class Node; - class Edge; - - - // Node & Edge - // - // - class Edge : public virtual Introspection::Object - { - public: - CompilerElements::Context const& - context () const - { - return context_; - } - - CompilerElements::Context& - context () - { - return context_; - } - - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - virtual - ~Edge (); - - Edge (); - - private: - CompilerElements::Context context_; - }; - - inline bool - operator== (Edge const& x, Edge const& y) - { - return &x == &y; - } - - class Node : public virtual Introspection::Object - { - public: - CompilerElements::Context const& - context () const - { - return context_; - } - - CompilerElements::Context& - context () - { - return context_; - } - - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - virtual - ~Node (); - - Node (); - - // This is a bunch of experimantal sink functions that allow - // extensions in the form of one-way edges (see Executor stuff - // in CIDL for example). - // - void - add_edge_left (Edge&) - { - } - - void - add_edge_right (Edge&) - { - } - - private: - CompilerElements::Context context_; - }; - - inline bool - operator== (Node const& x, Node const& y) - { - return &x == &y; - } - - - // - // - // - class Scope; - class Nameable; - - class Names : public virtual Edge - { - public: - SimpleName - name () const - { - return name_; - } - - Scope& - scope () const - { - return *scope_; - } - - Nameable& - named () const - { - return *named_; - } - - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Names (SimpleName const& name) - : name_ (name) - { - type_info (static_type_info ()); - } - - void - set_left_node (Scope& n) - { - scope_ = &n; - } - - void - set_right_node (Nameable& n) - { - named_ = &n; - } - - private: - Scope* scope_; - Nameable* named_; - SimpleName name_; - }; - - class Defines : public virtual Names - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Defines (SimpleName const& name) - : Names (name) - { - type_info (static_type_info ()); - } - }; - - - class Mentions : public virtual Names - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Mentions (SimpleName const& name) - : Names (name) - { - type_info (static_type_info ()); - } - }; - - - class Aliases : public virtual Names - { - public: - SimpleName - synonym () const - { - return name (); - } - - /* - - Let me know if you need this function. - - ScopedName - eponym () const - { - } - */ - - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Aliases (SimpleName const& synonym) - : Names (synonym) - - { - type_info (static_type_info ()); - } - }; - - - class Nameable : public virtual Node - { - typedef - std::vector<Names*> - Named_; - - public: - virtual SimpleName - name () const; - - virtual ScopedName - scoped_name () const; - - bool - defined () const - { - return defined_; - } - - typedef - Named_::const_iterator - NamedIterator; - - NamedIterator - named_begin () const - { - return named_.begin (); - } - - NamedIterator - named_end () const - { - return named_.end (); - } - - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Nameable () - : defined_ (false) - { - type_info (static_type_info ()); - } - - void - add_edge_right (Defines& e) - { - defined_ = true; - named_.push_back (&e); - } - - void - add_edge_right (Names& e) - { - named_.push_back (&e); - } - - private: - Named_ named_; - bool defined_; - }; - - typedef - std::set<Nameable*> - Nameables; - - class Scope; - - class Extends : public virtual Edge - { - public: - Scope& extender () const - { - return *extender_; - } - - Scope& extendee () const - { - return *extendee_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Extends () - { - type_info (static_type_info ()); - } - - void - set_left_node (Scope& s) - { - extender_ = &s; - } - - void - set_right_node (Scope& s) - { - extendee_ = &s; - } - - private: - Scope* extender_; - Scope* extendee_; - }; - - class Scope : public virtual Nameable - { - private: - typedef - std::vector<Extends*> - Extends_; - - typedef - std::vector<Names*> - Names_; - - typedef - std::map<SimpleName, Names_> - NamesMap_; - - public: - // - // - typedef - Extends_::const_iterator - ExtendsIterator; - - ExtendsIterator - extends_begin () const - { - return extends_.begin (); - } - - ExtendsIterator - extends_end () const - { - return extends_.end (); - } - - - // - // - typedef - Names_::const_iterator - NamesIterator; - - typedef - std::pair <NamesIterator, NamesIterator> - NamesIteratorPair; - - NamesIterator - names_begin () const - { - return names_.begin (); - } - - NamesIterator - names_end () const - { - return names_.end (); - } - - NamesIteratorPair - find (SimpleName const& name) const - { - NamesMap_::const_iterator i (names_map_.find (name)); - if (i == names_map_.end ()) - { - return NamesIteratorPair (names_.end (), names_.end ()); - } - else - { - return NamesIteratorPair (i->second.begin (), i->second.end ()); - } - } - - Nameables - lookup (Name const& name) const; - - void - lookup (Name const& name, Nameables& result) const; - - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Scope () - { - type_info (static_type_info ()); - } - - void - add_edge_left (Names& e); - - void - add_edge_left (Extends& e) - { - extends_.push_back (&e); - } - - void - add_edge_right (Extends&) - { - } - - using Nameable::add_edge_right; - - private: - Extends_ extends_; - - Names_ names_; - NamesMap_ names_map_; - }; - - - - // - // - // - class Belongs; - class ArgumentsWithType; - - //@@ I can make an alias Classifies for Belongs? - // - - class Type : public virtual Nameable - { - public: - virtual bool - complete () const = 0; - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Type () - { - type_info (static_type_info ()); - } - - using Nameable::add_edge_right; - - void - add_edge_right (Belongs& e) - { - slassifies_.push_back (&e); - } - - void - add_edge_left (ArgumentsWithType&) - { - } - - using Node::add_edge_right; - using Node::add_edge_left; - - private: - typedef - std::vector<Belongs*> - Classifies_; - - Classifies_ slassifies_; - }; - - - class Instance : public virtual Node - { - public: - Belongs& - belongs () const - { - return *belongs_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Instance () - { - type_info (static_type_info ()); - } - - void - add_edge_left (Belongs& e) - { - belongs_ = &e; - } - - private: - Belongs* belongs_; - }; - - - class Belongs : public virtual Edge - { - public: - Instance& - instance () const - { - return *instance_; - } - - Type& - type () const - { - return *type_; - } - - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Belongs () - { - type_info (static_type_info ()); - } - - void - set_left_node (Instance& n) - { - instance_ = &n; - } - - void - set_right_node (Type& n) - { - type_ = &n; - } - - private: - Instance* instance_; - Type* type_; - }; - - - // - // - class Arguments; - class ArgumentsWithType; - class ArgumentsWithValue; - - class Specialization: public virtual Type - { - typedef - std::vector<Arguments*> - Arguments_; - - public: - typedef - Arguments_::const_iterator - ArgumentsIterator; - - ArgumentsIterator - arguments_begin () const - { - return arguments_.begin (); - } - - ArgumentsIterator - arguments_end () const - { - return arguments_.end (); - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Specialization () - { - type_info (static_type_info ()); - } - - void - add_edge_right (ArgumentsWithType& e); - - void - add_edge_right (ArgumentsWithValue& e); - - private: - Arguments_ arguments_; - }; - - - class Arguments: public virtual Edge - { - public: - Specialization& - specialization () const - { - return *specialization_; - } - - Node& - argument () const - { - return *argument_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Arguments () - { - type_info (static_type_info ()); - } - - void - set_left_node (Node& n) - { - argument_ = &n; - } - - void - set_right_node (Specialization& n) - { - specialization_ = &n; - } - - private: - Specialization* specialization_; - Node* argument_; - }; - - class ArgumentsWithType: public virtual Arguments - { - public: - Type& - type () const - { - return dynamic_cast<Type&> (argument ()); - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - ArgumentsWithType () - { - type_info (static_type_info ()); - } - - void - set_left_node (Type& n) - { - Arguments::set_left_node (n); - } - }; - - class Expression; - - class ArgumentsWithValue: public virtual Arguments - { - public: - Expression& - value () const; - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - ArgumentsWithValue () - { - type_info (static_type_info ()); - } - - void - set_left_node (Expression& n); - }; - - // - // - // - class IsA : public virtual Edge - { - public: - virtual Type& - subject () const - { - return *subject_; - } - - virtual Type& - object () const - { - return *object_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IsA () - { - type_info (static_type_info ()); - } - - void - set_left_node (Type& n) - { - subject_ = &n; - } - - void - set_right_node (Type& n) - { - object_ = &n; - } - - private: - Type* subject_; - Type* object_; - }; - - - // - // - // - class Inherits : public virtual IsA - { - public: - virtual Type& - inheritor () const - { - return subject (); - } - - virtual Type& - inheritee () const - { - return object (); - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Inherits () - { - type_info (static_type_info ()); - } - }; - - - // - // - - class Expression; - class Const; - - class Initializes: public virtual Edge - { - public: - Expression& - expression () const - { - return *expression_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Initializes () - { - type_info (static_type_info ()); - } - - void - set_left_node (Expression& e) - { - expression_ = &e; - } - - void - set_right_node (Const& n) - { - } - - private: - Expression* expression_; - }; - - - class Expression: public virtual Node - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Expression () - { - type_info (static_type_info ()); - } - - void - add_edge_left (Initializes&) - { - } - - void - add_edge_left (ArgumentsWithValue&) - { - } - }; - - - class Const: public virtual Instance, - public virtual Nameable, - public virtual Expression - { - public: - Initializes& - initialized () const - { - return *initialized_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Const () - { - type_info (static_type_info ()); - } - - using Instance::add_edge_left; - using Expression::add_edge_left; - - void - add_edge_right (Initializes& i) - { - initialized_ = &i; - } - - using Nameable::add_edge_right; - - private: - Initializes* initialized_; - }; - - - // - // - // - - class Container; - - class Contains : public virtual Edge - { - public: - Node& - element () const - { - return *element_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Contains () - { - type_info (static_type_info ()); - } - - void - set_left_node (Container& n) - { - container_ = &n; - } - - void - set_right_node (Node& n) - { - element_ = &n; - } - - private: - Container* container_; - Node* element_; - }; - - - class Container : public virtual Node - { - typedef - std::vector<Contains*> - Contains_; - - public: - typedef - Contains_::const_iterator - ContainsIterator; - - ContainsIterator - contains_begin () const - { - return contains_.begin (); - } - - ContainsIterator - contains_end () const - { - return contains_.end (); - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Container () - { - type_info (static_type_info ()); - } - - void - add_edge_left (Contains& e) - { - contains_.push_back (&e); - } - - private: - Contains_ contains_; - }; - } - } -} - -#include "CCF/IDL2/SemanticGraph/Elements.tpp" - -#endif // CCF_IDL2_SEMANTIC_GRAPH_ELEMENTS_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Elements.tpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Elements.tpp deleted file mode 100644 index a3a1615fe85..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Elements.tpp +++ /dev/null @@ -1,14 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Elements.tpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - } - } -} - diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Enum.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Enum.cpp deleted file mode 100644 index e5de88c449e..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Enum.cpp +++ /dev/null @@ -1,58 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Enum.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/Enum.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - using Introspection::TypeInfo; - using Introspection::Access; - - // Enum - // - // - namespace - { - TypeInfo - enum_init_ () - { - TypeInfo ti (typeid (Enum)); - ti.add_base (Access::PUBLIC, true, Type::static_type_info ()); - ti.add_base (Access::PUBLIC, true, Scope::static_type_info ()); - return ti; - } - - TypeInfo enum_ (enum_init_ ()); - } - - TypeInfo const& Enum:: - static_type_info () { return enum_; } - - - // Enumerator - // - // - namespace - { - TypeInfo - enumerator_init_ () - { - TypeInfo ti (typeid (Enumerator)); - ti.add_base (Access::PUBLIC, true, Nameable::static_type_info ()); - ti.add_base (Access::PUBLIC, true, Instance::static_type_info ()); - return ti; - } - - TypeInfo enumerator_ (enumerator_init_ ()); - } - - TypeInfo const& Enumerator:: - static_type_info () { return enumerator_; } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Enum.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Enum.hpp deleted file mode 100644 index 8399fecc6b0..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Enum.hpp +++ /dev/null @@ -1,56 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Enum.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_ENUM_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_ENUM_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - class Enum : public virtual Type - { - public: - virtual bool - complete () const - { - return true; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Enum () - { - type_info (static_type_info ()); - } - }; - - - class Enumerator : public virtual Nameable, public virtual Instance - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Enumerator () - { - type_info (static_type_info ()); - } - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_GRAPH_ENUM_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Exception.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Exception.cpp deleted file mode 100644 index 84ca130cafa..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Exception.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Exception.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/Exception.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - using Introspection::TypeInfo; - using Introspection::Access; - - namespace - { - TypeInfo - exception_init_ () - { - TypeInfo ti (typeid (Exception)); - ti.add_base (Access::PUBLIC, true, Type::static_type_info ()); - ti.add_base (Access::PUBLIC, true, Scope::static_type_info ()); - return ti; - } - - TypeInfo exception_ (exception_init_ ()); - } - - TypeInfo const& Exception:: - static_type_info () { return exception_; } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Exception.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Exception.hpp deleted file mode 100644 index 61e01f3b282..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Exception.hpp +++ /dev/null @@ -1,50 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Exception.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_EXCEPTION_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_EXCEPTION_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - class Raises; - - class Exception : public virtual Type, public virtual Scope - { - public: - virtual bool - complete () const - { - return defined (); - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Exception () - { - type_info (static_type_info ()); - } - - using Type::add_edge_right; - using Scope::add_edge_left; - - void - add_edge_right (Raises&) - { - } - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_GRAPH_EXCEPTION_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Fundamental.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Fundamental.cpp deleted file mode 100644 index e08990e7ed8..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Fundamental.cpp +++ /dev/null @@ -1,438 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Fundamental.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -// Note, that this file is automatically generated! -// - -#include "CCF/IDL2/SemanticGraph/Fundamental.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - using Introspection::TypeInfo; - using Introspection::Access; - - // FundamentalType - // - // - namespace - { - TypeInfo - fundamental_type_init_ () - { - TypeInfo ti (typeid (FundamentalType)); - ti.add_base (Access::PUBLIC, true, Type::static_type_info ()); - return ti; - } - - TypeInfo fundamental_type_ (fundamental_type_init_ ()); - } - - TypeInfo const& FundamentalType:: - static_type_info () { return fundamental_type_; } - - - // Object - // - // - namespace - { - TypeInfo - object_init_ () - { - TypeInfo ti (typeid (Object)); - ti.add_base ( - Access::PUBLIC, true, FundamentalType::static_type_info ()); - return ti; - } - - TypeInfo object_ (object_init_ ()); - } - - TypeInfo const& Object:: - static_type_info () { return object_; } - - - // ValueBase - // - // - namespace - { - TypeInfo - value_base_init_ () - { - TypeInfo ti (typeid (ValueBase)); - ti.add_base ( - Access::PUBLIC, true, FundamentalType::static_type_info ()); - return ti; - } - - TypeInfo value_base_ (value_base_init_ ()); - } - - TypeInfo const& ValueBase:: - static_type_info () { return value_base_; } - - - // Any - // - // - namespace - { - TypeInfo - any_init_ () - { - TypeInfo ti (typeid (Any)); - ti.add_base ( - Access::PUBLIC, true, FundamentalType::static_type_info ()); - return ti; - } - - TypeInfo any_ (any_init_ ()); - } - - TypeInfo const& Any:: - static_type_info () { return any_; } - - - // Boolean - // - // - namespace - { - TypeInfo - boolean_init_ () - { - TypeInfo ti (typeid (Boolean)); - ti.add_base ( - Access::PUBLIC, true, FundamentalType::static_type_info ()); - return ti; - } - - TypeInfo boolean_ (boolean_init_ ()); - } - - TypeInfo const& Boolean:: - static_type_info () { return boolean_; } - - - // Char - // - // - namespace - { - TypeInfo - char_init_ () - { - TypeInfo ti (typeid (Char)); - ti.add_base ( - Access::PUBLIC, true, FundamentalType::static_type_info ()); - return ti; - } - - TypeInfo char_ (char_init_ ()); - } - - TypeInfo const& Char:: - static_type_info () { return char_; } - - - // Double - // - // - namespace - { - TypeInfo - double_init_ () - { - TypeInfo ti (typeid (Double)); - ti.add_base ( - Access::PUBLIC, true, FundamentalType::static_type_info ()); - return ti; - } - - TypeInfo double_ (double_init_ ()); - } - - TypeInfo const& Double:: - static_type_info () { return double_; } - - - // Float - // - // - namespace - { - TypeInfo - float_init_ () - { - TypeInfo ti (typeid (Float)); - ti.add_base ( - Access::PUBLIC, true, FundamentalType::static_type_info ()); - return ti; - } - - TypeInfo float_ (float_init_ ()); - } - - TypeInfo const& Float:: - static_type_info () { return float_; } - - - // Long - // - // - namespace - { - TypeInfo - long_init_ () - { - TypeInfo ti (typeid (Long)); - ti.add_base ( - Access::PUBLIC, true, FundamentalType::static_type_info ()); - return ti; - } - - TypeInfo long_ (long_init_ ()); - } - - TypeInfo const& Long:: - static_type_info () { return long_; } - - - // LongDouble - // - // - namespace - { - TypeInfo - long_double_init_ () - { - TypeInfo ti (typeid (LongDouble)); - ti.add_base ( - Access::PUBLIC, true, FundamentalType::static_type_info ()); - return ti; - } - - TypeInfo long_double_ (long_double_init_ ()); - } - - TypeInfo const& LongDouble:: - static_type_info () { return long_double_; } - - - // LongLong - // - // - namespace - { - TypeInfo - long_long_init_ () - { - TypeInfo ti (typeid (LongLong)); - ti.add_base ( - Access::PUBLIC, true, FundamentalType::static_type_info ()); - return ti; - } - - TypeInfo long_long_ (long_long_init_ ()); - } - - TypeInfo const& LongLong:: - static_type_info () { return long_long_; } - - - // Octet - // - // - namespace - { - TypeInfo - octet_init_ () - { - TypeInfo ti (typeid (Octet)); - ti.add_base ( - Access::PUBLIC, true, FundamentalType::static_type_info ()); - return ti; - } - - TypeInfo octet_ (octet_init_ ()); - } - - TypeInfo const& Octet:: - static_type_info () { return octet_; } - - - // Short - // - // - namespace - { - TypeInfo - short_init_ () - { - TypeInfo ti (typeid (Short)); - ti.add_base ( - Access::PUBLIC, true, FundamentalType::static_type_info ()); - return ti; - } - - TypeInfo short_ (short_init_ ()); - } - - TypeInfo const& Short:: - static_type_info () { return short_; } - - - // String - // - // - namespace - { - TypeInfo - string_init_ () - { - TypeInfo ti (typeid (String)); - ti.add_base ( - Access::PUBLIC, true, FundamentalType::static_type_info ()); - return ti; - } - - TypeInfo string_ (string_init_ ()); - } - - TypeInfo const& String:: - static_type_info () { return string_; } - - - // UnsignedLong - // - // - namespace - { - TypeInfo - unsigned_long_init_ () - { - TypeInfo ti (typeid (UnsignedLong)); - ti.add_base ( - Access::PUBLIC, true, FundamentalType::static_type_info ()); - return ti; - } - - TypeInfo unsigned_long_ (unsigned_long_init_ ()); - } - - TypeInfo const& UnsignedLong:: - static_type_info () { return unsigned_long_; } - - - // UnsignedLongLong - // - // - namespace - { - TypeInfo - unsigned_long_long_init_ () - { - TypeInfo ti (typeid (UnsignedLongLong)); - ti.add_base ( - Access::PUBLIC, true, FundamentalType::static_type_info ()); - return ti; - } - - TypeInfo unsigned_long_long_ (unsigned_long_long_init_ ()); - } - - TypeInfo const& UnsignedLongLong:: - static_type_info () { return unsigned_long_long_; } - - - // UnsignedShort - // - // - namespace - { - TypeInfo - unsigned_short_init_ () - { - TypeInfo ti (typeid (UnsignedShort)); - ti.add_base ( - Access::PUBLIC, true, FundamentalType::static_type_info ()); - return ti; - } - - TypeInfo unsigned_short_ (unsigned_short_init_ ()); - } - - TypeInfo const& UnsignedShort:: - static_type_info () { return unsigned_short_; } - - - // Void - // - // - namespace - { - TypeInfo - void_init_ () - { - TypeInfo ti (typeid (Void)); - ti.add_base ( - Access::PUBLIC, true, FundamentalType::static_type_info ()); - return ti; - } - - TypeInfo void_ (void_init_ ()); - } - - TypeInfo const& Void:: - static_type_info () { return void_; } - - - // Wchar - // - // - namespace - { - TypeInfo - wchar_init_ () - { - TypeInfo ti (typeid (Wchar)); - ti.add_base ( - Access::PUBLIC, true, FundamentalType::static_type_info ()); - return ti; - } - - TypeInfo wchar_ (wchar_init_ ()); - } - - TypeInfo const& Wchar:: - static_type_info () { return wchar_; } - - - // Wstring - // - // - namespace - { - TypeInfo - wstring_init_ () - { - TypeInfo ti (typeid (Wstring)); - ti.add_base ( - Access::PUBLIC, true, FundamentalType::static_type_info ()); - return ti; - } - - TypeInfo wstring_ (wstring_init_ ()); - } - - TypeInfo const& Wstring:: - static_type_info () { return wstring_; } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Fundamental.cpp.m4 b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Fundamental.cpp.m4 deleted file mode 100644 index c42780fd178..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Fundamental.cpp.m4 +++ /dev/null @@ -1,98 +0,0 @@ -divert(-1) - -# file : CCF/IDL2/SemanticGraph/Fundamental.cpp.m4 -# author : Boris Kolpackov <boris@dre.vanderbilt.edu> -# cvs-id : $Id$ - -include(`Fundamental.m4') - -define(`fundamental_type', - `fundamental_type_impl(`make_class_name(`$1')', `make_var_name(`$1')')') - - -define(`fundamental_type_impl', ` - - // $1 - // - // - namespace - { - TypeInfo - $2_init_ () - { - TypeInfo ti (typeid ($1)); - ti.add_base ( - Access::PUBLIC, true, FundamentalType::static_type_info ()); - return ti; - } - - TypeInfo $2_ ($2_init_ ()); - } - - TypeInfo const& $1:: - static_type_info () { return $2_; }') - -divert(0)dnl -dnl -dnl -dnl -// file : CCF/IDL2/SemanticGraph/Fundamental.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -// Note, that this file is automatically generated! -// - -#include "CCF/IDL2/SemanticGraph/Fundamental.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - using Introspection::TypeInfo; - using Introspection::Access; - - // FundamentalType - // - // - namespace - { - TypeInfo - fundamental_type_init_ () - { - TypeInfo ti (typeid (FundamentalType)); - ti.add_base (Access::PUBLIC, true, Type::static_type_info ()); - return ti; - } - - TypeInfo fundamental_type_ (fundamental_type_init_ ()); - } - - TypeInfo const& FundamentalType:: - static_type_info () { return fundamental_type_; } -dnl -fundamental_type(`object') -fundamental_type(`value base') -fundamental_type(`any') -fundamental_type(`boolean') -fundamental_type(`char') -fundamental_type(`double') -fundamental_type(`float') -fundamental_type(`long') -fundamental_type(`long double') -fundamental_type(`long long') -fundamental_type(`octet') -fundamental_type(`short') -fundamental_type(`string') -fundamental_type(`unsigned long') -fundamental_type(`unsigned long long') -fundamental_type(`unsigned short') -fundamental_type(`void') -fundamental_type(`wchar') -fundamental_type(`wstring') -dnl - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Fundamental.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Fundamental.hpp deleted file mode 100644 index 774b7c18910..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Fundamental.hpp +++ /dev/null @@ -1,405 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Fundamental.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -// Note, that this file is automatically generated! -// - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_FUNDAMENTAL_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_FUNDAMENTAL_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - // @@ Object & ValueBase should be of interface & valuetype types? - // - // - class FundamentalType : public virtual Type - { - public: - virtual bool - complete () const - { - return true; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - FundamentalType () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class Object : public virtual FundamentalType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Object () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class ValueBase : public virtual FundamentalType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - ValueBase () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class Any : public virtual FundamentalType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Any () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class Boolean : public virtual FundamentalType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Boolean () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class Char : public virtual FundamentalType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Char () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class Double : public virtual FundamentalType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Double () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class Float : public virtual FundamentalType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Float () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class Long : public virtual FundamentalType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Long () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class LongDouble : public virtual FundamentalType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - LongDouble () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class LongLong : public virtual FundamentalType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - LongLong () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class Octet : public virtual FundamentalType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Octet () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class Short : public virtual FundamentalType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Short () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class String : public virtual FundamentalType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - String () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class UnsignedLong : public virtual FundamentalType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - UnsignedLong () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class UnsignedLongLong : public virtual FundamentalType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - UnsignedLongLong () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class UnsignedShort : public virtual FundamentalType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - UnsignedShort () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class Void : public virtual FundamentalType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Void () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class Wchar : public virtual FundamentalType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Wchar () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class Wstring : public virtual FundamentalType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Wstring () - { - type_info (static_type_info ()); - } - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_GRAPH_FUNDAMENTAL_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Fundamental.hpp.m4 b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Fundamental.hpp.m4 deleted file mode 100644 index b0b3734a349..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Fundamental.hpp.m4 +++ /dev/null @@ -1,98 +0,0 @@ -divert(-1) - -# file : CCF/IDL2/SemanticGraph/Fundamental.hpp.m4 -# author : Boris Kolpackov <boris@dre.vanderbilt.edu> -# cvs-id : $Id$ - -include(`Fundamental.m4') - -define(`fundamental_type', `fundamental_type_impl(`make_class_name(`$1')', `$1')') - -define(`fundamental_type_impl', ` - - // - // - // - class $1 : public virtual FundamentalType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - $1 () - { - type_info (static_type_info ()); - } - };') -divert(0)dnl -dnl -dnl -dnl -// file : CCF/IDL2/SemanticGraph/Fundamental.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -// Note, that this file is automatically generated! -// - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_FUNDAMENTAL_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_FUNDAMENTAL_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - // @@ Object & ValueBase should be of interface & valuetype types? - // - // - class FundamentalType : public virtual Type - { - public: - virtual bool - complete () const - { - return true; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - FundamentalType () - { - type_info (static_type_info ()); - } - }; -dnl -fundamental_type(`Object') -fundamental_type(`ValueBase') -fundamental_type(`any') -fundamental_type(`boolean') -fundamental_type(`char') -fundamental_type(`double') -fundamental_type(`float') -fundamental_type(`long') -fundamental_type(`long double') -fundamental_type(`long long') -fundamental_type(`octet') -fundamental_type(`short') -fundamental_type(`string') -fundamental_type(`unsigned long') -fundamental_type(`unsigned long long') -fundamental_type(`unsigned short') -fundamental_type(`void') -fundamental_type(`wchar') -fundamental_type(`wstring') -dnl - } - } -} - -#endif // CCF_IDL2_SEMANTIC_GRAPH_FUNDAMENTAL_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Fundamental.m4 b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Fundamental.m4 deleted file mode 100644 index 5aaab71bd76..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Fundamental.m4 +++ /dev/null @@ -1,17 +0,0 @@ -# file : CCF/IDL2/SemanticGraph/Fundamental.m4 -# author : Boris Kolpackov <boris@dre.vanderbilt.edu> -# cvs-id : $Id$ - -define(`upcase', `translit(`$*', `a-z', `A-Z')') - - -define(`capitalize_word', - `regexp(`$1', `^\(.\)\(.*\)', `upcase(`\1')`\2'')') - - -define(`capitalize', - `patsubst(`$1', `\w+', `capitalize_word(`\&')')') - -define(`make_class_name', `patsubst(capitalize(`$1'), ` ')') - -define(`make_var_name', `patsubst(`$1', ` ', `_')') diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Graph.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Graph.hpp deleted file mode 100644 index 18a29fb3c2f..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Graph.hpp +++ /dev/null @@ -1,79 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Graph.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef ELEMENT_GRAPH_HPP -#define ELEMENT_GRAPH_HPP - -#include <map> -#include <set> -#include <vector> -#include <string> -#include <memory> - -#include <iostream> - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - template <typename N, typename E> - class Graph - { - public: - ~Graph (); - - public: - template <typename T> - T& - new_node (); - - template <typename T, typename A0> - T& - new_node (A0 const& a0); - - template <typename T, typename A0, typename A1> - T& - new_node (A0 const& a0, A1 const& a1); - - void - delete_node (N const& n); - - public: - template <typename T, typename X, typename Y> - T& - new_edge (X& left, Y& right); - - template <typename T, typename X, typename Y, - typename A0> - T& - new_edge (X& left, Y& right, A0 const& a0); - - template <typename T, typename X, typename Y, - typename A0, - typename A1> - T& - new_edge (X& left, Y& right, A0 const& a0, A1 const& a1); - - void - delete_edge (E const& e); - - protected: - typedef N* NodePtr; - typedef E* EdgePtr; - - typedef std::set<NodePtr> Nodes_; - typedef std::set<EdgePtr> Edges_; - - Nodes_ nodes_; - Edges_ edges_; - }; - } - } -} - -#include "Graph.tpp" - -#endif // ELEMENT_GRAPH_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Graph.tpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Graph.tpp deleted file mode 100644 index 87a4a6a7ed3..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Graph.tpp +++ /dev/null @@ -1,164 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Graph.tpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - // Graph - // - // - - - template <typename N, typename E> - template <typename T> - T& Graph<N, E>:: - new_node () - { - T* n (new T); //@@ auto - nodes_.insert (n); - return *n; - } - - - template <typename N, typename E> - template <typename T, typename A0> - T& Graph<N, E>:: - new_node (A0 const& a0) - { - T* n (new T (a0)); //@@ auto - nodes_.insert (n); - return *n; - } - - - template <typename N, typename E> - template <typename T, typename A0, typename A1> - T& Graph<N, E>:: - new_node (A0 const& a0, A1 const& a1) - { - T* n (new T (a0, a1)); //@@ auto - nodes_.insert (n); - return *n; - } - - - template <typename N, typename E> - void Graph<N, E>:: - delete_node (N const& nr) - { - N* n (&nr); - - for (E* e (n->remove_edge_ ()); e != 0; e = n->remove_edge_ ()) - { - // One endpoint of the edge has removed this edge from - // its edge set. Now handle the other endpoint. - // - if (e->left_ () == n) e->right_ ()->remove_edge_ (e); - else e->left_ ()->remove_edge_ (e); - - // Delete the edge. - // - edges_.erase (e); - - delete e; //@@ auto - } - - nodes_.erase (n); - - delete n; //@@ auto - } - - - template <typename N, typename E> - template <typename T, typename X, typename Y> - T& Graph<N, E>:: - new_edge (X& left, Y& right) - { - T* e (new T); //@@ auto - - e->set_left_node (left); - e->set_right_node (right); - - left.add_edge_left (*e); - right.add_edge_right (*e); - - edges_.insert (e); - - return *e; - } - - template <typename N, typename E> - template <typename T, typename X, typename Y, - typename A0> - T& Graph<N, E>:: - new_edge (X& left, Y& right, A0 const& a0) - { - T* e (new T (a0)); //@@ auto - - e->set_left_node (left); - e->set_right_node (right); - - left.add_edge_left (*e); - right.add_edge_right (*e); - - edges_.insert (e); - - return *e; - } - - template <typename N, typename E> - template <typename T, typename X, typename Y, - typename A0, - typename A1> - T& Graph<N, E>:: - new_edge (X& left, Y& right, A0 const& a0, A1 const& a1) - { - T* e (new T (a0, a1)); //@@ auto - - e->set_left_node (left); - e->set_right_node (right); - - left.add_edge_left (*e); - right.add_edge_right (*e); - - edges_.insert (e); - - return *e; - } - - template <typename N, typename E> - void Graph<N, E>:: - delete_edge (E const& er) - { - E* e (&er); - - e->left_ ()->remove_edge_ (e); - e->right_ ()->remove_edge_ (e); - - edges_.erase (e); - - delete e; //@@ auto - } - - - template <typename N, typename E> - Graph<N, E>:: - ~Graph () - { - //@@ auto - - for (typename Edges_::iterator i (edges_.begin ()), end (edges_.end ()); - i != end; - ++i) delete *i; - - for (typename Nodes_::iterator i (nodes_.begin ()), end (nodes_.end ()); - i != end; - ++i) delete *i; - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/IntExpression.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/IntExpression.cpp deleted file mode 100644 index b294e197df1..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/IntExpression.cpp +++ /dev/null @@ -1,482 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/IntExpression.cpp -// author : Boris Kolpackov <boris@kolpackov.net> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/IntExpression.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - using Introspection::TypeInfo; - using Introspection::Access; - - // IntExpression - // - namespace - { - TypeInfo - int_expression_init_ () - { - TypeInfo ti (typeid (IntExpression)); - ti.add_base (Access::PUBLIC, true, Expression::static_type_info ()); - return ti; - } - - TypeInfo int_expression_ (int_expression_init_ ()); - } - - TypeInfo const& IntExpression:: - static_type_info () { return int_expression_; } - - - // IntLiteral - // - namespace - { - TypeInfo - int_literal_init_ () - { - TypeInfo ti (typeid (IntLiteral)); - ti.add_base ( - Access::PUBLIC, true, IntExpression::static_type_info ()); - return ti; - } - - TypeInfo int_literal_ (int_literal_init_ ()); - } - - TypeInfo const& IntLiteral:: - static_type_info () { return int_literal_; } - - - // IntConst - // - namespace - { - TypeInfo - int_const_init_ () - { - TypeInfo ti (typeid (IntConst)); - ti.add_base (Access::PUBLIC, true, Const::static_type_info ()); - ti.add_base ( - Access::PUBLIC, true, IntExpression::static_type_info ()); - return ti; - } - - TypeInfo int_const_ (int_const_init_ ()); - } - - TypeInfo const& IntConst:: - static_type_info () { return int_const_; } - - - // NEG - // - - namespace - { - TypeInfo - int_negates_init_ () - { - TypeInfo ti (typeid (IntNegates)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo int_negates_ (int_negates_init_ ()); - } - - TypeInfo const& IntNegates:: - static_type_info () { return int_negates_; } - - namespace - { - TypeInfo - int_neg_init_ () - { - TypeInfo ti (typeid (IntNeg)); - ti.add_base ( - Access::PUBLIC, true, IntExpression::static_type_info ()); - return ti; - } - - TypeInfo int_neg_ (int_neg_init_ ()); - } - - TypeInfo const& IntNeg:: - static_type_info () { return int_neg_; } - - - // COM - // - - namespace - { - TypeInfo - int_complements_init_ () - { - TypeInfo ti (typeid (IntComplements)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo int_complements_ (int_complements_init_ ()); - } - - TypeInfo const& IntComplements:: - static_type_info () { return int_complements_; } - - namespace - { - TypeInfo - int_com_init_ () - { - TypeInfo ti (typeid (IntCom)); - ti.add_base ( - Access::PUBLIC, true, IntExpression::static_type_info ()); - return ti; - } - - TypeInfo int_com_ (int_com_init_ ()); - } - - TypeInfo const& IntCom:: - static_type_info () { return int_com_; } - - - // MUL - // - - namespace - { - TypeInfo - int_multiplies_init_ () - { - TypeInfo ti (typeid (IntMultiplies)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo int_multiplies_ (int_multiplies_init_ ()); - } - - TypeInfo const& IntMultiplies:: - static_type_info () { return int_multiplies_; } - - namespace - { - TypeInfo - int_mul_init_ () - { - TypeInfo ti (typeid (IntMul)); - ti.add_base ( - Access::PUBLIC, true, IntExpression::static_type_info ()); - return ti; - } - - TypeInfo int_mul_ (int_mul_init_ ()); - } - - TypeInfo const& IntMul:: - static_type_info () { return int_mul_; } - - - // DIV - // - - namespace - { - TypeInfo - int_divides_init_ () - { - TypeInfo ti (typeid (IntDivides)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo int_divides_ (int_divides_init_ ()); - } - - TypeInfo const& IntDivides:: - static_type_info () { return int_divides_; } - - namespace - { - TypeInfo - int_div_init_ () - { - TypeInfo ti (typeid (IntDiv)); - ti.add_base ( - Access::PUBLIC, true, IntExpression::static_type_info ()); - return ti; - } - - TypeInfo int_div_ (int_div_init_ ()); - } - - TypeInfo const& IntDiv:: - static_type_info () { return int_div_; } - - namespace - { - TypeInfo - int_rem_init_ () - { - TypeInfo ti (typeid (IntRem)); - ti.add_base ( - Access::PUBLIC, true, IntExpression::static_type_info ()); - return ti; - } - - TypeInfo int_rem_ (int_rem_init_ ()); - } - - TypeInfo const& IntRem:: - static_type_info () { return int_rem_; } - - - // ADD - // - - namespace - { - TypeInfo - int_adds_init_ () - { - TypeInfo ti (typeid (IntAdds)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo int_adds_ (int_adds_init_ ()); - } - - TypeInfo const& IntAdds:: - static_type_info () { return int_adds_; } - - namespace - { - TypeInfo - int_add_init_ () - { - TypeInfo ti (typeid (IntAdd)); - ti.add_base ( - Access::PUBLIC, true, IntExpression::static_type_info ()); - return ti; - } - - TypeInfo int_add_ (int_add_init_ ()); - } - - TypeInfo const& IntAdd:: - static_type_info () { return int_add_; } - - - // SUB - // - - namespace - { - TypeInfo - int_subtracts_init_ () - { - TypeInfo ti (typeid (IntSubtracts)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo int_subtracts_ (int_subtracts_init_ ()); - } - - TypeInfo const& IntSubtracts:: - static_type_info () { return int_subtracts_; } - - namespace - { - TypeInfo - int_sub_init_ () - { - TypeInfo ti (typeid (IntSub)); - ti.add_base ( - Access::PUBLIC, true, IntExpression::static_type_info ()); - return ti; - } - - TypeInfo int_sub_ (int_sub_init_ ()); - } - - TypeInfo const& IntSub:: - static_type_info () { return int_sub_; } - - - // RSH & LSH - // - - namespace - { - TypeInfo - int_shifts_init_ () - { - TypeInfo ti (typeid (IntShifts)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo int_shifts_ (int_shifts_init_ ()); - } - - TypeInfo const& IntShifts:: - static_type_info () { return int_shifts_; } - - namespace - { - TypeInfo - int_rsh_init_ () - { - TypeInfo ti (typeid (IntRsh)); - ti.add_base ( - Access::PUBLIC, true, IntExpression::static_type_info ()); - return ti; - } - - TypeInfo int_rsh_ (int_rsh_init_ ()); - } - - TypeInfo const& IntRsh:: - static_type_info () { return int_rsh_; } - - namespace - { - TypeInfo - int_lsh_init_ () - { - TypeInfo ti (typeid (IntLsh)); - ti.add_base ( - Access::PUBLIC, true, IntExpression::static_type_info ()); - return ti; - } - - TypeInfo int_lsh_ (int_lsh_init_ ()); - } - - TypeInfo const& IntLsh:: - static_type_info () { return int_lsh_; } - - - // AND - // - - namespace - { - TypeInfo - int_conjuncts_init_ () - { - TypeInfo ti (typeid (IntConjuncts)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo int_conjuncts_ (int_conjuncts_init_ ()); - } - - TypeInfo const& IntConjuncts:: - static_type_info () { return int_conjuncts_; } - - namespace - { - TypeInfo - int_and_init_ () - { - TypeInfo ti (typeid (IntAnd)); - ti.add_base ( - Access::PUBLIC, true, IntExpression::static_type_info ()); - return ti; - } - - TypeInfo int_and_ (int_and_init_ ()); - } - - TypeInfo const& IntAnd:: - static_type_info () { return int_and_; } - - - // XOR - // - - namespace - { - TypeInfo - int_exclusively_disjuncts_init_ () - { - TypeInfo ti (typeid (IntExclusivelyDisjuncts)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo int_exclusively_disjuncts_ ( - int_exclusively_disjuncts_init_ ()); - } - - TypeInfo const& IntExclusivelyDisjuncts:: - static_type_info () { return int_exclusively_disjuncts_; } - - namespace - { - TypeInfo - int_xor_init_ () - { - TypeInfo ti (typeid (IntXor)); - ti.add_base ( - Access::PUBLIC, true, IntExpression::static_type_info ()); - return ti; - } - - TypeInfo int_xor_ (int_xor_init_ ()); - } - - TypeInfo const& IntXor:: - static_type_info () { return int_xor_; } - - - // OR - // - - namespace - { - TypeInfo - int_inclusively_disjuncts_init_ () - { - TypeInfo ti (typeid (IntInclusivelyDisjuncts)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo int_inclusively_disjuncts_ ( - int_inclusively_disjuncts_init_ ()); - } - - TypeInfo const& IntInclusivelyDisjuncts:: - static_type_info () { return int_inclusively_disjuncts_; } - - namespace - { - TypeInfo - int_or_init_ () - { - TypeInfo ti (typeid (IntOr)); - ti.add_base ( - Access::PUBLIC, true, IntExpression::static_type_info ()); - return ti; - } - - TypeInfo int_or_ (int_or_init_ ()); - } - - TypeInfo const& IntOr:: - static_type_info () { return int_or_; } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/IntExpression.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/IntExpression.hpp deleted file mode 100644 index da0c4fc85cb..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/IntExpression.hpp +++ /dev/null @@ -1,987 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/IntExpression.hpp -// author : Boris Kolpackov <boris@kolpackov.net> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_INT_EXPRESSION_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_INT_EXPRESSION_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - // - // - class IntExpression: public virtual Expression - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntExpression () - { - type_info (static_type_info ()); - } - }; - - - // - // - class IntLiteral: public virtual IntExpression - { - public: - unsigned long long - value () const - { - return value_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntLiteral (unsigned long long value) - : value_ (value) - { - type_info (static_type_info ()); - } - - private: - unsigned long long value_; - }; - - - // - // - class IntConst: public virtual Const, - public virtual IntExpression - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntConst () - { - type_info (static_type_info ()); - } - }; - - - // NEG - // - - class IntNeg; - - class IntNegates: public virtual Edge - { - public: - IntExpression& - argument () const - { - return *argument_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntNegates () - { - type_info (static_type_info ()); - } - - void - set_left_node (IntNeg&) - { - } - - void - set_right_node (IntExpression& e) - { - argument_ = &e; - } - - private: - IntExpression* argument_; - }; - - - class IntNeg: public virtual IntExpression - { - public: - IntNegates& - negates () const - { - return *negates_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntNeg () - : negates_ (0) - { - type_info (static_type_info ()); - } - - void - add_edge_left (IntNegates& n) - { - negates_ = &n; - } - - private: - IntNegates* negates_; - }; - - - // COM - // - - class IntCom; - - class IntComplements: public virtual Edge - { - public: - IntExpression& - argument () const - { - return *argument_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntComplements () - { - type_info (static_type_info ()); - } - - void - set_left_node (IntCom&) - { - } - - void - set_right_node (IntExpression& e) - { - argument_ = &e; - } - - private: - IntExpression* argument_; - }; - - - class IntCom: public virtual IntExpression - { - public: - IntComplements& - complements () const - { - return *complements_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntCom () - : complements_ (0) - { - type_info (static_type_info ()); - } - - void - add_edge_left (IntComplements& n) - { - complements_ = &n; - } - - private: - IntComplements* complements_; - }; - - - // MUL - // - - class IntMul; - - class IntMultiplies: public virtual Edge - { - public: - IntExpression& - argument () const - { - return *argument_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntMultiplies () - { - type_info (static_type_info ()); - } - - void - set_left_node (IntMul&) - { - } - - void - set_right_node (IntExpression& e) - { - argument_ = &e; - } - - private: - IntExpression* argument_; - }; - - - class IntMul: public virtual IntExpression - { - public: - IntMultiplies& - first_factor () const - { - return *first_factor_; - } - - IntMultiplies& - second_factor () const - { - return *second_factor_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntMul () - : first_factor_ (0), second_factor_ (0) - { - type_info (static_type_info ()); - } - - void - add_edge_left (IntMultiplies& d) - { - if (first_factor_ == 0) - first_factor_ = &d; - else - second_factor_ = &d; - } - - private: - IntMultiplies* first_factor_; - IntMultiplies* second_factor_; - }; - - - // DIV & REM - // - - class IntDiv; - class IntRem; - - class IntDivides: public virtual Edge - { - public: - IntExpression& - argument () const - { - return *argument_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntDivides () - { - type_info (static_type_info ()); - } - - void - set_left_node (IntDiv&) - { - } - - void - set_left_node (IntRem&) - { - } - - void - set_right_node (IntExpression& e) - { - argument_ = &e; - } - - private: - IntExpression* argument_; - }; - - - class IntDiv: public virtual IntExpression - { - public: - IntDivides& - divident () const - { - return *divident_; - } - - IntDivides& - divisor () const - { - return *divisor_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntDiv () - : divident_ (0), divisor_ (0) - { - type_info (static_type_info ()); - } - - void - add_edge_left (IntDivides& d) - { - if (divident_ == 0) - divident_ = &d; - else - divisor_ = &d; - } - - private: - IntDivides* divident_; - IntDivides* divisor_; - }; - - class IntRem: public virtual IntExpression - { - public: - IntDivides& - divident () const - { - return *divident_; - } - - IntDivides& - divisor () const - { - return *divisor_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntRem () - : divident_ (0), divisor_ (0) - { - type_info (static_type_info ()); - } - - void - add_edge_left (IntDivides& d) - { - if (divident_ == 0) - divident_ = &d; - else - divisor_ = &d; - } - - private: - IntDivides* divident_; - IntDivides* divisor_; - }; - - - // ADD - // - - class IntAdd; - - class IntAdds: public virtual Edge - { - public: - IntExpression& - argument () const - { - return *argument_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntAdds () - { - type_info (static_type_info ()); - } - - void - set_left_node (IntAdd&) - { - } - - void - set_right_node (IntExpression& e) - { - argument_ = &e; - } - - private: - IntExpression* argument_; - }; - - - class IntAdd: public virtual IntExpression - { - public: - IntAdds& - first_item () const - { - return *first_item_; - } - - IntAdds& - second_item () const - { - return *second_item_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntAdd () - : first_item_ (0), second_item_ (0) - { - type_info (static_type_info ()); - } - - void - add_edge_left (IntAdds& d) - { - if (first_item_ == 0) - first_item_ = &d; - else - second_item_ = &d; - } - - private: - IntAdds* first_item_; - IntAdds* second_item_; - }; - - - // SUB - // - - class IntSub; - - class IntSubtracts: public virtual Edge - { - public: - IntExpression& - argument () const - { - return *argument_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntSubtracts () - { - type_info (static_type_info ()); - } - - void - set_left_node (IntSub&) - { - } - - void - set_right_node (IntExpression& e) - { - argument_ = &e; - } - - private: - IntExpression* argument_; - }; - - - class IntSub: public virtual IntExpression - { - public: - IntSubtracts& - minuend () const - { - return *minuend_; - } - - IntSubtracts& - subtrahend () const - { - return *subtrahend_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntSub () - : minuend_ (0), subtrahend_ (0) - { - type_info (static_type_info ()); - } - - void - add_edge_left (IntSubtracts& d) - { - if (minuend_ == 0) - minuend_ = &d; - else - subtrahend_ = &d; - } - - private: - IntSubtracts* minuend_; - IntSubtracts* subtrahend_; - }; - - - // RSH & LSH - // - - class IntRsh; - class IntLsh; - - class IntShifts: public virtual Edge - { - public: - IntExpression& - argument () const - { - return *argument_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntShifts () - { - type_info (static_type_info ()); - } - - void - set_left_node (IntRsh&) - { - } - - void - set_left_node (IntLsh&) - { - } - - void - set_right_node (IntExpression& e) - { - argument_ = &e; - } - - private: - IntExpression* argument_; - }; - - - class IntRsh: public virtual IntExpression - { - public: - IntShifts& - pattern () const - { - return *pattern_; - } - - IntShifts& - factor () const - { - return *factor_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntRsh () - : pattern_ (0), factor_ (0) - { - type_info (static_type_info ()); - } - - void - add_edge_left (IntShifts& d) - { - if (pattern_ == 0) - pattern_ = &d; - else - factor_ = &d; - } - - private: - IntShifts* pattern_; - IntShifts* factor_; - }; - - class IntLsh: public virtual IntExpression - { - public: - IntShifts& - pattern () const - { - return *pattern_; - } - - IntShifts& - factor () const - { - return *factor_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntLsh () - : pattern_ (0), factor_ (0) - { - type_info (static_type_info ()); - } - - void - add_edge_left (IntShifts& d) - { - if (pattern_ == 0) - pattern_ = &d; - else - factor_ = &d; - } - - private: - IntShifts* pattern_; - IntShifts* factor_; - }; - - - // AND - // - - class IntAnd; - - class IntConjuncts: public virtual Edge - { - public: - IntExpression& - argument () const - { - return *argument_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntConjuncts () - { - type_info (static_type_info ()); - } - - void - set_left_node (IntAnd&) - { - } - - void - set_right_node (IntExpression& e) - { - argument_ = &e; - } - - private: - IntExpression* argument_; - }; - - - class IntAnd: public virtual IntExpression - { - public: - IntConjuncts& - first_pattern () const - { - return *first_pattern_; - } - - IntConjuncts& - second_pattern () const - { - return *second_pattern_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntAnd () - : first_pattern_ (0), second_pattern_ (0) - { - type_info (static_type_info ()); - } - - void - add_edge_left (IntConjuncts& d) - { - if (first_pattern_ == 0) - first_pattern_ = &d; - else - second_pattern_ = &d; - } - - private: - IntConjuncts* first_pattern_; - IntConjuncts* second_pattern_; - }; - - - // XOR - // - - class IntXor; - - class IntExclusivelyDisjuncts: public virtual Edge - { - public: - IntExpression& - argument () const - { - return *argument_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntExclusivelyDisjuncts () - { - type_info (static_type_info ()); - } - - void - set_left_node (IntXor&) - { - } - - void - set_right_node (IntExpression& e) - { - argument_ = &e; - } - - private: - IntExpression* argument_; - }; - - - class IntXor: public virtual IntExpression - { - public: - IntExclusivelyDisjuncts& - first_pattern () const - { - return *first_pattern_; - } - - IntExclusivelyDisjuncts& - second_pattern () const - { - return *second_pattern_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntXor () - : first_pattern_ (0), second_pattern_ (0) - { - type_info (static_type_info ()); - } - - void - add_edge_left (IntExclusivelyDisjuncts& d) - { - if (first_pattern_ == 0) - first_pattern_ = &d; - else - second_pattern_ = &d; - } - - private: - IntExclusivelyDisjuncts* first_pattern_; - IntExclusivelyDisjuncts* second_pattern_; - }; - - - // OR - // - - class IntOr; - - class IntInclusivelyDisjuncts: public virtual Edge - { - public: - IntExpression& - argument () const - { - return *argument_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntInclusivelyDisjuncts () - { - type_info (static_type_info ()); - } - - void - set_left_node (IntOr&) - { - } - - void - set_right_node (IntExpression& e) - { - argument_ = &e; - } - - private: - IntExpression* argument_; - }; - - - class IntOr: public virtual IntExpression - { - public: - IntInclusivelyDisjuncts& - first_pattern () const - { - return *first_pattern_; - } - - IntInclusivelyDisjuncts& - second_pattern () const - { - return *second_pattern_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - IntOr () - : first_pattern_ (0), second_pattern_ (0) - { - type_info (static_type_info ()); - } - - void - add_edge_left (IntInclusivelyDisjuncts& d) - { - if (first_pattern_ == 0) - first_pattern_ = &d; - else - second_pattern_ = &d; - } - - private: - IntInclusivelyDisjuncts* first_pattern_; - IntInclusivelyDisjuncts* second_pattern_; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_GRAPH_INT_EXPRESSION_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Interface.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Interface.cpp deleted file mode 100644 index de5b996610f..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Interface.cpp +++ /dev/null @@ -1,118 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Interface.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/Interface.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - using Introspection::TypeInfo; - using Introspection::Access; - - - // Interface - // - // - namespace - { - TypeInfo - interface_init_ () - { - TypeInfo ti (typeid (Interface)); - ti.add_base (Access::PUBLIC, true, Type::static_type_info ()); - ti.add_base (Access::PUBLIC, true, Scope::static_type_info ()); - return ti; - } - - TypeInfo interface_ (interface_init_ ()); - } - - TypeInfo const& Interface:: - static_type_info () { return interface_; } - - - // Supports - // - // - namespace - { - TypeInfo - supports_init_ () - { - TypeInfo ti (typeid (Supports)); - ti.add_base (Access::PUBLIC, true, IsA::static_type_info ()); - return ti; - } - - TypeInfo supports_ (supports_init_ ()); - } - - TypeInfo const& Supports:: - static_type_info () { return supports_; } - - - // AbstractInterface - // - // - namespace - { - TypeInfo - abstract_interface_init_ () - { - TypeInfo ti (typeid (AbstractInterface)); - ti.add_base (Access::PUBLIC, true, Interface::static_type_info ()); - return ti; - } - - TypeInfo abstract_interface_ (abstract_interface_init_ ()); - } - - TypeInfo const& AbstractInterface:: - static_type_info () { return abstract_interface_; } - - - // LocalInterface - // - // - namespace - { - TypeInfo - local_interface_init_ () - { - TypeInfo ti (typeid (LocalInterface)); - ti.add_base (Access::PUBLIC, true, Interface::static_type_info ()); - return ti; - } - - TypeInfo local_interface_ (local_interface_init_ ()); - } - - TypeInfo const& LocalInterface:: - static_type_info () { return local_interface_; } - - - // UnconstrainedInterface - // - // - namespace - { - TypeInfo - unconstrained_interface_init_ () - { - TypeInfo ti (typeid (UnconstrainedInterface)); - ti.add_base (Access::PUBLIC, true, Interface::static_type_info ()); - return ti; - } - - TypeInfo unconstrained_interface_ (unconstrained_interface_init_ ()); - } - - TypeInfo const& UnconstrainedInterface:: - static_type_info () { return unconstrained_interface_; } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Interface.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Interface.hpp deleted file mode 100644 index 7649c0a4d9d..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Interface.hpp +++ /dev/null @@ -1,175 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Interface.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_INTERFACE_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_INTERFACE_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" -#include "CCF/IDL2/SemanticGraph/Operation.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - // - // - // - class Interface : public virtual Type, public virtual Scope - { - typedef - std::vector <Inherits*> - Inherits_; - - public: - typedef - Inherits_::const_iterator - InheritsIterator; - - InheritsIterator - inherits_begin () const - { - return inherits_.begin (); - } - - InheritsIterator - inherits_end () const - { - return inherits_.end (); - } - - virtual bool - complete () const - { - return true; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Interface () - { - type_info (static_type_info ()); - } - - using Type::add_edge_right; - using Scope::add_edge_left; - - void - add_edge_left (Inherits& e) - { - inherits_.push_back (&e); - } - - void - add_edge_right (Inherits&) - { - } - - private: - Inherits_ inherits_; - }; - - - // - // - // - class Supports : public virtual IsA - { - public: - virtual Type& - supporter () const - { - return subject (); - } - - virtual Type& - supportee () const - { - return object (); - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Supports () - { - type_info (static_type_info ()); - } - - void - set_right_node (Interface& n) - { - IsA::set_right_node (n); - } - }; - - - // - // - // - class AbstractInterface : public virtual Interface - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - AbstractInterface () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class LocalInterface : public virtual Interface - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - LocalInterface () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class UnconstrainedInterface : public virtual Interface - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - UnconstrainedInterface () - { - type_info (static_type_info ()); - } - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_GRAPH_INTERFACE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Literals.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Literals.cpp deleted file mode 100644 index 7d7e5e3137b..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Literals.cpp +++ /dev/null @@ -1,25 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Literals.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/Literals.hpp" - -#include <ostream> - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - // StringLiteral - // - // - std::ostream& - operator<< (std::ostream& o, StringLiteral const& lit) - { - return o << '\"' << lit.literal () << '\"'; - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Literals.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Literals.hpp deleted file mode 100644 index 2276339b9c3..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Literals.hpp +++ /dev/null @@ -1,56 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Literals.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_LITERALS_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_LITERALS_HPP - -#include <string> -#include <iosfwd> - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - // - // - // - class StringLiteral - { - public: - StringLiteral (std::string const& literal) - : literal_ (literal) - { - } - - std::string - literal () const - { - return literal_; - } - - private: - std::string literal_; - }; - - inline bool - operator== (StringLiteral const& a, StringLiteral const& b) - { - return a.literal () == b.literal (); - } - - inline bool - operator!= (StringLiteral const& a, StringLiteral const& b) - { - return a.literal () != b.literal (); - } - - std::ostream& - operator<< (std::ostream& o, StringLiteral const& lit); - } - } -} - -#endif // CCF_IDL2_SEMANTIC_GRAPH_LITERALS_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Member.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Member.cpp deleted file mode 100644 index b57bb0fe764..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Member.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Member.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/Member.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - using Introspection::TypeInfo; - using Introspection::Access; - - namespace - { - TypeInfo - member_init_ () - { - TypeInfo ti (typeid (Member)); - ti.add_base (Access::PUBLIC, true, Nameable::static_type_info ()); - ti.add_base (Access::PUBLIC, true, Instance::static_type_info ()); - return ti; - } - - TypeInfo member_ (member_init_ ()); - } - - TypeInfo const& Member:: - static_type_info () { return member_; } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Member.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Member.hpp deleted file mode 100644 index 5d7c13e6c52..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Member.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Member.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_MEMBER_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_MEMBER_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - class Member : public virtual Nameable, public virtual Instance - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Member () - { - type_info (static_type_info ()); - } - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_GRAPH_MEMBER_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Module.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Module.cpp deleted file mode 100644 index 9e7aeb542e4..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Module.cpp +++ /dev/null @@ -1,33 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Module.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/Module.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - using Introspection::TypeInfo; - using Introspection::Access; - - namespace - { - TypeInfo - module_init_ () - { - TypeInfo ti (typeid (Module)); - ti.add_base (Access::PUBLIC, true, Scope::static_type_info ()); - return ti; - } - - TypeInfo module_ (module_init_ ()); - } - - TypeInfo const& Module:: - static_type_info () { return module_; } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Module.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Module.hpp deleted file mode 100644 index 0a3a6831e29..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Module.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Module.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_MODULE_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_MODULE_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - class Module : public virtual Scope - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Module () - { - type_info (static_type_info ()); - } - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_GRAPH_MODULE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Name.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Name.cpp deleted file mode 100644 index c7a48fc8494..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Name.cpp +++ /dev/null @@ -1,218 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Name.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/Name.hpp" - -#include <ostream> - -/* -#include <iostream> - -using std::cerr; -using std::endl; -*/ - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - - // SimpleName - // - // - - SimpleName:: - SimpleName (char const* name) throw (InvalidName) - : name_ (name) - { - if (name_.find (':') != std::string::npos) throw InvalidName (); - } - - SimpleName:: - SimpleName (std::string const& name) throw (InvalidName) - : name_ (name) - { - if (name_.find (':') != std::string::npos) throw InvalidName (); - } - - SimpleName - operator+ (SimpleName const& name, std::string const& str) - { - return SimpleName (name.str () + str); - } - - SimpleName - operator+ (std::string const& str, SimpleName const& name) - { - return SimpleName (str + name.str ()); - } - - std::ostream& - operator << (std::ostream& o, SimpleName const& name) - { - return o << name.str (); - } - - // Name - // - // - Name:: - Name (SimpleName const& name) - : name_cache_ (name.str ()) - { - name_.push_back (name); - } - - Name:: - Name (char const* name) throw (InvalidName) - : name_cache_ (name) - { - init (); - } - - Name:: - Name (std::string const& name) throw (InvalidName) - : name_cache_ (name) - { - init (); - } - - void Name:: - init () throw (InvalidName) - { - // cerr << "parsing name \'" << name_cache_ << "\' {"<< endl; - - for (std::string::size_type - pos (0), next (name_cache_.find ("::", pos));; - next = name_cache_.find ("::", pos)) - { - std::string simple_name ( - name_cache_, - pos, - next == std::string::npos ? next : next - pos); - - // cerr << "\t\'" << simple_name << '\'' << endl; - - if (simple_name.empty () && !name_.empty ()) - { - // Empty name (file-scope) is only valid when - // it is first. - // - throw InvalidName (); - } - - name_.push_back (SimpleName (simple_name)); - - if (next == std::string::npos) break; - - pos = next + 2; - } - - // cerr << "parsing name }" << name_cache_ << endl; - - if (name_.empty ()) throw InvalidName (); - } - - - Name:: - Name (Iterator begin, Iterator end) throw (InvalidName) - { - for (Iterator i (begin); i != end; ++i) - { - name_cache_ += (i != begin ? "::" : "") + i->str (); - name_.push_back (*i); - } - - if (name_.empty ()) throw InvalidName (); - } - - bool Name:: - scoped () const - { - return name_[0] == SimpleName (""); - } - - bool Name:: - simple () const - { - return name_.size () == 1; - } - - std::ostream& - operator << (std::ostream& o, Name const& name) - { - return o << name.str (); - } - - // ScopedName - // - // - - ScopedName:: - ScopedName (char const* name) throw (InvalidName) - : Name (name) - { - if (!scoped ()) throw InvalidName (); - } - - ScopedName:: - ScopedName (std::string const& name) throw (InvalidName) - : Name (name) - { - if (!scoped ()) throw InvalidName (); - } - - ScopedName:: - ScopedName (Iterator begin, Iterator end) throw (InvalidName) - : Name (begin, end) - { - if (!scoped ()) throw InvalidName (); - } - - ScopedName:: - ScopedName (Name const& name) throw (InvalidName) - : Name (name) - { - if (!scoped ()) throw InvalidName (); - } - - ScopedName:: - ScopedName (ScopedName const& scope, Name const& name) - throw (InvalidName) - : Name (scope.str () + "::" + name.str ()) - { - if (!scoped ()) throw InvalidName (); - } - - SimpleName ScopedName:: - simple_name () const - { - return *(end () - 1); - } - - ScopedName ScopedName:: - scope_name () const throw (FileScope) - { - Iterator end (this->end () - 1); - - if (begin () == end) throw FileScope (); - - return ScopedName (begin (), end); - } - - /* - Name ScopedName:: - in_file_scope () const throw (FileScope) - { - if (name_.empty ()) throw FileScope (); - - return Name(std::string (name_.begin () + 2, name_.end ())); - } - - */ - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Name.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Name.hpp deleted file mode 100644 index 1848deccbb2..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Name.hpp +++ /dev/null @@ -1,186 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Name.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_NAME_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_NAME_HPP - -#include <vector> -#include <string> -#include <iosfwd> - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - //@@ better names for names: maybe SimpleName, ScopedName, FullName? - // - // - - class InvalidName {}; - - class SimpleName - { - public: - SimpleName (char const* name) throw (InvalidName); - SimpleName (std::string const& name) throw (InvalidName); - - public: - bool - operator< (SimpleName const& other) const - { - return name_ < other.name_; - } - - bool - operator== (SimpleName const& other) const - { - return name_ == other.name_; - } - - bool - operator!= (SimpleName const& other) const - { - return name_ != other.name_; - } - - public: - std::string - str () const - { - return name_; - } - - private: - std::string name_; - }; - - SimpleName - operator+ (SimpleName const& name, std::string const& str); - - SimpleName - operator+ (std::string const& str, SimpleName const& name); - - std::ostream& - operator << (std::ostream& o, SimpleName const& name); - - // - // - // - class Name - { - typedef - std::vector<SimpleName> - Name_; - - public: - Name (SimpleName const& name); - - Name (char const* name) throw (InvalidName); - Name (std::string const& name) throw (InvalidName); - - typedef - Name_::const_iterator - Iterator; - - Name (Iterator begin, Iterator end) throw (InvalidName); - - public: - bool - operator< (Name const& other) const - { - return name_cache_ < other.name_cache_; - } - - bool - operator== (Name const& other) const - { - return name_cache_ == other.name_cache_; - } - - bool - operator!= (Name const& other) const - { - return name_cache_ != other.name_cache_; - } - - public: - Iterator - begin () const - { - return name_.begin (); - } - - Iterator - end () const - { - return name_.end (); - } - - public: - bool - scoped () const; - - bool - simple () const; - - public: - std::string - str () const - { - return name_cache_; - } - - private: - void - init () throw (InvalidName); - - private: - Name_ name_; - std::string name_cache_; - }; - - std::ostream& - operator << (std::ostream& o, Name const& name); - - - // Should always start with "::". Can be just "::" which - // means it's a file-scope. - // - // - class ScopedName : public Name - { - public: - ScopedName (char const* name) throw (InvalidName); - - ScopedName (std::string const& name) throw (InvalidName); - - ScopedName (Iterator begin, Iterator end) throw (InvalidName); - - explicit - ScopedName (Name const& name) throw (InvalidName); - - ScopedName (ScopedName const& scope, Name const& name) - throw (InvalidName); - - public: - SimpleName - simple_name () const; - - class FileScope {}; - - ScopedName - scope_name () const throw (FileScope); - - /* - Name - in_file_scope () const throw (FileScope); - */ - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_GRAPH_NAME_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Native.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Native.cpp deleted file mode 100644 index 46e24ae9c76..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Native.cpp +++ /dev/null @@ -1,33 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Native.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/Native.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - using Introspection::TypeInfo; - using Introspection::Access; - - namespace - { - TypeInfo - native_init_ () - { - TypeInfo ti (typeid (Native)); - ti.add_base (Access::PUBLIC, true, Type::static_type_info ()); - return ti; - } - - TypeInfo native_ (native_init_ ()); - } - - TypeInfo const& Native:: - static_type_info () { return native_; } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Native.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Native.hpp deleted file mode 100644 index 2a438348eb9..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Native.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Native.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_NATIVE_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_NATIVE_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - class Native : public virtual Type - { - public: - virtual bool - complete () const - { - return true; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Native () - { - type_info (static_type_info ()); - } - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_GRAPH_NATIVE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Operation.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Operation.cpp deleted file mode 100644 index 697751f14cd..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Operation.cpp +++ /dev/null @@ -1,218 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Operation.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/Operation.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - using Introspection::TypeInfo; - using Introspection::Access; - - // Receives - // - // - namespace - { - TypeInfo - receives_init_ () - { - TypeInfo ti (typeid (Receives)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo receives_ (receives_init_ ()); - } - - TypeInfo const& Receives:: - static_type_info () { return receives_; } - - - // Returns - // - // - namespace - { - TypeInfo - returns_init_ () - { - TypeInfo ti (typeid (Returns)); - ti.add_base (Access::PUBLIC, true, Belongs::static_type_info ()); - return ti; - } - - TypeInfo returns_ (returns_init_ ()); - } - - TypeInfo const& Returns:: - static_type_info () { return returns_; } - - - // Raises - // - // - namespace - { - TypeInfo - raises_init_ () - { - TypeInfo ti (typeid (Raises)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo raises_ (raises_init_ ()); - } - - TypeInfo const& Raises:: - static_type_info () { return raises_; } - - - - // Parameter - // - // - namespace - { - TypeInfo - parameter_init_ () - { - TypeInfo ti (typeid (Parameter)); - ti.add_base (Access::PUBLIC, true, Instance::static_type_info ()); - return ti; - } - - TypeInfo parameter_ (parameter_init_ ()); - } - - TypeInfo const& Parameter:: - static_type_info () { return parameter_; } - - - // InParameter - // - // - namespace - { - TypeInfo - in_parameter_init_ () - { - TypeInfo ti (typeid (InParameter)); - ti.add_base (Access::PUBLIC, true, Parameter::static_type_info ()); - return ti; - } - - TypeInfo in_parameter_ (in_parameter_init_ ()); - } - - TypeInfo const& InParameter:: - static_type_info () { return in_parameter_; } - - - // OutParameter - // - // - namespace - { - TypeInfo - out_parameter_init_ () - { - TypeInfo ti (typeid (OutParameter)); - ti.add_base (Access::PUBLIC, true, Parameter::static_type_info ()); - return ti; - } - - TypeInfo out_parameter_ (out_parameter_init_ ()); - } - - TypeInfo const& OutParameter:: - static_type_info () { return out_parameter_; } - - - // InOutParameter - // - // - namespace - { - TypeInfo - in_out_parameter_init_ () - { - TypeInfo ti (typeid (InOutParameter)); - ti.add_base (Access::PUBLIC, true, Parameter::static_type_info ()); - return ti; - } - - TypeInfo in_out_parameter_ (in_out_parameter_init_ ()); - } - - TypeInfo const& InOutParameter:: - static_type_info () { return in_out_parameter_; } - - - // Operation - // - // - namespace - { - TypeInfo - operation_init_ () - { - TypeInfo ti (typeid (Operation)); - ti.add_base (Access::PUBLIC, true, Nameable::static_type_info ()); - ti.add_base (Access::PUBLIC, true, Instance::static_type_info ()); - return ti; - } - - TypeInfo operation_ (operation_init_ ()); - } - - TypeInfo const& Operation:: - static_type_info () { return operation_; } - - - // OneWayOperation - // - // - namespace - { - TypeInfo - one_way_operation_init_ () - { - TypeInfo ti (typeid (OneWayOperation)); - ti.add_base (Access::PUBLIC, true, Operation::static_type_info ()); - return ti; - } - - TypeInfo one_way_operation_ (one_way_operation_init_ ()); - } - - TypeInfo const& OneWayOperation:: - static_type_info () { return one_way_operation_; } - - - // TwoWayOperation - // - // - namespace - { - TypeInfo - two_way_operation_init_ () - { - TypeInfo ti (typeid (TwoWayOperation)); - ti.add_base (Access::PUBLIC, true, Operation::static_type_info ()); - return ti; - } - - TypeInfo two_way_operation_ (two_way_operation_init_ ()); - } - - TypeInfo const& TwoWayOperation:: - static_type_info () { return two_way_operation_; } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Operation.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Operation.hpp deleted file mode 100644 index a87eddf2ceb..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Operation.hpp +++ /dev/null @@ -1,344 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Operation.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_OPERATION_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_OPERATION_HPP - -#include <string> - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" -#include "CCF/IDL2/SemanticGraph/Exception.hpp" -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - class Operation; - class Parameter; - - // Operation receives parameter - // - // - class Receives : public virtual Edge - { - public: - Operation& - operation () const - { - return *operation_; - } - - Parameter& - parameter () const - { - return *parameter_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Receives () - { - type_info (static_type_info ()); - } - - void - set_left_node (Operation& n) - { - operation_ = &n; - } - - void - set_right_node (Parameter& n) - { - parameter_ = &n; - } - - private: - Operation* operation_; - Parameter* parameter_; - }; - - - // Operation returns - // - // - class Returns : public virtual Belongs - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Returns () - { - type_info (static_type_info ()); - } - }; - - - // Raises - // - // - class Raises : public virtual Edge - { - public: - Operation& - operation () const - { - return *operation_; - } - - Exception& - exception () const - { - return *exception_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Raises () - { - type_info (static_type_info ()); - } - - void - set_left_node (Operation& n) - { - operation_ = &n; - } - - void - set_right_node (Exception& n) - { - exception_ = &n; - } - - private: - Operation* operation_; - Exception* exception_; - }; - - - // - // - // - class Parameter : public virtual Instance - { - public: - std::string - name () const - { - return name_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Parameter (std::string const& name) - : name_ (name) - { - type_info (static_type_info ()); - } - - void - add_edge_right (Receives&) - { - } - - private: - std::string name_; - }; - - - class InParameter : public virtual Parameter - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - InParameter (std::string const& name) - : Parameter (name) - { - type_info (static_type_info ()); - } - }; - - class OutParameter : public virtual Parameter - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - OutParameter (std::string const& name) - : Parameter (name) - { - type_info (static_type_info ()); - } - }; - - class InOutParameter : public virtual Parameter - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - InOutParameter (std::string const& name) - : Parameter (name) - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class Operation : public virtual Nameable, public virtual Instance - { - typedef - std::vector<Receives*> - Receives_; - - typedef - std::vector<Raises*> - Raises_; - - public: - typedef - Receives_::const_iterator - ReceivesIterator; - - ReceivesIterator - receives_begin () const - { - return receives_.begin (); - } - - ReceivesIterator - receives_end () const - { - return receives_.end (); - } - - typedef - Raises_::const_iterator - RaisesIterator; - - RaisesIterator - raises_begin () const - { - return raises_.begin (); - } - - RaisesIterator - raises_end () const - { - return raises_.end (); - } - - Returns& - returns () const - { - return dynamic_cast<Returns&> (belongs ()); - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Operation () - { - type_info (static_type_info ()); - } - - void - add_edge_left (Receives& e) - { - receives_.push_back (&e); - } - - void - add_edge_left (Raises& e) - { - raises_.push_back (&e); - } - - void - add_edge_left (Returns& e) - { - Instance::add_edge_left (e); - } - - private: - Receives_ receives_; - Raises_ raises_; - }; - - - // - // - // - class OneWayOperation : public virtual Operation - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - OneWayOperation () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class TwoWayOperation : public virtual Operation - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - TwoWayOperation () - { - type_info (static_type_info ()); - } - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_GRAPH_OPERATION_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Sequence.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Sequence.cpp deleted file mode 100644 index 578c87361d4..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Sequence.cpp +++ /dev/null @@ -1,58 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/String.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/String.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - using Introspection::TypeInfo; - using Introspection::Access; - - // BoundedString - // - // - namespace - { - TypeInfo - bounded_string_init_ () - { - TypeInfo ti (typeid (BoundedString)); - ti.add_base ( - Access::PUBLIC, true, Specialization::static_type_info ()); - return ti; - } - - TypeInfo bounded_string_ (bounded_string_init_ ()); - } - - TypeInfo const& BoundedString:: - static_type_info () { return bounded_string_; } - - - // BoundedWideString - // - // - namespace - { - TypeInfo - bounded_wide_string_init_ () - { - TypeInfo ti (typeid (BoundedWideString)); - ti.add_base ( - Access::PUBLIC, true, Specialization::static_type_info ()); - return ti; - } - - TypeInfo bounded_wide_string_ (bounded_wide_string_init_ ()); - } - - TypeInfo const& BoundedWideString:: - static_type_info () { return bounded_wide_string_; } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Sequence.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Sequence.hpp deleted file mode 100644 index f32c3d3b1b6..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Sequence.hpp +++ /dev/null @@ -1,101 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Sequence.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_SEQUENCE_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_SEQUENCE_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" -#include "CCF/IDL2/SemanticGraph/IntExpression.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - // - // - // - class Sequence : public virtual Specialization - { - public: - Type& - type () const - { - return - dynamic_cast<ArgumentsWithType&> (**arguments_begin ()).type (); - } - - virtual bool - complete () const - { - return type ().complete (); - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Sequence () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class UnboundedSequence : public virtual Sequence - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - UnboundedSequence () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class BoundedSequence : public virtual Sequence - { - public: - IntExpression& - bound () const - { - ArgumentsIterator i (arguments_begin ()); - - ++i; // Bound is always second to the type. - - return - dynamic_cast<IntExpression&> ( - dynamic_cast<ArgumentsWithValue&> (**i).value ()); - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - BoundedSequence () - { - type_info (static_type_info ()); - } - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_GRAPH_SEQUENCE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/String.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/String.cpp deleted file mode 100644 index 558da3f34da..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/String.cpp +++ /dev/null @@ -1,77 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Sequence.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/Sequence.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - using Introspection::TypeInfo; - using Introspection::Access; - - // Sequence - // - // - namespace - { - TypeInfo - sequence_init_ () - { - TypeInfo ti (typeid (Sequence)); - ti.add_base ( - Access::PUBLIC, true, Specialization::static_type_info ()); - return ti; - } - - TypeInfo sequence_ (sequence_init_ ()); - } - - TypeInfo const& Sequence:: - static_type_info () { return sequence_; } - - - // UnboundedSequence - // - // - namespace - { - TypeInfo - unbounded_sequence_init_ () - { - TypeInfo ti (typeid (UnboundedSequence)); - ti.add_base (Access::PUBLIC, true, Sequence::static_type_info ()); - return ti; - } - - TypeInfo unbounded_sequence_ (unbounded_sequence_init_ ()); - } - - TypeInfo const& UnboundedSequence:: - static_type_info () { return unbounded_sequence_; } - - - // BoundedSequence - // - // - namespace - { - TypeInfo - bounded_sequence_init_ () - { - TypeInfo ti (typeid (BoundedSequence)); - ti.add_base (Access::PUBLIC, true, Sequence::static_type_info ()); - return ti; - } - - TypeInfo bounded_sequence_ (bounded_sequence_init_ ()); - } - - TypeInfo const& BoundedSequence:: - static_type_info () { return bounded_sequence_; } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/String.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/String.hpp deleted file mode 100644 index a4f3e361272..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/String.hpp +++ /dev/null @@ -1,85 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/String.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_STRING_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_STRING_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" -#include "CCF/IDL2/SemanticGraph/IntExpression.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - // - // - class BoundedString : public virtual Specialization - { - public: - IntExpression& - bound () const - { - return - dynamic_cast<IntExpression&> ( - dynamic_cast<ArgumentsWithValue&> ( - **arguments_begin ()).value ()); - } - - virtual bool - complete () const - { - return true; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - BoundedString () - { - type_info (static_type_info ()); - } - }; - - - // - // - class BoundedWideString : public virtual Specialization - { - public: - IntExpression& - bound () const - { - return - dynamic_cast<IntExpression&> ( - dynamic_cast<ArgumentsWithValue&> ( - **arguments_begin ()).value ()); - } - - virtual bool - complete () const - { - return true; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - BoundedWideString () - { - type_info (static_type_info ()); - } - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_GRAPH_STRING_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Struct.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Struct.cpp deleted file mode 100644 index 46fd9b9ef3a..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Struct.cpp +++ /dev/null @@ -1,67 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Struct.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/Struct.hpp" -#include "CCF/IDL2/SemanticGraph/Member.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - using Introspection::TypeInfo; - using Introspection::Access; - - namespace - { - TypeInfo - struct_init_ () - { - TypeInfo ti (typeid (Struct)); - ti.add_base (Access::PUBLIC, true, Type::static_type_info ()); - ti.add_base (Access::PUBLIC, true, Scope::static_type_info ()); - return ti; - } - - TypeInfo struct_ (struct_init_ ()); - } - - TypeInfo const& Struct:: - static_type_info () { return struct_; } - - bool Struct:: - complete () const - { - if (defined ()) - { - CompilerElements::Context& ctx ( - const_cast<CompilerElements::Context&> (context ())); - - if (ctx.count ("struct-complete-test")) - return true; - - ctx.set ("struct-complete-test", true); - bool c (true); - - for (Scope::NamesIterator i (names_begin ()); - c && i != names_end (); - ++i) - { - Member const& m (dynamic_cast<Member&> ((*i)->named ())); - Type const& t (m.belongs ().type ()); - - if (!t.complete ()) - c = false; - } - - ctx.remove ("struct-complete-test"); - return c; - } - - return false; - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Struct.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Struct.hpp deleted file mode 100644 index 67419a4cd00..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Struct.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Struct.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_STRUCT_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_STRUCT_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - class Struct : public virtual Type, public virtual Scope - { - public: - virtual bool - complete () const; - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Struct () - { - type_info (static_type_info ()); - } - - using Type::add_edge_right; - using Scope::add_edge_left; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_GRAPH_STRUCT_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Translation.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Translation.cpp deleted file mode 100644 index 93a73127c56..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Translation.cpp +++ /dev/null @@ -1,255 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Translation.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/Translation.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - using Introspection::TypeInfo; - using Introspection::Access; - - // ContainsPrincipal - // - // - namespace - { - TypeInfo - contains_principal_init_ () - { - TypeInfo ti (typeid (ContainsPrincipal)); - ti.add_base (Access::PUBLIC, true, Contains::static_type_info ()); - return ti; - } - - TypeInfo contains_principal_ (contains_principal_init_ ()); - } - - TypeInfo const& ContainsPrincipal:: - static_type_info () { return contains_principal_; } - - - // ContainsImplied - // - // - namespace - { - TypeInfo - contains_implied_init_ () - { - TypeInfo ti (typeid (ContainsImplied)); - ti.add_base (Access::PUBLIC, true, Contains::static_type_info ()); - return ti; - } - - TypeInfo contains_implied_ (contains_implied_init_ ()); - } - - TypeInfo const& ContainsImplied:: - static_type_info () { return contains_implied_; } - - - // ContainsRoot - // - // - namespace - { - TypeInfo - contains_root_init_ () - { - TypeInfo ti (typeid (ContainsRoot)); - ti.add_base (Access::PUBLIC, true, Contains::static_type_info ()); - return ti; - } - - TypeInfo contains_root_ (contains_root_init_ ()); - } - - TypeInfo const& ContainsRoot:: - static_type_info () { return contains_root_; } - - - // Includes - // - // - namespace - { - TypeInfo - includes_init_ () - { - TypeInfo ti (typeid (Includes)); - ti.add_base (Access::PUBLIC, true, Contains::static_type_info ()); - return ti; - } - - TypeInfo includes_ (includes_init_ ()); - } - - TypeInfo const& Includes:: - static_type_info () { return includes_; } - - - // QuoteIncludes - // - // - namespace - { - TypeInfo - quote_includes_init_ () - { - TypeInfo ti (typeid (QuoteIncludes)); - ti.add_base (Access::PUBLIC, true, Includes::static_type_info ()); - return ti; - } - - TypeInfo quote_includes_ (quote_includes_init_ ()); - } - - TypeInfo const& QuoteIncludes:: - static_type_info () { return quote_includes_; } - - - - // BracketIncludes - // - // - namespace - { - TypeInfo - bracket_includes_init_ () - { - TypeInfo ti (typeid (BracketIncludes)); - ti.add_base (Access::PUBLIC, true, Includes::static_type_info ()); - return ti; - } - - TypeInfo bracket_includes_ (bracket_includes_init_ ()); - } - - TypeInfo const& BracketIncludes:: - static_type_info () { return bracket_includes_; } - - - // Root - // - // - namespace - { - TypeInfo - root_init_ () - { - TypeInfo ti (typeid (Root)); - ti.add_base (Access::PUBLIC, true, Scope::static_type_info ()); - return ti; - } - - TypeInfo root_ (root_init_ ()); - } - - TypeInfo const& Root:: - static_type_info () { return root_; } - - - // TranslationRegion - // - // - - Nameables TranslationRegion:: - lookup (ScopedName const& name) const - { - Nameables r; - lookup (name, r); - return r; - } - - void TranslationRegion:: - lookup (ScopedName const& name, Nameables& result) const - { - bool root (name.simple ()); - - Name rest (name.begin () + (root ? 0 : 1), name.end ()); - - for (ContainsIterator i (contains_begin ()), end (contains_end ()); - i != end; ++i) - { - Node& node ((**i).element ()); - - if (Root* r = dynamic_cast<Root*> (&node)) - { - if (root) - { - result.insert (&dynamic_cast<Root&> (node)); - } - else - { - r->lookup (rest, result); - } - } - else - { - dynamic_cast<TranslationRegion&> (node).lookup (name, result); - } - } - } - - - namespace - { - TypeInfo - translation_region_init_ () - { - TypeInfo ti (typeid (TranslationRegion)); - ti.add_base (Access::PUBLIC, true, Container::static_type_info ()); - return ti; - } - - TypeInfo translation_region_ (translation_region_init_ ()); - } - - TypeInfo const& TranslationRegion:: - static_type_info () { return translation_region_; } - - - // TranslationUnit - // - // - - Nameables TranslationUnit:: - lookup (ScopedName const& name) const - { - Nameables r; - - for (ContainsIterator i (contains_begin ()), end (contains_end ()); - i != end; ++i) - { - TranslationRegion& tr ( - dynamic_cast<TranslationRegion&>((**i).element ())); - - tr.lookup (name, r); - } - - return r; - } - - namespace - { - TypeInfo - translation_unit_init_ () - { - TypeInfo ti (typeid (TranslationUnit)); - ti.add_base (Access::PUBLIC, true, Container::static_type_info ()); - return ti; - } - - TypeInfo translation_unit_ (translation_unit_init_ ()); - } - - TypeInfo const& TranslationUnit:: - static_type_info () { return translation_unit_; } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Translation.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Translation.hpp deleted file mode 100644 index 2b12b5e3c61..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Translation.hpp +++ /dev/null @@ -1,286 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Translation.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_TRANSLATION_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_TRANSLATION_HPP - -#include <vector> -#include <string> - -#include "CCF/CompilerElements/FileSystem.hpp" - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - class Root; - class TranslationRegion; - class TranslationUnit; - - - // - // - // - class ContainsPrincipal : public virtual Contains - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - ContainsPrincipal () - { - type_info (static_type_info ()); - } - - void - set_left_node (TranslationUnit& n); - - void - set_right_node (TranslationRegion& n); - }; - - - // - // - // - class ContainsImplied : public virtual Contains - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - ContainsImplied (std::string const& name = "") - : name_ (name) - { - type_info (static_type_info ()); - } - - void - set_left_node (TranslationUnit& n); - - void - set_right_node (TranslationRegion& n); - - private: - std::string name_; - }; - - - // - // - // - class ContainsRoot : public virtual Contains - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - ContainsRoot () - { - type_info (static_type_info ()); - } - - void - set_left_node (TranslationRegion& n); - - void - set_right_node (Root& n); - }; - - // - // - // - class Includes : public virtual Contains - { - public: - fs::path - file () const - { - return file_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Includes (fs::path const& file) - : file_ (file) - { - type_info (static_type_info ()); - } - - void - set_left_node (TranslationRegion& n); - - void - set_right_node (TranslationRegion& n); - - private: - fs::path file_; - }; - - - // - // - // - class QuoteIncludes : public virtual Includes - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - QuoteIncludes (fs::path const& file) - : Includes (file) - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class BracketIncludes : public virtual Includes - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - BracketIncludes (fs::path const& file) - : Includes (file) - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class Root : public virtual Scope - { - public: - virtual SimpleName - name () const - { - return SimpleName (""); - } - - virtual ScopedName - scoped_name () const - { - return ScopedName (""); - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Root () - { - type_info (static_type_info ()); - } - - void - add_edge_right (Contains&) - { - // TranslationRegion contains Root - } - }; - - - // - // - // - class TranslationRegion : public virtual Container - { - public: - Nameables - lookup (ScopedName const& name) const; - - void - lookup (ScopedName const& name, Nameables& result) const; - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - TranslationRegion () - { - type_info (static_type_info ()); - } - - void - add_edge_right (Contains&) - { - } - }; - - - class TranslationUnit : public virtual Container, - public Graph<Node, Edge> - { - public: - TranslationUnit () - { - type_info (static_type_info ()); - } - - Nameables - lookup (ScopedName const& name) const; - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - void - add_edge_left (ContainsPrincipal& e) - { - Container::add_edge_left (e); - } - - void - add_edge_left (ContainsImplied& e) - { - Container::add_edge_left (e); - } - - private: - TranslationUnit (TranslationUnit const&); - void operator= (TranslationUnit const&); - }; - } - } -} - -#include "CCF/IDL2/SemanticGraph/Translation.ipp" - -#endif // CCF_IDL2_SEMANTIC_GRAPH_TRANSLATION_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Translation.ipp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Translation.ipp deleted file mode 100644 index 8168cd87762..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Translation.ipp +++ /dev/null @@ -1,73 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Translation.ipp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - // ContainsPrincipal - // - // - inline void ContainsPrincipal:: - set_left_node (TranslationUnit& n) - { - Contains::set_left_node (n); - } - - inline void ContainsPrincipal:: - set_right_node (TranslationRegion& n) - { - Contains::set_right_node (n); - } - - // ContainsImplied - // - // - inline void ContainsImplied:: - set_left_node (TranslationUnit& n) - { - Contains::set_left_node (n); - } - - inline void ContainsImplied:: - set_right_node (TranslationRegion& n) - { - Contains::set_right_node (n); - } - - // ContainsRoot - // - // - inline void ContainsRoot:: - set_left_node (TranslationRegion& n) - { - Contains::set_left_node (n); - } - - inline void ContainsRoot:: - set_right_node (Root& n) - { - Contains::set_right_node (n); - } - - - // Includes - // - // - inline void Includes:: - set_left_node (TranslationRegion& n) - { - Contains::set_left_node (n); - } - - inline void Includes:: - set_right_node (TranslationRegion& n) - { - Contains::set_right_node (n); - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/TypeId.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/TypeId.cpp deleted file mode 100644 index 7f7a1f69479..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/TypeId.cpp +++ /dev/null @@ -1,56 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/TypeId.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/TypeId.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - using Introspection::TypeInfo; - using Introspection::Access; - - // TypeId - // - // - namespace - { - TypeInfo - type_id_init_ () - { - TypeInfo ti (typeid (TypeId)); - ti.add_base (Access::PUBLIC, true, Nameable::static_type_info ()); - return ti; - } - - TypeInfo type_id_ (type_id_init_ ()); - } - - TypeInfo const& TypeId:: - static_type_info () { return type_id_; } - - - // TypePrefix - // - // - namespace - { - TypeInfo - type_prefix_init_ () - { - TypeInfo ti (typeid (TypePrefix)); - ti.add_base (Access::PUBLIC, true, Nameable::static_type_info ()); - return ti; - } - - TypeInfo type_prefix_ (type_prefix_init_ ()); - } - - TypeInfo const& TypePrefix:: - static_type_info () { return type_prefix_; } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/TypeId.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/TypeId.hpp deleted file mode 100644 index db02aae6edf..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/TypeId.hpp +++ /dev/null @@ -1,96 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/TypeId.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_TYPE_ID_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_TYPE_ID_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" -#include "CCF/IDL2/SemanticGraph/Literals.hpp" - - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - // - // - // - class TypeId : public virtual Nameable - { - public: - //@@ declaration is a bad name. - // - ScopedName - declaration () const - { - return name_; - } - - StringLiteral - id () const - { - return id_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - TypeId (ScopedName const& name, StringLiteral const& id) - : name_ (name), - id_ (id) - { - type_info (static_type_info ()); - } - - private: - ScopedName name_; - StringLiteral id_; - }; - - - // - // - // - class TypePrefix : public virtual Nameable - { - public: - ScopedName - declaration () const - { - return name_; - } - - StringLiteral - prefix () const - { - return prefix_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - TypePrefix (ScopedName const& name, StringLiteral const& prefix) - : name_ (name), - prefix_ (prefix) - { - type_info (static_type_info ()); - } - - private: - ScopedName name_; - StringLiteral prefix_; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_GRAPH_TYPE_ID_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Union.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Union.cpp deleted file mode 100644 index 28c673a94f3..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Union.cpp +++ /dev/null @@ -1,173 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Union.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/Union.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - using Introspection::TypeInfo; - using Introspection::Access; - - - // Selects - // - // - namespace - { - TypeInfo - selects_init_ () - { - TypeInfo ti (typeid (Selects)); - ti.add_base (Access::PUBLIC, true, Edge::static_type_info ()); - return ti; - } - - TypeInfo selects_ (selects_init_ ()); - } - - TypeInfo const& Selects:: - static_type_info () { return selects_; } - - - // UnionMember - // - // - namespace - { - TypeInfo - union_member_init_ () - { - TypeInfo ti (typeid (UnionMember)); - ti.add_base (Access::PUBLIC, true, Member::static_type_info ()); - return ti; - } - - TypeInfo union_member_ (union_member_init_ ()); - } - - TypeInfo const& UnionMember:: - static_type_info () { return union_member_; } - - - // Selector - // - // - namespace - { - TypeInfo - selector_init_ () - { - TypeInfo ti (typeid (Selector)); - ti.add_base (Access::PUBLIC, true, Node::static_type_info ()); - return ti; - } - - TypeInfo selector_ (selector_init_ ()); - } - - TypeInfo const& Selector:: - static_type_info () { return selector_; } - - - // DefaultSelector - // - // - namespace - { - TypeInfo - default_selector_init_ () - { - TypeInfo ti (typeid (DefaultSelector)); - ti.add_base (Access::PUBLIC, true, Selector::static_type_info ()); - return ti; - } - - TypeInfo default_selector_ (default_selector_init_ ()); - } - - TypeInfo const& DefaultSelector:: - static_type_info () { return default_selector_; } - - - // ValueSelector - // - // - namespace - { - TypeInfo - value_selector_init_ () - { - TypeInfo ti (typeid (ValueSelector)); - ti.add_base (Access::PUBLIC, true, Selector::static_type_info ()); - ti.add_base (Access::PUBLIC, true, Instance::static_type_info ()); - return ti; - } - - TypeInfo value_selector_ (value_selector_init_ ()); - } - - TypeInfo const& ValueSelector:: - static_type_info () { return value_selector_; } - - // Union - // - // - namespace - { - TypeInfo - union_init_ () - { - TypeInfo ti (typeid (Union)); - - ti.add_base ( - Access::PUBLIC, true, Specialization::static_type_info ()); - - ti.add_base (Access::PUBLIC, true, Scope::static_type_info ()); - return ti; - } - - TypeInfo union_ (union_init_ ()); - } - - TypeInfo const& Union:: - static_type_info () { return union_; } - - bool Union:: - complete () const - { - if (defined ()) - { - CompilerElements::Context& ctx ( - const_cast<CompilerElements::Context&> (context ())); - - if (ctx.count ("union-complete-test")) - return true; - - ctx.set ("union-complete-test", true); - bool c (true); - - for (Scope::NamesIterator i (names_begin ()); - c && i != names_end (); - ++i) - { - Member const& m (dynamic_cast<Member&> ((*i)->named ())); - Type const& t (m.belongs ().type ()); - - if (!t.complete ()) - c = false; - } - - ctx.remove ("union-complete-test"); - return c; - } - - return false; - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Union.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Union.hpp deleted file mode 100644 index 9cb70897a20..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Union.hpp +++ /dev/null @@ -1,151 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/Union.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_UNION_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_UNION_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" -#include "CCF/IDL2/SemanticGraph/Member.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - class Selector; - class UnionMember; - - class Selects : public virtual Edge - { - public: - Selector& - selector () const - { - return *selector_; - } - - UnionMember& - member () const - { - return *member_; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Selects () - { - type_info (static_type_info ()); - } - - void - set_left_node (Selector& n) - { - selector_ = &n; - } - - void - set_right_node (UnionMember& n) - { - member_ = &n; - } - - private: - Selector* selector_; - UnionMember* member_; - }; - - class UnionMember : public virtual Member - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - UnionMember () - { - type_info (static_type_info ()); - } - }; - - class Selector : public virtual Node - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Selector () - { - type_info (static_type_info ()); - } - }; - - class DefaultSelector : public virtual Selector - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - DefaultSelector () - { - type_info (static_type_info ()); - } - }; - - class ValueSelector : public virtual Selector, - public virtual Instance - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - ValueSelector () - { - type_info (static_type_info ()); - } - }; - - class Union : public virtual Specialization, - public virtual Scope - { - public: - virtual bool - complete () const; - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - Union () - { - type_info (static_type_info ()); - } - - using Specialization::add_edge_left; - using Specialization::add_edge_right; - using Scope::add_edge_left; - using Scope::add_edge_right; - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_GRAPH_UNION_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/ValueType.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/ValueType.cpp deleted file mode 100644 index ace6d65eac9..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/ValueType.cpp +++ /dev/null @@ -1,98 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/ValueType.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/ValueType.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - using Introspection::TypeInfo; - using Introspection::Access; - - // ValueType - // - // - namespace - { - TypeInfo - value_type_init_ () - { - TypeInfo ti (typeid (ValueType)); - ti.add_base (Access::PUBLIC, true, Type::static_type_info ()); - ti.add_base (Access::PUBLIC, true, Scope::static_type_info ()); - return ti; - } - - TypeInfo value_type_ (value_type_init_ ()); - } - - TypeInfo const& ValueType:: - static_type_info () { return value_type_; } - - - // AbstractValueType - // - // - namespace - { - TypeInfo - abstract_value_type_init_ () - { - TypeInfo ti (typeid (AbstractValueType)); - ti.add_base (Access::PUBLIC, true, ValueType::static_type_info ()); - return ti; - } - - TypeInfo abstract_value_type_ (abstract_value_type_init_ ()); - } - - TypeInfo const& AbstractValueType:: - static_type_info () { return abstract_value_type_; } - - - // ConcreteValueType - // - // - namespace - { - TypeInfo - concrete_value_type_init_ () - { - TypeInfo ti (typeid (ConcreteValueType)); - ti.add_base (Access::PUBLIC, true, ValueType::static_type_info ()); - return ti; - } - - TypeInfo concrete_value_type_ (concrete_value_type_init_ ()); - } - - TypeInfo const& ConcreteValueType:: - static_type_info () { return concrete_value_type_; } - - - // ValueTypeFactory - // - // - namespace - { - TypeInfo - value_type_factory_init_ () - { - TypeInfo ti (typeid (ValueTypeFactory)); - ti.add_base ( - Access::PUBLIC, true, TwoWayOperation::static_type_info ()); - return ti; - } - - TypeInfo value_type_factory_ (value_type_factory_init_ ()); - } - - TypeInfo const& ValueTypeFactory:: - static_type_info () { return value_type_factory_; } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/ValueType.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/ValueType.hpp deleted file mode 100644 index bdcb4afe023..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/ValueType.hpp +++ /dev/null @@ -1,168 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/ValueType.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_VALUE_TYPE_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_VALUE_TYPE_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" -#include "CCF/IDL2/SemanticGraph/Operation.hpp" -#include "CCF/IDL2/SemanticGraph/Interface.hpp" // Supports - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - // - // - // - class ValueType : public virtual Type, - public virtual Scope - { - typedef - std::vector <Inherits*> - Inherits_; - - typedef - std::vector <Supports*> - Supports_; - - public: - typedef - Inherits_::const_iterator - InheritsIterator; - - InheritsIterator - inherits_begin () const - { - return inherits_.begin (); - } - - InheritsIterator - inherits_end () const - { - return inherits_.end (); - } - - typedef - Supports_::const_iterator - SupportsIterator; - - SupportsIterator - supports_begin () const - { - return supports_.begin (); - } - - SupportsIterator - supports_end () const - { - return supports_.end (); - } - - public: - virtual bool - complete () const - { - return true; - } - - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - ValueType () - { - type_info (static_type_info ()); - } - - using Type::add_edge_right; - using Scope::add_edge_left; - - void - add_edge_left (Inherits& e) - { - inherits_.push_back (&e); - } - - void - add_edge_right (Inherits&) - { - } - - void - add_edge_left (Supports& e) - { - supports_.push_back (&e); - } - - private: - Inherits_ inherits_; - Supports_ supports_; - }; - - - // - // - // - class AbstractValueType : public virtual ValueType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - AbstractValueType () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class ConcreteValueType : public virtual ValueType - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - ConcreteValueType () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class ValueTypeFactory : public virtual TwoWayOperation - { - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - ValueTypeFactory () - { - type_info (static_type_info ()); - } - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_GRAPH_VALUE_TYPE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/ValueTypeMember.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/ValueTypeMember.cpp deleted file mode 100644 index 744ecb93526..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/ValueTypeMember.cpp +++ /dev/null @@ -1,85 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/ValueTypeMember.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/SemanticGraph/ValueTypeMember.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - using Introspection::TypeInfo; - using Introspection::Access; - - - // ValueTypeMember - // - // - namespace - { - TypeInfo - value_type_member_init_ () - { - TypeInfo ti (typeid (ValueTypeMember)); - ti.add_base (Access::PUBLIC, true, Nameable::static_type_info ()); - ti.add_base (Access::PUBLIC, true, Instance::static_type_info ()); - return ti; - } - - TypeInfo - value_type_member_ (value_type_member_init_ ()); - } - - TypeInfo const& ValueTypeMember:: - static_type_info () { return value_type_member_; } - - - // ValueTypePrivateMember - // - // - namespace - { - TypeInfo - value_type_private_member_init_ () - { - TypeInfo ti (typeid (ValueTypePrivateMember)); - ti.add_base (Access::PUBLIC, - true, - ValueTypeMember::static_type_info ()); - return ti; - } - - TypeInfo - value_type_private_member_ (value_type_private_member_init_ ()); - } - - TypeInfo const& ValueTypePrivateMember:: - static_type_info () { return value_type_private_member_; } - - - // ValueTypePublicMember - // - // - namespace - { - TypeInfo - value_type_public_member_init_ () - { - TypeInfo ti (typeid (ValueTypePublicMember)); - ti.add_base (Access::PUBLIC, - true, - ValueTypeMember::static_type_info ()); - return ti; - } - - TypeInfo - value_type_public_member_ (value_type_public_member_init_ ()); - } - - TypeInfo const& ValueTypePublicMember:: - static_type_info () { return value_type_public_member_; } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/ValueTypeMember.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/ValueTypeMember.hpp deleted file mode 100644 index ea4e08cb42a..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/ValueTypeMember.hpp +++ /dev/null @@ -1,102 +0,0 @@ -// file : CCF/IDL2/SemanticGraph/ValueTypeMember.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_SEMANTIC_GRAPH_VALUE_TYPE_MEMBER_HPP -#define CCF_IDL2_SEMANTIC_GRAPH_VALUE_TYPE_MEMBER_HPP - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace SemanticGraph - { - - // - // - // - class ValueTypeMember : public virtual Nameable, - public virtual Instance - { - public: - struct Access - { - enum Value - { - public_, - private_ - }; - }; - - virtual Access::Value - access () const = 0; - - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - ValueTypeMember () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class ValueTypePrivateMember : public virtual ValueTypeMember - { - public: - virtual Access::Value - access () const - { - return Access::private_; - } - - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - ValueTypePrivateMember () - { - type_info (static_type_info ()); - } - }; - - - // - // - // - class ValueTypePublicMember : public virtual ValueTypeMember - { - public: - virtual Access::Value - access () const - { - return Access::public_; - } - - public: - static Introspection::TypeInfo const& - static_type_info (); - - protected: - friend class Graph<Node, Edge>; - - ValueTypePublicMember () - { - type_info (static_type_info ()); - } - }; - } - } -} - -#endif // CCF_IDL2_SEMANTIC_GRAPH_VALUE_TYPE_MEMBER_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Token.cpp b/TAO/CIAO/CCF/CCF/IDL2/Token.cpp deleted file mode 100644 index a251329a2d8..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Token.cpp +++ /dev/null @@ -1,13 +0,0 @@ -// file : CCF/IDL2/Token.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/Token.hpp" - -namespace CCF -{ - namespace IDL2 - { - } -} - diff --git a/TAO/CIAO/CCF/CCF/IDL2/Token.hpp b/TAO/CIAO/CCF/CCF/IDL2/Token.hpp deleted file mode 100644 index 4c1749e15f2..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Token.hpp +++ /dev/null @@ -1,348 +0,0 @@ -// file : CCF/IDL2/Token.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TOKEN_HPP -#define CCF_IDL2_TOKEN_HPP - -#include <vector> -#include <string> -#include <ostream> - -#include "CCF/CompilerElements/ReferenceCounting.hpp" - -namespace CCF -{ - namespace IDL2 - { - // - // - // - class Token : public ReferenceCounting::DefaultImpl <> - { - protected: - Token (std::string lexeme, unsigned long line) - : lexeme_ (lexeme), - line_ (line) - { - } - - public: - virtual - ~Token () throw () {} - - virtual void - print (std::ostream& o) - { - o << lexeme (); - } - - public: - std::string - lexeme () const - { - return lexeme_; - } - - unsigned long - line () const - { - return line_; - } - - private: - std::string lexeme_; - unsigned long line_; - }; - - typedef - ReferenceCounting::StrictPtr<Token> - TokenPtr; - - typedef - std::vector<TokenPtr> - TokenList; - - inline std::ostream& - operator<< (std::ostream& o, TokenPtr const& t) - { - if (t != 0) t->print (o); - return o; - } - - // - // - // - class EndOfStream : public Token - { - public: - EndOfStream (unsigned long line) - : Token ("<end-of-stream>", line) - { - } - }; - - typedef - ReferenceCounting::StrictPtr<EndOfStream> - EndOfStreamPtr; - - // - // - // - class Keyword : public Token - { - public: - Keyword (std::string lexeme, unsigned long line) - : Token (lexeme, line) - { - } - }; - - typedef - ReferenceCounting::StrictPtr<Keyword> - KeywordPtr; - - // - // - // - class Punctuation : public Token - { - public: - Punctuation (std::string lexeme, unsigned long line) - : Token (lexeme, line) - { - } - - virtual - ~Punctuation () throw () {} - }; - - typedef - ReferenceCounting::StrictPtr<Punctuation> - PunctuationPtr; - - - // - // - // - class Operator : public Token - { - public: - Operator (std::string lexeme, unsigned long line) - : Token (lexeme, line) - { - } - - virtual - ~Operator () throw () {} - }; - - typedef - ReferenceCounting::StrictPtr<Operator> - OperatorPtr; - - - // - // - // - class Identifier : public Token - { - public: - Identifier (std::string lexeme, unsigned long line) - : Token (lexeme, line) - { - } - }; - - typedef - ReferenceCounting::StrictPtr<Identifier> - IdentifierPtr; - - - // - // - // - class SimpleIdentifier : public Identifier - { - public: - SimpleIdentifier (std::string lexeme, unsigned long line) - : Identifier (lexeme, line) - { - } - }; - - typedef - ReferenceCounting::StrictPtr<SimpleIdentifier> - SimpleIdentifierPtr; - - - // - // - // - class ScopedIdentifier : public Identifier - { - public: - ScopedIdentifier (std::string lexeme, unsigned long line) - : Identifier (lexeme, line) - { - } - }; - - typedef - ReferenceCounting::StrictPtr<ScopedIdentifier> - ScopedIdentifierPtr; - - - // - // - // - class Literal : public Token - { - public: - Literal (std::string lexeme, unsigned long line) - : Token (lexeme, line) - { - } - }; - - typedef - ReferenceCounting::StrictPtr<Literal> - LiteralPtr; - - - // - // - // - class BooleanLiteral : public Literal - { - public: - BooleanLiteral (std::string lexeme, unsigned long line) - : Literal (lexeme, line) - { - } - - bool - value () const - { - return lexeme () == "TRUE"; - } - - virtual void - print (std::ostream& o) - { - o << lexeme (); - } - }; - - typedef - ReferenceCounting::StrictPtr<BooleanLiteral> - BooleanLiteralPtr; - - - // - // - // - class CharacterLiteral : public Literal - { - public: - CharacterLiteral (char c, std::string lexeme, unsigned long line) - : Literal (lexeme, line), c_ (c) - { - } - - char - value () const - { - return c_; - } - - virtual void - print (std::ostream& o) - { - //@@ todo - o << lexeme (); - } - - private: - char c_; - }; - - typedef - ReferenceCounting::StrictPtr<CharacterLiteral> - CharacterLiteralPtr; - - - // - // - // - class IntegerLiteral : public Literal - { - public: - IntegerLiteral (unsigned long long value, - std::string lexeme, - unsigned long line) - : Literal (lexeme, line), value_ (value) - { - } - - unsigned long long - value () const - { - return value_; - } - - virtual void - print (std::ostream& o) - { - o << lexeme (); - } - - private: - unsigned long long value_; - }; - - typedef - ReferenceCounting::StrictPtr<IntegerLiteral> - IntegerLiteralPtr; - - - // - // - // - class StringLiteral : public Literal - { - public: - virtual - ~StringLiteral () throw () {} - - StringLiteral (std::string const& value, - std::string const& lexeme, - unsigned long line) - : Literal (lexeme, line), value_ (value) - { - } - - std::string - value () const - { - return value_; - } - - virtual void - print (std::ostream& o) - { - //@@ todo - o << lexeme (); - } - - private: - std::string value_; - }; - - typedef - ReferenceCounting::StrictPtr<StringLiteral> - StringLiteralPtr; - } -} - -#endif // CCF_IDL2_TOKEN_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal.hpp deleted file mode 100644 index 2c56e2b3f2b..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// file : CCF/IDL2/Traversal.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TRAVERSAL_HPP -#define CCF_IDL2_TRAVERSAL_HPP - -#include "CCF/IDL2/Traversal/Elements.hpp" - -#include "CCF/IDL2/Traversal/Array.hpp" -#include "CCF/IDL2/Traversal/Attribute.hpp" -#include "CCF/IDL2/Traversal/Enum.hpp" -#include "CCF/IDL2/Traversal/Exception.hpp" -#include "CCF/IDL2/Traversal/Fundamental.hpp" -#include "CCF/IDL2/Traversal/IntExpression.hpp" -#include "CCF/IDL2/Traversal/Interface.hpp" -#include "CCF/IDL2/Traversal/Member.hpp" -#include "CCF/IDL2/Traversal/Module.hpp" -#include "CCF/IDL2/Traversal/Native.hpp" -#include "CCF/IDL2/Traversal/Operation.hpp" -#include "CCF/IDL2/Traversal/Struct.hpp" -#include "CCF/IDL2/Traversal/Sequence.hpp" -#include "CCF/IDL2/Traversal/String.hpp" -#include "CCF/IDL2/Traversal/Struct.hpp" -#include "CCF/IDL2/Traversal/Translation.hpp" -#include "CCF/IDL2/Traversal/TypeId.hpp" -#include "CCF/IDL2/Traversal/Union.hpp" -#include "CCF/IDL2/Traversal/ValueType.hpp" -#include "CCF/IDL2/Traversal/ValueTypeMember.hpp" - -#endif // CCF_IDL2_TRAVERSAL_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Array.cpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Array.cpp deleted file mode 100644 index e142383535f..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Array.cpp +++ /dev/null @@ -1,78 +0,0 @@ -// file : CCF/IDL2/Traversal/Array.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/Traversal/Array.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - void Array:: - traverse (Type& a) - { - pre (a); - arguments_with_type (a); - arguments_with_value (a); - name (a); - post (a); - } - - void Array:: - pre (Type&) - { - } - - void Array:: - arguments_with_type (Type& a, EdgeDispatcherBase& d) - { - d.traverse (**a.arguments_begin ()); - } - - void Array:: - arguments_with_type (Type& a) - { - arguments_with_type (a, edge_traverser ()); - } - - void Array:: - arguments_with_value (Type& a, EdgeDispatcherBase& d) - { - Type::ArgumentsIterator - b (a.arguments_begin ()), e (a.arguments_end ()); - - ++b; // Bounds start afterthe type. - - iterate_and_traverse (b, - e, - d, - *this, - &Array::comma, - a); - } - - void Array:: - arguments_with_value (Type& a) - { - arguments_with_value (a, edge_traverser ()); - } - - void Array:: - comma (Type&) - { - } - - void Array:: - name (Type&) - { - } - - void Array:: - post (Type&) - { - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Array.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Array.hpp deleted file mode 100644 index fb608c6df9a..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Array.hpp +++ /dev/null @@ -1,51 +0,0 @@ -// file : CCF/IDL2/Traversal/Array.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TRAVERSAL_ARRAY_HPP -#define CCF_IDL2_TRAVERSAL_ARRAY_HPP - -#include "CCF/IDL2/Traversal/Elements.hpp" - -#include "CCF/IDL2/SemanticGraph/Array.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - struct Array : Node<SemanticGraph::Array> - { - virtual void - traverse (Type&); - - virtual void - pre (Type&); - - virtual void - arguments_with_type (Type&, EdgeDispatcherBase&); - - virtual void - arguments_with_type (Type&); - - virtual void - arguments_with_value (Type&, EdgeDispatcherBase&); - - virtual void - arguments_with_value (Type&); - - virtual void - comma (Type&); - - virtual void - name (Type&); - - virtual void - post (Type&); - }; - } - } -} - -#endif // CCF_IDL2_TRAVERSAL_ARRAY_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Attribute.cpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Attribute.cpp deleted file mode 100644 index 42ff8bd21bf..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Attribute.cpp +++ /dev/null @@ -1,280 +0,0 @@ -// file : CCF/IDL2/Traversal/Attribute.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/Traversal/Attribute.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - // Attribute - // - // - void Attribute:: - traverse (Type& a) - { - pre (a); - belongs (a); - name (a); - post (a); - } - - void Attribute:: - pre (Type&) - { - } - - void Attribute:: - belongs (Type& a, EdgeDispatcherBase& d) - { - d.traverse (a.belongs ()); - } - - void Attribute:: - belongs (Type& a) - { - belongs (a, edge_traverser ()); - } - - void Attribute:: - name (Type&) - { - } - - void Attribute:: - post (Type&) - { - } - - // ReadAttribute - // - // - void ReadAttribute:: - traverse (Type& a) - { - pre (a); - belongs (a); - name (a); - get_raises (a); - post (a); - } - - void ReadAttribute:: - pre (Type&) - { - } - - void ReadAttribute:: - belongs (Type& a, EdgeDispatcherBase& d) - { - d.traverse (a.belongs ()); - } - - void ReadAttribute:: - belongs (Type& a) - { - belongs (a, edge_traverser ()); - } - - void ReadAttribute:: - name (Type&) - { - } - - void ReadAttribute:: - get_raises (Type& a, EdgeDispatcherBase& d) - { - iterate_and_traverse (a.get_raises_begin (), a.get_raises_end (), d); - } - - void ReadAttribute:: - get_raises (Type& a) - { - Type::GetRaisesIterator - b (a.get_raises_begin ()), - e (a.get_raises_end ()); - - if (b != e) - { - get_raises_pre (a); - iterate_and_traverse (b, - e, - edge_traverser (), - *this, - &ReadAttribute::comma, - a); - get_raises_post (a); - } - else - { - get_raises_none (a); - } - } - - void ReadAttribute:: - get_raises_pre (Type&) - { - } - - void ReadAttribute:: - get_raises_post (Type&) - { - } - - void ReadAttribute:: - get_raises_none (Type&) - { - } - - void ReadAttribute:: - post (Type&) - { - } - - void ReadAttribute:: - comma (Type&) - { - } - - - // ReadWriteAttribute - // - // - void ReadWriteAttribute:: - traverse (Type& a) - { - pre (a); - belongs (a); - name (a); - get_raises (a); - set_raises (a); - post (a); - } - - void ReadWriteAttribute:: - pre (Type&) - { - } - - void ReadWriteAttribute:: - belongs (Type& a, EdgeDispatcherBase& d) - { - d.traverse (a.belongs ()); - } - - void ReadWriteAttribute:: - belongs (Type& a) - { - belongs (a, edge_traverser ()); - } - - void ReadWriteAttribute:: - name (Type&) - { - } - - void ReadWriteAttribute:: - get_raises (Type& a, EdgeDispatcherBase& d) - { - iterate_and_traverse (a.get_raises_begin (), a.get_raises_end (), d); - } - - void ReadWriteAttribute:: - get_raises (Type& a) - { - Type::GetRaisesIterator - b (a.get_raises_begin ()), - e (a.get_raises_end ()); - - if (b != e) - { - get_raises_pre (a); - iterate_and_traverse (b, - e, - edge_traverser (), - *this, - &ReadWriteAttribute::comma, - a); - get_raises_post (a); - } - else - { - get_raises_none (a); - } - } - - void ReadWriteAttribute:: - get_raises_pre (Type&) - { - } - - void ReadWriteAttribute:: - get_raises_post (Type&) - { - } - - void ReadWriteAttribute:: - get_raises_none (Type&) - { - } - - void ReadWriteAttribute:: - set_raises (Type& a, EdgeDispatcherBase& d) - { - iterate_and_traverse (a.set_raises_begin (), a.set_raises_end (), d); - } - - void ReadWriteAttribute:: - set_raises (Type& a) - { - Type::SetRaisesIterator - b (a.set_raises_begin ()), - e (a.set_raises_end ()); - - if (b != e) - { - set_raises_pre (a); - iterate_and_traverse (b, - e, - edge_traverser (), - *this, - &ReadWriteAttribute::comma, - a); - set_raises_post (a); - } - else - { - set_raises_none (a); - } - } - - void ReadWriteAttribute:: - set_raises_pre (Type&) - { - } - - void ReadWriteAttribute:: - set_raises_post (Type&) - { - } - - void ReadWriteAttribute:: - set_raises_none (Type&) - { - } - - void ReadWriteAttribute:: - post (Type&) - { - } - - void ReadWriteAttribute:: - comma (Type&) - { - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Attribute.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Attribute.hpp deleted file mode 100644 index 522671b6609..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Attribute.hpp +++ /dev/null @@ -1,170 +0,0 @@ -// file : CCF/IDL2/Traversal/Attribute.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TRAVERSAL_ATTRIBUTE_HPP -#define CCF_IDL2_TRAVERSAL_ATTRIBUTE_HPP - -#include "CCF/IDL2/SemanticGraph/Attribute.hpp" -#include "CCF/IDL2/Traversal/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - // - // - // - struct GetRaises : Edge<SemanticGraph::GetRaises> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.exception ()); - } - }; - - - // - // - // - struct SetRaises : Edge<SemanticGraph::SetRaises> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.exception ()); - } - }; - - - // - // - // - struct Attribute : Node<SemanticGraph::Attribute> - { - virtual void - traverse (Type&); - - virtual void - pre (Type&); - - virtual void - belongs (Type&, EdgeDispatcherBase&); - - virtual void - belongs (Type&); - - virtual void - name (Type&); - - virtual void - post (Type&); - }; - - // - // - // - struct ReadAttribute : Node<SemanticGraph::ReadAttribute> - { - virtual void - traverse (Type&); - - virtual void - pre (Type&); - - virtual void - belongs (Type&, EdgeDispatcherBase&); - - virtual void - belongs (Type&); - - virtual void - name (Type&); - - virtual void - get_raises (Type&, EdgeDispatcherBase&); - - virtual void - get_raises (Type&); - - virtual void - get_raises_pre (Type&); - - virtual void - get_raises_post (Type&); - - virtual void - get_raises_none (Type&); - - virtual void - post (Type&); - - virtual void - comma (Type&); - }; - - - // - // - // - struct ReadWriteAttribute : Node<SemanticGraph::ReadWriteAttribute> - { - virtual void - traverse (Type&); - - virtual void - pre (Type&); - - virtual void - belongs (Type&, EdgeDispatcherBase&); - - virtual void - belongs (Type&); - - virtual void - name (Type&); - - virtual void - get_raises (Type&, EdgeDispatcherBase&); - - virtual void - get_raises (Type&); - - virtual void - get_raises_pre (Type&); - - virtual void - get_raises_post (Type&); - - virtual void - get_raises_none (Type&); - - virtual void - set_raises (Type&, EdgeDispatcherBase&); - - virtual void - set_raises (Type&); - - virtual void - set_raises_pre (Type&); - - virtual void - set_raises_post (Type&); - - virtual void - set_raises_none (Type&); - - virtual void - post (Type&); - - virtual void - comma (Type&); - }; - } - } -} - -#endif // CCF_IDL2_TRAVERSAL_ATTRIBUTE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Elements.cpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Elements.cpp deleted file mode 100644 index c7a24089a42..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Elements.cpp +++ /dev/null @@ -1,16 +0,0 @@ -// file : CCF/IDL2/Traversal/Elements.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/Traversal/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Elements.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Elements.hpp deleted file mode 100644 index 03793aafeef..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Elements.hpp +++ /dev/null @@ -1,471 +0,0 @@ -// file : CCF/IDL2/Traversal/Elements.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TRAVERSAL_ELEMENTS_HPP -#define CCF_IDL2_TRAVERSAL_ELEMENTS_HPP - -#include <map> -#include <set> - -#include "CCF/CompilerElements/Introspection.hpp" - -#include "CCF/IDL2/SemanticGraph/Elements.hpp" - -/* -#include <iostream> - -using std::cerr; -using std::endl; -*/ - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - // - // - // - template<typename T> - class Traverser - { - protected: - virtual - ~Traverser (); - - virtual void - trampoline (T& n) = 0; - - template <typename> - friend class Dispatcher; - }; - - - // - // - // - template <typename T> - class Dispatcher - { - public: - virtual - ~Dispatcher (); - - virtual void - traverse (T& n); - - void - map (Introspection::TypeId id, Traverser<T>& t) - { - Traversers& traversers (traversal_map_[id]); - traversers.push_back (&t); - } - - public: - typedef - std::vector<Traverser<T>*> - Traversers; - - typedef - std::map<Introspection::TypeId, Traversers> - TraversalMap; - - typedef - typename TraversalMap::const_iterator - Iterator; - - Iterator - begin () const - { - return traversal_map_.begin (); - } - - Iterator - end () const - { - return traversal_map_.end (); - } - - private: - struct TypeInfoComparator - { - bool - operator () (Introspection::TypeInfo const& x, - Introspection::TypeInfo const& y) const - { - return x.type_id () < y.type_id (); - } - }; - - typedef - std::map<Introspection::TypeInfo, unsigned long, TypeInfoComparator> - LevelMap; - - typedef - std::set<Introspection::TypeInfo, TypeInfoComparator> - TypeInfoSet; - - static unsigned long - compute_levels (Introspection::TypeInfo const& ti, - unsigned long cur, - LevelMap& map); - - static void - flatten_tree (Introspection::TypeInfo const& ti, TypeInfoSet& set); - - private: - TraversalMap traversal_map_; - }; - - - // - // - // - typedef - Dispatcher<SemanticGraph::Node> - NodeDispatcherBase; - - typedef - Dispatcher<SemanticGraph::Edge> - EdgeDispatcherBase; - - - // - // - // - class NodeDispatcher : public virtual NodeDispatcherBase - { - public: - void - edge_traverser (EdgeDispatcherBase& d) - { - //@@ this should be done in Dispatcher in merge() function? - // - for (EdgeDispatcherBase::Iterator i (d.begin ()), end (d.end ()); - i != end; ++i) - { - for (EdgeDispatcherBase::Traversers::const_iterator - t (i->second.begin ()), end (i->second.end ()); - t != end; ++t) - { - dispatcher_.map (i->first, **t); - } - } - } - - protected: - template <typename I> - void - iterate_and_traverse (I begin, I end, EdgeDispatcherBase& d) - { - for (; begin != end; ++begin) - { - d.traverse (**begin); - } - } - - template <typename I, typename X, typename A> - void - iterate_and_traverse (I begin, - I end, - EdgeDispatcherBase& d, - X& x, - void (X::*f)(A&), - A& a) - { - for (I i (begin); i != end;) - { - d.traverse (**i); - - if (++i != end) (x.*f) (a); - } - } - - EdgeDispatcherBase& - edge_traverser () - { - return dispatcher_; - } - - protected: - EdgeDispatcherBase dispatcher_; - }; - - - class EdgeDispatcher : public virtual EdgeDispatcherBase - { - public: - //@@ this should be done in Dispatcher in merge() function? - // - void - node_traverser (NodeDispatcherBase& d) - { - for (NodeDispatcherBase::Iterator i (d.begin ()), end (d.end ()); - i != end; ++i) - { - for (NodeDispatcherBase::Traversers::const_iterator - t (i->second.begin ()), end (i->second.end ()); - t != end; ++t) - { - dispatcher_.map (i->first, **t); - } - } - } - - protected: - NodeDispatcherBase& - node_traverser () - { - return dispatcher_; - } - - protected: - NodeDispatcherBase dispatcher_; - }; - - - // - // - // - template <typename T> - struct Node : Traverser<SemanticGraph::Node>, virtual NodeDispatcher - { - typedef - T - Type; - - Node () - { - map (typeid (Type), *this); - } - - virtual void - trampoline (SemanticGraph::Node& n) - { - //cerr << "trampoline for " << &n << " to type " - // << typeid (Type).name () << endl; - - traverse (dynamic_cast<Type&> (n)); - } - - virtual void - traverse (Type&) = 0; - }; - - - template <typename T> - struct Edge : Traverser <SemanticGraph::Edge>, virtual EdgeDispatcher - { - typedef - T - Type; - - Edge () - { - map (typeid (Type), *this); - } - - virtual void - trampoline (SemanticGraph::Edge& e) - { - traverse (dynamic_cast<Type&> (e)); - } - - - virtual void - traverse (Type& e) = 0; - }; - - // Edges - // - // - struct Names : Edge<SemanticGraph::Names> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.named ()); - } - }; - - - struct Defines : Edge<SemanticGraph::Defines> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.named ()); - } - }; - - - struct Mentions : Edge<SemanticGraph::Mentions> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.named ()); - } - }; - - - - struct Aliases : Edge<SemanticGraph::Aliases> - { - virtual void - traverse (Type& a) - { - pre (a); - type (a); - name (a); - post (a); - } - - virtual void - pre (Type&) - { - } - - virtual void - type (Type& e) - { - node_traverser ().traverse (e.named ()); - } - - virtual void - name (Type&) - { - } - - virtual void - post (Type&) - { - } - }; - - - struct Belongs : Edge<SemanticGraph::Belongs> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.type ()); - } - }; - - - struct Arguments : Edge<SemanticGraph::Arguments> - { - virtual void - traverse (Type& a) - { - node_traverser ().traverse (a.argument ()); - } - }; - - struct ArgumentsWithType : Edge<SemanticGraph::ArgumentsWithType> - { - virtual void - traverse (Type& a) - { - node_traverser ().traverse (a.type ()); - } - }; - - struct ArgumentsWithValue : Edge<SemanticGraph::ArgumentsWithValue> - { - virtual void - traverse (Type& a) - { - node_traverser ().traverse (a.value ()); - } - }; - - struct Inherits : Edge<SemanticGraph::Inherits> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.inheritee ()); - } - }; - - - struct Contains : Edge<SemanticGraph::Contains> - { - }; - - - // Nodes - // - // - struct Nameable : Node<SemanticGraph::Nameable> - { - }; - - - template <typename T> - struct ScopeTemplate : Node<T> - { - public: - /* GCC#13590/DR#39 - using Node<T>::edge_traverser; - */ - - virtual void - traverse (T& s) - { - names (s); - } - - virtual void - names (T& s) - { - names_pre (s); - names (s, this->edge_traverser ()); - names_post (s); - } - - virtual void - names (T& s, EdgeDispatcherBase& d) - { - iterate_and_traverse (s.names_begin (), s.names_end (), d); - } - - virtual void - names_pre (T&) - { - } - - virtual void - names_post (T&) - { - } - }; - - - // - // - // - typedef - ScopeTemplate<SemanticGraph::Scope> - Scope; - - - // - // - // - struct Type : Node<SemanticGraph::Type> - { - virtual void - traverse (SemanticGraph::Type&) = 0; - }; - } - } -} - -#include "CCF/IDL2/Traversal/Elements.tpp" - -#endif // CCF_IDL2_TRAVERSAL_ELEMENTS_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Elements.tpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Elements.tpp deleted file mode 100644 index 60cace27f69..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Elements.tpp +++ /dev/null @@ -1,128 +0,0 @@ -// file : CCF/IDL2/Traversal/Elements.tpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include <iostream> - -using std::cerr; -using std::endl; - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - // Traverser - // - // - - template<typename T> - Traverser<T>:: - ~Traverser () - { - } - - // Dispatcher - // - // - - template <typename T> - Dispatcher<T>:: - ~Dispatcher () - { - } - - template <typename T> - void Dispatcher<T>:: - traverse (T& n) - { - LevelMap levels; - - unsigned long max = compute_levels (n.type_info (), 0, levels); - - - //cerr << "starting dispatch process for " - // << n.type_info ().type_id () << " with " - // << max << " levels" << endl; - - for (unsigned long l = 0; l < max + 1; ++l) - { - TypeInfoSet dispatched; - - for (typename LevelMap::const_iterator - i (levels.begin ()), e (levels.end ()); - i != e; ++i) - { - if (i->second == l) - { - typename TraversalMap::const_iterator v ( - traversal_map_.find (i->first.type_id ())); - - if (v != traversal_map_.end ()) - { - //cerr << "dispatching traversers for " - // << n.type_info ().type_id () << " as " - // << i->first.type_id () << endl; - - Traversers const& traversers (v->second); - for (typename Traversers::const_iterator - ti (traversers.begin ()), te (traversers.end ()); - ti != te; ++ti) - { - (*ti)->trampoline (n); - } - - flatten_tree (i->first, dispatched); - } - } - } - - // Remove traversed types from level map. - // - for (typename TypeInfoSet::const_iterator i = dispatched.begin (); - i != dispatched.end (); - ++i) - { - levels.erase (*i); - } - } - } - - template <typename T> - unsigned long Dispatcher<T>:: - compute_levels (Introspection::TypeInfo const& ti, - unsigned long cur, - LevelMap& map) - { - unsigned long ret = cur; - - if (map.find (ti) == map.end () || map[ti] < cur) map[ti] = cur; - - for (Introspection::TypeInfo::BaseIterator i = ti.begin_base (); - i != ti.end_base (); - i++) - { - unsigned long t = compute_levels (i->type_info (), cur + 1, map); - if (t > ret) ret = t; - } - - return ret; - } - - template <typename T> - void Dispatcher<T>:: - flatten_tree (Introspection::TypeInfo const& ti, TypeInfoSet& set) - { - set.insert (ti); - - for (Introspection::TypeInfo::BaseIterator i = ti.begin_base (); - i != ti.end_base (); - i++) - { - flatten_tree (i->type_info (), set); - } - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Enum.cpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Enum.cpp deleted file mode 100644 index 35df538f85b..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Enum.cpp +++ /dev/null @@ -1,16 +0,0 @@ -// file : CCF/IDL2/Traversal/Enum.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/Traversal/Enum.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - } - } -} - diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Enum.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Enum.hpp deleted file mode 100644 index d789f30b1b0..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Enum.hpp +++ /dev/null @@ -1,30 +0,0 @@ -// file : CCF/IDL2/Traversal/Enum.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TRAVERSAL_ENUM_HPP -#define CCF_IDL2_TRAVERSAL_ENUM_HPP - -#include "CCF/IDL2/SemanticGraph/Enum.hpp" -#include "CCF/IDL2/Traversal/Elements.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - // Minimal support for now. Talk to me if you need more. - // - struct Enum : Node<SemanticGraph::Enum> - { - }; - - struct Enumerator : Node<SemanticGraph::Enumerator> - { - }; - } - } -} - -#endif // CCF_IDL2_TRAVERSAL_ENUM_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Exception.cpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Exception.cpp deleted file mode 100644 index 21e41784c71..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Exception.cpp +++ /dev/null @@ -1,38 +0,0 @@ -// file : CCF/IDL2/Traversal/Exception.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/Traversal/Exception.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - void Exception:: - traverse (Type& s) - { - pre (s); - name (s); - names (s); - post (s); - } - - void Exception:: - pre (Type&) - { - } - - void Exception:: - name (Type&) - { - } - - void Exception:: - post (Type&) - { - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Exception.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Exception.hpp deleted file mode 100644 index 23eda73f1a7..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Exception.hpp +++ /dev/null @@ -1,36 +0,0 @@ -// file : CCF/IDL2/Traversal/Exception.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TRAVERSAL_EXCEPTION_HPP -#define CCF_IDL2_TRAVERSAL_EXCEPTION_HPP - -#include "CCF/IDL2/Traversal/Elements.hpp" - -#include "CCF/IDL2/SemanticGraph/Exception.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - struct Exception : ScopeTemplate<SemanticGraph::Exception> - { - virtual void - traverse (Type&); - - virtual void - pre (Type&); - - virtual void - name (Type&); - - virtual void - post (Type&); - }; - } - } -} - -#endif // CCF_IDL2_TRAVERSAL_EXCEPTION_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Fundamental.cpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Fundamental.cpp deleted file mode 100644 index 4dd6760cebe..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Fundamental.cpp +++ /dev/null @@ -1,16 +0,0 @@ -// file : CCF/IDL2/Traversal/Fundamental.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/Traversal/Fundamental.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - } - } -} - diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Fundamental.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Fundamental.hpp deleted file mode 100644 index c4e10d18057..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Fundamental.hpp +++ /dev/null @@ -1,101 +0,0 @@ -// file : CCF/IDL2/Traversal/Fundamental.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TRAVERSAL_FUNDAMENTAL_HPP -#define CCF_IDL2_TRAVERSAL_FUNDAMENTAL_HPP - -#include "CCF/IDL2/Traversal/Elements.hpp" - -#include "CCF/IDL2/SemanticGraph/Fundamental.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - typedef - Node<SemanticGraph::FundamentalType> - FundamentalType; - - typedef - Node<SemanticGraph::Object> - Object; - - typedef - Node<SemanticGraph::ValueBase> - ValueBase; - - typedef - Node<SemanticGraph::Any> - Any; - - typedef - Node<SemanticGraph::Boolean> - Boolean; - - typedef - Node<SemanticGraph::Char> - Char; - - typedef - Node<SemanticGraph::Double> - Double; - - typedef - Node<SemanticGraph::Float> - Float; - - typedef - Node<SemanticGraph::Long> - Long; - - typedef - Node<SemanticGraph::LongDouble> - LongDouble; - - typedef - Node<SemanticGraph::LongLong> - LongLong; - - typedef - Node<SemanticGraph::Octet> - Octet; - - typedef - Node<SemanticGraph::Short> - Short; - - typedef - Node<SemanticGraph::String> - String; - - typedef - Node<SemanticGraph::UnsignedLong> - UnsignedLong; - - typedef - Node<SemanticGraph::UnsignedLongLong> - UnsignedLongLong; - - typedef - Node<SemanticGraph::UnsignedShort> - UnsignedShort; - - typedef - Node<SemanticGraph::Void> - Void; - - typedef - Node<SemanticGraph::Wchar> - Wchar; - - typedef - Node<SemanticGraph::Wstring> - Wstring; - } - } -} - -#endif // CCF_IDL2_TRAVERSAL_FUNDAMENTAL_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/IntExpression.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/IntExpression.hpp deleted file mode 100644 index a4cac55a729..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/IntExpression.hpp +++ /dev/null @@ -1,757 +0,0 @@ -// file : CCF/IDL2/Traversal/IntExpression.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TRAVERSAL_INT_EXPRESSION_HPP -#define CCF_IDL2_TRAVERSAL_INT_EXPRESSION_HPP - -#include "CCF/IDL2/Traversal/Elements.hpp" - -#include "CCF/IDL2/SemanticGraph/IntExpression.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - // - // - typedef - Node<SemanticGraph::IntExpression> - IntExpression; - - // - // - typedef - Node<SemanticGraph::IntLiteral> - IntLiteral; - - // - // - typedef - Node<SemanticGraph::IntConst> - IntConst; - - - // NEG - // - - struct IntNegates: Edge<SemanticGraph::IntNegates> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.argument ()); - } - }; - - struct IntNeg: Node<SemanticGraph::IntNeg> - { - virtual void - traverse (Type& n) - { - pre (n); - negates (n); - post (n); - } - - virtual void - pre (Type& n) - { - } - - virtual void - negates (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n.negates ()); - } - - virtual void - negates (Type& n) - { - negates (n, edge_traverser ()); - } - - virtual void - post (Type& n) - { - } - }; - - - // COM - // - - struct IntComplements: Edge<SemanticGraph::IntComplements> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.argument ()); - } - }; - - struct IntCom: Node<SemanticGraph::IntCom> - { - virtual void - traverse (Type& n) - { - pre (n); - complements (n); - post (n); - } - - virtual void - pre (Type& n) - { - } - - virtual void - complements (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n.complements ()); - } - - virtual void - complements (Type& n) - { - complements (n, edge_traverser ()); - } - - virtual void - post (Type& n) - { - } - }; - - - // MUL - // - - struct IntMultiplies: Edge<SemanticGraph::IntMultiplies> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.argument ()); - } - }; - - struct IntMul: Node<SemanticGraph::IntMul> - { - virtual void - traverse (Type& n) - { - pre (n); - multiplies_first_factor (n); - sign (n); - multiplies_second_factor (n); - post (n); - } - - virtual void - pre (Type& n) - { - } - - virtual void - multiplies_first_factor (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n.first_factor ()); - } - - virtual void - multiplies_first_factor (Type& n) - { - multiplies_first_factor (n, edge_traverser ()); - } - - virtual void - sign (Type& n) - { - } - - virtual void - multiplies_second_factor (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n. second_factor ()); - } - - virtual void - multiplies_second_factor (Type& n) - { - multiplies_second_factor (n, edge_traverser ()); - } - - virtual void - post (Type& n) - { - } - }; - - - // DIV & REM - // - - struct IntDivides: Edge<SemanticGraph::IntDivides> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.argument ()); - } - }; - - struct IntDiv: Node<SemanticGraph::IntDiv> - { - virtual void - traverse (Type& n) - { - pre (n); - divides_divident (n); - sign (n); - divides_divisor (n); - post (n); - } - - virtual void - pre (Type& n) - { - } - - virtual void - divides_divident (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n.divident ()); - } - - virtual void - divides_divident (Type& n) - { - divides_divident (n, edge_traverser ()); - } - - virtual void - sign (Type& n) - { - } - - virtual void - divides_divisor (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n. divisor ()); - } - - virtual void - divides_divisor (Type& n) - { - divides_divisor (n, edge_traverser ()); - } - - virtual void - post (Type& n) - { - } - }; - - struct IntRem: Node<SemanticGraph::IntRem> - { - virtual void - traverse (Type& n) - { - pre (n); - divides_divident (n); - sign (n); - divides_divisor (n); - post (n); - } - - virtual void - pre (Type& n) - { - } - - virtual void - divides_divident (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n.divident ()); - } - - virtual void - divides_divident (Type& n) - { - divides_divident (n, edge_traverser ()); - } - - virtual void - sign (Type& n) - { - } - - virtual void - divides_divisor (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n. divisor ()); - } - - virtual void - divides_divisor (Type& n) - { - divides_divisor (n, edge_traverser ()); - } - - virtual void - post (Type& n) - { - } - }; - - - // ADD - // - - struct IntAdds: Edge<SemanticGraph::IntAdds> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.argument ()); - } - }; - - struct IntAdd: Node<SemanticGraph::IntAdd> - { - virtual void - traverse (Type& n) - { - pre (n); - adds_first_item (n); - sign (n); - adds_second_item (n); - post (n); - } - - virtual void - pre (Type& n) - { - } - - virtual void - adds_first_item (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n.first_item ()); - } - - virtual void - adds_first_item (Type& n) - { - adds_first_item (n, edge_traverser ()); - } - - virtual void - sign (Type& n) - { - } - - virtual void - adds_second_item (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n. second_item ()); - } - - virtual void - adds_second_item (Type& n) - { - adds_second_item (n, edge_traverser ()); - } - - virtual void - post (Type& n) - { - } - }; - - - // SUB - // - - struct IntSubtracts: Edge<SemanticGraph::IntSubtracts> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.argument ()); - } - }; - - struct IntSub: Node<SemanticGraph::IntSub> - { - virtual void - traverse (Type& n) - { - pre (n); - subtracts_minuend (n); - sign (n); - subtracts_subtrahend (n); - post (n); - } - - virtual void - pre (Type& n) - { - } - - virtual void - subtracts_minuend (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n.minuend ()); - } - - virtual void - subtracts_minuend (Type& n) - { - subtracts_minuend (n, edge_traverser ()); - } - - virtual void - sign (Type& n) - { - } - - virtual void - subtracts_subtrahend (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n. subtrahend ()); - } - - virtual void - subtracts_subtrahend (Type& n) - { - subtracts_subtrahend (n, edge_traverser ()); - } - - virtual void - post (Type& n) - { - } - }; - - - // RSH & LSH - // - - struct IntShifts: Edge<SemanticGraph::IntShifts> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.argument ()); - } - }; - - struct IntRsh: Node<SemanticGraph::IntRsh> - { - virtual void - traverse (Type& n) - { - pre (n); - shifts_pattern (n); - sign (n); - shifts_factor (n); - post (n); - } - - virtual void - pre (Type& n) - { - } - - virtual void - shifts_pattern (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n.pattern ()); - } - - virtual void - shifts_pattern (Type& n) - { - shifts_pattern (n, edge_traverser ()); - } - - virtual void - sign (Type& n) - { - } - - virtual void - shifts_factor (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n. factor ()); - } - - virtual void - shifts_factor (Type& n) - { - shifts_factor (n, edge_traverser ()); - } - - virtual void - post (Type& n) - { - } - }; - - struct IntLsh: Node<SemanticGraph::IntLsh> - { - virtual void - traverse (Type& n) - { - pre (n); - shifts_pattern (n); - sign (n); - shifts_factor (n); - post (n); - } - - virtual void - pre (Type& n) - { - } - - virtual void - shifts_pattern (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n.pattern ()); - } - - virtual void - shifts_pattern (Type& n) - { - shifts_pattern (n, edge_traverser ()); - } - - virtual void - sign (Type& n) - { - } - - virtual void - shifts_factor (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n. factor ()); - } - - virtual void - shifts_factor (Type& n) - { - shifts_factor (n, edge_traverser ()); - } - - virtual void - post (Type& n) - { - } - }; - - - // AND - // - - struct IntConjuncts: Edge<SemanticGraph::IntConjuncts> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.argument ()); - } - }; - - struct IntAnd: Node<SemanticGraph::IntAnd> - { - virtual void - traverse (Type& n) - { - pre (n); - conjuncts_first_pattern (n); - sign (n); - conjuncts_second_pattern (n); - post (n); - } - - virtual void - pre (Type& n) - { - } - - virtual void - conjuncts_first_pattern (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n.first_pattern ()); - } - - virtual void - conjuncts_first_pattern (Type& n) - { - conjuncts_first_pattern (n, edge_traverser ()); - } - - virtual void - sign (Type& n) - { - } - - virtual void - conjuncts_second_pattern (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n. second_pattern ()); - } - - virtual void - conjuncts_second_pattern (Type& n) - { - conjuncts_second_pattern (n, edge_traverser ()); - } - - virtual void - post (Type& n) - { - } - }; - - - // Xor - // - - struct IntExclusivelyDisjuncts: - Edge<SemanticGraph::IntExclusivelyDisjuncts> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.argument ()); - } - }; - - struct IntXor: Node<SemanticGraph::IntXor> - { - virtual void - traverse (Type& n) - { - pre (n); - exclusively_disjuncts_first_pattern (n); - sign (n); - exclusively_disjuncts_second_pattern (n); - post (n); - } - - virtual void - pre (Type& n) - { - } - - virtual void - exclusively_disjuncts_first_pattern (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n.first_pattern ()); - } - - virtual void - exclusively_disjuncts_first_pattern (Type& n) - { - exclusively_disjuncts_first_pattern (n, edge_traverser ()); - } - - virtual void - sign (Type& n) - { - } - - virtual void - exclusively_disjuncts_second_pattern (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n. second_pattern ()); - } - - virtual void - exclusively_disjuncts_second_pattern (Type& n) - { - exclusively_disjuncts_second_pattern (n, edge_traverser ()); - } - - virtual void - post (Type& n) - { - } - }; - - - // Or - // - - struct IntInclusivelyDisjuncts: - Edge<SemanticGraph::IntInclusivelyDisjuncts> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.argument ()); - } - }; - - struct IntOr: Node<SemanticGraph::IntOr> - { - virtual void - traverse (Type& n) - { - pre (n); - inclusively_disjuncts_first_pattern (n); - sign (n); - inclusively_disjuncts_second_pattern (n); - post (n); - } - - virtual void - pre (Type& n) - { - } - - virtual void - inclusively_disjuncts_first_pattern (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n.first_pattern ()); - } - - virtual void - inclusively_disjuncts_first_pattern (Type& n) - { - inclusively_disjuncts_first_pattern (n, edge_traverser ()); - } - - virtual void - sign (Type& n) - { - } - - virtual void - inclusively_disjuncts_second_pattern (Type& n, EdgeDispatcherBase& d) - { - d.traverse (n. second_pattern ()); - } - - virtual void - inclusively_disjuncts_second_pattern (Type& n) - { - inclusively_disjuncts_second_pattern (n, edge_traverser ()); - } - - virtual void - post (Type& n) - { - } - }; - } - } -} - -#endif // CCF_IDL2_TRAVERSAL_INT_EXPRESSION_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Interface.cpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Interface.cpp deleted file mode 100644 index fb6cbf9686c..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Interface.cpp +++ /dev/null @@ -1,15 +0,0 @@ -// file : CCF/IDL2/Traversal/Interface.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/Traversal/Interface.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Interface.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Interface.hpp deleted file mode 100644 index b0c05f36b80..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Interface.hpp +++ /dev/null @@ -1,89 +0,0 @@ -// file : CCF/IDL2/Traversal/Interface.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TRAVERSAL_INTERFACE_HPP -#define CCF_IDL2_TRAVERSAL_INTERFACE_HPP - -#include "CCF/IDL2/Traversal/Elements.hpp" - -#include "CCF/IDL2/SemanticGraph/Interface.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - struct Supports : Edge<SemanticGraph::Supports> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.supportee ()); - } - }; - - - template <typename T> - struct InterfaceTemplate : ScopeTemplate<T> - { - /* GCC#13590/DR#39 - using ScopeTemplate<T>::edge_traverser; - */ - - virtual void - traverse (T&); - - virtual void - pre (T&); - - virtual void - name (T&); - - virtual void - inherits (T&, EdgeDispatcherBase& d); - - virtual void - inherits (T&); - - virtual void - inherits_pre (T&); - - virtual void - inherits_post (T&); - - virtual void - inherits_none (T&); - - virtual void - post (T&); - - virtual void - comma (T&); - }; - - - typedef - InterfaceTemplate<SemanticGraph::Interface> - Interface; - - - typedef - InterfaceTemplate<SemanticGraph::AbstractInterface> - AbstractInterface; - - typedef - InterfaceTemplate<SemanticGraph::LocalInterface> - LocalInterface; - - typedef - InterfaceTemplate<SemanticGraph::UnconstrainedInterface> - UnconstrainedInterface; - } - } -} - -#include "CCF/IDL2/Traversal/Interface.tpp" - -#endif // CCF_IDL2_TRAVERSAL_INTERFACE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Interface.tpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Interface.tpp deleted file mode 100644 index 23d2bfd922d..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Interface.tpp +++ /dev/null @@ -1,99 +0,0 @@ -// file : CCF/IDL2/Traversal/Interface.tpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - template <typename T> - void InterfaceTemplate<T>:: - traverse (T& i) - { - pre (i); - name (i); - inherits (i); - names (i); - post (i); - } - - template <typename T> - void InterfaceTemplate<T>:: - pre (T&) - { - } - - template <typename T> - void InterfaceTemplate<T>:: - name (T&) - { - } - - template <typename T> - void InterfaceTemplate<T>:: - inherits (T& i, EdgeDispatcherBase& d) - { - iterate_and_traverse (i.inherits_begin (), - i.inherits_end (), - d); - } - - template <typename T> - void InterfaceTemplate<T>:: - inherits (T& i) - { - typename T::InheritsIterator - b (i.inherits_begin ()), e (i.inherits_end ()); - - if (b != e) - { - inherits_pre (i); - iterate_and_traverse (b, - e, - this->edge_traverser (), - *this, - &InterfaceTemplate::comma, - i); - inherits_post (i); - } - else - { - inherits_none (i); - } - - } - - template <typename T> - void InterfaceTemplate<T>:: - inherits_pre (T&) - { - } - - template <typename T> - void InterfaceTemplate<T>:: - inherits_post (T&) - { - } - - template <typename T> - void InterfaceTemplate<T>:: - inherits_none (T&) - { - } - - template <typename T> - void InterfaceTemplate<T>:: - post (T&) - { - } - - template <typename T> - void InterfaceTemplate<T>:: - comma (T&) - { - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Member.cpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Member.cpp deleted file mode 100644 index 01299a0b00c..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Member.cpp +++ /dev/null @@ -1,50 +0,0 @@ -// file : CCF/IDL2/Traversal/Member.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/Traversal/Member.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - void Member:: - traverse (Type& m) - { - pre (m); - belongs (m); - name (m); - post (m); - } - - void Member:: - pre (Type&) - { - } - - void Member:: - belongs (Type& m, EdgeDispatcherBase& d) - { - d.traverse (m.belongs ()); - } - - void Member:: - belongs (Type& m) - { - belongs (m, edge_traverser ()); - } - - void Member:: - name (Type&) - { - } - - void Member:: - post (Type&) - { - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Member.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Member.hpp deleted file mode 100644 index a0f05e6f33f..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Member.hpp +++ /dev/null @@ -1,42 +0,0 @@ -// file : CCF/IDL2/Traversal/Member.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TRAVERSAL_MEMBER_HPP -#define CCF_IDL2_TRAVERSAL_MEMBER_HPP - -#include "CCF/IDL2/Traversal/Elements.hpp" - -#include "CCF/IDL2/SemanticGraph/Member.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - struct Member : Node<SemanticGraph::Member> - { - virtual void - traverse (Type&); - - virtual void - pre (Type&); - - virtual void - belongs (Type&, EdgeDispatcherBase&); - - virtual void - belongs (Type&); - - virtual void - name (Type&); - - virtual void - post (Type&); - }; - } - } -} - -#endif // CCF_IDL2_TRAVERSAL_MEMBER_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Module.cpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Module.cpp deleted file mode 100644 index 62f5d70aa9c..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Module.cpp +++ /dev/null @@ -1,15 +0,0 @@ -// file : CCF/IDL2/Traversal/Module.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/Traversal/Module.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Module.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Module.hpp deleted file mode 100644 index 994c40dd590..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Module.hpp +++ /dev/null @@ -1,48 +0,0 @@ -// file : CCF/IDL2/Traversal/Module.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TRAVERSAL_MODULE_HPP -#define CCF_IDL2_TRAVERSAL_MODULE_HPP - -#include "CCF/IDL2/Traversal/Elements.hpp" - -#include "CCF/IDL2/SemanticGraph/Module.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - struct Module : ScopeTemplate<SemanticGraph::Module> - { - virtual void - traverse (Type& m) - { - pre (m); - name (m); - names (m); - post (m); - } - - virtual void - pre (Type&) - { - } - - virtual void - name (Type&) - { - } - - virtual void - post (Type&) - { - } - }; - } - } -} - -#endif // CCF_IDL2_TRAVERSAL_MODULE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Native.cpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Native.cpp deleted file mode 100644 index 59a99bec8ad..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Native.cpp +++ /dev/null @@ -1,16 +0,0 @@ -// file : CCF/IDL2/Traversal/Native.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/Traversal/Native.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - } - } -} - diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Native.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Native.hpp deleted file mode 100644 index ad70473c234..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Native.hpp +++ /dev/null @@ -1,24 +0,0 @@ -// file : CCF/IDL2/Traversal/Native.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TRAVERSAL_NATIVE_HPP -#define CCF_IDL2_TRAVERSAL_NATIVE_HPP - -#include "CCF/IDL2/Traversal/Elements.hpp" -#include "CCF/IDL2/SemanticGraph/Native.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - typedef - Node<SemanticGraph::Native> - Native; - } - } -} - -#endif // CCF_IDL2_TRAVERSAL_NATIVE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Operation.cpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Operation.cpp deleted file mode 100644 index 2fca9de465b..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Operation.cpp +++ /dev/null @@ -1,15 +0,0 @@ -// file : CCF/IDL2/Traversal/Operation.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/Traversal/Operation.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Operation.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Operation.hpp deleted file mode 100644 index 04a426301f0..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Operation.hpp +++ /dev/null @@ -1,178 +0,0 @@ -// file : CCF/IDL2/Traversal/Operation.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TRAVERSAL_OPERATION_HPP -#define CCF_IDL2_TRAVERSAL_OPERATION_HPP - -#include "CCF/IDL2/Traversal/Elements.hpp" -#include "CCF/IDL2/SemanticGraph/Operation.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - // - // - // - struct Receives : Edge<SemanticGraph::Receives> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.parameter ()); - } - }; - - - // - // - // - struct Returns : Edge<SemanticGraph::Returns> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.type ()); - } - }; - - // - // - // - struct Raises : Edge<SemanticGraph::Raises> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.exception ()); - } - }; - - // - // - // - template<typename T> - struct ParameterTemplate : Node<T> - { - /* GCC#13590/DR#39 - using Node<T>::edge_traverser; - */ - - virtual void - traverse (T&); - - virtual void - pre (T&); - - virtual void - belongs (T&, EdgeDispatcherBase&); - - virtual void - belongs (T&); - - virtual void - name (T&); - - virtual void - post (T&); - }; - - typedef - ParameterTemplate<SemanticGraph::Parameter> - Parameter; - - typedef - ParameterTemplate<SemanticGraph::InParameter> - InParameter; - - typedef - ParameterTemplate<SemanticGraph::InOutParameter> - InOutParameter; - - typedef - ParameterTemplate<SemanticGraph::OutParameter> - OutParameter; - - // - // - // - template <typename T> - struct OperationTemplate : Node<T> - { - /* GCC#13590/DR#39 - using Node<T>::edge_traverser; - */ - - virtual void - traverse (T&); - - virtual void - pre (T&); - - virtual void - returns (T&, EdgeDispatcherBase&); - - virtual void - returns (T&); - - virtual void - name (T&); - - virtual void - receives (T&, EdgeDispatcherBase&); - - virtual void - receives (T&); - - virtual void - receives_pre (T&); - - virtual void - receives_post (T&); - - virtual void - receives_none (T&); - - virtual void - raises (T&, EdgeDispatcherBase&); - - virtual void - raises (T&); - - virtual void - raises_pre (T&); - - virtual void - raises_post (T&); - - virtual void - raises_none (T&); - - virtual void - post (T&); - - virtual void - comma (T&); - }; - - typedef - OperationTemplate<SemanticGraph::Operation> - Operation; - - typedef - OperationTemplate<SemanticGraph::OneWayOperation> - OneWayOperation; - - typedef - OperationTemplate<SemanticGraph::TwoWayOperation> - TwoWayOperation; - } - } -} - -#include "CCF/IDL2/Traversal/Operation.tpp" - -#endif // CCF_IDL2_TRAVERSAL_OPERATION_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Operation.tpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Operation.tpp deleted file mode 100644 index bcb3760ec3b..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Operation.tpp +++ /dev/null @@ -1,201 +0,0 @@ -// file : CCF/IDL2/Traversal/Operation.tpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - // ParameterTemplate - // - // - template<typename T> - void ParameterTemplate<T>:: - traverse (T& p) - { - pre (p); - belongs (p); - name (p); - post (p); - } - - template<typename T> - void ParameterTemplate<T>:: - pre (T&) - { - } - - template<typename T> - void ParameterTemplate<T>:: - belongs (T& p, EdgeDispatcherBase& d) - { - d.traverse (p.belongs ()); - } - - template<typename T> - void ParameterTemplate<T>:: - belongs (T& p) - { - belongs (p, this->edge_traverser ()); - } - - template<typename T> - void ParameterTemplate<T>:: - name (T&) - { - } - - template<typename T> - void ParameterTemplate<T>:: - post (T&) - { - } - - - // OperationTemplate - // - // - template<typename T> - void OperationTemplate<T>:: - traverse (T& o) - { - pre (o); - returns (o); - name (o); - receives (o); - raises (o); - post (o); - } - - template<typename T> - void OperationTemplate<T>:: - pre (T&) - { - } - - template<typename T> - void OperationTemplate<T>:: - returns (T& o, EdgeDispatcherBase& d) - { - d.traverse (o.returns ()); - } - - template<typename T> - void OperationTemplate<T>:: - returns (T& o) - { - returns (o, this->edge_traverser ()); - } - - template<typename T> - void OperationTemplate<T>:: - name (T&) - { - } - - template<typename T> - void OperationTemplate<T>:: - receives (T& o, EdgeDispatcherBase& d) - { - iterate_and_traverse (o.receives_begin (), o.receives_end (), d); - } - - template<typename T> - void OperationTemplate<T>:: - receives (T& o) - { - typename T::ReceivesIterator - b (o.receives_begin ()), e (o.receives_end ()); - - if (b != e) - { - receives_pre (o); - iterate_and_traverse ( - b, e, this->edge_traverser (), *this, &OperationTemplate<T>::comma, o); - receives_post (o); - } - else - { - receives_none (o); - } - } - - template<typename T> - void OperationTemplate<T>:: - receives_pre (T&) - { - } - - template<typename T> - void OperationTemplate<T>:: - receives_post (T&) - { - } - - template<typename T> - void OperationTemplate<T>:: - receives_none (T&) - { - } - - - template<typename T> - void OperationTemplate<T>:: - raises (T& o, EdgeDispatcherBase& d) - { - iterate_and_traverse (o.raises_begin (), o.raises_end (), d); - } - - template<typename T> - void OperationTemplate<T>:: - raises (T& o) - { - typename T::RaisesIterator b (o.raises_begin ()), e (o.raises_end ()); - - if (b != e) - { - raises_pre (o); - iterate_and_traverse ( - b, e, this->edge_traverser (), *this, &OperationTemplate<T>::comma, o); - raises_post (o); - } - else - { - raises_none (o); - } - } - - template<typename T> - void OperationTemplate<T>:: - raises_pre (T&) - { - } - - template<typename T> - void OperationTemplate<T>:: - raises_post (T&) - { - } - - template<typename T> - void OperationTemplate<T>:: - raises_none (T&) - { - } - - template<typename T> - void OperationTemplate<T>:: - post (T&) - { - } - - template<typename T> - void OperationTemplate<T>:: - comma (T&) - { - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Sequence.cpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Sequence.cpp deleted file mode 100644 index c781cdcfb97..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Sequence.cpp +++ /dev/null @@ -1,111 +0,0 @@ -// file : CCF/IDL2/Traversal/Sequence.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/Traversal/Sequence.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - - // UnboundedSequence - // - - void UnboundedSequence:: - traverse (Type& us) - { - pre (us); - arguments_with_type (us); - name (us); - post (us); - } - - void UnboundedSequence:: - pre (Type&) - { - } - - void UnboundedSequence:: - arguments_with_type (Type& us, EdgeDispatcherBase& d) - { - d.traverse (**us.arguments_begin ()); - } - - void UnboundedSequence:: - arguments_with_type (Type& us) - { - arguments_with_type (us, edge_traverser ()); - } - - void UnboundedSequence:: - name (Type&) - { - } - - void UnboundedSequence:: - post (Type&) - { - } - - - // BoundedSequence - // - - void BoundedSequence:: - traverse (Type& bs) - { - pre (bs); - arguments_with_type (bs); - arguments_with_value (bs); - name (bs); - post (bs); - } - - void BoundedSequence:: - pre (Type&) - { - } - - void BoundedSequence:: - arguments_with_type (Type& bs, EdgeDispatcherBase& d) - { - d.traverse (**bs.arguments_begin ()); - } - - void BoundedSequence:: - arguments_with_type (Type& bs) - { - arguments_with_type (bs, edge_traverser ()); - } - - void BoundedSequence:: - arguments_with_value (Type& bs, EdgeDispatcherBase& d) - { - Type::ArgumentsIterator i (bs.arguments_begin ()); - - ++i; // Bound is always second to the type. - - d.traverse (**i); - } - - void BoundedSequence:: - arguments_with_value (Type& bs) - { - arguments_with_value (bs, edge_traverser ()); - } - - void BoundedSequence:: - name (Type&) - { - } - - void BoundedSequence:: - post (Type&) - { - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Sequence.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Sequence.hpp deleted file mode 100644 index 8011ff85c38..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Sequence.hpp +++ /dev/null @@ -1,69 +0,0 @@ -// file : CCF/IDL2/Traversal/Sequence.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TRAVERSAL_SEQUENCE_HPP -#define CCF_IDL2_TRAVERSAL_SEQUENCE_HPP - -#include "CCF/IDL2/Traversal/Elements.hpp" - -#include "CCF/IDL2/SemanticGraph/Sequence.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - struct UnboundedSequence : Node<SemanticGraph::UnboundedSequence> - { - virtual void - traverse (Type&); - - virtual void - pre (Type&); - - virtual void - arguments_with_type (Type&, EdgeDispatcherBase&); - - virtual void - arguments_with_type (Type&); - - virtual void - name (Type&); - - virtual void - post (Type&); - }; - - struct BoundedSequence : Node<SemanticGraph::BoundedSequence> - { - virtual void - traverse (Type&); - - virtual void - pre (Type&); - - virtual void - arguments_with_type (Type&, EdgeDispatcherBase&); - - virtual void - arguments_with_type (Type&); - - virtual void - arguments_with_value (Type&, EdgeDispatcherBase&); - - virtual void - arguments_with_value (Type&); - - virtual void - name (Type&); - - virtual void - post (Type&); - }; - } - } -} - -#endif // CCF_IDL2_TRAVERSAL_SEQUENCE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/String.cpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/String.cpp deleted file mode 100644 index 0d1e23883ed..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/String.cpp +++ /dev/null @@ -1,93 +0,0 @@ -// file : CCF/IDL2/Traversal/String.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/Traversal/String.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - // BoundedString - // - - void BoundedString:: - traverse (Type& s) - { - pre (s); - arguments_with_value (s); - name (s); - post (s); - } - - void BoundedString:: - pre (Type&) - { - } - - void BoundedString:: - arguments_with_value (Type& s, EdgeDispatcherBase& d) - { - d.traverse (**s.arguments_begin ()); - } - - void BoundedString:: - arguments_with_value (Type& s) - { - arguments_with_value (s, edge_traverser ()); - } - - void BoundedString:: - name (Type&) - { - } - - void BoundedString:: - post (Type&) - { - } - - - // BoundedWideString - // - - void BoundedWideString:: - traverse (Type& s) - { - pre (s); - arguments_with_value (s); - name (s); - post (s); - } - - void BoundedWideString:: - pre (Type&) - { - } - - void BoundedWideString:: - arguments_with_value (Type& s, EdgeDispatcherBase& d) - { - d.traverse (**s.arguments_begin ()); - } - - void BoundedWideString:: - arguments_with_value (Type& s) - { - arguments_with_value (s, edge_traverser ()); - } - - void BoundedWideString:: - name (Type&) - { - } - - void BoundedWideString:: - post (Type&) - { - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/String.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/String.hpp deleted file mode 100644 index 7fca6eb7972..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/String.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// file : CCF/IDL2/Traversal/String.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TRAVERSAL_STRING_HPP -#define CCF_IDL2_TRAVERSAL_STRING_HPP - -#include "CCF/IDL2/Traversal/Elements.hpp" - -#include "CCF/IDL2/SemanticGraph/String.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - struct BoundedString : Node<SemanticGraph::BoundedString> - { - virtual void - traverse (Type&); - - virtual void - pre (Type&); - - virtual void - arguments_with_value (Type&, EdgeDispatcherBase&); - - virtual void - arguments_with_value (Type&); - - virtual void - name (Type&); - - virtual void - post (Type&); - }; - - - struct BoundedWideString : Node<SemanticGraph::BoundedWideString> - { - virtual void - traverse (Type&); - - virtual void - pre (Type&); - - virtual void - arguments_with_value (Type&, EdgeDispatcherBase&); - - virtual void - arguments_with_value (Type&); - - virtual void - name (Type&); - - virtual void - post (Type&); - }; - } - } -} - -#endif // CCF_IDL2_TRAVERSAL_STRING_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Struct.cpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Struct.cpp deleted file mode 100644 index c9e4a23ee0d..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Struct.cpp +++ /dev/null @@ -1,38 +0,0 @@ -// file : CCF/IDL2/Traversal/Struct.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/Traversal/Struct.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - void Struct:: - traverse (Type& s) - { - pre (s); - name (s); - names (s); - post (s); - } - - void Struct:: - pre (Type&) - { - } - - void Struct:: - name (Type&) - { - } - - void Struct:: - post (Type&) - { - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Struct.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Struct.hpp deleted file mode 100644 index 0ab61f8ef85..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Struct.hpp +++ /dev/null @@ -1,35 +0,0 @@ -// file : CCF/IDL2/Traversal/Struct.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TRAVERSAL_STRUCT_HPP -#define CCF_IDL2_TRAVERSAL_STRUCT_HPP - -#include "CCF/IDL2/Traversal/Elements.hpp" -#include "CCF/IDL2/SemanticGraph/Struct.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - struct Struct : ScopeTemplate<SemanticGraph::Struct> - { - virtual void - traverse (Type&); - - virtual void - pre (Type&); - - virtual void - name (Type&); - - virtual void - post (Type&); - }; - } - } -} - -#endif // CCF_IDL2_TRAVERSAL_STRUCT_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Translation.cpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Translation.cpp deleted file mode 100644 index e3fcd58e272..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Translation.cpp +++ /dev/null @@ -1,37 +0,0 @@ -// file : CCF/IDL2/Traversal/Translation.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/Traversal/Translation.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - // TranslationRegion - // - // - void TranslationRegion:: - traverse (SemanticGraph::TranslationRegion& r) - { - iterate_and_traverse (r.contains_begin (), - r.contains_end (), - edge_traverser ()); - } - - - // TranslationUnit - // - // - void TranslationUnit:: - traverse (SemanticGraph::TranslationUnit& u) - { - iterate_and_traverse (u.contains_begin (), - u.contains_end (), - edge_traverser ()); - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Translation.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Translation.hpp deleted file mode 100644 index 7fc3f58c5d4..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Translation.hpp +++ /dev/null @@ -1,107 +0,0 @@ -// file : CCF/IDL2/Traversal/Translation.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TRAVERSAL_TRANSLATION_HPP -#define CCF_IDL2_TRAVERSAL_TRANSLATION_HPP - -#include "CCF/IDL2/Traversal/Elements.hpp" - -#include "CCF/IDL2/SemanticGraph/Translation.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - // Some edges. - // - // - struct ContainsPrincipal : Edge<SemanticGraph::ContainsPrincipal> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.element ()); - } - }; - - struct ContainsImplied : Edge<SemanticGraph::ContainsImplied> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.element ()); - } - }; - - struct ContainsRoot : Edge<SemanticGraph::ContainsRoot> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.element ()); - } - }; - - struct Includes : Edge<SemanticGraph::Includes> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.element ()); - } - }; - - struct QuoteIncludes : Edge<SemanticGraph::QuoteIncludes> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.element ()); - } - }; - - struct BracketIncludes : Edge<SemanticGraph::BracketIncludes> - { - virtual void - traverse (Type& e) - { - node_traverser ().traverse (e.element ()); - } - }; - - - // - // - // - typedef - ScopeTemplate <SemanticGraph::Root> - Root; - - - // - // - // - struct TranslationRegion : Node<SemanticGraph::TranslationRegion> - { - virtual void - traverse (SemanticGraph::TranslationRegion&); - }; - - - // - // - // - struct TranslationUnit : Node<SemanticGraph::TranslationUnit> - { - virtual void - traverse (SemanticGraph::TranslationUnit&); - }; - - } - } -} - -#endif // CCF_IDL2_TRAVERSAL_TRANSLATION_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/TypeId.cpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/TypeId.cpp deleted file mode 100644 index 1e42505b5d7..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/TypeId.cpp +++ /dev/null @@ -1,16 +0,0 @@ -// file : CCF/IDL2/Traversal/TypeId.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/Traversal/TypeId.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - } - } -} - diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/TypeId.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/TypeId.hpp deleted file mode 100644 index eb917dd69cb..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/TypeId.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// file : CCF/IDL2/Traversal/TypeId.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TRAVERSAL_TYPE_ID_HPP -#define CCF_IDL2_TRAVERSAL_TYPE_ID_HPP - -#include "CCF/IDL2/Traversal/Elements.hpp" - -#include "CCF/IDL2/SemanticGraph/TypeId.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - // Typeid and typeprefix are two idiotic constructs of IDL. - // They normally should not result in any directly generated - // code so only minimal (and most generic) support is provided. - // - - struct TypeId : Node<SemanticGraph::TypeId> - { - }; - - struct TypePrefix : Node<SemanticGraph::TypePrefix> - { - }; - } - } -} - -#endif // CCF_IDL2_TRAVERSAL_TYPE_ID_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Union.cpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Union.cpp deleted file mode 100644 index d440907ed4c..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Union.cpp +++ /dev/null @@ -1,81 +0,0 @@ -// file : CCF/IDL2/Traversal/Union.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/Traversal/Union.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - // UnionMember - // - // - void UnionMember:: - traverse (Type& m) - { - pre (m); - belongs (m); - name (m); - post (m); - } - - void UnionMember:: - pre (Type&) - { - } - - void UnionMember:: - belongs (Type& m, EdgeDispatcherBase& d) - { - d.traverse (m.belongs ()); - } - - void UnionMember:: - belongs (Type& m) - { - belongs (m, edge_traverser ()); - } - - void UnionMember:: - name (Type&) - { - } - - void UnionMember:: - post (Type&) - { - } - - - // Union - // - // - void Union:: - traverse (Type& s) - { - pre (s); - name (s); - names (s); - post (s); - } - - void Union:: - pre (Type&) - { - } - - void Union:: - name (Type&) - { - } - - void Union:: - post (Type&) - { - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Union.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Union.hpp deleted file mode 100644 index 0237be5016d..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Union.hpp +++ /dev/null @@ -1,63 +0,0 @@ -// file : CCF/IDL2/Traversal/Union.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TRAVERSAL_UNION_HPP -#define CCF_IDL2_TRAVERSAL_UNION_HPP - -#include "CCF/IDL2/Traversal/Elements.hpp" -#include "CCF/IDL2/SemanticGraph/Union.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - // - // - // - struct UnionMember : Node<SemanticGraph::UnionMember> - { - virtual void - traverse (Type&); - - virtual void - pre (Type&); - - virtual void - belongs (Type&, EdgeDispatcherBase&); - - virtual void - belongs (Type&); - - virtual void - name (Type&); - - virtual void - post (Type&); - }; - - - // - // - // - struct Union : ScopeTemplate<SemanticGraph::Union> - { - virtual void - traverse (Type&); - - virtual void - pre (Type&); - - virtual void - name (Type&); - - virtual void - post (Type&); - }; - } - } -} - -#endif // CCF_IDL2_TRAVERSAL_UNION_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/ValueType.cpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/ValueType.cpp deleted file mode 100644 index 63dce1325df..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/ValueType.cpp +++ /dev/null @@ -1,15 +0,0 @@ -// file : CCF/IDL2/Traversal/ValueType.cpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#include "CCF/IDL2/Traversal/ValueType.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/ValueType.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/ValueType.hpp deleted file mode 100644 index a99ee48e814..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/ValueType.hpp +++ /dev/null @@ -1,89 +0,0 @@ -// file : CCF/IDL2/Traversal/ValueType.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TRAVERSAL_VALUE_TYPE_HPP -#define CCF_IDL2_TRAVERSAL_VALUE_TYPE_HPP - -#include "CCF/IDL2/Traversal/Elements.hpp" -#include "CCF/IDL2/Traversal/Operation.hpp" -#include "CCF/IDL2/SemanticGraph/ValueType.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - template <typename T> - struct ValueTypeTemplate : ScopeTemplate<T> - { - virtual void - traverse (T&); - - virtual void - pre (T&); - - virtual void - name (T&); - - virtual void - inherits (T&, EdgeDispatcherBase& d); - - virtual void - inherits (T&); - - virtual void - inherits_pre (T&); - - virtual void - inherits_post (T&); - - virtual void - inherits_none (T&); - - virtual void - supports (T&, EdgeDispatcherBase& d); - - virtual void - supports (T&); - - virtual void - supports_pre (T&); - - virtual void - supports_post (T&); - - virtual void - supports_none (T&); - - virtual void - post (T&); - - virtual void - comma (T&); - }; - - - typedef - ValueTypeTemplate<SemanticGraph::ValueType> - ValueType; - - typedef - ValueTypeTemplate<SemanticGraph::AbstractValueType> - AbstractValueType; - - typedef - ValueTypeTemplate<SemanticGraph::ConcreteValueType> - ConcreteValueType; - - typedef - OperationTemplate<SemanticGraph::ValueTypeFactory> - ValueTypeFactory; - } - } -} - -#include "CCF/IDL2/Traversal/ValueType.tpp" - -#endif // CCF_IDL2_TRAVERSAL_VALUE_TYPE_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/ValueType.tpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/ValueType.tpp deleted file mode 100644 index e5582c4c61b..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/ValueType.tpp +++ /dev/null @@ -1,150 +0,0 @@ -// file : CCF/IDL2/Traversal/ValueType.tpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - template <typename T> - void ValueTypeTemplate<T>:: - traverse (T& v) - { - pre (v); - name (v); - inherits (v); - supports (v); - names (v); - post (v); - } - - template <typename T> - void ValueTypeTemplate<T>:: - pre (T&) - { - } - - template <typename T> - void ValueTypeTemplate<T>:: - name (T&) - { - } - - template <typename T> - void ValueTypeTemplate<T>:: - inherits (T& v, EdgeDispatcherBase& d) - { - iterate_and_traverse (v.inherits_begin (), - v.inherits_end (), - d); - } - - template <typename T> - void ValueTypeTemplate<T>:: - inherits (T& v) - { - typename T::InheritsIterator - b (v.inherits_begin ()), e (v.inherits_end ()); - - if (b != e) - { - inherits_pre (v); - iterate_and_traverse (b, - e, - this->edge_traverser (), - *this, - &ValueTypeTemplate::comma, - v); - inherits_post (v); - } - else - { - inherits_none (v); - } - } - - template <typename T> - void ValueTypeTemplate<T>:: - inherits_pre (T&) - { - } - - template <typename T> - void ValueTypeTemplate<T>:: - inherits_post (T&) - { - } - - template <typename T> - void ValueTypeTemplate<T>:: - inherits_none (T&) - { - } - - template <typename T> - void ValueTypeTemplate<T>:: - supports (T& v, EdgeDispatcherBase& d) - { - iterate_and_traverse (v.supports_begin (), - v.supports_end (), - d); - } - - template <typename T> - void ValueTypeTemplate<T>:: - supports (T& v) - { - typename T::SupportsIterator - b (v.supports_begin ()), e (v.supports_end ()); - - if (b != e) - { - supports_pre (v); - iterate_and_traverse (b, - e, - this->edge_traverser (), - *this, - &ValueTypeTemplate::comma, - v); - supports_post (v); - } - else - { - supports_none (v); - } - } - - template <typename T> - void ValueTypeTemplate<T>:: - supports_pre (T&) - { - } - - template <typename T> - void ValueTypeTemplate<T>:: - supports_post (T&) - { - } - - template <typename T> - void ValueTypeTemplate<T>:: - supports_none (T&) - { - } - - template <typename T> - void ValueTypeTemplate<T>:: - post (T&) - { - } - - template <typename T> - void ValueTypeTemplate<T>:: - comma (T&) - { - } - } - } -} diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/ValueTypeMember.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/ValueTypeMember.hpp deleted file mode 100644 index f579f7d765d..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/ValueTypeMember.hpp +++ /dev/null @@ -1,59 +0,0 @@ -// file : CCF/IDL2/Traversal/ValueTypeMember.hpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -#ifndef CCF_IDL2_TRAVERSAL_VALUE_TYPE_MEMBER_HPP -#define CCF_IDL2_TRAVERSAL_VALUE_TYPE_MEMBER_HPP - -#include "CCF/IDL2/Traversal/Elements.hpp" - -#include "CCF/IDL2/SemanticGraph/ValueTypeMember.hpp" - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - template <typename T> - struct ValueTypeMemberTemplate : Node<T> - { - virtual void - traverse (T&); - - virtual void - pre (T&); - - virtual void - belongs (T&, EdgeDispatcherBase&); - - virtual void - belongs (T&); - - virtual void - name (T&); - - virtual void - post (T&); - - using Node<T>::edge_traverser; - }; - - typedef - ValueTypeMemberTemplate<SemanticGraph::ValueTypeMember> - ValueTypeMember; - - typedef - ValueTypeMemberTemplate<SemanticGraph::ValueTypePrivateMember> - ValueTypePrivateMember; - - typedef - ValueTypeMemberTemplate<SemanticGraph::ValueTypePublicMember> - ValueTypePublicMember; - } - } -} - -#include "CCF/IDL2/Traversal/ValueTypeMember.tpp" - -#endif // CCF_IDL2_TRAVERSAL_VALUE_TYPE_MEMBER_HPP diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/ValueTypeMember.tpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/ValueTypeMember.tpp deleted file mode 100644 index 9629a9e056b..00000000000 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/ValueTypeMember.tpp +++ /dev/null @@ -1,54 +0,0 @@ -// file : CCF/IDL2/Traversal/ValueTypeMember.tpp -// author : Boris Kolpackov <boris@dre.vanderbilt.edu> -// cvs-id : $Id$ - -namespace CCF -{ - namespace IDL2 - { - namespace Traversal - { - template <typename T> - void ValueTypeMemberTemplate<T>:: - traverse (T& m) - { - pre (m); - belongs (m); - name (m); - post (m); - } - - template <typename T> - void ValueTypeMemberTemplate<T>:: - pre (T&) - { - } - - template <typename T> - void ValueTypeMemberTemplate<T>:: - belongs (T& m, EdgeDispatcherBase& d) - { - d.traverse (m.belongs ()); - } - - template <typename T> - void ValueTypeMemberTemplate<T>:: - belongs (T& m) - { - belongs (m, edge_traverser ()); - } - - template <typename T> - void ValueTypeMemberTemplate<T>:: - name (T&) - { - } - - template <typename T> - void ValueTypeMemberTemplate<T>:: - post (T&) - { - } - } - } -} |