diff options
Diffstat (limited to 'hscript/script.hh')
-rw-r--r-- | hscript/script.hh | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/hscript/script.hh b/hscript/script.hh index 2abadd9..a2c2551 100644 --- a/hscript/script.hh +++ b/hscript/script.hh @@ -10,12 +10,30 @@ * SPDX-License-Identifier: AGPL-3.0-only */ +#ifndef __HSCRIPT_SCRIPT_HH_ +#define __HSCRIPT_SCRIPT_HH_ + #include <string> #include <vector> #include <memory> namespace Horizon { +/**** Script option flags ****/ + +/*! Don't stop after the first error. */ +#define SCRIPT_KEEP_GOING 0x0001 +/*! Ensure network resources are available. */ +#define SCRIPT_USE_NETWORK 0x0002 +/*! Treat warnings as errors. */ +#define SCRIPT_STRICT_MODE 0x0004 +/*! This is an Installation Environment - validate more keys */ +#define SCRIPT_INSTALL_ENV 0x0008 + + +typedef uint32_t ScriptOptions; + + /*! Defines the Script class, which represents a HorizonScript. */ class Script { public: @@ -24,17 +42,17 @@ public: /*! Load a HorizonScript from the specified path. * @param path The path to load from. + * @param options Options to use for parsing, validation, and execution. * @return true if the Script could be loaded; false otherwise. */ - bool load(std::string path); + static const Script *load(std::string path, ScriptOptions options = 0); /*! Load a HorizonScript from the specified stream. * @param stream The stream to load from. + * @param options Options to use for parsing, validation, and execution. * @return true if the Script could be loaded; false otherwise. */ - bool load(std::istream &stream); + static const Script *load(std::istream &stream, ScriptOptions options = 0); - /*! Parses the HorizonScript. */ - bool parse(); /*! Determines if the HorizonScript is valid. */ bool validate(); @@ -45,3 +63,5 @@ private: }; } + +#endif /* !__HSCRIPT_SCRIPT_HH_ */ |