diff options
Diffstat (limited to 'gui/eval.h')
-rw-r--r-- | gui/eval.h | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/gui/eval.h b/gui/eval.h deleted file mode 100644 index 47c8313903..0000000000 --- a/gui/eval.h +++ /dev/null @@ -1,125 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#ifndef GUI_EVAL_H -#define GUI_EVAL_H - -#include "common/str.h" -#include "common/hashmap.h" -#include "common/hash-str.h" - -namespace GUI { - -using Common::String; -using Common::HashMap; - -enum { - EVAL_UNDEF_VAR = -13375, - EVAL_STRING_VAR = -13376 -}; - -class Eval { -public: - Eval(); - ~Eval(); - - int eval(const String &input, const String §ion, const String &name, int startpos); - void setVar(const String §ion, const String &name, const String &value); - - void setParent(const String &name); - - void setVar(const String &name, int val) { _vars[name] = val; } - void setStringVar(const String &name, const String &val) { _strings[name] = val; } - void setAlias(const Common::String &name, const String &val) { _aliases[name] = val; } - - int getVar(const Common::String &s) { return getVar_(s); } - int getVar(const Common::String &s, int def) { - int val = getVar_(s); - return (val == EVAL_UNDEF_VAR) ? def : val; - } - - const String &getStringVar(const Common::String &name) { return _strings[name]; } - - uint getNumVars() { return _vars.size(); } - - void reset(); - - char *lastToken() { return _token; } - - typedef HashMap<String, int> VariablesMap; - typedef HashMap<String, String> AliasesMap; - typedef HashMap<String, String> StringsMap; - -private: - enum TokenTypes { - tNone, - tDelimiter, - tVariable, - tNumber, - tString - }; - - enum EvalErrors { - eSyntaxError, - eExtraBracket, - eUnclosedBracket, - eBadExpr, - eUndefVar, - eMissingQuote - }; - - - void getToken(); - void level2(int *); - void level3(int *); - void level4(int *); - void level5(int *); - void primitive(int *); - void arith(char op, int *r, int *h); - void unary(char op, int *r); - void exprError(EvalErrors error); - int getVar_(const Common::String &s, bool includeAliases = true); - int getBuiltinVar(const char *s); - void loadConstants(); - - char _input[256]; - String _section; - String _name; - - int _startpos; - - TokenTypes _tokenType; - int _pos; - - char _token[256]; - - AliasesMap _aliases; - VariablesMap _vars; - StringsMap _strings; -}; - -} // end of namespace GUI - -#endif |