OPALX (Object Oriented Parallel Accelerator Library for Exascal)
MINIorX
OPALX
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 "
OpalParser/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
34
TokenStream::~TokenStream
()
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
}
LogicalError.h
TokenStream.h
Token
Representation of a single input token.
Definition
Token.h:33
TokenStream::put_back_flag
bool put_back_flag
Definition
TokenStream.h:65
TokenStream::~TokenStream
virtual ~TokenStream()
Definition
TokenStream.cpp:34
TokenStream::stream_name
std::string stream_name
Definition
TokenStream.h:59
TokenStream::put_back
Token put_back
Definition
TokenStream.h:66
TokenStream::curr_line
int curr_line
Definition
TokenStream.h:62
TokenStream::getLine
int getLine() const
Return line number.
Definition
TokenStream.cpp:49
TokenStream::getName
const std::string & getName() const
Return stream name.
Definition
TokenStream.cpp:54
TokenStream::putBack
void putBack(const Token &token)
Put token back to stream.
Definition
TokenStream.cpp:38
TokenStream::TokenStream
TokenStream()
LogicalError
Logical error exception.
Definition
LogicalError.h:33