/* * puresli.cc * * This file is part of NEST. * * Copyright (C) 2004 The NEST Initiative * * NEST 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. * * NEST 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 NEST. If not, see <http://www.gnu.org/licenses/>. * */ /* SLI main */ #include "config.h" #include "interpret.h" #include "gnureadline.h" #include "slistartup.h" #include "sliarray.h" #include "oosupport.h" #include "processes.h" #include "sliregexp.h" #include "integerdatum.h" #include "tokenutils.h" #include "filesystem.h" int main(int argc, char *argv[]) { /** We disable synchronization between stdio and istd::ostreams this has to be done before any in- or output has been done. */ #ifdef __GNUC__ #if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 1) // Broken with GCC 3.1 and higher. // cin.get() never returns, or leaves cin in a broken state. // std::ios::sync_with_stdio(false); #endif #else // This is for all other compilers std::ios::sync_with_stdio(false); #endif // Create the interpreter object. Due to its dependence // on various static objects (e.g. of class Name), the // interpreter engine MUST NOT be global. SLIInterpreter engine; #ifdef HAVE_READLINE addmodule<GNUReadline>(engine); #endif addmodule<SLIArrayModule>(engine); addmodule<OOSupportModule>(engine); engine.addmodule(new SLIStartup(argc,argv)); addmodule<Processes>(engine); addmodule<RegexpModule>(engine); addmodule<FilesystemModule>(engine); int exitcode = engine.execute(1); return exitcode; }