summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/util/levcomp.lpp
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2006-12-08 12:28:30 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2006-12-08 12:28:30 +0000
commit6c99170d8941c25c6aac7f131f0d55df52caa63a (patch)
tree73993fb9a6610d14975be5239929f26f06b9fc94 /crawl-ref/source/util/levcomp.lpp
parent93de8db42745db1d85c850cb1001baa1ac55bcc0 (diff)
downloadcrawl-ref-6c99170d8941c25c6aac7f131f0d55df52caa63a.tar.gz
crawl-ref-6c99170d8941c25c6aac7f131f0d55df52caa63a.zip
Fixed bug where Pandemonium demonlords did not get their rightful runes
(Cerebov and company) - bug was introduced circa 0.1.3. [1610237] Vaults can request specific items using ITEM: declarations and the item selectors defghijk. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@596 c06c8d41-db1a-0410-9941-cceddc491573
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;