From a531cdb8c1e6c47e675f6c256012e61812ce0a44 Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Sat, 5 Oct 2019 19:41:35 -0500 Subject: Initial prototype for a script parsing API --- hscript/script.hh | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 hscript/script.hh (limited to 'hscript/script.hh') diff --git a/hscript/script.hh b/hscript/script.hh new file mode 100644 index 0000000..feee23b --- /dev/null +++ b/hscript/script.hh @@ -0,0 +1,41 @@ +/* + * script.hh - Definition of the Script class + * libhscript, the HorizonScript library for + * Project Horizon + * + * Copyright (c) 2019 Adélie Linux and contributors. All rights reserved. + * This code is licensed under the AGPL 3.0 license, as noted in the + * LICENSE-code file in the root directory of this repository. + * + * SPDX-License-Identifier: AGPL-3.0-only + */ + +#include +#include + +namespace Horizon { + +struct ScriptPrivate; + +/*! Defines the Script class, which represents a HorizonScript. */ +class Script { +public: + /*! Load a HorizonScript from the specified path and attempt to parse. */ + Script(std::string path); + /*! Load a HorizonScript from the specified stream and attempt to parse. */ + Script(std::istream &stream); + + /*! Determines if the HorizonScript parsed correctly. */ + bool isParsed(); + /*! Determines if the HorizonScript is valid. */ + bool isValid(); + + /*! Returns a list of errors found while parsing and validating the script. */ + std::vector scriptErrors(); + +private: + /*! Internal data. */ + ScriptPrivate *internal; +}; + +} -- cgit v1.2.3-70-g09d2