diff options
author | Adrian Thurston <thurston@complang.org> | 2011-12-30 01:06:26 +0000 |
---|---|---|
committer | Adrian Thurston <thurston@complang.org> | 2011-12-30 01:06:26 +0000 |
commit | 63b74beec0dea0beeba7e59db0051c7475492480 (patch) | |
tree | e775550e0f684b86914a7a417607773ee957a01a /colm | |
parent | be118dc513c5e9b5a83bdd6a0cef00f13a055e4e (diff) | |
download | colm-63b74beec0dea0beeba7e59db0051c7475492480.tar.gz |
Don't need the push back of full buffers in the input interface since we are no
longer sharing data. refs #340 #341.
Diffstat (limited to 'colm')
-rw-r--r-- | colm/ctinput.cc | 2 | ||||
-rw-r--r-- | colm/input.c | 27 | ||||
-rw-r--r-- | colm/input.h | 2 | ||||
-rw-r--r-- | colm/pdarun.c | 18 |
4 files changed, 2 insertions, 47 deletions
diff --git a/colm/ctinput.cc b/colm/ctinput.cc index 84f33f52..251f6611 100644 --- a/colm/ctinput.cc +++ b/colm/ctinput.cc @@ -209,7 +209,6 @@ extern "C" void initPatternFuncs() patternFuncs.isLangEl = &inputStreamPatternIsLangEl; patternFuncs.isEof = &inputStreamPatternIsEof; patternFuncs.getLangEl = &inputStreamPatternGetLangEl; - patternFuncs.pushBackBuf = &inputStreamPatternPushBackBuf; patternFuncs.pushBackNamed = &inputStreamPatternPushBackNamed; } @@ -365,7 +364,6 @@ extern "C" void initReplFuncs() replFuncs.isLangEl = &inputStreamReplIsLangEl; replFuncs.isEof = &inputStreamReplIsEof; replFuncs.getLangEl = &inputStreamReplGetLangEl; - replFuncs.pushBackBuf = &inputStreamReplPushBackBuf; replFuncs.pushBackNamed = &inputStreamReplPushBackNamed; replFuncs.consumeData = &inputStreamReplConsumeData; } diff --git a/colm/input.c b/colm/input.c index 6d0fa05f..76aa43c6 100644 --- a/colm/input.c +++ b/colm/input.c @@ -336,7 +336,7 @@ void inputStreamDynamicPushText( SourceStream *is, const char *data, long length newBuf->length = length; memcpy( newBuf->data, data, length ); - is->funcs->pushBackBuf( is, newBuf ); + inputStreamPrepend( is, newBuf ); } void inputStreamDynamicPushTree( SourceStream *is, Tree *tree, int ignore ) @@ -432,27 +432,16 @@ int inputStreamFileGetDataImpl( SourceStream *is, char *dest, int length ) return res; } -void inputStreamFilePushBackBuf( SourceStream *is, RunBuf *runBuf ) -{ - inputStreamPrepend( is, runBuf ); -} - void initFileFuncs() { memcpy( &fileFuncs, &dynamicFuncs, sizeof(struct SourceFuncs) ); fileFuncs.getDataImpl = &inputStreamFileGetDataImpl; - fileFuncs.pushBackBuf = &inputStreamFilePushBackBuf; } /* * FD */ -void inputStreamFdPushBackBuf( SourceStream *is, RunBuf *runBuf ) -{ - inputStreamPrepend( is, runBuf ); -} - int inputStreamFdGetDataImpl( SourceStream *is, char *dest, int length ) { long got = read( is->fd, dest, length ); @@ -465,7 +454,6 @@ void initFdFuncs() { memcpy( &fdFuncs, &dynamicFuncs, sizeof(struct SourceFuncs) ); fdFuncs.getDataImpl = &inputStreamFdGetDataImpl; - fdFuncs.pushBackBuf = &inputStreamFdPushBackBuf; } /* @@ -861,7 +849,7 @@ void pushText( InputStream *is, const char *data, long length ) newBuf->length = length; memcpy( newBuf->data, data, length ); - pushBackBuf( is, newBuf ); + inputStreamPrepend2( is, newBuf ); } } @@ -968,14 +956,3 @@ Tree *undoAppend( InputStream *is, int length ) } } } - -void pushBackBuf( InputStream *is, RunBuf *runBuf ) -{ - if ( isSourceStream( is ) ) { - Stream *stream = (Stream*)is->queue->tree; - stream->in->funcs->pushBackBuf( stream->in, runBuf ); - } - else { - inputStreamPrepend2( is, runBuf ); - } -} diff --git a/colm/input.h b/colm/input.h index 94a38b47..b87e9a60 100644 --- a/colm/input.h +++ b/colm/input.h @@ -102,7 +102,6 @@ struct SourceFuncs struct ColmTree *(*undoPush)( SourceStream *is, int length ); struct ColmTree *(*undoAppend)( SourceStream *is, int length ); void (*pushBackNamed)( SourceStream *is ); - void (*pushBackBuf)( SourceStream *is, RunBuf *runBuf ); }; extern struct SourceFuncs baseFuncs; @@ -217,7 +216,6 @@ void appendStream( InputStream *in, struct ColmTree *tree ); struct ColmTree *undoAppend( InputStream *in, int length ); struct ColmTree *undoAppendStream( InputStream *in ); void pushBackNamed( InputStream *in ); -void pushBackBuf( InputStream *in, RunBuf *runBuf ); RunBuf *inputStreamPopHead2( InputStream *is ); diff --git a/colm/pdarun.c b/colm/pdarun.c index b89b8bef..77607a05 100644 --- a/colm/pdarun.c +++ b/colm/pdarun.c @@ -132,24 +132,6 @@ void decrementSteps( PdaRun *pdaRun ) debug( REALM_PARSE, "steps down to %ld\n", pdaRun->steps ); } -void sendBackBuffered( FsmRun *fsmRun, InputStream *inputStream ) -{ - if ( fsmRun->runBuf != 0 && fsmRun->pe - fsmRun->p > 0 ) { - debug( REALM_PARSE, "taking back buffered fsmRun: %p input stream: %p\n", fsmRun, inputStream ); - - RunBuf *split = newRunBuf(); - memcpy( split->data, fsmRun->p, fsmRun->pe - fsmRun->p ); - - split->length = fsmRun->pe - fsmRun->p; - split->offset = 0; - split->next = 0; - - fsmRun->pe = fsmRun->p; - - pushBackBuf( inputStream, split ); - } -} - /* Load up a token, starting from tokstart if it is set. If not set then * start it at data. */ Head *streamPull( Program *prg, FsmRun *fsmRun, InputStream *inputStream, long length ) |