return out;
}
+void JavaTabCodeGen::writeExports()
+{
+ if ( exportList.length() > 0 ) {
+ for ( ExportList::Iter ex = exportList; ex.lte(); ex++ ) {
+ STATIC_VAR( ALPH_TYPE(), DATA_PREFIX() + ex->name )
+ << " = " << KEY(ex->key) << "\n";
+ }
+ out << "\n";
+ }
+}
void JavaTabCodeGen::writeData()
{
"\n";
}
- STATIC_VAR( "int", START() ) << " = " << START_STATE_ID() << ";\n"
- "\n";
+ STATIC_VAR( "int", START() ) << " = " << START_STATE_ID() << ";\n";
- if ( writeFirstFinal ) {
- STATIC_VAR( "int" , FIRST_FINAL() ) << " = " << FIRST_FINAL_STATE() << ";\n"
- "\n";
- }
+ if ( writeFirstFinal )
+ STATIC_VAR( "int" , FIRST_FINAL() ) << " = " << FIRST_FINAL_STATE() << ";\n";
- if ( writeErr ) {
- STATIC_VAR( "int", ERROR() ) << " = " << ERROR_STATE() << ";\n"
- "\n";
- }
+ if ( writeErr )
+ STATIC_VAR( "int", ERROR() ) << " = " << ERROR_STATE() << ";\n";
+ out << "\n";
+
+ if ( entryPointNames.length() > 0 ) {
+ for ( EntryNameVect::Iter en = entryPointNames; en.lte(); en++ ) {
+ STATIC_VAR( "int", DATA_PREFIX() + "en_" + *en ) <<
+ " = " << entryPointIds[en.pos()] << ";\n";
+ }
+ out << "\n";
+ }
}
void JavaTabCodeGen::writeExec()
virtual void writeEOF();
virtual void writeData();
virtual void writeInit();
+ virtual void writeExports();
virtual void finishRagelDef();
void NEXT( ostream &ret, int nextDest, bool inFinish );
/*
- * Copyright 2001-2005 Adrian Thurston <thurston@cs.queensu.ca>
+ * Copyright 2001-2007 Adrian Thurston <thurston@cs.queensu.ca>
*/
/* This file is part of Ragel.
return out;
}
+void RubyCodeGen::writeExports()
+{
+ if ( exportList.length() > 0 ) {
+ for ( ExportList::Iter ex = exportList; ex.lte(); ex++ ) {
+ STATIC_VAR( ALPH_TYPE(), DATA_PREFIX() + ex->name )
+ << " = " << KEY(ex->key) << "\n";
+ }
+ out << "\n";
+ }
+}
+
void RubyCodeGen::writeData()
{
"\n";
}
- STATIC_VAR( "int", START() ) << " = " << START_STATE_ID() << ";\n"
- "\n";
+ STATIC_VAR( "int", START() ) << " = " << START_STATE_ID() << ";\n";
- if ( writeFirstFinal ) {
- STATIC_VAR( "int" , FIRST_FINAL() ) << " = " << FIRST_FINAL_STATE() << ";\n"
- "\n";
- }
+ if ( writeFirstFinal )
+ STATIC_VAR( "int" , FIRST_FINAL() ) << " = " << FIRST_FINAL_STATE() << ";\n";
- if ( writeErr ) {
- STATIC_VAR( "int", ERROR() ) << " = " << ERROR_STATE() << ";\n"
- "\n";
- }
+ if ( writeErr )
+ STATIC_VAR( "int", ERROR() ) << " = " << ERROR_STATE() << ";\n";
+ out << "\n";
+
+ if ( entryPointNames.length() > 0 ) {
+ for ( EntryNameVect::Iter en = entryPointNames; en.lte(); en++ ) {
+ STATIC_VAR( "int", DATA_PREFIX() + "en_" + *en ) <<
+ " = " << entryPointIds[en.pos()] << ";\n";
+ }
+ out << "\n";
+ }
}
std::ostream &RubyCodeGen::START_ARRAY_LINE()
virtual void writeEOF();
virtual void writeInit();
virtual void writeData();
+ virtual void writeExports();
virtual void finishRagelDef();
protected: