summaryrefslogtreecommitdiff
path: root/src/parser/parse_ini.lex
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser/parse_ini.lex')
-rw-r--r--src/parser/parse_ini.lex116
1 files changed, 0 insertions, 116 deletions
diff --git a/src/parser/parse_ini.lex b/src/parser/parse_ini.lex
deleted file mode 100644
index f452f40..0000000
--- a/src/parser/parse_ini.lex
+++ /dev/null
@@ -1,116 +0,0 @@
-%{
-#include <SDL_stdinc.h>
-
-#include "y.tab.h"
-
-#define MAX_STR_LEN 255
-
-int lexstring(int tok) {
- size_t len = SDL_strlen(yytext);
- if ( len > MAX_STR_LEN ) {
- return LEXERROR;
- } else {
- yylval.str = malloc(sizeof(char)*(len+1));
- SDL_strlcpy(yylval.str, yytext,len);
- return tok;
- }
-}
-%}
-
-%option noinput
-%option nounput
-%option noyywrap
-%option case-insensitive
-
-BLANK [ \t]
-NOT_BLANK [^ \t]
- /* IDENT [a-z][a-z0-9_-]* */
-STRCSV [a-z][a-z0-9._-]*
-INTEGER "-"?[0-9]+
-INTHEX 0x[0-9a-f]+
-COMMENT "#"[^\n]*
-
- /*
- %s : inclusive start condition (includes also rules starting without <sc>)
- %x : exclusive start condition
- */
-%x TYPE_STR
-%x TYPE_OTHER
-%x VAL_STR
-%x VAL_OTHER
-%%
-
- /* Wilcard state. Following rules are common to all states */
-<*>\n { yylineno++; BEGIN(INITIAL); return EOL; }
-<*>\r /* Ignore - http://fr.wikipedia.org/wiki/Fin_de_ligne : CRLF*/
-
- /* Other rules for almost states (but VAL_STR) to ignore blanks and comments */
-<INITIAL,TYPE_STR,TYPE_OTHER,VAL_OTHER>"#"[^\n]* /* Ignore Single line Comment*/
-<INITIAL,TYPE_STR,TYPE_OTHER,VAL_OTHER>{BLANK}* /* Ignore blanks */
-
- /* Initial state, start condition is 'INITIAL' (implicit), we catch only identifiers here */
-"style" { BEGIN(TYPE_STR); return STYLE; }
-"name" { BEGIN(TYPE_STR); return NAME; }
-
-"superlemming" { BEGIN(TYPE_OTHER); return SLEM; }
-
-"tiles" { BEGIN(TYPE_OTHER); return TILES; }
-"frames_" { BEGIN(TYPE_OTHER); return FRAMES; }
-"anim_" { BEGIN(TYPE_OTHER); return ANIM; }
-"type_" { BEGIN(TYPE_OTHER); return TYPE; }
-"sound_" { BEGIN(TYPE_OTHER); return SOUND; }
-
-"bgcolor" { BEGIN(TYPE_OTHER); return BGCOLOR; }
-"debriscolor" { BEGIN(TYPE_OTHER); return DEBRISCOLOR; }
-"particlecolor" { BEGIN(TYPE_OTHER); return PARTICLECOLOR; }
-
-"releaserate" { BEGIN(TYPE_OTHER); return RELEASERATE; }
-"numlemmings" { BEGIN(TYPE_OTHER); return NUMLEMMINGS; }
-"numtorescue" { BEGIN(TYPE_OTHER); return NUMTORESCUE; }
-"timelimit" { BEGIN(TYPE_OTHER); return TIMELIMIT; }
-"numclimbers" { BEGIN(TYPE_OTHER); return NUMCLIMBERS; }
-"numfloaters" { BEGIN(TYPE_OTHER); return NUMFLOATERS; }
-"numbombers" { BEGIN(TYPE_OTHER); return NUMBOMBERS; }
-"numblockers" { BEGIN(TYPE_OTHER); return NUMBLOCKERS; }
-"numbuilders" { BEGIN(TYPE_OTHER); return NUMBUILDERS; }
-"numbashers" { BEGIN(TYPE_OTHER); return NUMBASHERS; }
-"numminers" { BEGIN(TYPE_OTHER); return NUMMINERS; }
-"numdiggers" { BEGIN(TYPE_OTHER); return NUMDIGGERS; }
-"xpos" { BEGIN(TYPE_OTHER); return XPOS; }
-"object_" { BEGIN(TYPE_OTHER); return OBJECT; }
-"terrain_" { BEGIN(TYPE_OTHER); return TERRAIN; }
-"steel_" { BEGIN(TYPE_OTHER); return STEEL; }
-
-"maxFallDistance" { BEGIN(TYPE_OTHER); return MAXFALLDISTANCE; }
-"codeSeed" { BEGIN(TYPE_OTHER); return CODESEED; }
-"music_" { BEGIN(TYPE_STR); return MUSIC; }
-"level_" { BEGIN(TYPE_OTHER); return LEVEL; }
-
-"lemm_" { BEGIN(TYPE_OTHER); return LEMM; }
-"pos_" { BEGIN(TYPE_OTHER); return POS; }
-"mask_" { BEGIN(TYPE_OTHER); return MASK; }
-"imask_" { BEGIN(TYPE_OTHER); return IMASK; }
-
-
-"fun_" { BEGIN(TYPE_OTHER); return DIFFICULTY; }
-"tricky_" { BEGIN(TYPE_OTHER); return DIFFICULTY; }
-"taxing_" { BEGIN(TYPE_OTHER); return DIFFICULTY; }
-"mayhem_" { BEGIN(TYPE_OTHER); return DIFFICULTY; }
-"tame_" { BEGIN(TYPE_OTHER); return DIFFICULTY; }
-"wild_" { BEGIN(TYPE_OTHER); return DIFFICULTY; }
-"crazy_" { BEGIN(TYPE_OTHER); return DIFFICULTY; }
-"wicked_" { BEGIN(TYPE_OTHER); return DIFFICULTY; }
-"havoc_" { BEGIN(TYPE_OTHER); return DIFFICULTY; }
-"pixels_" { BEGIN(TYPE_OTHER); return DIFFICULTY; }
-
-
- /* TYPE_* states for catching the '=' token and go in the right state machine for catching values */
-<TYPE_STR>"="{BLANK}* { BEGIN(VAL_STR); return AFF; }
-<TYPE_OTHER>"=" { BEGIN(VAL_OTHER); return AFF; }
-
-<TYPE_STR,TYPE_OTHER,VAL_OTHER>{INTEGER} { yylval.num = SDL_atoi(yytext); return INT; }
-<VAL_OTHER>{INTHEX} { int res=SDL_sscanf(yytext, "0x%x", &yylval.uint32); if(res) return INTHEX; else return LEXERROR; }
-<VAL_OTHER>{STRCSV} { return lexstring(STR); }
-<VAL_OTHER>"," { return VIR; }
-<VAL_STR>[^\r\n]+ { return lexstring(STR); }
-