/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /*************************************************************************** * resumeparser.cc * * Mon Oct 1 11:17:35 CEST 2007 * Copyright 2007 Bent Bisballe Nyeng * deva@aasimon.org ****************************************************************************/ /* * This file is part of Pracro. * * Pracro 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. * * Pracro 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 Pracro; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ #include "resumeparser.h" #include #include "luaresume.h" #include "configuration.h" std::string resume_parser(Macro ¯o, Commit &commit) { LUAResume luaresume(commit); std::string code; std::vector< Script >::iterator spi = macro.resume_scripts.begin(); while(spi != macro.resume_scripts.end()) { if(spi->attributes.find("src") != spi->attributes.end()) { std::string src = spi->attributes["src"]; std::string file = Conf::xml_basedir + "/include/" + src; FILE *fp = fopen(file.c_str(), "r"); if(fp) { char buf[64]; size_t sz; std::string inc; while((sz = fread(buf, 1, sizeof(buf), fp)) != 0) { inc.append(buf, sz); } fclose(fp); code += "\n-- BEGIN INCLUDE: '" + src + "'\n"; code += inc; code += "\n-- END INCLUDE: '" + src + "'\n"; } } else { code += spi->code; } spi++; } return luaresume.run(code); } #ifdef TEST_RESUMEPARSER //deps: luaresume.cc configuration.cc debug.cc log.cc luautil.cc //cflags: -I.. $(LUA_CFLAGS) //libs: $(LUA_LIBS) #include TEST_BEGIN; // TODO: Put some testcode here (see test.h for usable macros). TEST_TRUE(false, "No tests yet!"); TEST_END; #endif/*TEST_RESUMEPARSER*/