00001 /*******************************************************************\ 00002 00003 SESAME project software license 00004 00005 Copyright (C) 2002 University of Amsterdam 00006 00007 This program is free software; you can redistribute it and/or 00008 modify it under the terms of the GNU General Public License 00009 as published by the Free Software Foundation; either version 2 00010 of the License, or (at your option) any later version. 00011 00012 This program is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU General Public License for more details. 00016 00017 You should have received a copy of the GNU General Public License 00018 along with this program; if not, write to the Free Software 00019 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 00020 02111-1307, USA. 00021 00022 For information regarding the SESAME software project see 00023 http://sesamesim.sourceforge.net or email 00024 jcofflan@users.sourceforge.net 00025 00026 \*******************************************************************/ 00043 #ifndef PERLSCRIPTINTERPRETER_H 00044 #define PERLSCRIPTINTERPRETER_H 00045 00046 #include "interpreter.h" 00047 00048 struct interpreter; 00049 typedef struct interpreter PerlInterpreter; 00050 00051 00052 // Interpreter 00053 class PerlScriptInterpreter: public Interpreter { 00055 PerlInterpreter *my_perl; 00056 00058 bool started; 00059 00061 static PerlScriptInterpreter *singleton; 00062 00063 public: 00064 PerlScriptInterpreter(); 00065 virtual ~PerlScriptInterpreter(); 00066 00067 static PerlScriptInterpreter *getSingleton(); 00068 00069 virtual void start(); 00070 virtual void stop(); 00071 virtual void *define(const char *var, const char *value); 00072 virtual bool defined(const char *var); 00073 virtual void *eval(const char *script); 00074 virtual int toint(void *value); 00075 virtual const char *tostring(void *value); 00076 virtual double todouble(void *value); 00077 virtual bool tobool(void *value); 00078 virtual void upscope(); 00079 virtual void downscope(); 00080 }; 00081 #endif