Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

ccodegeneratorvisitor.h

Go to the documentation of this file.
00001 #ifndef C_CODE_GENERATOR_VISITOR_H
00002 #define C_CODE_GENERATOR_VISITOR_H
00003 
00004 #include "visitor.h"
00005 #include <fstream>
00006 #include <iostream>
00007 #include <map>
00008 #include <string>
00009 #include <sstream>
00010 using namespace std;
00011 
00012 class CCodeGeneratorVisitor : public Visitor {
00013         private:
00015                 ofstream cFile;
00016                 ofstream hFile;
00017                 
00018         public:
00019                 virtual ~CCodeGeneratorVisitor() {
00020                         if (this->cFile.is_open())
00021                                 this->cFile.close();
00022 
00023                         if (this->hFile.is_open())
00024                                 this->hFile.close();
00025                 }
00026 
00027                 VisitorReturn *visitAction(Action *action);
00028                 VisitorReturn *visitActStatement(ActStatement *actStatement);
00029                 VisitorReturn *visitArrayReference(ArrayReference *arrayReference);
00030                 VisitorReturn *visitArrayType(ArrayType *arrayType);
00031                 VisitorReturn *visitAssignStatement(AssignStatement *assignStatement);
00032                 VisitorReturn *visitAst(Ast *ast);
00033                 VisitorReturn *visitBehavior(Behavior *behavior);
00034                 VisitorReturn *visitBehaviorStatement(BehaviorStatement *behaviorStatement);
00035                 VisitorReturn *visitBinaryExpression(BinaryExpression *binaryExpression);
00036                 VisitorReturn *visitDeclaration(Declaration *declaration);
00037                 VisitorReturn *visitDoStatement(DoStatement *doStatement);
00038                 VisitorReturn *visitExpression(Expression *expression);
00039                 VisitorReturn *visitExpressionList(ExpressionList *expressionList);
00040                 VisitorReturn *visitFieldDeclaration(FieldDeclaration *fieldDeclaration);
00041                 VisitorReturn *visitFieldReference(FieldReference *fieldReference);
00042                 VisitorReturn *visitFieldType(FieldType *fieldType);
00043                 VisitorReturn *visitGuard(Guard *guard);
00044                 VisitorReturn *visitGuardedStatement(GuardedStatement *guardedStatement);
00045                 VisitorReturn *visitGuardExpression(GuardExpression *guardExpression);
00046                 VisitorReturn *visitGuardReceive(GuardReceive *guardReceive);
00047                 VisitorReturn *visitGuardTimeout(GuardTimeout *guardTimeout);
00048                 VisitorReturn *visitIdentifier(Identifier *identifier);
00049                 VisitorReturn *visitIdentifierList(IdentifierList *identifierList);
00050                 VisitorReturn *visitIfStatement(IfStatement *ifStatement);
00051                 VisitorReturn *visitImport(Import *import);
00052                 VisitorReturn *visitIntegerLiteral(IntegerLiteral *integerLiteral);
00053                 VisitorReturn *visitLeftSide(LeftSide *leftSide);
00054                 VisitorReturn *visitLeftSideList(LeftSideList *leftSideList);
00055                 VisitorReturn *visitMessage(Message *message);
00056                 VisitorReturn *visitMultipleArrayReference(MultipleArrayReference *multipleArrayReference);
00057                 VisitorReturn *visitProcess(Process *process);
00058                 VisitorReturn *visitProgram(Program *program);
00059                 VisitorReturn *visitRangeType(RangeType *rangeType);
00060                 VisitorReturn *visitReceiveStatement(ReceiveStatement *receiveStatement);
00061                 VisitorReturn *visitSendStatement(SendStatement *sendStatement);
00062                 VisitorReturn *visitSequentialAction(SequentialAction *sequentialAction);
00063                 VisitorReturn *visitSequentialBehavior(SequentialBehavior *sequentialBehavior);
00064                 VisitorReturn *visitSequentialDeclaration(SequentialDeclaration *sequentialDeclaration);
00065                 VisitorReturn *visitSequentialExpressionList(SequentialExpressionList *sequentialExpressionList);
00066                 VisitorReturn *visitSequentialFieldDeclaration(SequentialFieldDeclaration *sequentialFieldDeclaration);
00067                 VisitorReturn *visitSequentialGuardedStatement(SequentialGuardedStatement *sequentialGuardedStatement);
00068                 VisitorReturn *visitSequentialIdentifierList(SequentialIdentifierList *sequentialIdentifierList);
00069                 VisitorReturn *visitSequentialImport(SequentialImport *sequentialImport);
00070                 VisitorReturn *visitSequentialLeftSideList(SequentialLeftSideList *sequentialLeftSideList);
00071                 VisitorReturn *visitSequentialMessage(SequentialMessage *sequentialMessage);
00072                 VisitorReturn *visitSequentialProcess(SequentialProcess *sequentialProcess);
00073                 VisitorReturn *visitSequentialStatement(SequentialStatement *sequentialStatement);
00074                 VisitorReturn *visitSimpleAction(SimpleAction *simpleAction);
00075                 VisitorReturn *visitSimpleArrayReference(SimpleArrayReference *simpleArrayReference);
00076                 VisitorReturn *visitSimpleBehavior(SimpleBehavior *simpleBehavior);
00077                 VisitorReturn *visitSimpleDeclaration(SimpleDeclaration *simpleDeclaration);
00078                 VisitorReturn *visitSimpleExpressionList(SimpleExpressionList *simpleExpressionList);
00079                 VisitorReturn *visitSimpleFieldDeclaration(SimpleFieldDeclaration *simpleFieldDeclaration);
00080                 VisitorReturn *visitSimpleGuardedStatement(SimpleGuardedStatement *simpleGuardedStatement);
00081                 VisitorReturn *visitSimpleIdentifierList(SimpleIdentifierList *simpleIdentifierList);
00082                 VisitorReturn *visitSimpleImport(SimpleImport *simpleImport);
00083                 VisitorReturn *visitSimpleLeftSideList(SimpleLeftSideList *simpleLeftSideList);
00084                 VisitorReturn *visitSimpleMessage(SimpleMessage *simpleMessage);
00085                 VisitorReturn *visitSimpleProcess(SimpleProcess *simpleProcess);
00086                 VisitorReturn *visitSimpleStatement(SimpleStatement *simpleStatement);
00087                 VisitorReturn *visitSkipStatement(SkipStatement *skipStatement);
00088                 VisitorReturn *visitStartStatement(StartStatement *startStatement);
00089                 VisitorReturn *visitStatement(Statement *statement);
00090                 VisitorReturn *visitStopStatement(StopStatement *stopStatement);
00091                 VisitorReturn *visitStringLiteral(StringLiteral *stringLiteral);
00092                 VisitorReturn *visitType(Type *type);
00093                 VisitorReturn *visitUnaryExpression(UnaryExpression *unaryExpression);
00094 };
00095 
00096 #endif

Generated on Mon Dec 1 17:00:22 2003 for Protomake by doxygen1.3