"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "ragel/gendata.cpp" between
ragel-6.9.tar.gz and ragel-6.10.tar.gz

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

gendata.cpp  (ragel-6.9):gendata.cpp  (ragel-6.10)
skipping to change at line 453 skipping to change at line 453
actExpr(0), actExpr(0),
tokstartExpr(0), tokstartExpr(0),
tokendExpr(0), tokendExpr(0),
dataExpr(0), dataExpr(0),
wantComplete(true), wantComplete(true),
hasLongestMatch(false), hasLongestMatch(false),
noEnd(false), noEnd(false),
noPrefix(false), noPrefix(false),
noFinal(false), noFinal(false),
noError(false), noError(false),
noEntry(false),
noCS(false) noCS(false)
{} {}
void CodeGenData::createMachine() void CodeGenData::createMachine()
{ {
redFsm = new RedFsmAp(); redFsm = new RedFsmAp();
} }
void CodeGenData::initActionList( unsigned long length ) void CodeGenData::initActionList( unsigned long length )
{ {
skipping to change at line 834 skipping to change at line 835
{ {
for ( GenInlineList::Iter item = *inlineList; item.lte(); item++ ) { for ( GenInlineList::Iter item = *inlineList; item.lte(); item++ ) {
/* Only consider actions that are referenced. */ /* Only consider actions that are referenced. */
if ( act->numRefs() > 0 ) { if ( act->numRefs() > 0 ) {
if ( item->type == GenInlineItem::Goto || item->type == G enInlineItem::GotoExpr ) if ( item->type == GenInlineItem::Goto || item->type == G enInlineItem::GotoExpr )
redFsm->bAnyActionGotos = true; redFsm->bAnyActionGotos = true;
else if ( item->type == GenInlineItem::Call || item->type == GenInlineItem::CallExpr ) else if ( item->type == GenInlineItem::Call || item->type == GenInlineItem::CallExpr )
redFsm->bAnyActionCalls = true; redFsm->bAnyActionCalls = true;
else if ( item->type == GenInlineItem::Ret ) else if ( item->type == GenInlineItem::Ret )
redFsm->bAnyActionRets = true; redFsm->bAnyActionRets = true;
if ( item->type == GenInlineItem::CallExpr || item->type
== GenInlineItem::GotoExpr )
redFsm->bAnyActionByValControl = true;
} }
/* Check for various things in regular actions. */ /* Check for various things in regular actions. */
if ( act->numTransRefs > 0 || act->numToStateRefs > 0 || act->num FromStateRefs > 0 ) { if ( act->numTransRefs > 0 || act->numToStateRefs > 0 || act->num FromStateRefs > 0 ) {
/* Any returns in regular actions? */ /* Any returns in regular actions? */
if ( item->type == GenInlineItem::Ret ) if ( item->type == GenInlineItem::Ret )
redFsm->bAnyRegActionRets = true; redFsm->bAnyRegActionRets = true;
/* Any next statements in the regular actions? */ /* Any next statements in the regular actions? */
if ( item->type == GenInlineItem::Next || item->type == G enInlineItem::NextExpr ) if ( item->type == GenInlineItem::Next || item->type == G enInlineItem::NextExpr )
skipping to change at line 1074 skipping to change at line 1079
genLineDirective( out ); genLineDirective( out );
followLineDirective = true; followLineDirective = true;
for ( int i = 1; i < nargs; i++ ) { for ( int i = 1; i < nargs; i++ ) {
if ( strcmp( args[i], "noerror" ) == 0 ) if ( strcmp( args[i], "noerror" ) == 0 )
noError = true; noError = true;
else if ( strcmp( args[i], "noprefix" ) == 0 ) else if ( strcmp( args[i], "noprefix" ) == 0 )
noPrefix = true; noPrefix = true;
else if ( strcmp( args[i], "nofinal" ) == 0 ) else if ( strcmp( args[i], "nofinal" ) == 0 )
noFinal = true; noFinal = true;
else if ( strcmp( args[i], "noentry" ) == 0 )
noEntry = true;
else else
write_option_error( loc, args[i] ); write_option_error( loc, args[i] );
} }
writeData(); writeData();
} }
else if ( strcmp( args[0], "init" ) == 0 ) { else if ( strcmp( args[0], "init" ) == 0 ) {
out << '\n'; out << '\n';
genLineDirective( out ); genLineDirective( out );
followLineDirective = true; followLineDirective = true;
 End of changes. 3 change blocks. 
0 lines changed or deleted 8 lines changed or added

Home  |  About  |  All  |  Newest  |  Fossies Dox  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTPS