From 469bbcf0701e1eb8a6670c23145b0da87357e178 Mon Sep 17 00:00:00 2001 From: Mike Buland Date: Sun, 25 Mar 2012 20:00:08 +0000 Subject: Code is all reorganized. We're about ready to release. I should write up a little explenation of the arrangement. --- src/regexengine.h | 142 ------------------------------------------------------ 1 file changed, 142 deletions(-) delete mode 100644 src/regexengine.h (limited to 'src/regexengine.h') diff --git a/src/regexengine.h b/src/regexengine.h deleted file mode 100644 index ec181c1..0000000 --- a/src/regexengine.h +++ /dev/null @@ -1,142 +0,0 @@ -#ifndef BU_REG_EX_ENGINE_H -#define BU_REG_EX_ENGINE_H - -#include "bu/sharedcore.h" -#include "bu/array.h" -#include "bu/sio.h" - -namespace Bu -{ - template class RegExEngine; - - template - class RegExEngineCore - { - friend class RegExEngine; - friend class SharedCore, RegExEngineCore >; - private: - RegExEngineCore() - { - } - - virtual ~RegExEngineCore() - { - } - - class Range - { - public: - Range( chr cLower, chr cUpper, int iTrgState ) : - cLower( cLower ), cUpper( cUpper ), iTrgState( iTrgState ) - { - } - - chr cLower; - chr cUpper; - int iTrgState; - }; - - class State - { - public: - Bu::Array aRange; - }; - - int addState() - { - aState.append( State() ); - return aState.getSize()-1; - } - - void addCompletion( int iState, chr cLower, chr cUpper, int iTrgState ) - { - aState[iState].aRange.append( Range( cLower, cUpper, iTrgState ) ); - } - - template - bool match( const str &sIn, int &iSize, int &iCompletion ) - { - bool bMatch; - int iState = 0; - iSize = 0; - for( typename str::const_iterator i = sIn.begin(); i; i++ ) - { - Bu::sio << "Finding char " << *i << " in state " << iState - << ":" << Bu::sio.nl; - bMatch = false; - for( typename Bu::Array::iterator j = - aState[iState].aRange.begin(); j; j++ ) - { - Bu::sio << " Testing range " << (*j).cLower << " - " << (*j).cUpper << Bu::sio.nl; - if( *i >= (*j).cLower && *i <= (*j).cUpper ) - { - iState = (*j).iTrgState; - bMatch = true; - iSize++; - if( iState < 0 ) - { - iCompletion = iState; - return true; - } - } - } - if( bMatch == false ) - { - return false; - } - } - - iCompletion = 0; - return true; - } - - typedef Bu::Array StateArray; - StateArray aState; - }; - - template - class RegExEngine : public SharedCore, - RegExEngineCore > - { - private: - typedef class RegExEngine MyType; - typedef class RegExEngineCore Core; - typedef class Core::Range Range; - typedef class Core::State State; - - protected: - using SharedCore::core; - using SharedCore::_hardCopy; - using SharedCore::_resetCore; - using SharedCore::_allocateCore; - - public: - RegExEngine() - { - } - - virtual ~RegExEngine() - { - } - - int addState() - { - return core->addState(); - } - - void addCompletion( int iState, chr cLower, chr cUpper, int iTrgState ) - { - core->addCompletion( iState, cLower, cUpper, iTrgState ); - } - - template - bool match( const str &sIn, int &iSize, int &iCompletion ) - { - return core->match( sIn, iSize, iCompletion ); - } - - private: - }; -}; - -#endif -- cgit v1.2.3