00001 /* 00002 * Copyright (C) 2008 Kamil Dudka <xdudka00@stud.fit.vutbr.cz> 00003 * 00004 * This file is part of vyp08 (compiler and interpreter of VYP08 language). 00005 * 00006 * vyp08 is free software: you can redistribute it and/or modify 00007 * it under the terms of the GNU General Public License as published by 00008 * the Free Software Foundation, either version 3 of the License, or 00009 * any later version. 00010 * 00011 * vyp08 is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 * GNU General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU General Public License 00017 * along with vyp08. If not, see <http://www.gnu.org/licenses/>. 00018 */ 00019 00020 #ifndef BUILDER_H 00021 #define BUILDER_H 00022 00023 #include "config.h" 00024 00025 #ifndef BUILDING_DOX 00026 # include <string> 00027 #endif 00028 00029 class IBuilder; 00030 class Vm; 00031 00035 class BuilderFactory { 00036 public: 00042 static IBuilder* createBuilder(Vm *vm); 00043 private: 00044 BuilderFactory(); 00045 }; 00046 00047 class FncDeclaration; 00048 class FncDefinition; 00049 00053 class FncFactory { 00054 public: 00055 static bool initVm(Vm *); 00056 00057 FncFactory(Vm *vm); 00058 virtual ~FncFactory(); 00059 00060 FncDeclaration* createMainDecl(); 00061 FncDefinition* createPrint(); 00062 FncDefinition* createInputString(); 00063 FncDefinition* createInputInt(); 00064 FncDefinition* createInputDouble(); 00065 private: 00066 struct Private; 00067 Private *d; 00068 }; 00069 00070 #endif /* BUILDER_H */
1.5.4