878f647fcf1441be0a7ac12b2d4dd227a6491650
[external/ragel.git] / rlcodegen / javacodegen.h
1 /*
2  *  Copyright 2006 Adrian Thurston <thurston@cs.queensu.ca>
3  */
4
5 /*  This file is part of Ragel.
6  *
7  *  Ragel is free software; you can redistribute it and/or modify
8  *  it under the terms of the GNU General Public License as published by
9  *  the Free Software Foundation; either version 2 of the License, or
10  *  (at your option) any later version.
11  * 
12  *  Ragel is distributed in the hope that it will be useful,
13  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  *  GNU General Public License for more details.
16  * 
17  *  You should have received a copy of the GNU General Public License
18  *  along with Ragel; if not, write to the Free Software
19  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
20  */
21
22 #ifndef _JAVACODEGEN_H
23 #define _JAVACODEGEN_H
24
25 #include "tabcodegen.h"
26
27 /*
28  * JavaTabCodeGen
29  */
30 struct JavaTabCodeGen
31         : public TabCodeGen, public JavaCodeGen
32 {
33         void BREAK( ostream &ret, int targState );
34         void GOTO( ostream &ret, int gotoDest, bool inFinish );
35         void GOTO_EXPR( ostream &ret, InlineItem *ilItem, bool inFinish );
36         void CALL( ostream &ret, int callDest, int targState, bool inFinish );
37         void CALL_EXPR( ostream &ret, InlineItem *ilItem, int targState, bool inFinish );
38         void RET( ostream &ret, bool inFinish );
39
40         void COND_TRANSLATE();
41         void LOCATE_TRANS();
42         virtual void writeOutExec();
43         virtual void writeOutEOF();
44 };
45
46
47 #endif