OPALX (Object Oriented Parallel Accelerator Library for Exascal)
master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
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
// Class MacroStream
24
// ------------------------------------------------------------------------
25
26
MacroStream::MacroStream
(
const
std::string& macName)
27
:
TokenStream
(macName), body(), curr(body.begin()) {}
28
29
MacroStream::~MacroStream
() {}
30
31
void
MacroStream::append
(
Token
& token) {
body
.push_back(token); }
32
33
Token
MacroStream::readToken
() {
34
if
(
put_back_flag
) {
35
put_back_flag
=
false
;
36
return
put_back
;
37
}
else
if
(
curr
==
body
.end()) {
38
return
Token
(
stream_name
, 1,
Token::IS_EOF
,
"End of macro"
);
39
}
else
{
40
return
*
curr
++;
41
}
42
}
43
44
void
MacroStream::start
() {
45
curr
=
body
.begin();
46
put_back_flag
=
false
;
47
}
MacroStream.h
Token.h
MacroStream::curr
TokenList::iterator curr
Definition
MacroStream.h:56
MacroStream::~MacroStream
virtual ~MacroStream()
Definition
MacroStream.cpp:29
MacroStream::append
void append(Token &)
Append a token to the stream.
Definition
MacroStream.cpp:31
MacroStream::start
void start()
Reset stream to start.
Definition
MacroStream.cpp:44
MacroStream::body
TokenList body
Definition
MacroStream.h:55
MacroStream::readToken
virtual Token readToken()
Read a token from the stream.
Definition
MacroStream.cpp:33
MacroStream::MacroStream
MacroStream()
TokenStream
Abstract interface for a stream of input tokens.
Definition
TokenStream.h:30
TokenStream::put_back_flag
bool put_back_flag
Definition
TokenStream.h:59
TokenStream::stream_name
std::string stream_name
Definition
TokenStream.h:53
TokenStream::put_back
Token put_back
Definition
TokenStream.h:60
Token
Representation of a single input token.
Definition
Token.h:32
Token::IS_EOF
@ IS_EOF
Definition
Token.h:35
src
OpalParser
MacroStream.cpp
Generated on Mon Jun 1 2026 10:40:52 for OPALX (Object Oriented Parallel Accelerator Library for Exascal) by
1.9.8