stlab.adobe.com Adobe Systems Incorporated

lex_stream.hpp

Go to the documentation of this file.
00001 /*
00002     Copyright 2005-2007 Adobe Systems Incorporated
00003     Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt
00004     or a copy at http://stlab.adobe.com/licenses.html)
00005 */
00006 
00007 /*************************************************************************************************/
00008 
00009 #ifndef ADOBE_LEX_STREAM_HPP
00010 #define ADOBE_LEX_STREAM_HPP
00011 
00012 /*************************************************************************************************/
00013 
00014 #include <adobe/config.hpp>
00015 
00016 #include <adobe/implementation/lex_stream_fwd.hpp>
00017 #include <adobe/istream.hpp>
00018 
00019 #include <iosfwd>
00020 
00021 /*************************************************************************************************/
00022 
00023 void swap(adobe::lex_stream_t&, adobe::lex_stream_t&);
00024 
00025 /*************************************************************************************************/
00026 
00027 namespace adobe {
00028 
00029 /*************************************************************************************************/
00030 
00031 class lex_stream_t
00032 {
00033 public:
00034     lex_stream_t(std::istream& in, const line_position_t& position);
00035 
00036 #if !defined(ADOBE_NO_DOCUMENTATION)
00037     lex_stream_t(const lex_stream_t& rhs);
00038 
00039     ~lex_stream_t();
00040 
00041     lex_stream_t& operator = (const lex_stream_t& rhs);
00042 #endif // !defined(ADOBE_NO_DOCUMENTATION)
00043 
00044     const stream_lex_token_t&   get();
00045 
00046     void                        putback();
00047 
00048     const line_position_t&      next_position();
00049 
00050     void                        set_keyword_extension_lookup(const keyword_extension_lookup_proc_t& proc);
00051 
00052 #if !defined(ADOBE_NO_DOCUMENTATION)
00053 private:
00054     friend void ::swap(adobe::lex_stream_t&, adobe::lex_stream_t&);
00055 
00056     struct implementation_t;
00057 
00058     implementation_t* object_m;
00059 #endif // !defined(ADOBE_NO_DOCUMENTATION)
00060 };
00061 
00062 /*************************************************************************************************/
00063 
00064 } // namespace adobe
00065 
00066 /*************************************************************************************************/
00067 
00068 inline void swap(adobe::lex_stream_t& x, adobe::lex_stream_t& y)
00069 {
00070     std::swap(x.object_m, y.object_m);
00071 }
00072 
00073 /*************************************************************************************************/
00074 
00075 #endif
00076 
00077 /*************************************************************************************************/

Copyright © 2006-2007 Adobe Systems Incorporated.

Use of this website signifies your agreement to the Terms of Use and Online Privacy Policy.

Search powered by Google