OPALX (Object Oriented Parallel Accelerator Library for Exascal)
MINIorX
OPALX
MacroStream.cpp
Go to the documentation of this file.
1
// ------------------------------------------------------------------------
2
// $RCSfile: MacroStream.cpp,v $
3
// ------------------------------------------------------------------------
4
// $Revision: 1.1.1.1 $
5
// ------------------------------------------------------------------------
6
// Copyright: see Copyright.readme
7
// ------------------------------------------------------------------------
8
//
9
// Class: MacroStream
10
// Implements an input buffer for reading tokens from a token list.
11
// This string is intended for storing OPAL-9 macros.
12
//
13
// ------------------------------------------------------------------------
14
//
15
// $Date: 2000/03/27 09:33:43 $
16
// $Author: Andreas Adelmann $
17
//
18
// ------------------------------------------------------------------------
19
20
#include "
OpalParser/MacroStream.h
"
21
#include "
OpalParser/Token.h
"
22
23
24
// Class MacroStream
25
// ------------------------------------------------------------------------
26
27
MacroStream::MacroStream
(
const
std::string &macName):
28
TokenStream
(macName),
body
(),
curr
(
body
.
begin
())
29
{}
30
31
32
MacroStream::~MacroStream
()
33
{}
34
35
36
void
MacroStream::append
(
Token
&token) {
37
body
.push_back(token);
38
}
39
40
41
Token
MacroStream::readToken
() {
42
if
(
put_back_flag
) {
43
put_back_flag
=
false
;
44
return
put_back
;
45
}
else
if
(
curr
==
body
.end()) {
46
return
Token
(
stream_name
, 1,
Token::IS_EOF
,
"End of macro"
);
47
}
else
{
48
return
*
curr
++;
49
}
50
}
51
52
53
void
MacroStream::start
() {
54
curr
=
body
.begin();
55
put_back_flag
=
false
;
56
}
begin
PartBunch< T, Dim >::ConstIterator begin(PartBunch< T, Dim > const &bunch)
Definition
.PartBunchBase.h:204
MacroStream.h
Token.h
MacroStream::curr
TokenList::iterator curr
Definition
MacroStream.h:60
MacroStream::~MacroStream
virtual ~MacroStream()
Definition
MacroStream.cpp:32
MacroStream::append
void append(Token &)
Append a token to the stream.
Definition
MacroStream.cpp:36
MacroStream::start
void start()
Reset stream to start.
Definition
MacroStream.cpp:53
MacroStream::body
TokenList body
Definition
MacroStream.h:59
MacroStream::readToken
virtual Token readToken()
Read a token from the stream.
Definition
MacroStream.cpp:41
MacroStream::MacroStream
MacroStream()
Token
Representation of a single input token.
Definition
Token.h:33
Token::IS_EOF
@ IS_EOF
Definition
Token.h:40
TokenStream::put_back_flag
bool put_back_flag
Definition
TokenStream.h:65
TokenStream::stream_name
std::string stream_name
Definition
TokenStream.h:59
TokenStream::put_back
Token put_back
Definition
TokenStream.h:66
TokenStream::TokenStream
TokenStream(const std::string &name)
Constructor.
Definition
TokenStream.cpp:29