1#ifndef INC_TokenStreamRewriteEngine_hpp__
2#define INC_TokenStreamRewriteEngine_hpp__
25#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
82#ifndef NO_STATIC_CONSTS
88 PROGRAM_INIT_SIZE = 100
119 virtual const char*
type()
const {
120 return "RewriteOperation";
153 virtual const char*
type()
const {
154 return "InsertBeforeOp";
171 virtual const char*
type()
const {
184 virtual const char*
type()
const {
207 deleteProgram(DEFAULT_PROGRAM_NAME);
218 insertAfter(DEFAULT_PROGRAM_NAME,
t, text);
222 insertAfter(DEFAULT_PROGRAM_NAME, index, text);
244 insertBefore(DEFAULT_PROGRAM_NAME,
t, text);
248 insertBefore(DEFAULT_PROGRAM_NAME, index, text);
267 replace(DEFAULT_PROGRAM_NAME, index, index, text);
273 replace(DEFAULT_PROGRAM_NAME,
from,
to, text);
279 replace(DEFAULT_PROGRAM_NAME,
indexT->getIndex(),
indexT->getIndex(), text);
286 replace(DEFAULT_PROGRAM_NAME,
from,
to, text);
308 remove(DEFAULT_PROGRAM_NAME, index, index);
312 remove(DEFAULT_PROGRAM_NAME,
from,
to);
320 remove(DEFAULT_PROGRAM_NAME,
from,
to);
336 discardMask.add(ttype);
345 return tokens.size();
353 size_t start,
size_t end )
const;
356 toStream( out, MIN_TOKEN_INDEX, getTokenStreamSize());
362 toStream( out,
programName, MIN_TOKEN_INDEX, getTokenStreamSize());
366 size_t start,
size_t end )
const
368 toStream(out, DEFAULT_PROGRAM_NAME,
start, end);
376 toDebugStream( out, MIN_TOKEN_INDEX, getTokenStreamSize());
380 size_t start,
size_t end )
const;
383 return getLastRewriteTokenIndex(DEFAULT_PROGRAM_NAME);
399 operation_list::const_iterator
last =
prog.end();
401 return (*last)->getIndex();
410 addToSortedRewriteList(DEFAULT_PROGRAM_NAME,
op);
435#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
TokenRefCount< Token > RefToken
Definition TokenRefCount.hpp:92
Definition RefCount.hpp:17
Definition TokenStreamRewriteEngine.hpp:178
DeleteOp(size_t from, size_t to)
Definition TokenStreamRewriteEngine.hpp:180
virtual const char * type() const
Definition TokenStreamRewriteEngine.hpp:184
Definition TokenStreamRewriteEngine.hpp:141
virtual const char * type() const
Definition TokenStreamRewriteEngine.hpp:153
virtual ~InsertBeforeOp()
Definition TokenStreamRewriteEngine.hpp:147
virtual size_t execute(std ::ostream &out)
Definition TokenStreamRewriteEngine.hpp:148
InsertBeforeOp(size_t index, const std ::string &text)
Definition TokenStreamRewriteEngine.hpp:143
Definition TokenStreamRewriteEngine.hpp:159
virtual ~ReplaceOp()
Definition TokenStreamRewriteEngine.hpp:166
ReplaceOp(size_t from, size_t to, std ::string text)
Definition TokenStreamRewriteEngine.hpp:161
virtual const char * type() const
Definition TokenStreamRewriteEngine.hpp:171
size_t lastIndex
Definition TokenStreamRewriteEngine.hpp:175
virtual size_t execute(std ::ostream &out)
Definition TokenStreamRewriteEngine.hpp:167
Definition TokenStreamRewriteEngine.hpp:100
virtual size_t getIndex() const
Definition TokenStreamRewriteEngine.hpp:116
virtual size_t execute(std ::ostream &)
Definition TokenStreamRewriteEngine.hpp:113
std::string text
Definition TokenStreamRewriteEngine.hpp:124
virtual const char * type() const
Definition TokenStreamRewriteEngine.hpp:119
virtual ~RewriteOperation()
Definition TokenStreamRewriteEngine.hpp:107
RewriteOperation(size_t idx, const std ::string &txt)
Definition TokenStreamRewriteEngine.hpp:102
size_t index
Definition TokenStreamRewriteEngine.hpp:123
Definition TokenStreamRewriteEngine.hpp:78
RefToken getToken(size_t i)
Definition TokenStreamRewriteEngine.hpp:339
void replace(size_t from, size_t to, const std ::string &text)
Definition TokenStreamRewriteEngine.hpp:270
void rollback(const std ::string &programName, size_t instructionIndex)
void insertBefore(const std ::string &programName, size_t index, const std ::string &text)
Definition TokenStreamRewriteEngine.hpp:258
static const char * DEFAULT_PROGRAM_NAME
Definition TokenStreamRewriteEngine.hpp:81
std ::vector< antlr::RefTokenWithIndex > token_list
Definition TokenStreamRewriteEngine.hpp:80
void replace(size_t index, const std ::string &text)
Definition TokenStreamRewriteEngine.hpp:265
void remove(size_t from, size_t to)
Definition TokenStreamRewriteEngine.hpp:311
program_map programs
Definition TokenStreamRewriteEngine.hpp:429
void addToSortedRewriteList(RewriteOperation *op)
Definition TokenStreamRewriteEngine.hpp:409
BitSet discardMask
Definition TokenStreamRewriteEngine.hpp:432
static const size_t MIN_TOKEN_INDEX
Definition TokenStreamRewriteEngine.hpp:83
void insertAfter(RefTokenWithIndex t, const std ::string &text)
Definition TokenStreamRewriteEngine.hpp:215
void discard(int ttype)
Definition TokenStreamRewriteEngine.hpp:335
size_t getTokenStreamSize() const
Definition TokenStreamRewriteEngine.hpp:344
void replace(RefTokenWithIndex indexT, const std ::string &text)
Definition TokenStreamRewriteEngine.hpp:276
void originalToStream(std ::ostream &out) const
Definition TokenStreamRewriteEngine.hpp:348
token_list tokens
Definition TokenStreamRewriteEngine.hpp:423
std ::map< std ::string, operation_list > program_map
map program name to <program counter,program> tuple
Definition TokenStreamRewriteEngine.hpp:138
void addToSortedRewriteList(const std ::string &programName, RewriteOperation *op)
TokenStream & stream
Definition TokenStreamRewriteEngine.hpp:418
static const int PROGRAM_INIT_SIZE
Definition TokenStreamRewriteEngine.hpp:84
void rollback(size_t instructionIndex)
Definition TokenStreamRewriteEngine.hpp:195
void remove(const std ::string &programName, RefTokenWithIndex from, RefTokenWithIndex to)
Definition TokenStreamRewriteEngine.hpp:329
void insertAfter(const std ::string &programName, size_t index, const std ::string &text)
Definition TokenStreamRewriteEngine.hpp:232
void remove(RefTokenWithIndex indexT)
Definition TokenStreamRewriteEngine.hpp:315
void replace(const std ::string &programName, RefTokenWithIndex from, RefTokenWithIndex to, const std ::string &text)
Definition TokenStreamRewriteEngine.hpp:296
void insertBefore(const std ::string &programName, RefTokenWithIndex t, const std ::string &text)
Definition TokenStreamRewriteEngine.hpp:251
void toStream(std ::ostream &out, const std ::string &programName, size_t firstToken, size_t lastToken) const
void insertBefore(size_t index, const std ::string &text)
Definition TokenStreamRewriteEngine.hpp:247
void insertAfter(size_t index, const std ::string &text)
Definition TokenStreamRewriteEngine.hpp:221
void toStream(std ::ostream &out) const
Definition TokenStreamRewriteEngine.hpp:355
void replace(RefTokenWithIndex from, RefTokenWithIndex to, const std ::string &text)
Definition TokenStreamRewriteEngine.hpp:282
void deleteProgram()
Definition TokenStreamRewriteEngine.hpp:206
void toDebugStream(std ::ostream &out) const
Definition TokenStreamRewriteEngine.hpp:375
size_t index
Definition TokenStreamRewriteEngine.hpp:420
void insertAfter(const std ::string &programName, RefTokenWithIndex t, const std ::string &text)
Definition TokenStreamRewriteEngine.hpp:225
void insertBefore(RefTokenWithIndex t, const std ::string &text)
Definition TokenStreamRewriteEngine.hpp:240
void remove(RefTokenWithIndex from, RefTokenWithIndex to)
Definition TokenStreamRewriteEngine.hpp:319
void remove(size_t index)
Definition TokenStreamRewriteEngine.hpp:307
void replace(const std ::string &programName, size_t from, size_t to, const std ::string &text)
Definition TokenStreamRewriteEngine.hpp:289
void originalToStream(std ::ostream &out, size_t start, size_t end) const
size_t getLastRewriteTokenIndex() const
Definition TokenStreamRewriteEngine.hpp:382
void toStream(std ::ostream &out, const std ::string &programName) const
Definition TokenStreamRewriteEngine.hpp:359
void toDebugStream(std ::ostream &out, size_t start, size_t end) const
std ::list< RewriteOperation * > operation_list
list of rewrite operations
Definition TokenStreamRewriteEngine.hpp:136
void toStream(std ::ostream &out, size_t start, size_t end) const
Definition TokenStreamRewriteEngine.hpp:365
size_t getLastRewriteTokenIndex(const std ::string &programName) const
Definition TokenStreamRewriteEngine.hpp:390
void deleteProgram(const std ::string &programName)
Definition TokenStreamRewriteEngine.hpp:211
void remove(const std ::string &programName, size_t from, size_t to)
Definition TokenStreamRewriteEngine.hpp:323
Definition TokenStream.hpp:22
#define ANTLR_USE_NAMESPACE(_x_)
Definition config.hpp:18
Definition ANTLRException.hpp:15
Definition TokenStreamRewriteEngine.hpp:127
std::ostream & out
Definition TokenStreamRewriteEngine.hpp:128
executeOperation(std ::ostream &s)
Definition TokenStreamRewriteEngine.hpp:129
Definition TokenStreamRewriteEngine.hpp:92
std::ostream & out
Definition TokenStreamRewriteEngine.hpp:97
tokenToStream(std ::ostream &o)
Definition TokenStreamRewriteEngine.hpp:93