]> git.mxchange.org Git - flightgear.git/commitdiff
Remove old PSL support and put our eggs into the Nasal basket.
authorcurt <curt>
Tue, 25 Nov 2003 21:16:13 +0000 (21:16 +0000)
committercurt <curt>
Tue, 25 Nov 2003 21:16:13 +0000 (21:16 +0000)
src/Makefile.am
src/Scripting/scriptmgr.cxx [deleted file]
src/Scripting/scriptmgr.hxx [deleted file]

index c2bfba177e39c55c6cdeea5e07330c7eecf76891..d324d32e165822b6e4a94fb9c35664cf4a0c706f 100644 (file)
@@ -4,12 +4,6 @@ else
 WEATHER_DIR = Environment
 endif
 
-if HAVE_PLIB_PSL
-SCRIPTING_DIRS = Scripting
-else
-SCRIPTING_DIRS =
-endif
-
 if ENABLE_MPLAYER_AS
 MPLAYER_DIRS = MultiPlayer
 else
@@ -35,7 +29,7 @@ SUBDIRS = \
         Objects \
        Replay \
         Scenery \
-        $(SCRIPTING_DIRS) \
+       Scripting \
         Sound \
         Systems \
         Time \
diff --git a/src/Scripting/scriptmgr.cxx b/src/Scripting/scriptmgr.cxx
deleted file mode 100644 (file)
index 0c92a89..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-// scriptmgr.cxx - run user scripts
-// Written by David Megginson, started 2002.
-//
-// This file is in the Public Domain, and comes with no warranty.
-
-
-#include "scriptmgr.hxx"
-
-#include <iostream>
-
-#include <plib/psl.h>
-
-#include <Main/globals.hxx>
-#include <Main/fg_props.hxx>
-
-SG_USING_STD(cout);
-
-
-\f
-////////////////////////////////////////////////////////////////////////
-// Extensions.
-////////////////////////////////////////////////////////////////////////
-
-static pslValue
-do_print (int argc, pslValue * argv, pslProgram * p)
-{
-    for (int i = 0; i < argc; i++) {
-        switch(argv[i].getType()) {
-        case PSL_INT:
-            cout << argv[i].getInt();
-            break;
-        case PSL_FLOAT:
-            cout << argv[i].getFloat();
-            break;
-        case PSL_STRING:
-            cout << argv[i].getString();
-            break;
-        case PSL_VOID:
-            cout << "(void)";
-            break;
-        default:
-            cout << "(**bad value**)";
-            break;
-        }
-    }
-
-    pslValue result;
-    result.set();
-    return result;
-}
-
-static pslValue
-do_get_property (int argc, pslValue * argv, pslProgram * p)
-{
-    pslValue result;
-    SGPropertyNode * prop = fgGetNode(argv[0].getString());
-    if (prop != 0) {
-        switch (prop->getType()) {
-        case SGPropertyNode::BOOL:
-        case SGPropertyNode::INT:
-        case SGPropertyNode::LONG:
-            result.set(prop->getIntValue());
-            break;
-        case SGPropertyNode::FLOAT:
-        case SGPropertyNode::DOUBLE:
-            result.set(prop->getFloatValue());
-            break;
-        case SGPropertyNode::STRING:
-        case SGPropertyNode::UNSPECIFIED:
-            result.set(prop->getStringValue());
-            break;
-        default:
-            // DO SOMETHING
-            break;
-        }
-    } else {
-        result.set();
-    }
-
-    return result;
-}
-
-static pslValue
-do_set_property (int argc, pslValue * argv, pslProgram * p)
-{
-    pslValue result;
-    SGPropertyNode * prop = fgGetNode(argv[0].getString(), true);
-    switch (argv[1].getType()) {
-    case PSL_INT:
-        prop->setIntValue(argv[1].getInt());
-        break;
-    case PSL_FLOAT:
-        prop->setFloatValue(argv[1].getFloat());
-        break;
-    case PSL_STRING:
-        prop->setStringValue(argv[1].getString());
-        break;
-    case PSL_VOID:
-        prop->setUnspecifiedValue("");
-        break;
-    default:
-        // TODO: report an error.
-        break;
-    }
-
-    result.set();
-    return result;
-}
-
-static pslExtension
-extensions[] = { {"print", -1, do_print},
-                 {"get_property", 1, do_get_property},
-                 {"set_property", 2, do_set_property},
-                 {0, 0, 0} };
-
-
-\f
-////////////////////////////////////////////////////////////////////////
-// Implementation of FGScriptMgr.
-////////////////////////////////////////////////////////////////////////
-
-FGScriptMgr::FGScriptMgr ()
-{
-}
-
-FGScriptMgr::~FGScriptMgr ()
-{
-}
-
-void
-FGScriptMgr::init ()
-{
-    pslInit();
-}
-
-void
-FGScriptMgr::update (double delta_time_sec)
-{
-}
-
-bool
-FGScriptMgr::run (const char * script) const
-{
-                                // FIXME: detect and report errors
-    pslProgram program(extensions);
-    if (program.compile(script, globals->get_fg_root().c_str()) > 0)
-        return false;
-    while (program.step() != PSL_PROGRAM_END)
-        ;
-    return true;
-}
-
-bool
-FGScriptMgr::run_inline (const char * script) const
-{
-    string s = "int main () {\n";
-    s += script;
-    s += "\n  return 0;\n}\n";
-    return run(s.c_str());
-}
-
-
-// end of scriptmgr.cxx
diff --git a/src/Scripting/scriptmgr.hxx b/src/Scripting/scriptmgr.hxx
deleted file mode 100644 (file)
index cd5aacb..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-// scriptmgr.hxx - run user scripts
-// Written by David Megginson, started 2002.
-//
-// This file is in the Public Domain, and comes with no warranty.
-
-#ifndef __SCRIPTMGR_HXX
-#define __SCRIPTMGR_HXX
-
-#ifndef __cplusplus
-# error This library requires C++
-#endif
-
-#include <simgear/compiler.h>  // for SG_USING_STD
-#include <simgear/structure/subsystem_mgr.hxx>
-
-class pslExtension;
-
-
-/**
- * Manager for user scripts in PSL (PLIB's scripting language).
- *
- * The initial draft of this subsystem does nothing on update, and
- * simply executes scripts on demand from various input bindings, but
- * I plan to merge in code from Erik Hofman for events and scheduled
- * tasks.
- *
- * Right now, there are three extension commands for
- * FlightGear:
- *
- * print(...) - prints all of its arguments to standard output.
- * get_property(name) - get a property value
- * set_property(name, value) - set a property value
- */
-class FGScriptMgr : public SGSubsystem
-{
-public:
-
-    /**
-     * Constructor.
-     */
-    FGScriptMgr ();
-
-
-    /**
-     * Destructor.
-     */
-    virtual ~FGScriptMgr ();
-
-
-    /**
-     * Initialize PSL.
-     */
-    virtual void init ();
-
-
-    /**
-     * Update (no-op for now).
-     */
-    virtual void update (double delta_time_sec);
-
-
-    /**
-     * Run an in-memory user script.
-     *
-     * Any included files are referenced relative to $FG_ROOT.  This
-     * is not very efficient right now, since it recompiles the script
-     * every time it runs.  The script must have a main() function.
-     *
-     * @param script A string containing the script.
-     * @return true if the script compiled properly, false otherwise.
-     * @see #run_inline
-     */
-    virtual bool run (const char * script) const;
-
-
-    /**
-     * Run an inline in-memory user script.
-     *
-     * The script is executed as if it were surrounded by a main()
-     * function, so it cannot contain any top-level constructions like
-     * #include statements or function declarations.  This is useful
-     * for quick one-liners.
-     *
-     * @param script A string containing the inline script.
-     * @return true if the script compiled properly, false otherwise.
-     * @see #run
-     */
-    virtual bool run_inline (const char * script) const;
-    
-};
-
-
-#endif // __SCRIPTMGR_HXX