OPAL (Object Oriented Parallel Accelerator Library) 2022.1
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"
23#include <cctype>
24
25
26// Class TokenStream
27// ------------------------------------------------------------------------
28
29TokenStream::TokenStream(const std::string &name):
30 stream_name(name), curr_line(0), put_back_flag(false), put_back()
31{}
32
33
35{}
36
37
38void 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
50 return curr_line;
51}
52
53
54const std::string &TokenStream::getName() const {
55 return stream_name;
56}
const std::string name
Representation of a single input token.
Definition: Token.h:33
bool put_back_flag
Definition: TokenStream.h:65
virtual ~TokenStream()
Definition: TokenStream.cpp:34
std::string stream_name
Definition: TokenStream.h:59
Token put_back
Definition: TokenStream.h:66
int getLine() const
Return line number.
Definition: TokenStream.cpp:49
const std::string & getName() const
Return stream name.
Definition: TokenStream.cpp:54
void putBack(const Token &token)
Put token back to stream.
Definition: TokenStream.cpp:38
Logical error exception.
Definition: LogicalError.h:33