summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/util/levcomp.lpp
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/util/levcomp.lpp')
-rw-r--r--crawl-ref/source/util/levcomp.lpp67
1 files changed, 41 insertions, 26 deletions
diff --git a/crawl-ref/source/util/levcomp.lpp b/crawl-ref/source/util/levcomp.lpp
index 59118eee7e..38511c8a9a 100644
--- a/crawl-ref/source/util/levcomp.lpp
+++ b/crawl-ref/source/util/levcomp.lpp
@@ -51,6 +51,7 @@ static void settext()
%s ARGUMENT
%s MNAME
%s KEYWORDS
+%s ITEM_LIST
%option yylineno
%option never-interactive
@@ -68,9 +69,45 @@ NSPACE [^\ \t\r\n]
return MAP_LINE;
}
+<KEYWORDS>[A-Za-z_0-9\-]+ {
+ settext();
+ return STRING;
+ }
+
+<KEYWORDS>[ \t]+ ;
+<KEYWORDS>[ \t]*\r?\n { BEGIN(INITIAL); }
+
+<ITEM_LIST>[^, \t\r\n][^,\r\n]+[^, \t\r\n] {
+ settext();
+ return ITEM_INFO;
+ }
+
+<ITEM_LIST>, return COMMA;
+<ITEM_LIST>[ \t]+ ;
+<ITEM_LIST>[ \t]*\r?\n { BEGIN(INITIAL); }
+
+<MNAME>[\ \t\r]*\n { BEGIN(INITIAL); }
+
+<MNAME>[^,\ \t\r\n][^,\r\n]+[^,\ \t\r\n] {
+ settext();
+ return MONSTER_NAME;
+ }
+
+<MNAME>, return COMMA;
+<MNAME>[ \t\r]+ ;
+
+<ARGUMENT>{NSPACE}.*{NSPACE} {
+ BEGIN(INITIAL);
+ settext();
+ return STRING;
+ }
+
+<ARGUMENT>\r?\n { BEGIN(INITIAL); }
+
+^[ \t]*#.* ;
+
^\s*MAP { BEGIN(MAPDEF); }
-^\s*#.* ;
NAME: { BEGIN(ARGUMENT); return NAME; }
default-depth: return DEFAULT_DEPTH;
@@ -82,6 +119,7 @@ FLAGS: return FLAGS;
TAGS: { BEGIN(KEYWORDS); return TAGS; }
SYMBOL: { BEGIN(ARGUMENT); return SYMBOL; }
MONS: { BEGIN(MNAME); return MONS; }
+ITEM: { BEGIN(ITEM_LIST); return ITEM; }
BRANCHDEF: return BRANCH;
DEFAULT return DEFAULT;
@@ -102,22 +140,6 @@ EXIT_MSG: { BEGIN(ARGUMENT); return EXIT_MSG; }
MONSTERS return MONSTERS;
ENDMONSTERS return ENDMONSTERS;
-<KEYWORDS>[A-Za-z_0-9\-]+ {
- settext();
- return STRING;
- }
-
-<KEYWORDS>[ \t]+ ;
-<KEYWORDS>[ \t]*\r?\n { BEGIN(INITIAL); }
-
-<MNAME>[^, \t\r\n][^,\r\n]+[^, \t\r\n] {
- settext();
- return MONSTER_NAME;
- }
-
-<MNAME>, return COMMA;
-<MNAME>[ \t]*\r?\n { BEGIN(INITIAL); }
-<MNAME>[ \t] ;
pandemonic return PANDEMONIC;
no_hmirror return NO_HMIRROR;
@@ -144,15 +166,8 @@ float return FLOAT;
return INTEGER;
}
-<ARGUMENT>{NSPACE}.*{NSPACE} {
- BEGIN(INITIAL);
- settext();
- return STRING;
- }
-
-<ARGUMENT>\r?\n { BEGIN(INITIAL); }
-
-[\ \t\r\n]+ ;
+[\ \t]+ ;
+\r?\n ;
\( return OPAREN;
\) return CPAREN;