OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
TokenStream.cpp
Go to the documentation of this file.
1 // ------------------------------------------------------------------------
2 // $RCSfile: TokenStream.cpp,v $
3 // ------------------------------------------------------------------------
4 // $Revision: 1.1.1.1 $
5 // ------------------------------------------------------------------------
6 // Copyright: see Copyright.readme
7 // ------------------------------------------------------------------------
8 //
9 // Class: TokenStream
10 // Abstract base class for input token streams.
11 //
12 // ------------------------------------------------------------------------
13 // Class category: Parser
14 // ------------------------------------------------------------------------
15 //
16 // $Date: 2000/03/27 09:32:37 $
17 // $Author: fci $
18 //
19 // ------------------------------------------------------------------------
20 
21 #include "Parser/TokenStream.h"
22 #include "Utilities/LogicalError.h"
23 #include <cctype>
24 
25 
26 // Class TokenStream
27 // ------------------------------------------------------------------------
28 
29 TokenStream::TokenStream(const std::string &name):
30  stream_name(name), curr_line(0), put_back_flag(false), put_back()
31 {}
32 
33 
35 {}
36 
37 
38 void TokenStream::putBack(const Token &token) {
39  if(put_back_flag) {
40  throw LogicalError("TokenStream::pushBack()",
41  "Cannot push back two tokens.");
42  }
43 
44  put_back = token;
45  put_back_flag = true;
46 }
47 
48 
49 int TokenStream::getLine() const {
50  return curr_line;
51 }
52 
53 
54 const std::string &TokenStream::getName() const {
55  return stream_name;
56 }
int getLine() const
Return line number.
Definition: TokenStream.cpp:49
bool put_back_flag
Definition: TokenStream.h:65
Token put_back
Definition: TokenStream.h:66
virtual ~TokenStream()
Definition: TokenStream.cpp:34
std::string stream_name
Definition: TokenStream.h:59
Representation of a single input token.
Definition: Token.h:33
void putBack(const Token &token)
Put token back to stream.
Definition: TokenStream.cpp:38
const std::string & getName() const
Return stream name.
Definition: TokenStream.cpp:54
const std::string name
Logical error exception.
Definition: LogicalError.h:33