HyperspaceExplorer 0.7.1
|
00001 /* 00002 Hyperspace Explorer - visualizing higher-dimensional geometry 00003 Copyright (C) 2010 Lene Preuss <lene.preuss@gmail.com> 00004 00005 This program is free software; you can redistribute it and/or modify 00006 it under the terms of the GNU General Public License as published by 00007 the Free Software Foundation; either version 2 of the License, or 00008 (at your option) any later version. 00009 00010 This program is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License along 00016 with this program; if not, write to the Free Software Foundation, Inc., 00017 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 00018 00019 */ 00020 00021 #ifndef PARSER_H 00022 #define PARSER_H 00023 00024 #include "Parser.h" 00025 #include "View.h" 00026 00027 #include <string> 00028 #include <vector> 00029 #include <stdexcept> 00030 00031 //class UI::View; 00032 00034 namespace Script { 00035 00036 std::string strip_ws(const std::string &s); 00037 bool starts_with(const std::string &haystack, const std::string &needle); 00038 std::string leading(const std::string &haystack, const std::string &needle); 00039 std::string trailing(const std::string &haystack, const std::string &needle); 00040 00042 00046 class Parser { 00047 00048 public: 00050 Parser(const std::string &file); 00051 00053 bool execute(); 00054 00056 void setView(UI::View *view) { _view = view; } 00058 UI::View *getView() const { return _view; } 00059 00060 private: 00061 std::vector<std::string> _lines; 00062 UI::View *_view; 00063 }; 00064 00065 00066 } 00067 #endif