From f35270ab1766ba02edf7e805e8a975b8c37aab7b Mon Sep 17 00:00:00 2001 From: Giel van Schijndel Date: Sat, 10 May 2008 15:08:32 +0000 Subject: [PATCH] * Use lexer_input.[ch] instead of our own custom YY_INPUT implementation for level_lexer git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5017 4a71c877-e1ca-e34f-864e-861f7616d084 --- src/level_lexer.l | 20 +------------------- src/level_parser.y | 11 ++++++----- 2 files changed, 7 insertions(+), 24 deletions(-) diff --git a/src/level_lexer.l b/src/level_lexer.l index 29a14f6e9..0c2c32454 100644 --- a/src/level_lexer.l +++ b/src/level_lexer.l @@ -36,25 +36,7 @@ #define YYLMAX 255 #endif -struct buffer -{ - const char* begin; - const char* end; -}; - -#define YY_EXTRA_TYPE struct buffer * - -#define YY_INPUT(buf, result, max_size) \ - if (yyextra->begin != yyextra->end) \ - { \ - buf[0] = *(yyextra->begin++); \ - result = 1; \ - } \ - else \ - { \ - buf[0] = EOF; \ - result = YY_NULL; \ - } +#include "lib/framework/lexer_input.h" #ifndef yyextra # define yyextra yyget_extra() diff --git a/src/level_parser.y b/src/level_parser.y index 8bcfab924..3c153133a 100644 --- a/src/level_parser.y +++ b/src/level_parser.y @@ -26,6 +26,7 @@ #include "lib/framework/listmacs.h" #include "levels.h" #include "levelint.h" +#include "lib/framework/lexer_input.h" #include "level_lexer.lex.h" typedef struct @@ -325,11 +326,11 @@ BOOL levParse(const char* buffer, size_t size, searchPathMode datadir) { BOOL retval; parser_context context; - struct - { - const char* begin; - const char* end; - } input = { buffer, &buffer[size] }; + lexerinput_t input; + + input.type = LEXINPUT_BUFFER; + input.input.buffer.begin = buffer; + input.input.buffer.end = &buffer[size]; context.datadir = datadir; context.dataset = NULL;