summaryrefslogtreecommitdiff
path: root/CIAO/CCF/CCF/IDL2/Parsing/Elements.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/CCF/CCF/IDL2/Parsing/Elements.hpp')
-rw-r--r--CIAO/CCF/CCF/IDL2/Parsing/Elements.hpp168
1 files changed, 0 insertions, 168 deletions
diff --git a/CIAO/CCF/CCF/IDL2/Parsing/Elements.hpp b/CIAO/CCF/CCF/IDL2/Parsing/Elements.hpp
deleted file mode 100644
index 88e091d8845..00000000000
--- a/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