"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/flatloop.h" between
ragel-7.0.0.10.tar.gz and ragel-7.0.0.11.tar.gz

About: Ragel compiles executable finite state machines from regular languages (C, C++, Obj-C, C#, D, Java, Go and Ruby). Development version.

flatloop.h  (ragel-7.0.0.10):flatloop.h  (ragel-7.0.0.11)
/* /*
* Copyright 2004-2014 Adrian Thurston <thurston@colm.net> * Copyright 2018-2018 Adrian Thurston <thurston@colm.net>
* *
* Permission is hereby granted, free of charge, to any person obtaining a copy * Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to * of this software and associated documentation files (the "Software"), to
* deal in the Software without restriction, including without limitation the * deal in the Software without restriction, including without limitation the
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the Software is * sell copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions: * furnished to do so, subject to the following conditions:
* *
* The above copyright notice and this permission notice shall be included in al l * The above copyright notice and this permission notice shall be included in al l
* copies or substantial portions of the Software. * copies or substantial portions of the Software.
* *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE. * SOFTWARE.
*/ */
#ifndef _FLATLOOP_H #ifndef RAGEL_FLATGOTO_H
#define _FLATLOOP_H #define RAGEL_FLATGOTO_H
#include <iostream>
#include "flat.h" #include "flat.h"
#include "actloop.h"
#include "actexp.h"
/* Forwards. */ struct FlatGoto
struct CodeGenData; :
struct NameInst; public Flat, public TabGoto
struct RedTransAp;
struct RedStateAp;
class FlatLoopGoto
: public Flat
{ {
public: FlatGoto( const CodeGenArgs &args, Flat::Type type )
FlatLoopGoto( const CodeGenArgs &args ) :
: Flat(args) {} Tables( args ),
Flat( args, type ),
void tableDataPass(); TabGoto( args )
{}
virtual void genAnalysis();
virtual void writeData();
virtual void writeExec();
protected:
std::ostream &TO_STATE_ACTION_SWITCH();
std::ostream &FROM_STATE_ACTION_SWITCH();
std::ostream &EOF_ACTION_SWITCH();
std::ostream &ACTION_SWITCH();
virtual void TO_STATE_ACTION( RedStateAp *state );
virtual void FROM_STATE_ACTION( RedStateAp *state );
virtual void EOF_ACTION( RedStateAp *state );
virtual void COND_ACTION( RedCondPair *cond );
virtual void NFA_PUSH_ACTION( RedNfaTarg *targ ); void COND_BIN_SEARCH( Variable &var, TableArray &keys, std::string ok, st
virtual void NFA_POP_TEST( RedNfaTarg *targ ); d::string error );
void LOCATE_TRANS();
};
virtual void NFA_FROM_STATE_ACTION_EXEC(); class FlatGotoLoop
: public FlatGoto, public ActLoop
{
public:
FlatGotoLoop( const CodeGenArgs &args )
:
Tables( args ),
FlatGoto( args, Flat::Loop ),
ActLoop( args )
{}
}; };
namespace C /*
* FlatGotoExp
*/
class FlatGotoExp
: public FlatGoto, public ActExp
{ {
class FlatLoopGoto public:
FlatGotoExp( const CodeGenArgs &args )
: :
public ::FlatLoopGoto Tables( args ),
{ FlatGoto( args, Flat::Exp ),
public: ActExp( args )
FlatLoopGoto( const CodeGenArgs &args ) {}
: ::FlatLoopGoto( args ) };
{}
};
}
#endif #endif
 End of changes. 11 change blocks. 
45 lines changed or deleted 40 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)