diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2015-03-27 03:38:01 +0100 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2015-03-27 03:55:26 +0100 |
commit | 8de90acc6791a62d4b2e48e9bd05daa0d5cfe4b6 (patch) | |
tree | 40cea5bf09f881c2a54063721aa52b2db811bad7 /solar.cpp | |
parent | 09972613c44cf9968afc17d7294aa5e77fc29b9c (diff) | |
download | solar-8de90acc6791a62d4b2e48e9bd05daa0d5cfe4b6.tar solar-8de90acc6791a62d4b2e48e9bd05daa0d5cfe4b6.zip |
Generate items from grammar
Diffstat (limited to 'solar.cpp')
-rw-r--r-- | solar.cpp | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/solar.cpp b/solar.cpp deleted file mode 100644 index 1efff7a..0000000 --- a/solar.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* - Copyright (c) 2015, Matthias Schiffer <mschiffer@universe-factory.net> - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#include <cstdio> - -#include "lex.hpp" -#include "parser.hpp" - - -namespace solar { - -bool readGrammar(const char *filename, state_t *state) { - FILE *file = fopen(filename, "r"); - if (!file) { - std::fprintf(stderr, "unable to open file %s\n", filename); - return false; - } - - lex_t lexer(file); - parser_t *parser = parser_alloc(); - int ret; - - do { - int token; - value_t value; - - token = lexer.lex(&value); - if (token < 0) { - std::fprintf(stderr, "error: %s at %s:%i:%i\n", value.error, filename, - lexer.get_location().first_line, lexer.get_location().first_column); - return false; - } - - ret = parser_parse(parser, token, &value, state); - } while (ret > 0); - - if (ret < 0) { - std::fprintf(stderr, "error: parse error at %s:%i:%i\n", filename, - lexer.get_location().first_line, lexer.get_location().first_column); - return false; - } - - return true; -} - -} - - -int main() { - using namespace solar; - - state_t state; - if (!readGrammar("grammar.y", &state)) - return 1; - - return 0; -} |