summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornlanza <nlanza@c06c8d41-db1a-0410-9941-cceddc491573>2006-11-07 05:02:28 +0000
committernlanza <nlanza@c06c8d41-db1a-0410-9941-cceddc491573>2006-11-07 05:02:28 +0000
commitc9619cb90c306ed1f36d8081a133b28c8d2eba86 (patch)
tree66740618b8f0443e97c8a93b092389c633fcdc8c
parent51e7b97746b7499413dfa867193a6db9c6eee933 (diff)
downloadcrawl-ref-c9619cb90c306ed1f36d8081a133b28c8d2eba86.tar.gz
crawl-ref-c9619cb90c306ed1f36d8081a133b28c8d2eba86.zip
Hack on the levcomp stuff so it builds inside Xcode; as part of that, clean
it up a tad in general -- still builds in makefile.lnx, and the precompiled stuff works in MinGW. Also, strip out some of the now-totally-obsolete makefiles; we're really only using dos, mgw, lnx, and osx these days anyway. Anybody who wants support for something those don't do is better off creating it from scratch at this point. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/branches/stone_soup@349 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/source/AppHdr.h26
-rw-r--r--crawl-ref/source/Crawl.xcodeproj/project.pbxproj221
-rw-r--r--crawl-ref/source/acr.cc18
-rw-r--r--crawl-ref/source/chardump.cc12
-rw-r--r--crawl-ref/source/files.cc12
-rw-r--r--crawl-ref/source/libemx.cc241
-rw-r--r--crawl-ref/source/libemx.h39
-rw-r--r--crawl-ref/source/libunix.cc3
-rw-r--r--crawl-ref/source/makefile3
-rw-r--r--crawl-ref/source/makefile.bor54
-rw-r--r--crawl-ref/source/makefile.bsd64
-rw-r--r--crawl-ref/source/makefile.emx53
-rw-r--r--crawl-ref/source/makefile.lnx30
-rw-r--r--crawl-ref/source/makefile.mgw35
-rw-r--r--crawl-ref/source/makefile.sgi54
-rw-r--r--crawl-ref/source/makefile.sol68
-rw-r--r--crawl-ref/source/misc.cc2
-rw-r--r--crawl-ref/source/newgame.cc12
-rw-r--r--crawl-ref/source/ouch.cc12
-rw-r--r--crawl-ref/source/prebuilt/levcomp.h125
-rw-r--r--crawl-ref/source/prebuilt/levcomp.lex.cc (renamed from crawl-ref/source/prebuilt/levcomp_lex.cc)131
-rw-r--r--crawl-ref/source/prebuilt/levcomp.tab.cc1201
-rw-r--r--crawl-ref/source/prebuilt/levcomp.tab.h38
-rw-r--r--crawl-ref/source/prebuilt/levcomp_yacc.cc1943
-rw-r--r--crawl-ref/source/randart.cc2
-rw-r--r--crawl-ref/source/tags.cc12
-rw-r--r--crawl-ref/source/util/levcomp.cc33
-rw-r--r--crawl-ref/source/util/levcomp.h19
-rw-r--r--crawl-ref/source/util/levcomp.lpp (renamed from crawl-ref/source/util/levcomp.l)2
-rw-r--r--crawl-ref/source/util/levcomp.ypp (renamed from crawl-ref/source/util/levcomp.y)41
30 files changed, 1599 insertions, 2907 deletions
diff --git a/crawl-ref/source/AppHdr.h b/crawl-ref/source/AppHdr.h
index ed9fdb19f6..2e5945b742 100644
--- a/crawl-ref/source/AppHdr.h
+++ b/crawl-ref/source/AppHdr.h
@@ -63,27 +63,17 @@
// =========================================================================
// System Defines
// =========================================================================
-// Define plain_term for Unix and dos_term for DOS and EMX.
+// Define plain_term for Unix and dos_term for DOS.
#if defined(LINUX)
#define UNIX
#define USE_UNIX_SIGNALS
-#elif defined(SOLARIS)
- #define UNIX
- #define USE_UNIX_SIGNALS
-#elif defined(BSD)
- #define UNIX
#elif defined(OSX)
#define UNIX
+ #define USE_UNIX_SIGNALS
// Darkgrey is a particular problem in Terminal.app.
#define USE_8_COLOUR_TERM_MAP
#define COL_TO_REPLACE_DARKGREY BLUE
-#elif defined(HPUX)
- #define UNIX
- #define USE_UNIX_SIGNALS
- // Under HP-UX it's typically easier to use ncurses than try and
- // get the colour curses library to work. -- bwr
- #define CURSES_INCLUDE_FILE <ncurses.h>
#endif
#ifdef UNIX
@@ -145,16 +135,6 @@
#include "libunix.h"
-// To compile with EMX for OS/2 define USE_EMX macro with compiler command line
-// (already defined in supplied makefile.emx)
-#elif defined(USE_EMX)
- #define DOS_TERM
- #define EOL "\n"
- #define CHARACTER_SET A_ALTCHARSET
-
- #include <string>
- #include "libemx.h"
-
#elif _MSC_VER >= 1100
#include <string>
#include "WinHdr.h"
@@ -178,7 +158,7 @@
#define vsnprintf(buf, size, format, args) vsprintf(buf, format, args)
#endif
-#elif defined(WIN32CONSOLE) && (defined(__IBMCPP__) || defined(__BCPLUSPLUS__) || defined(__MINGW32__))
+#elif defined(WIN32CONSOLE) && (defined(__IBMCPP__) || defined(__MINGW32__))
#include "libw32c.h"
#define PLAIN_TERM
#define SHORT_FILE_NAMES
diff --git a/crawl-ref/source/Crawl.xcodeproj/project.pbxproj b/crawl-ref/source/Crawl.xcodeproj/project.pbxproj
index 108213d487..78b435bd28 100644
--- a/crawl-ref/source/Crawl.xcodeproj/project.pbxproj
+++ b/crawl-ref/source/Crawl.xcodeproj/project.pbxproj
@@ -141,12 +141,28 @@
7B237EF10A8EC9D000580F30 /* mt19937ar.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7B237E6A0A8EC9D000580F30 /* mt19937ar.cc */; };
7B237EF20A8EC9D000580F30 /* mstuff2.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7B237E6B0A8EC9D000580F30 /* mstuff2.h */; };
7B237F150A8ECD2E00580F30 /* libncurses.5.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B237F140A8ECD2E00580F30 /* libncurses.5.dylib */; };
+ 7B352E9F0B00183400CABB32 /* mapdef.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7B352E9D0B00183400CABB32 /* mapdef.cc */; };
+ 7B352EA00B00183400CABB32 /* mapdef.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7B352E9D0B00183400CABB32 /* mapdef.cc */; };
+ 7B352EA10B00183400CABB32 /* mapdef.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7B352E9E0B00183400CABB32 /* mapdef.h */; };
+ 7B352ED30B001B9E00CABB32 /* levcomp.lpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B352ED10B001B9E00CABB32 /* levcomp.lpp */; };
+ 7B352ED40B001B9E00CABB32 /* levcomp.ypp in Sources */ = {isa = PBXBuildFile; fileRef = 7B352ED20B001B9E00CABB32 /* levcomp.ypp */; };
+ 7B352EED0B001F4200CABB32 /* levcomp.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7B352EEC0B001F4200CABB32 /* levcomp.cc */; };
7BC222E70ABBB286003A7D9A /* itemprop.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7BC222E50ABBB286003A7D9A /* itemprop.cc */; };
7BC222E80ABBB286003A7D9A /* itemprop.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7BC222E60ABBB286003A7D9A /* itemprop.h */; };
7BD75A350AC214A200B74F6E /* notes.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7BD75A330AC214A200B74F6E /* notes.cc */; };
7BD75A360AC214A200B74F6E /* notes.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7BD75A340AC214A200B74F6E /* notes.h */; };
/* End PBXBuildFile section */
+/* Begin PBXContainerItemProxy section */
+ 7B352F380B0025B600CABB32 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 7B352E8B0B00172000CABB32 /* levcomp */;
+ remoteInfo = levcomp;
+ };
+/* End PBXContainerItemProxy section */
+
/* Begin PBXCopyFilesBuildPhase section */
8DD76FAF0486AB0100D96B5E /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
@@ -222,6 +238,7 @@
7B237EF20A8EC9D000580F30 /* mstuff2.h in CopyFiles */,
7BC222E80ABBB286003A7D9A /* itemprop.h in CopyFiles */,
7BD75A360AC214A200B74F6E /* notes.h in CopyFiles */,
+ 7B352EA10B00183400CABB32 /* mapdef.h in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 1;
};
@@ -362,6 +379,14 @@
7B237E6A0A8EC9D000580F30 /* mt19937ar.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = mt19937ar.cc; sourceTree = "<group>"; };
7B237E6B0A8EC9D000580F30 /* mstuff2.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = mstuff2.h; sourceTree = "<group>"; };
7B237F140A8ECD2E00580F30 /* libncurses.5.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libncurses.5.dylib; path = /usr/lib/libncurses.5.dylib; sourceTree = "<absolute>"; };
+ 7B352E8C0B00172000CABB32 /* levcomp */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = levcomp; sourceTree = BUILT_PRODUCTS_DIR; };
+ 7B352E9D0B00183400CABB32 /* mapdef.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = mapdef.cc; sourceTree = "<group>"; };
+ 7B352E9E0B00183400CABB32 /* mapdef.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = mapdef.h; sourceTree = "<group>"; };
+ 7B352ED10B001B9E00CABB32 /* levcomp.lpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.lex; name = levcomp.lpp; path = util/levcomp.lpp; sourceTree = "<group>"; };
+ 7B352ED20B001B9E00CABB32 /* levcomp.ypp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.yacc; name = levcomp.ypp; path = util/levcomp.ypp; sourceTree = "<group>"; };
+ 7B352EEC0B001F4200CABB32 /* levcomp.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = levcomp.cc; path = util/levcomp.cc; sourceTree = "<group>"; };
+ 7B352F1F0B00232500CABB32 /* splev.des */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = splev.des; path = dat/splev.des; sourceTree = "<group>"; };
+ 7B352F200B00232500CABB32 /* vaults.des */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = vaults.des; path = dat/vaults.des; sourceTree = "<group>"; };
7BC222E50ABBB286003A7D9A /* itemprop.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = itemprop.cc; sourceTree = "<group>"; };
7BC222E60ABBB286003A7D9A /* itemprop.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = itemprop.h; sourceTree = "<group>"; };
7BD75A330AC214A200B74F6E /* notes.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = notes.cc; sourceTree = "<group>"; };
@@ -370,6 +395,13 @@
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
+ 7B352E8A0B00172000CABB32 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
8DD76FAD0486AB0100D96B5E /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -385,6 +417,7 @@
isa = PBXGroup;
children = (
08FB7795FE84155DC02AAC07 /* Source */,
+ 7B352F1B0B0022C900CABB32 /* Resources */,
7B237F120A8ECCDE00580F30 /* Libraries */,
C6A0FF2B0290797F04C91782 /* Documentation */,
1AB674ADFE9D54B511CA2CBB /* Products */,
@@ -395,6 +428,43 @@
08FB7795FE84155DC02AAC07 /* Source */ = {
isa = PBXGroup;
children = (
+ 7B352EF00B001F5B00CABB32 /* Crawl */,
+ 7B352E950B0017CF00CABB32 /* Levcomp */,
+ 7B352EF30B001FA700CABB32 /* Shared */,
+ );
+ name = Source;
+ sourceTree = "<group>";
+ };
+ 1AB674ADFE9D54B511CA2CBB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 8DD76FB20486AB0100D96B5E /* crawl */,
+ 7B352E8C0B00172000CABB32 /* levcomp */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 7B237F120A8ECCDE00580F30 /* Libraries */ = {
+ isa = PBXGroup;
+ children = (
+ 7B237F140A8ECD2E00580F30 /* libncurses.5.dylib */,
+ );
+ name = Libraries;
+ sourceTree = "<group>";
+ };
+ 7B352E950B0017CF00CABB32 /* Levcomp */ = {
+ isa = PBXGroup;
+ children = (
+ 7B352EEC0B001F4200CABB32 /* levcomp.cc */,
+ 7B352ED10B001B9E00CABB32 /* levcomp.lpp */,
+ 7B352ED20B001B9E00CABB32 /* levcomp.ypp */,
+ );
+ name = Levcomp;
+ sourceTree = "<group>";
+ };
+ 7B352EF00B001F5B00CABB32 /* Crawl */ = {
+ isa = PBXGroup;
+ children = (
7B237E0D0A8EC9D000580F30 /* abl-show.cc */,
7B237E290A8EC9D000580F30 /* abl-show.h */,
7B237E280A8EC9D000580F30 /* abyss.cc */,
@@ -533,23 +603,33 @@
7B237E140A8EC9D000580F30 /* view.cc */,
7B237E130A8EC9D000580F30 /* view.h */,
);
- name = Source;
+ name = Crawl;
sourceTree = "<group>";
};
- 1AB674ADFE9D54B511CA2CBB /* Products */ = {
+ 7B352EF30B001FA700CABB32 /* Shared */ = {
isa = PBXGroup;
children = (
- 8DD76FB20486AB0100D96B5E /* crawl */,
+ 7B352E9D0B00183400CABB32 /* mapdef.cc */,
+ 7B352E9E0B00183400CABB32 /* mapdef.h */,
);
- name = Products;
+ name = Shared;
sourceTree = "<group>";
};
- 7B237F120A8ECCDE00580F30 /* Libraries */ = {
+ 7B352F1B0B0022C900CABB32 /* Resources */ = {
isa = PBXGroup;
children = (
- 7B237F140A8ECD2E00580F30 /* libncurses.5.dylib */,
+ 7B352F1E0B0022E100CABB32 /* Levels */,
);
- name = Libraries;
+ name = Resources;
+ sourceTree = "<group>";
+ };
+ 7B352F1E0B0022E100CABB32 /* Levels */ = {
+ isa = PBXGroup;
+ children = (
+ 7B352F1F0B00232500CABB32 /* splev.des */,
+ 7B352F200B00232500CABB32 /* vaults.des */,
+ );
+ name = Levels;
sourceTree = "<group>";
};
C6A0FF2B0290797F04C91782 /* Documentation */ = {
@@ -562,10 +642,27 @@
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
+ 7B352E8B0B00172000CABB32 /* levcomp */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 7B352E8E0B00177D00CABB32 /* Build configuration list for PBXNativeTarget "levcomp" */;
+ buildPhases = (
+ 7B352E890B00172000CABB32 /* Sources */,
+ 7B352E8A0B00172000CABB32 /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = levcomp;
+ productName = levcomp;
+ productReference = 7B352E8C0B00172000CABB32 /* levcomp */;
+ productType = "com.apple.product-type.tool";
+ };
8DD76FA90486AB0100D96B5E /* Crawl */ = {
isa = PBXNativeTarget;
buildConfigurationList = 1DEB928508733DD80010E9CD /* Build configuration list for PBXNativeTarget "Crawl" */;
buildPhases = (
+ 7B352F3A0B0025C400CABB32 /* Compile Levels */,
8DD76FAB0486AB0100D96B5E /* Sources */,
8DD76FAD0486AB0100D96B5E /* Frameworks */,
8DD76FAF0486AB0100D96B5E /* CopyFiles */,
@@ -573,6 +670,7 @@
buildRules = (
);
dependencies = (
+ 7B352F390B0025B600CABB32 /* PBXTargetDependency */,
);
name = Crawl;
productInstallPath = "$(HOME)/bin";
@@ -590,12 +688,41 @@
mainGroup = 08FB7794FE84155DC02AAC07 /* Crawl */;
projectDirPath = "";
targets = (
+ 7B352E8B0B00172000CABB32 /* levcomp */,
8DD76FA90486AB0100D96B5E /* Crawl */,
);
};
/* End PBXProject section */
+/* Begin PBXShellScriptBuildPhase section */
+ 7B352F3A0B0025C400CABB32 /* Compile Levels */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ name = "Compile Levels";
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = "/bin/sh -x";
+ shellScript = "echo \"Writing to '$DERIVED_FILES_DIR/mapdefs.ixx'\"\n\nif [ ! -d $DERIVED_FILES_DIR ]; then\n\tmkdir $DERIVED_FILES_DIR\nfi\n\n$BUILT_PRODUCTS_DIR/levcomp $DERIVED_FILES_DIR/mapdefs.ixx < $SRCROOT/dat/vaults.des\n$BUILT_PRODUCTS_DIR/levcomp -a $DERIVED_FILES_DIR/mapdefs.ixx < $SRCROOT/dat/vaults.des\nexit 0\n";
+ };
+/* End PBXShellScriptBuildPhase section */
+
/* Begin PBXSourcesBuildPhase section */
+ 7B352E890B00172000CABB32 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 7B352ED40B001B9E00CABB32 /* levcomp.ypp in Sources */,
+ 7B352ED30B001B9E00CABB32 /* levcomp.lpp in Sources */,
+ 7B352E9F0B00183400CABB32 /* mapdef.cc in Sources */,
+ 7B352EED0B001F4200CABB32 /* levcomp.cc in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
8DD76FAB0486AB0100D96B5E /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@@ -669,11 +796,20 @@
7B237EF10A8EC9D000580F30 /* mt19937ar.cc in Sources */,
7BC222E70ABBB286003A7D9A /* itemprop.cc in Sources */,
7BD75A350AC214A200B74F6E /* notes.cc in Sources */,
+ 7B352EA00B00183400CABB32 /* mapdef.cc in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
+/* Begin PBXTargetDependency section */
+ 7B352F390B0025B600CABB32 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 7B352E8B0B00172000CABB32 /* levcomp */;
+ targetProxy = 7B352F380B0025B600CABB32 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
/* Begin XCBuildConfiguration section */
1DEB928608733DD80010E9CD /* Development */ = {
isa = XCBuildConfiguration;
@@ -717,6 +853,66 @@
};
name = Development;
};
+ 7B352E8F0B00177D00CABB32 /* Development */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ GCC_WARN_UNUSED_FUNCTION = NO;
+ GCC_WARN_UNUSED_LABEL = NO;
+ INSTALL_PATH = "$(HOME)/bin";
+ PRODUCT_NAME = levcomp;
+ YACC_GENERATED_FILE_STEM = InputFileStem;
+ ZERO_LINK = YES;
+ };
+ name = Development;
+ };
+ 7B352E900B00177D00CABB32 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_WARN_UNUSED_FUNCTION = NO;
+ GCC_WARN_UNUSED_LABEL = NO;
+ INSTALL_PATH = "$(HOME)/bin";
+ PREBINDING = NO;
+ PRODUCT_NAME = levcomp;
+ YACC_GENERATED_FILE_STEM = InputFileStem;
+ ZERO_LINK = NO;
+ };
+ name = Release;
+ };
+ 7B352E910B00177D00CABB32 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+ GCC_OPTIMIZATION_LEVEL = 1;
+ GCC_WARN_UNUSED_FUNCTION = NO;
+ GCC_WARN_UNUSED_LABEL = NO;
+ INSTALL_PATH = "$(HOME)/bin";
+ PREBINDING = NO;
+ PRODUCT_NAME = levcomp;
+ YACC_GENERATED_FILE_STEM = InputFileStem;
+ ZERO_LINK = YES;
+ };
+ name = Debug;
+ };
+ 7B352E920B00177D00CABB32 /* Wizard */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_WARN_UNUSED_FUNCTION = NO;
+ GCC_WARN_UNUSED_LABEL = NO;
+ INSTALL_PATH = "$(HOME)/bin";
+ PREBINDING = NO;
+ PRODUCT_NAME = levcomp;
+ YACC_GENERATED_FILE_STEM = InputFileStem;
+ ZERO_LINK = YES;
+ };
+ name = Wizard;
+ };
7B97C01F0A8ECFD700CE8936 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -898,6 +1094,17 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Development;
};
+ 7B352E8E0B00177D00CABB32 /* Build configuration list for PBXNativeTarget "levcomp" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 7B352E8F0B00177D00CABB32 /* Development */,
+ 7B352E900B00177D00CABB32 /* Release */,
+ 7B352E910B00177D00CABB32 /* Debug */,
+ 7B352E920B00177D00CABB32 /* Wizard */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Development;
+ };
/* End XCConfigurationList section */
};
rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc
index 8a4606264d..0fd8e5c572 100644
--- a/crawl-ref/source/acr.cc
+++ b/crawl-ref/source/acr.cc
@@ -66,16 +66,6 @@
#include <signal.h>
#endif
-#ifdef USE_EMX
-#include <sys/types.h>
-#endif
-
-#ifdef OS9
-#include <stat.h>
-#else
-#include <sys/stat.h>
-#endif
-
#include "externs.h"
#include "abl-show.h"
@@ -331,10 +321,6 @@ int main( int argc, char *argv[] )
unixcurses_shutdown();
#endif
-#ifdef USE_EMX
- deinit_emx();
-#endif
-
return 0;
} // end main()
@@ -2729,10 +2715,6 @@ static bool initialise(void)
directvideo = 1;
#endif
-#ifdef USE_EMX
- init_emx();
-#endif
-
seed_rng();
init_overmap(); // in overmap.cc (duh?)
clear_ids(); // in itemname.cc
diff --git a/crawl-ref/source/chardump.cc b/crawl-ref/source/chardump.cc
index a2871f2c25..fa3c04aea2 100644
--- a/crawl-ref/source/chardump.cc
+++ b/crawl-ref/source/chardump.cc
@@ -24,21 +24,11 @@
#include <string.h>
#include <fcntl.h>
#include <stdlib.h>
-#if !(defined(__IBMCPP__) || defined(__BCPLUSPLUS__))
+#if !defined(__IBMCPP__)
#include <unistd.h>
#endif
#include <ctype.h>
-#ifdef USE_EMX
-#include <sys/types.h>
-#endif
-
-#ifdef OS9
-#include <stat.h>
-#else
-#include <sys/stat.h>
-#endif
-
#ifdef DOS
#include <conio.h>
#endif
diff --git a/crawl-ref/source/files.cc b/crawl-ref/source/files.cc
index da1435504e..4c15250213 100644
--- a/crawl-ref/source/files.cc
+++ b/crawl-ref/source/files.cc
@@ -46,18 +46,6 @@
#include <unistd.h>
#endif
-#ifdef USE_EMX
-#include <sys/types.h>
-#include <fcntl.h>
-#include <unistd.h>
-#endif
-
-#ifdef OS9
-#include <stat.h>
-#else
-#include <sys/stat.h>
-#endif
-
#ifdef __MINGW32__
#include <io.h>
#include <sys/types.h>
diff --git a/crawl-ref/source/libemx.cc b/crawl-ref/source/libemx.cc
deleted file mode 100644
index d8958bbe18..0000000000
--- a/crawl-ref/source/libemx.cc
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * Modified for Crawl Reference by $Author$ on $Date$
- */
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <emx/syscalls.h>
-#include <sys/video.h>
-
-#include "libemx.h"
-
-
-static int cursor_start = 0, cursor_end = 0;
-static int gx = 0, gy = 0, gxx = 79, gyy = 24;
-static char buf[4096];
-
-
-
-
-void init_emx()
-{
- v_init();
- v_getctype(&cursor_start, &cursor_end);
-}
-
-
-
-
-void deinit_emx()
-{
- // nothing to do
-}
-
-
-
-
-void _setcursortype(int curstype)
-{
- if ( curstype == _NOCURSOR )
- v_hidecursor();
- else
- v_ctype(cursor_start, cursor_end);
-}
-
-
-
-
-void clrscr()
-{
- if ( (gx == 0) && (gy == 0) && (gxx == 79) && (gyy == 24) )
- {
- v_clear();
- v_gotoxy(0, 0);
- }
- else
- {
- for (int i = gy; i <= gyy; ++i)
- {
- v_gotoxy(gx, i);
- v_putn(' ', gxx - gx + 1);
- }
- v_gotoxy(gx, gy);
- }
-}
-
-
-
-
-void gotoxy(int x, int y)
-{
- v_gotoxy(x - 1 + gx, y - 1 + gy);
-}
-
-
-
-
-void textcolor(int c)
-{
- v_attrib(c);
-}
-
-
-void textattr(int c)
-{
- textcolor(c);
-}
-
-
-static void cprintf_aux(const char *s)
-{
- char *ptr = buf;
-
- while (*s)
- {
- if ( *s == '\n' )
- {
- *ptr = 0;
- v_puts(buf);
- int x, y;
-
- v_getxy(&x, &y);
- if ( y != 24 )
- v_gotoxy(gx, y + 1);
- else
- v_putc('\n');
-
- ptr = buf;
- }
- else if ( *s != '\r' )
- *ptr++ = *s;
-
- ++s;
- }
-
- *ptr = 0;
- v_puts(buf);
-
-}
-
-void cprintf(const char *format, ...)
-{
- va_list argp;
- char buffer[4096]; // one could hope it's enough
-
- va_start( argp, format );
-
- vsprintf(buffer, format, argp);
- cprintf_aux(buffer);
-
- va_end(argp);
-}
-
-void puttext(int x, int y, int lx, int ly, unsigned const char *buf)
-{
- puttext(x, y, lx, ly, (const char *) buf);
-}
-
-
-
-
-void puttext(int x, int y, int lx, int ly, const char *buf)
-{
- int count = (lx - x + 1);
-
- for (int i = y - 1; i < ly; ++i)
- {
- v_putline(buf + 2 * count * i, x - 1, i, count);
- }
-}
-
-
-
-
-void gettext(int x, int y, int lx, int ly, unsigned char *buf)
-{
- gettext(x, y, lx, ly, (char *) buf);
-}
-
-
-
-
-void gettext(int x, int y, int lx, int ly, char *buf)
-{
- int count = (lx - x + 1);
-
- for (int i = y - 1; i < ly; ++i)
- {
- v_getline(buf + 2 * count * i, x - 1, i, count);
- }
-}
-
-
-
-
-void window(int x, int y, int lx, int ly)
-{
- gx = x - 1;
- gy = y - 1;
- gxx = lx - 1;
- gyy = ly - 1;
-}
-
-
-
-
-int wherex()
-{
- int x, y;
-
- v_getxy(&x, &y);
-
- return x + 1 - gx;
-}
-
-
-
-
-int wherey()
-{
- int x, y;
-
- v_getxy(&x, &y);
-
- return y + 1 - gy;
-}
-
-
-
-
-void putch(char c)
-{
- v_putc(c);
-}
-
-
-
-
-int kbhit()
-{
- return 0;
-}
-
-
-
-
-void delay(int ms)
-{
- __sleep2(ms);
-}
-
-
-
-
-void textbackground(int c)
-{
- if ( c != 0 )
- {
- fprintf(stderr, "bad background=%d", c);
- exit(1);
- }
-}
diff --git a/crawl-ref/source/libemx.h b/crawl-ref/source/libemx.h
deleted file mode 100644
index 550e5d2230..0000000000
--- a/crawl-ref/source/libemx.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef LIBEMX_H
-#define LIBEMX_H
-#ifndef __LIBEMX_C__
-
-
-#include <stdlib.h>
-#include <conio.h>
-
-#define itoa _itoa
-
-
-#define _NORMALCURSOR 1
-#define _NOCURSOR 0
-
-
-void init_emx();
-void deinit_emx();
-void _setcursortype(int curstype);
-void clrscr();
-void gotoxy(int x, int y);
-void textcolor(int c);
-void textattr(int c);
-void cprintf (const char *format, ...);
-
-void puttext(int x, int y, int lx, int ly, const char *buf);
-void puttext(int x, int y, int lx, int ly, unsigned const char *buf);
-void gettext(int x, int y, int lx, int ly, char *buf);
-void gettext(int x, int y, int lx, int ly, unsigned char *buf);
-void window(int x, int y, int lx, int ly);
-int wherex();
-int wherey();
-void putch(char c);
-int kbhit();
-void delay(int ms);
-void textbackground(int c);
-
-
-#endif // __LIBEMX_C__
-#endif
diff --git a/crawl-ref/source/libunix.cc b/crawl-ref/source/libunix.cc
index 0a9d556b6b..2e5483075c 100644
--- a/crawl-ref/source/libunix.cc
+++ b/crawl-ref/source/libunix.cc
@@ -247,10 +247,7 @@ void unixcurses_startup( void )
start_color();
setup_colour_pairs();
-#ifndef SOLARIS
- // These can cause some display problems under Solaris
scrollok(stdscr, TRUE);
-#endif
}
diff --git a/crawl-ref/source/makefile b/crawl-ref/source/makefile
index f61f141f1b..a887eec812 100644
--- a/crawl-ref/source/makefile
+++ b/crawl-ref/source/makefile
@@ -5,10 +5,7 @@
#Makefile chooser. Choose one:
MAKEFILE = makefile.lnx
-#MAKEFILE = makefile.sgi
#MAKEFILE = makefile.dos
-#MAKEFILE = makefile.emx
-#MAKEFILE = makefile.sol
#MAKEFILE = makefile.osx
#MAKEFILE = makefile.mgw
diff --git a/crawl-ref/source/makefile.bor b/crawl-ref/source/makefile.bor
deleted file mode 100644
index 97707c4434..0000000000
--- a/crawl-ref/source/makefile.bor
+++ /dev/null
@@ -1,54 +0,0 @@
-#
-# Makefile for Borland C++ 5.5 free commandline tools
-#
-# Modified for Crawl Reference by $Author$ on $Date$
-
-!include makefile.obj
-
-GAME = ..\crawl.exe
-
-all : $(GAME)
-
-.PHONY : clean
-.PHONY : debug
-.PHONY : noopt
-.PHONY : install
-.PHONY : wizard
-
-clean :
- $(DEL) *.o
-
-debug :
-
-noopt :
-
-install :
-
-wizard :
-
-#
-# Borland C++ tools
-#
-CC = bcc32
-LINK = ilink32
-DEL = del
-
-#
-# windows defines, including windows version to make sure code runs on
-# all windows systems
-#
-WIN32DEFINES = WIN32CONSOLE;NEED_SPRINTF;WINVER=0x0400;_WIN32_WINNT=0x0400;__BCPLUSPLUS__
-
-#
-# Options
-#
-LINKOPTS = -Tpe -ap -c -x /V4.0
-CFLAGS = -I. -D$(WIN32DEFINES) -4 -a -k- -Oc -OS -Oi -Ov -H- -P -c
-NICEFLAGS = -w-8004
-DEBUGFLAGS = -v -y
-
-$(GAME) : $(OBJECTS) libw32c.o
- $(LINK) $(LINKOPTS) c0x32.obj $?, $(GAME),, import32.lib cw32.lib
-
-.cc.o:
- $(CC) $(CFLAGS) $(NICEFLAGS) -o$*.o $<
diff --git a/crawl-ref/source/makefile.bsd b/crawl-ref/source/makefile.bsd
deleted file mode 100644
index 9e10d1ebf8..0000000000
--- a/crawl-ref/source/makefile.bsd
+++ /dev/null
@@ -1,64 +0,0 @@
-# -*- Makefile -*- for Dungeon Crawl (BSD)
-
-#
-# Modified for Crawl Reference by $Author$ on $Date$
-#
-
-GAME = crawl
-
-# this file contains a list of the libraries.
-# it will make a variable called OBJECTS that contains all the libraries
-include makefile.obj
-
-OBJECTS += libunix.o
-
-CXX = g++
-DELETE = rm -f
-COPY = cp
-OS_TYPE = BSD
-CFLAGS = -Wall -D$(OS_TYPE) $(EXTRA_FLAGS)
-LDFLAGS = -static -L/usr/lib
-MCHMOD = 711
-# INSTALLDIR = /usr/games
-INSTALLDIR = /tmp/CRAWLTEST/testdev
-LIB = -lncurses
-
-INCLUDES = -I/usr/include/ncurses
-
-all: $(GAME)
-
-install: $(GAME)
- $(COPY) $(GAME) ${INSTALLDIR}
- chmod ${MCHMOD} ${INSTALLDIR}/$(GAME)
-
-clean:
- $(DELETE) *.o
-
-distclean:
- $(DELETE) *.o
- $(DELETE) bones.*
- $(DELETE) morgue.txt
- $(DELETE) scores
- $(DELETE) $(GAME)
- $(DELETE) *.sav
- $(DELETE) core
- $(DELETE) *.0*
- $(DELETE) *.lab
-
-
-$(GAME): $(OBJECTS)
- ${CXX} ${LDFLAGS} $(INCLUDES) $(CFLAGS) $(OBJECTS) -o $(GAME) $(LIB)
- strip $(GAME)
- chmod ${MCHMOD} $(GAME)
-
-debug: $(OBJECTS)
- ${CXX} ${LDFLAGS} $(INCLUDES) $(CFLAGS) $(OBJECTS) -o $(GAME) $(LIB)
-
-profile: $(OBJECTS)
- ${CXX} -g -p ${LDFLAGS} $(INCLUDES) $(CFLAGS) $(OBJECTS) -o $(GAME) $(LIB)
-
-.cc.o:
- ${CXX} ${CFLAGS} -c $< ${INCLUDE}
-
-.h.cc:
- touch $@
diff --git a/crawl-ref/source/makefile.emx b/crawl-ref/source/makefile.emx
deleted file mode 100644
index 13e99e47fe..0000000000
--- a/crawl-ref/source/makefile.emx
+++ /dev/null
@@ -1,53 +0,0 @@
-# Makefile for Dungeon Crawl (OS/2 EMX port)
-# 1998 (C) Alexey Guzeev, aga@russia.crosswinds.net
-# EMX is covered by GNU GPL
-# Dungeon Crawl is covered by Crawl GPL
-# OS/2 is a trademark of IBM Corp.
-# IBM is a trademark of IBM Corp.
-# :)
-
-# 1. make some directory, like \crawl
-# 2. make subdirectory for sources, \crawl\src
-# 3. put crawl sources in \crawl\src directory
-# 4. make directory \crawl\src current
-# 5. execute command 'dmake -B -r -f makefile.emx install'
-# 6. remove \crawl\src subdirectory with all contents
-# 7. delete \crawl\scoretable.exe - I don't know what it does :)
-# 8. run \crawl\crawl.exe & enjoy!
-
-
-CC = gcc
-CFLAGS = -Wall -O3 -MMD -Zmt -DUSE_EMX
-LIBS = -lvideo -lbsd
-AR = ar
-
-include makefile.obj
-
-OBJ = $(OBJECTS)
-
-
-all: crawl.exe scoretable.exe
-
-install: ..\crawl.exe ..\scoretable.exe
-
-crawl.a: $(OBJS)
- $(AR) r crawl.a $(OBJS)
-
-..\crawl.exe: crawl.exe
- +copy crawl.exe ..
- emxbind -s ..\crawl.exe
-
-..\scoretable.exe: scoretable.exe
- +copy scoretable.exe ..
- emxbind -s ..\scoretable.exe
-clean:
- +del *.o
-
-crawl.exe: crawl.a libemx.o
- $(CC) -o crawl.exe crawl.a libemx.o $(LIBS)
-
-scoretable.exe: scoretab.o libemx.o
- $(CC) -o scoretable.exe scoretab.o libemx.o $(LIBS)
-
-.cc.o:
- $(CC) $(CFLAGS) -c $*.cc
diff --git a/crawl-ref/source/makefile.lnx b/crawl-ref/source/makefile.lnx
index 0ad19bb49b..df2cba085f 100644
--- a/crawl-ref/source/makefile.lnx
+++ b/crawl-ref/source/makefile.lnx
@@ -39,9 +39,8 @@ UTIL = util/
LEX := lex
YACC := bison -y
-YTABC := y.tab.c
-YTABH := y.tab.h
-LEXYYC := lex.yy.c
+YTABC := levcomp.tab.c
+YTABH := levcomp.tab.h
ifeq ($(LEX),)
DOYACC :=
@@ -77,34 +76,31 @@ mapdefs.ixx: dat/vaults.des dat/splev.des $(LEVCOMP)
$(LEVCOMP) $@ < dat/vaults.des
$(LEVCOMP) -a $@ < dat/splev.des
-$(LEVCOMP): $(UTIL)levcomp_yacc.o $(UTIL)levcomp_lex.o mapdef.o
+$(LEVCOMP): $(UTIL)levcomp.tab.o $(UTIL)levcomp.lex.o mapdef.o $(UTIL)levcomp.o
$(CXX) -o $@ $^
ifeq ($(DOYACC),y)
-prebuildyacc: mapdefs.ixx $(UTIL)levcomp_yacc.cc $(UTIL)levcomp_lex.cc \
- $(UTIL)levcomp.h
+prebuildyacc: mapdefs.ixx $(UTIL)levcomp.tab.cc $(UTIL)levcomp.tab.h $(UTIL)levcomp.lex.cc
cp $^ prebuilt/
-$(UTIL)levcomp_yacc.cc: $(UTIL)levcomp.y
- cd $(UTIL) && $(YACC) -d levcomp.y \
- && mv $(YTABH) levcomp.h \
- && mv $(YTABC) levcomp_yacc.cc
+$(UTIL)levcomp.tab.cc: $(UTIL)levcomp.ypp
+ cd $(UTIL) && $(YACC) -d -b levcomp levcomp.ypp \
+ && mv $(YTABC) levcomp.tab.cc
-$(UTIL)levcomp_lex.cc: $(UTIL)levcomp.l
- cd $(UTIL) && $(LEX) levcomp.l \
- && mv $(LEXYYC) levcomp_lex.cc
+$(UTIL)levcomp.lex.cc: $(UTIL)levcomp.lpp
+ cd $(UTIL) && $(LEX) -olevcomp.lex.cc levcomp.lpp
else
# Pull the level-compiler stuff up from prebuilt/
-$(UTIL)levcomp_yacc.cc: prebuilt/levcomp_yacc.cc
- cp prebuilt/*.h .
+$(UTIL)levcomp.tab.cc: prebuilt/levcomp.tab.cc
+ cp prebuilt/*.h $(UTIL)
cp $< $@
-$(UTIL)levcomp_lex.cc: prebuilt/levcomp_lex.cc
+$(UTIL)levcomp.lex.cc: prebuilt/levcomp.lex.cc
cp $< $@
endif
@@ -124,7 +120,7 @@ clean:
$(DELETE) *.o
$(DELETE) $(UTIL)*.o
$(DELETE) $(LEVCOMP)
- $(DELETE) $(UTIL)*.cc $(UTIL)*.c $(UTIL)*.h
+ $(DELETE) $(UTIL)*.tab.cc $(UTIL)*.tab.c $(UTIL)*.tab.h $(UTIL)*.lex.cc
$(DELETE) *.ixx
distclean:
diff --git a/crawl-ref/source/makefile.mgw b/crawl-ref/source/makefile.mgw
index f85ade2814..b4da9d91c9 100644
--- a/crawl-ref/source/makefile.mgw
+++ b/crawl-ref/source/makefile.mgw
@@ -41,9 +41,8 @@ DOYACC := n
LEX := flex
YACC := bison -y
-YTABC := y.tab.c
-YTABH := y.tab.h
-LEXYYC := lex.yy.c
+YTABC := levcomp.tab.c
+YTABH := levcomp.tab.h
ifeq ($(LEX),)
@@ -72,32 +71,29 @@ mapdefs.ixx: dat/vaults.des dat/splev.des $(UTIL)levcomp.exe
$(subst /,\, $(UTIL)levcomp.exe $@ < dat/vaults.des)
$(subst /,\, $(UTIL)levcomp.exe -a $@ < dat/splev.des)
-$(UTIL)levcomp.exe: $(UTIL)levcomp_yacc.o $(UTIL)levcomp_lex.o $(OPATH)/mapdef.o
+$(UTIL)levcomp.exe: $(UTIL)levcomp.tab.o $(UTIL)levcomp.lex.o $(OPATH)/mapdef.o $(UTIL)levcomp.o
$(CXX) -o $@ $^
ifeq ($(DOYACC),y)
# [ds] A plague on the broken copy command on Windoze.
-prebuildyacc: mapdefs.ixx $(UTIL)levcomp_lex.cc $(UTIL)levcomp_yacc.cc \
- $(UTIL)levcomp.h
+prebuildyacc: mapdefs.ixx $(UTIL)levcomp.lex.cc $(UTIL)levcomp.tab.cc $(UTIL)levcomp.tab.h
$(subst /,\,for %%f in ($^) do $(COPY) %%f prebuilt)
-$(UTIL)levcomp_yacc.cc: $(UTIL)levcomp.y
- $(subst /,\, cd $(UTIL)) && $(YACC) -d levcomp.y
- $(subst /,\, cd $(UTIL)) && move $(YTABH) levcomp.h
- $(subst /,\, cd $(UTIL)) && move $(YTABC) levcomp_yacc.cc
+$(UTIL)levcomp.tab.cc: $(UTIL)levcomp.ypp
+ $(subst /,\, cd $(UTIL)) && $(YACC) -d -b levcomp levcomp.ypp
+ $(subst /,\, cd $(UTIL)) && move $(YTABC) levcomp.tab.cc
-$(UTIL)levcomp_lex.cc: $(UTIL)levcomp.l
- $(subst /,\, cd $(UTIL) && $(LEX) levcomp.l)
- $(subst /,\, cd $(UTIL) && move $(LEXYYC) levcomp_lex.cc)
+$(UTIL)levcomp_lex.cc: $(UTIL)levcomp.lpp
+ $(subst /,\, cd $(UTIL) && $(LEX) -olevcomp.lex.cc levcomp.lpp)
else
-$(UTIL)levcomp_yacc.cc: prebuilt/levcomp_yacc.cc
- $(subst /,\,$(COPY) prebuilt/*.h .)
+$(UTIL)levcomp.tab.cc: prebuilt/levcomp.tab.cc
+ $(subst /,\,$(COPY) prebuilt/*.h $(UTIL))
$(subst /,\,$(COPY) $< $@)
-$(UTIL)levcomp_lex.cc: prebuilt/levcomp_lex.cc
+$(UTIL)levcomp.lex.cc: prebuilt/levcomp.lex.cc
$(subst /,\,$(COPY) $< $@)
endif
@@ -111,9 +107,10 @@ clean:
$(DELETE) $(OPATH)\*.o
$(subst /,\,$(DELETE) $(UTIL)*.o)
$(subst /,\,$(DELETE) $(UTIL)*.exe)
- $(subst /,\,$(DELETE) $(UTIL)*.cc)
- $(subst /,\,$(DELETE) $(UTIL)*.h)
- $(subst /,\,$(DELETE) $(UTIL)*.c)
+ $(subst /,\,$(DELETE) $(UTIL)*.lex.cc)
+ $(subst /,\,$(DELETE) $(UTIL)*.tab.cc)
+ $(subst /,\,$(DELETE) $(UTIL)*.tab.h)
+ $(subst /,\,$(DELETE) $(UTIL)*.tab.c)
$(subst /,\,$(DELETE) *.ixx)
distclean:
diff --git a/crawl-ref/source/makefile.sgi b/crawl-ref/source/makefile.sgi
deleted file mode 100644
index 67815feaae..0000000000
--- a/crawl-ref/source/makefile.sgi
+++ /dev/null
@@ -1,54 +0,0 @@
-# Make file for Dungeon Crawl (irix)
-
-APPNAME = crawl
-
-# this file contains a list of the libraries.
-# it will make a variable called OBJECTS that contains all the libraries
-include makefile.obj
-
-CXX = CC
-DELETE = rm -f
-COPY = cp
-OS_TYPE = LINUX
-CFLAGS = -Wall -D$(OS_TYPE) $(EXTRA_FLAGS)
-LDFLAGS = -L/usr/lib
-MCHMOD = 711
-INSTALLDIR = /usr/games
-LIB = -lncurses
-
-# Include for Linux
-INCLUDES = -I/usr/include/ncurses
-
-all: $(APPNAME)
-
-%.o: %.cc
- @echo hello
- @${CXX} ${CFLAGS} -c $< ${INCLUDE}
-
-install: $(APPNAME)
- $(COPY) $(APPNAME) ${INSTALLDIR}
- chmod ${MCHMOD} ${INSTALLDIR}/$(APPNAME)
-
-clean:
- $(DELETE) *.o
-
-distclean:
- $(DELETE) *.o
- $(DELETE) bones.*
- $(DELETE) morgue.txt
- $(DELETE) scores
- $(DELETE) $(APPNAME)
-
-$(APPNAME): $(OBJECTS)
- ${CXX} ${LDFLAGS} $(INCLUDES) $(CFLAGS) $(OBJECTS) -o $(APPNAME) $(LIB)
- strip $(APPNAME)
- chmod ${MCHMOD} $(APPNAME)
-
-debug: $(OBJECTS)
- ${CXX} ${LDFLAGS} $(INCLUDES) $(CFLAGS) $(OBJECTS) -o $(APPNAME) $(LIB)
-
-profile: $(OBJECTS)
- ${CXX} -g -p ${LDFLAGS} $(INCLUDES) $(CFLAGS) $(OBJECTS) -o $(APPNAME) $(LIB)
-
-.h.cc:
- touch $@
diff --git a/crawl-ref/source/makefile.sol b/crawl-ref/source/makefile.sol
deleted file mode 100644
index e79d7e3a53..0000000000
--- a/crawl-ref/source/makefile.sol
+++ /dev/null
@@ -1,68 +0,0 @@
-# Make file for Dungeon Crawl (solaris)
-
-#
-# Modified for Crawl Reference by $Author$ on $Date$
-#
-
-APPNAME = crawl
-
-# this file contains a list of the libraries.
-# it will make a variable called OBJECTS that contains all the libraries
-include makefile.obj
-
-OBJECTS += libunix.o
-
-CXX = g++
-DELETE = rm -f
-COPY = cp
-GROUP = games
-MOVE = mv
-OS_TYPE = SOLARIS
-
-CFLAGS = -Wall -Wwrite-strings -Wstrict-prototypes \
- -Wmissing-prototypes -Wmissing-declarations \
- -g -D$(OS_TYPE) $(EXTRA_FLAGS)
-
-LDFLAGS = -static
-MCHMOD = 2755
-INSTALLDIR = /opt/local/newcrawl/bin
-LIB = -lcurses
-
-all: $(APPNAME)
-
-install: $(APPNAME)
- #strip $(APPNAME)
- $(MOVE) ${INSTALLDIR}/${APPNAME} ${INSTALLDIR}/${APPNAME}.old
- $(COPY) $(APPNAME) ${INSTALLDIR}
- chgrp ${GROUP} ${INSTALLDIR}/${APPNAME}
- chmod ${MCHMOD} ${INSTALLDIR}/$(APPNAME)
-
-clean:
- $(DELETE) *.o
-
-distclean:
- $(DELETE) *.o
- $(DELETE) bones.*
- $(DELETE) morgue.txt
- $(DELETE) scores
- $(DELETE) $(APPNAME)
- $(DELETE) *.sav
- $(DELETE) core
- $(DELETE) *.0*
- $(DELETE) *.lab
-
-
-$(APPNAME): $(OBJECTS)
- ${CXX} ${LDFLAGS} $(INCLUDES) $(CFLAGS) $(OBJECTS) -o $(APPNAME) $(LIB)
-
-debug: $(OBJECTS)
- ${CXX} ${LDFLAGS} $(INCLUDES) $(CFLAGS) $(OBJECTS) -o $(APPNAME) $(LIB)
-
-profile: $(OBJECTS)
- ${CXX} -g -p ${LDFLAGS} $(INCLUDES) $(CFLAGS) $(OBJECTS) -o $(APPNAME) $(LIB)
-
-.cc.o:
- ${CXX} ${CFLAGS} -c $< ${INCLUDE}
-
-.h.cc:
- touch $@
diff --git a/crawl-ref/source/misc.cc b/crawl-ref/source/misc.cc
index d903cfae71..14ee373ddb 100644
--- a/crawl-ref/source/misc.cc
+++ b/crawl-ref/source/misc.cc
@@ -18,7 +18,7 @@
#include "notes.h"
#include <string.h>
-#if !(defined(__IBMCPP__) || defined(__BCPLUSPLUS__))
+#if !defined(__IBMCPP__)
#include <unistd.h>
#endif
diff --git a/crawl-ref/source/newgame.cc b/crawl-ref/source/newgame.cc
index 97718a3691..c986474d27 100644
--- a/crawl-ref/source/newgame.cc
+++ b/crawl-ref/source/newgame.cc
@@ -67,18 +67,6 @@
#include <unistd.h>
#endif
-#ifdef USE_EMX
-#include <sys/types.h>
-#include <fcntl.h>
-#include <unistd.h>
-#endif
-
-#ifdef OS9
-#include <stat.h>
-#else
-#include <sys/stat.h>
-#endif
-
#include "externs.h"
#include "abl-show.h"
diff --git a/crawl-ref/source/ouch.cc b/crawl-ref/source/ouch.cc
index 47864f127a..4cc78e65d8 100644
--- a/crawl-ref/source/ouch.cc
+++ b/crawl-ref/source/ouch.cc
@@ -44,18 +44,6 @@
#include <unistd.h>
#endif
-#ifdef USE_EMX
-#include <sys/types.h>
-#include <fcntl.h>
-#include <unistd.h>
-#endif
-
-#ifdef OS9
-#include <stat.h>
-#else
-#include <sys/stat.h>
-#endif
-
#include "ouch.h"
#ifdef __MINGW32__
diff --git a/crawl-ref/source/prebuilt/levcomp.h b/crawl-ref/source/prebuilt/levcomp.h
deleted file mode 100644
index ae44292ce6..0000000000
--- a/crawl-ref/source/prebuilt/levcomp.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.3. */
-
-/* Skeleton interface for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-/* As a special exception, you may create a larger work that contains
- part or all of the Bison parser skeleton and distribute that work
- under terms of your choice, so long as that work isn't itself a
- parser generator using the skeleton or a modified version thereof
- as a parser skeleton. Alternatively, if you modify or redistribute
- the parser skeleton itself, you may (at your option) remove this
- special exception, which will cause the skeleton and the resulting
- Bison output files to be licensed under the GNU General Public
- License without this special exception.
-
- This special exception was added by the Free Software Foundation in
- version 2.2 of Bison. */
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- DEFAULT_DEPTH = 258,
- SYMBOL = 259,
- TAGS = 260,
- NAME = 261,
- DEPTH = 262,
- ORIENT = 263,
- PLACE = 264,
- CHANCE = 265,
- FLAGS = 266,
- MONS = 267,
- ENCOMPASS = 268,
- NORTH = 269,
- EAST = 270,
- SOUTH = 271,
- WEST = 272,
- NORTH_DIS = 273,
- NORTHEAST = 274,
- SOUTHEAST = 275,
- SOUTHWEST = 276,
- NORTHWEST = 277,
- BAD_CHARACTER = 278,
- NO_HMIRROR = 279,
- NO_VMIRROR = 280,
- PANDEMONIC = 281,
- DASH = 282,
- COMMA = 283,
- INTEGER = 284,
- STRING = 285,
- MAP_LINE = 286,
- MONSTER_NAME = 287
- };
-#endif
-/* Tokens. */
-#define DEFAULT_DEPTH 258
-#define SYMBOL 259
-#define TAGS 260
-#define NAME 261
-#define DEPTH 262
-#define ORIENT 263
-#define PLACE 264
-#define CHANCE 265
-#define FLAGS 266
-#define MONS 267
-#define ENCOMPASS 268
-#define NORTH 269
-#define EAST 270
-#define SOUTH 271
-#define WEST 272
-#define NORTH_DIS 273
-#define NORTHEAST 274
-#define SOUTHEAST 275
-#define SOUTHWEST 276
-#define NORTHWEST 277
-#define BAD_CHARACTER 278
-#define NO_HMIRROR 279
-#define NO_VMIRROR 280
-#define PANDEMONIC 281
-#define DASH 282
-#define COMMA 283
-#define INTEGER 284
-#define STRING 285
-#define MAP_LINE 286
-#define MONSTER_NAME 287
-
-
-
-
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
-#line 54 "levcomp.y"
-{
- int i;
- const char *text;
-}
-/* Line 1529 of yacc.c. */
-#line 118 "y.tab.h"
- YYSTYPE;
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-extern YYSTYPE yylval;
-
diff --git a/crawl-ref/source/prebuilt/levcomp_lex.cc b/crawl-ref/source/prebuilt/levcomp.lex.cc
index 61c26aef8c..8002c491bf 100644
--- a/crawl-ref/source/prebuilt/levcomp_lex.cc
+++ b/crawl-ref/source/prebuilt/levcomp.lex.cc
@@ -1,7 +1,8 @@
+#line 2 "levcomp.lex.cc"
/* A lexical scanner generated by flex */
/* Scanner skeleton version:
- * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
+ * $Header: /cvs/root/flex/flex/skel.c,v 1.2 2004/05/07 00:28:17 jkh Exp $
*/
#define FLEX_SCANNER
@@ -9,7 +10,7 @@
#define YY_FLEX_MINOR_VERSION 5
#include <stdio.h>
-#include <errno.h>
+
/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
#ifdef c_plusplus
@@ -22,9 +23,7 @@
#ifdef __cplusplus
#include <stdlib.h>
-#ifndef _WIN32
#include <unistd.h>
-#endif
/* Use prototypes in function declarations. */
#define YY_USE_PROTOS
@@ -64,7 +63,6 @@
#define YY_PROTO(proto) ()
#endif
-
/* Returned upon end-of-file. */
#define YY_NULL 0
@@ -1079,16 +1077,16 @@ goto find_rule; \
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
-#line 1 "levcomp.l"
+#line 1 "levcomp.lpp"
#define INITIAL 0
-#line 2 "levcomp.l"
+#line 2 "levcomp.lpp"
// levcomp.l:
// Level compiler lexer for Dungeon Crawl Stone Soup.
//
// Based loosely on NetHack's lev_comp.l
-#include "levcomp.h"
+#include "levcomp.tab.h"
#include <cstring>
static bool alloced = false;
@@ -1116,7 +1114,7 @@ static void settext()
#define KEYWORDS 4
#define YY_NEVER_INTERACTIVE 1
-#line 1120 "lex.yy.c"
+#line 1118 "levcomp.lex.cc"
/* Macros after this point can all be overridden by user definitions in
* section 1.
@@ -1216,20 +1214,9 @@ YY_MALLOC_DECL
YY_FATAL_ERROR( "input in flex scanner failed" ); \
result = n; \
} \
- else \
- { \
- errno=0; \
- while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
- { \
- if( errno != EINTR) \
- { \
- YY_FATAL_ERROR( "input in flex scanner failed" ); \
- break; \
- } \
- errno=0; \
- clearerr(yyin); \
- } \
- }
+ else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
+ && ferror( yyin ) ) \
+ YY_FATAL_ERROR( "input in flex scanner failed" );
#endif
/* No semi-colon after return; correct usage is to write "yyterminate();" -
@@ -1281,10 +1268,10 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 39 "levcomp.l"
+#line 39 "levcomp.lpp"
-#line 1288 "lex.yy.c"
+#line 1275 "levcomp.lex.cc"
if ( yy_init )
{
@@ -1378,17 +1365,17 @@ do_action: /* This label is used only to access EOF actions. */
{ /* beginning of action switch */
case 1:
YY_RULE_SETUP
-#line 41 "levcomp.l"
+#line 41 "levcomp.lpp"
{ BEGIN(INITIAL); }
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 43 "levcomp.l"
+#line 43 "levcomp.lpp"
;
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 45 "levcomp.l"
+#line 45 "levcomp.lpp"
{
settext();
return MAP_LINE;
@@ -1396,67 +1383,67 @@ YY_RULE_SETUP
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 50 "levcomp.l"
+#line 50 "levcomp.lpp"
{ BEGIN(MAPDEF); }
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 52 "levcomp.l"
+#line 52 "levcomp.lpp"
;
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 54 "levcomp.l"
+#line 54 "levcomp.lpp"
{ BEGIN(ARGUMENT); return NAME; }
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 55 "levcomp.l"
+#line 55 "levcomp.lpp"
return DEFAULT_DEPTH;
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 56 "levcomp.l"
+#line 56 "levcomp.lpp"
return DEPTH;
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 57 "levcomp.l"
+#line 57 "levcomp.lpp"
return ORIENT;
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 58 "levcomp.l"
+#line 58 "levcomp.lpp"
{ BEGIN(ARGUMENT); return PLACE; }
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 59 "levcomp.l"
+#line 59 "levcomp.lpp"
return CHANCE;
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 60 "levcomp.l"
+#line 60 "levcomp.lpp"
return FLAGS;
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 61 "levcomp.l"
+#line 61 "levcomp.lpp"
{ BEGIN(KEYWORDS); return TAGS; }
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 62 "levcomp.l"
+#line 62 "levcomp.lpp"
{ BEGIN(ARGUMENT); return SYMBOL; }
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 63 "levcomp.l"
+#line 63 "levcomp.lpp"
{ BEGIN(MNAME); return MONS; }
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 65 "levcomp.l"
+#line 65 "levcomp.lpp"
{
settext();
return STRING;
@@ -1464,17 +1451,17 @@ YY_RULE_SETUP
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 70 "levcomp.l"
+#line 70 "levcomp.lpp"
;
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 71 "levcomp.l"
+#line 71 "levcomp.lpp"
{ BEGIN(INITIAL); }
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 73 "levcomp.l"
+#line 73 "levcomp.lpp"
{
settext();
return MONSTER_NAME;
@@ -1482,97 +1469,97 @@ YY_RULE_SETUP
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 78 "levcomp.l"
+#line 78 "levcomp.lpp"
return COMMA;
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 79 "levcomp.l"
+#line 79 "levcomp.lpp"
{ BEGIN(INITIAL); }
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 80 "levcomp.l"
+#line 80 "levcomp.lpp"
;
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 82 "levcomp.l"
+#line 82 "levcomp.lpp"
return PANDEMONIC;
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 83 "levcomp.l"
+#line 83 "levcomp.lpp"
return NO_HMIRROR;
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 84 "levcomp.l"
+#line 84 "levcomp.lpp"
return NO_VMIRROR;
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 86 "levcomp.l"
+#line 86 "levcomp.lpp"
return ENCOMPASS;
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 87 "levcomp.l"
+#line 87 "levcomp.lpp"
return NORTH;
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 88 "levcomp.l"
+#line 88 "levcomp.lpp"
return SOUTH;
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 89 "levcomp.l"
+#line 89 "levcomp.lpp"
return EAST;
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 90 "levcomp.l"
+#line 90 "levcomp.lpp"
return WEST;
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 91 "levcomp.l"
+#line 91 "levcomp.lpp"
return NORTHEAST;
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 92 "levcomp.l"
+#line 92 "levcomp.lpp"
return NORTHWEST;
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 93 "levcomp.l"
+#line 93 "levcomp.lpp"
return SOUTHEAST;
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 94 "levcomp.l"
+#line 94 "levcomp.lpp"
return SOUTHWEST;
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 95 "levcomp.l"
+#line 95 "levcomp.lpp"
return NORTH_DIS;
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 97 "levcomp.l"
+#line 97 "levcomp.lpp"
return DASH;
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 98 "levcomp.l"
+#line 98 "levcomp.lpp"
return COMMA;
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 100 "levcomp.l"
+#line 100 "levcomp.lpp"
{
yylval.i = atoi(yytext);
return INTEGER;
@@ -1580,7 +1567,7 @@ YY_RULE_SETUP
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 105 "levcomp.l"
+#line 105 "levcomp.lpp"
{
BEGIN(INITIAL);
settext();
@@ -1589,25 +1576,25 @@ YY_RULE_SETUP
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 111 "levcomp.l"
+#line 111 "levcomp.lpp"
{ BEGIN(INITIAL); }
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 113 "levcomp.l"
+#line 113 "levcomp.lpp"
;
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 115 "levcomp.l"
+#line 115 "levcomp.lpp"
return BAD_CHARACTER;
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 117 "levcomp.l"
+#line 117 "levcomp.lpp"
ECHO;
YY_BREAK
-#line 1611 "lex.yy.c"
+#line 1598 "levcomp.lex.cc"
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(MAPDEF):
case YY_STATE_EOF(ARGUMENT):
@@ -2175,15 +2162,11 @@ YY_BUFFER_STATE b;
}
-#ifndef _WIN32
-#include <unistd.h>
-#else
#ifndef YY_ALWAYS_INTERACTIVE
#ifndef YY_NEVER_INTERACTIVE
extern int isatty YY_PROTO(( int ));
#endif
#endif
-#endif
#ifdef YY_USE_PROTOS
void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
@@ -2501,7 +2484,7 @@ int main()
return 0;
}
#endif
-#line 117 "levcomp.l"
+#line 117 "levcomp.lpp"
int yywrap()
diff --git a/crawl-ref/source/prebuilt/levcomp.tab.cc b/crawl-ref/source/prebuilt/levcomp.tab.cc
new file mode 100644
index 0000000000..98a54f9f49
--- /dev/null
+++ b/crawl-ref/source/prebuilt/levcomp.tab.cc
@@ -0,0 +1,1201 @@
+
+/* A Bison parser, made from levcomp.ypp
+ by GNU Bison version 1.28 */
+
+#define YYBISON 1 /* Identify Bison output. */
+
+#define DEFAULT_DEPTH 257
+#define SYMBOL 258
+#define TAGS 259
+#define NAME 260
+#define DEPTH 261
+#define ORIENT 262
+#define PLACE 263
+#define CHANCE 264
+#define FLAGS 265
+#define MONS 266
+#define ENCOMPASS 267
+#define NORTH 268
+#define EAST 269
+#define SOUTH 270
+#define WEST 271
+#define NORTH_DIS 272
+#define NORTHEAST 273
+#define SOUTHEAST 274
+#define SOUTHWEST 275
+#define NORTHWEST 276
+#define BAD_CHARACTER 277
+#define NO_HMIRROR 278
+#define NO_VMIRROR 279
+#define PANDEMONIC 280
+#define DASH 281
+#define COMMA 282
+#define INTEGER 283
+#define STRING 284
+#define MAP_LINE 285
+#define MONSTER_NAME 286
+
+#line 1 "levcomp.ypp"
+
+
+#include "levcomp.h"
+
+int yylex();
+
+extern int yylineno;
+
+void yyerror(const char *e)
+{
+ fprintf(stderr, "Error on line %d: %s\n", yylineno, e);
+
+ // If an error occurs, delete the file we're supposed to be writing to
+ // so that life is easier for makefile writers.
+ if (outhandle && outfilename) {
+ fclose(outhandle);
+ outhandle = NULL;
+ }
+
+ if (outfilename) {
+ unlink(outfilename);
+ outfilename = NULL;
+ }
+}
+
+
+#line 28 "levcomp.ypp"
+typedef union
+{
+ int i;
+ const char *text;
+} YYSTYPE;
+#include <stdio.h>
+
+#ifndef __cplusplus
+#ifndef __STDC__
+#define const
+#endif
+#endif
+
+
+
+#define YYFINAL 70
+#define YYFLAG -32768
+#define YYNTBASE 33
+
+#define YYTRANSLATE(x) ((unsigned)(x) <= 286 ? yytranslate[x] : 60)
+
+static const char yytranslate[] = { 0,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32
+};
+
+#if YYDEBUG != 0
+static const short yyprhs[] = { 0,
+ 0, 3, 4, 7, 9, 12, 13, 16, 21, 24,
+ 25, 28, 30, 32, 34, 36, 38, 40, 42, 44,
+ 47, 48, 51, 53, 56, 58, 61, 65, 67, 69,
+ 72, 74, 77, 81, 83, 86, 88, 91, 93, 95,
+ 97, 99, 101, 103, 105, 107, 109, 111, 114, 115,
+ 118, 120, 122, 124, 126, 129
+};
+
+static const short yyrhs[] = { 34,
+ 37, 0, 0, 34, 35, 0, 36, 0, 3, 50,
+ 0, 0, 38, 37, 0, 39, 40, 57, 40, 0,
+ 6, 30, 0, 0, 41, 40, 0, 48, 0, 49,
+ 0, 51, 0, 52, 0, 54, 0, 45, 0, 44,
+ 0, 42, 0, 5, 43, 0, 0, 30, 43, 0,
+ 4, 0, 4, 30, 0, 12, 0, 12, 46, 0,
+ 47, 28, 46, 0, 47, 0, 32, 0, 9, 30,
+ 0, 7, 0, 7, 50, 0, 29, 27, 29, 0,
+ 29, 0, 10, 29, 0, 8, 0, 8, 53, 0,
+ 13, 0, 14, 0, 15, 0, 16, 0, 17, 0,
+ 19, 0, 20, 0, 21, 0, 22, 0, 18, 0,
+ 11, 55, 0, 0, 56, 55, 0, 24, 0, 25,
+ 0, 58, 0, 59, 0, 59, 58, 0, 31, 0
+};
+
+#endif
+
+#if YYDEBUG != 0
+static const short yyrline[] = { 0,
+ 54, 63, 64, 67, 70, 76, 77, 80, 100, 108,
+ 109, 112, 113, 114, 115, 116, 117, 118, 119, 122,
+ 125, 126, 134, 135, 141, 142, 145, 146, 149, 155,
+ 161, 162, 168, 173, 179, 185, 186, 192, 193, 194,
+ 195, 196, 197, 198, 199, 200, 201, 204, 207, 208,
+ 221, 222, 225, 228, 229, 232
+};
+#endif
+
+
+#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
+
+static const char * const yytname[] = { "$","error","$undefined.","DEFAULT_DEPTH",
+"SYMBOL","TAGS","NAME","DEPTH","ORIENT","PLACE","CHANCE","FLAGS","MONS","ENCOMPASS",
+"NORTH","EAST","SOUTH","WEST","NORTH_DIS","NORTHEAST","SOUTHEAST","SOUTHWEST",
+"NORTHWEST","BAD_CHARACTER","NO_HMIRROR","NO_VMIRROR","PANDEMONIC","DASH","COMMA",
+"INTEGER","STRING","MAP_LINE","MONSTER_NAME","file","defs","def","defdepth",
+"levels","level","name","metalines","metaline","tags","tagstrings","symbol",
+"mons","mnames","mname","place","depth","depth_range","chance","orientation",
+"orient_name","flags","flagnames","flagname","map_def","map_lines","map_line", NULL
+};
+#endif
+
+static const short yyr1[] = { 0,
+ 33, 34, 34, 35, 36, 37, 37, 38, 39, 40,
+ 40, 41, 41, 41, 41, 41, 41, 41, 41, 42,
+ 43, 43, 44, 44, 45, 45, 46, 46, 47, 48,
+ 49, 49, 50, 50, 51, 52, 52, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 54, 55, 55,
+ 56, 56, 57, 58, 58, 59
+};
+
+static const short yyr2[] = { 0,
+ 2, 0, 2, 1, 2, 0, 2, 4, 2, 0,
+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 2,
+ 0, 2, 1, 2, 1, 2, 3, 1, 1, 2,
+ 1, 2, 3, 1, 2, 1, 2, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 2, 0, 2,
+ 1, 1, 1, 1, 2, 1
+};
+
+static const short yydefact[] = { 2,
+ 6, 0, 0, 3, 4, 1, 6, 10, 34, 5,
+ 9, 7, 23, 21, 31, 36, 0, 0, 49, 25,
+ 0, 10, 19, 18, 17, 12, 13, 14, 15, 16,
+ 0, 24, 21, 20, 32, 38, 39, 40, 41, 42,
+ 47, 43, 44, 45, 46, 37, 30, 35, 51, 52,
+ 48, 49, 29, 26, 28, 56, 10, 53, 54, 11,
+ 33, 22, 50, 0, 8, 55, 27, 0, 0, 0
+};
+
+static const short yydefgoto[] = { 68,
+ 1, 4, 5, 6, 7, 8, 21, 22, 23, 34,
+ 24, 25, 54, 55, 26, 27, 10, 28, 29, 46,
+ 30, 51, 52, 57, 58, 59
+};
+
+static const short yypact[] = {-32768,
+ 17, -16, -6,-32768,-32768,-32768, 19, 7, -1,-32768,
+-32768,-32768, -2, 0, -16, -12, 1, 3, -3, -5,
+ 2, 7,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+ 5,-32768, 0,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768, -3,-32768,-32768, 8,-32768, 7,-32768, 2,-32768,
+-32768,-32768,-32768, -5,-32768,-32768,-32768, 29, 37,-32768
+};
+
+static const short yypgoto[] = {-32768,
+-32768,-32768,-32768, 31,-32768,-32768, -22,-32768,-32768, 6,
+-32768,-32768, -24,-32768,-32768,-32768, 26,-32768,-32768,-32768,
+-32768, -10,-32768,-32768, -15,-32768
+};
+
+
+#define YYLAST 44
+
+
+static const short yytable[] = { 60,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 13, 14, 9, 15, 16, 17, 18, 19, 20, 2,
+ 49, 50, 3, 11, 3, 31, 53, 32, 69, 33,
+ 47, 48, 56, 61, 65, 64, 70, 12, 62, 67,
+ 35, 63, 0, 66
+};
+
+static const short yycheck[] = { 22,
+ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+ 4, 5, 29, 7, 8, 9, 10, 11, 12, 3,
+ 24, 25, 6, 30, 6, 27, 32, 30, 0, 30,
+ 30, 29, 31, 29, 57, 28, 0, 7, 33, 64,
+ 15, 52, -1, 59
+};
+/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
+#line 3 "/usr/share/bison.simple"
+/* This file comes from bison-1.28. */
+
+/* Skeleton output parser for bison,
+ Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* As a special exception, when this file is copied by Bison into a
+ Bison output file, you may use that output file without restriction.
+ This special exception was added by the Free Software Foundation
+ in version 1.24 of Bison. */
+
+/* This is the parser code that is written into each bison parser
+ when the %semantic_parser declaration is not specified in the grammar.
+ It was written by Richard Stallman by simplifying the hairy parser
+ used when %semantic_parser is specified. */
+
+#ifndef YYSTACK_USE_ALLOCA
+#ifdef alloca
+#define YYSTACK_USE_ALLOCA
+#else /* alloca not defined */
+#ifdef __GNUC__
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
+#else /* not GNU C. */
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
+#define YYSTACK_USE_ALLOCA
+#include <alloca.h>
+#else /* not sparc */
+/* We think this test detects Watcom and Microsoft C. */
+/* This used to test MSDOS, but that is a bad idea
+ since that symbol is in the user namespace. */
+#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
+#if 0 /* No need for malloc.h, which pollutes the namespace;
+ instead, just don't use alloca. */
+#include <malloc.h>
+#endif
+#else /* not MSDOS, or __TURBOC__ */
+#if defined(_AIX)
+/* I don't know what this was needed for, but it pollutes the namespace.
+ So I turned it off. rms, 2 May 1997. */
+/* #include <malloc.h> */
+ #pragma alloca
+#define YYSTACK_USE_ALLOCA
+#else /* not MSDOS, or __TURBOC__, or _AIX */
+#if 0
+#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
+ and on HPUX 10. Eventually we can turn this on. */
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
+#endif /* __hpux */
+#endif
+#endif /* not _AIX */
+#endif /* not MSDOS, or __TURBOC__ */
+#endif /* not sparc */
+#endif /* not GNU C */
+#endif /* alloca not defined */
+#endif /* YYSTACK_USE_ALLOCA not defined */
+
+#ifdef YYSTACK_USE_ALLOCA
+#define YYSTACK_ALLOC alloca
+#else
+#define YYSTACK_ALLOC malloc
+#endif
+
+/* Note: there must be only one dollar sign in this file.
+ It is replaced by the list of actions, each action
+ as one case of the switch. */
+
+#define yyerrok (yyerrstatus = 0)
+#define yyclearin (yychar = YYEMPTY)
+#define YYEMPTY -2
+#define YYEOF 0
+#define YYACCEPT goto yyacceptlab
+#define YYABORT goto yyabortlab
+#define YYERROR goto yyerrlab1
+/* Like YYERROR except do call yyerror.
+ This remains here temporarily to ease the
+ transition to the new meaning of YYERROR, for GCC.
+ Once GCC version 2 has supplanted version 1, this can go. */
+#define YYFAIL goto yyerrlab
+#define YYRECOVERING() (!!yyerrstatus)
+#define YYBACKUP(token, value) \
+do \
+ if (yychar == YYEMPTY && yylen == 1) \
+ { yychar = (token), yylval = (value); \
+ yychar1 = YYTRANSLATE (yychar); \
+ YYPOPSTACK; \
+ goto yybackup; \
+ } \
+ else \
+ { yyerror ("syntax error: cannot back up"); YYERROR; } \
+while (0)
+
+#define YYTERROR 1
+#define YYERRCODE 256
+
+#ifndef YYPURE
+#define YYLEX yylex()
+#endif
+
+#ifdef YYPURE
+#ifdef YYLSP_NEEDED
+#ifdef YYLEX_PARAM
+#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
+#else
+#define YYLEX yylex(&yylval, &yylloc)
+#endif
+#else /* not YYLSP_NEEDED */
+#ifdef YYLEX_PARAM
+#define YYLEX yylex(&yylval, YYLEX_PARAM)
+#else
+#define YYLEX yylex(&yylval)
+#endif
+#endif /* not YYLSP_NEEDED */
+#endif
+
+/* If nonreentrant, generate the variables here */
+
+#ifndef YYPURE
+
+int yychar; /* the lookahead symbol */
+YYSTYPE yylval; /* the semantic value of the */
+ /* lookahead symbol */
+
+#ifdef YYLSP_NEEDED
+YYLTYPE yylloc; /* location data for the lookahead */
+ /* symbol */
+#endif
+
+int yynerrs; /* number of parse errors so far */
+#endif /* not YYPURE */
+
+#if YYDEBUG != 0
+int yydebug; /* nonzero means print parse trace */
+/* Since this is uninitialized, it does not stop multiple parsers
+ from coexisting. */
+#endif
+
+/* YYINITDEPTH indicates the initial size of the parser's stacks */
+
+#ifndef YYINITDEPTH
+#define YYINITDEPTH 200
+#endif
+
+/* YYMAXDEPTH is the maximum size the stacks can grow to
+ (effective only if the built-in stack extension method is used). */
+
+#if YYMAXDEPTH == 0
+#undef YYMAXDEPTH
+#endif
+
+#ifndef YYMAXDEPTH
+#define YYMAXDEPTH 10000
+#endif
+
+/* Define __yy_memcpy. Note that the size argument
+ should be passed with type unsigned int, because that is what the non-GCC
+ definitions require. With GCC, __builtin_memcpy takes an arg
+ of type size_t, but it can handle unsigned int. */
+
+#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
+#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
+#else /* not GNU C or C++ */
+#ifndef __cplusplus
+
+/* This is the most reliable way to avoid incompatibilities
+ in available built-in functions on various systems. */
+static void
+__yy_memcpy (to, from, count)
+ char *to;
+ char *from;
+ unsigned int count;
+{
+ register char *f = from;
+ register char *t = to;
+ register int i = count;
+
+ while (i-- > 0)
+ *t++ = *f++;
+}
+
+#else /* __cplusplus */
+
+/* This is the most reliable way to avoid incompatibilities
+ in available built-in functions on various systems. */
+static void
+__yy_memcpy (char *to, char *from, unsigned int count)
+{
+ register char *t = to;
+ register char *f = from;
+ register int i = count;
+
+ while (i-- > 0)
+ *t++ = *f++;
+}
+
+#endif
+#endif
+
+#line 217 "/usr/share/bison.simple"
+
+/* The user can define YYPARSE_PARAM as the name of an argument to be passed
+ into yyparse. The argument should have type void *.
+ It should actually point to an object.
+ Grammar actions can access the variable by casting it
+ to the proper pointer type. */
+
+#ifdef YYPARSE_PARAM
+#ifdef __cplusplus
+#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL
+#else /* not __cplusplus */
+#define YYPARSE_PARAM_ARG YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+#endif /* not __cplusplus */
+#else /* not YYPARSE_PARAM */
+#define YYPARSE_PARAM_ARG
+#define YYPARSE_PARAM_DECL
+#endif /* not YYPARSE_PARAM */
+
+/* Prevent warning if -Wstrict-prototypes. */
+#ifdef __GNUC__
+#ifdef YYPARSE_PARAM
+int yyparse (void *);
+#else
+int yyparse (void);
+#endif
+#endif
+
+int
+yyparse(YYPARSE_PARAM_ARG)
+ YYPARSE_PARAM_DECL
+{
+ register int yystate;
+ register int yyn;
+ register short *yyssp;
+ register YYSTYPE *yyvsp;
+ int yyerrstatus; /* number of tokens to shift before error messages enabled */
+ int yychar1 = 0; /* lookahead token as an internal (translated) token number */
+
+ short yyssa[YYINITDEPTH]; /* the state stack */
+ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
+
+ short *yyss = yyssa; /* refer to the stacks thru separate pointers */
+ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
+
+#ifdef YYLSP_NEEDED
+ YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
+ YYLTYPE *yyls = yylsa;
+ YYLTYPE *yylsp;
+
+#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
+#else
+#define YYPOPSTACK (yyvsp--, yyssp--)
+#endif
+
+ int yystacksize = YYINITDEPTH;
+ int yyfree_stacks = 0;
+
+#ifdef YYPURE
+ int yychar;
+ YYSTYPE yylval;
+ int yynerrs;
+#ifdef YYLSP_NEEDED
+ YYLTYPE yylloc;
+#endif
+#endif
+
+ YYSTYPE yyval; /* the variable used to return */
+ /* semantic values from the action */
+ /* routines */
+
+ int yylen;
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Starting parse\n");
+#endif
+
+ yystate = 0;
+ yyerrstatus = 0;
+ yynerrs = 0;
+ yychar = YYEMPTY; /* Cause a token to be read. */
+
+ /* Initialize stack pointers.
+ Waste one element of value and location stack
+ so that they stay on the same level as the state stack.
+ The wasted elements are never initialized. */
+
+ yyssp = yyss - 1;
+ yyvsp = yyvs;
+#ifdef YYLSP_NEEDED
+ yylsp = yyls;
+#endif
+
+/* Push a new state, which is found in yystate . */
+/* In all cases, when you get here, the value and location stacks
+ have just been pushed. so pushing a state here evens the stacks. */
+yynewstate:
+
+ *++yyssp = yystate;
+
+ if (yyssp >= yyss + yystacksize - 1)
+ {
+ /* Give user a chance to reallocate the stack */
+ /* Use copies of these so that the &'s don't force the real ones into memory. */
+ YYSTYPE *yyvs1 = yyvs;
+ short *yyss1 = yyss;
+#ifdef YYLSP_NEEDED
+ YYLTYPE *yyls1 = yyls;
+#endif
+
+ /* Get the current used size of the three stacks, in elements. */
+ int size = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+ /* Each stack pointer address is followed by the size of
+ the data in use in that stack, in bytes. */
+#ifdef YYLSP_NEEDED
+ /* This used to be a conditional around just the two extra args,
+ but that might be undefined if yyoverflow is a macro. */
+ yyoverflow("parser stack overflow",
+ &yyss1, size * sizeof (*yyssp),
+ &yyvs1, size * sizeof (*yyvsp),
+ &yyls1, size * sizeof (*yylsp),
+ &yystacksize);
+#else
+ yyoverflow("parser stack overflow",
+ &yyss1, size * sizeof (*yyssp),
+ &yyvs1, size * sizeof (*yyvsp),
+ &yystacksize);
+#endif
+
+ yyss = yyss1; yyvs = yyvs1;
+#ifdef YYLSP_NEEDED
+ yyls = yyls1;
+#endif
+#else /* no yyoverflow */
+ /* Extend the stack our own way. */
+ if (yystacksize >= YYMAXDEPTH)
+ {
+ yyerror("parser stack overflow");
+ if (yyfree_stacks)
+ {
+ free (yyss);
+ free (yyvs);
+#ifdef YYLSP_NEEDED
+ free (yyls);
+#endif
+ }
+ return 2;
+ }
+ yystacksize *= 2;
+ if (yystacksize > YYMAXDEPTH)
+ yystacksize = YYMAXDEPTH;
+#ifndef YYSTACK_USE_ALLOCA
+ yyfree_stacks = 1;
+#endif
+ yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
+ __yy_memcpy ((char *)yyss, (char *)yyss1,
+ size * (unsigned int) sizeof (*yyssp));
+ yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
+ __yy_memcpy ((char *)yyvs, (char *)yyvs1,
+ size * (unsigned int) sizeof (*yyvsp));
+#ifdef YYLSP_NEEDED
+ yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
+ __yy_memcpy ((char *)yyls, (char *)yyls1,
+ size * (unsigned int) sizeof (*yylsp));
+#endif
+#endif /* no yyoverflow */
+
+ yyssp = yyss + size - 1;
+ yyvsp = yyvs + size - 1;
+#ifdef YYLSP_NEEDED
+ yylsp = yyls + size - 1;
+#endif
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+#endif
+
+ if (yyssp >= yyss + yystacksize - 1)
+ YYABORT;
+ }
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Entering state %d\n", yystate);
+#endif
+
+ goto yybackup;
+ yybackup:
+
+/* Do appropriate processing given the current state. */
+/* Read a lookahead token if we need one and don't already have one. */
+/* yyresume: */
+
+ /* First try to decide what to do without reference to lookahead token. */
+
+ yyn = yypact[yystate];
+ if (yyn == YYFLAG)
+ goto yydefault;
+
+ /* Not known => get a lookahead token if don't already have one. */
+
+ /* yychar is either YYEMPTY or YYEOF
+ or a valid token in external form. */
+
+ if (yychar == YYEMPTY)
+ {
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Reading a token: ");
+#endif
+ yychar = YYLEX;
+ }
+
+ /* Convert token to internal form (in yychar1) for indexing tables with */
+
+ if (yychar <= 0) /* This means end of input. */
+ {
+ yychar1 = 0;
+ yychar = YYEOF; /* Don't call YYLEX any more */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Now at end of input.\n");
+#endif
+ }
+ else
+ {
+ yychar1 = YYTRANSLATE(yychar);
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+ /* Give the individual parser a way to print the precise meaning
+ of a token, for further debugging info. */
+#ifdef YYPRINT
+ YYPRINT (stderr, yychar, yylval);
+#endif
+ fprintf (stderr, ")\n");
+ }
+#endif
+ }
+
+ yyn += yychar1;
+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+ goto yydefault;
+
+ yyn = yytable[yyn];
+
+ /* yyn is what to do for this token type in this state.
+ Negative => reduce, -yyn is rule number.
+ Positive => shift, yyn is new state.
+ New state is final state => don't bother to shift,
+ just return success.
+ 0, or most negative number => error. */
+
+ if (yyn < 0)
+ {
+ if (yyn == YYFLAG)
+ goto yyerrlab;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+ else if (yyn == 0)
+ goto yyerrlab;
+
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+ /* Shift the lookahead token. */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+#endif
+
+ /* Discard the token being shifted unless it is eof. */
+ if (yychar != YYEOF)
+ yychar = YYEMPTY;
+
+ *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+ *++yylsp = yylloc;
+#endif
+
+ /* count tokens shifted since error; after three, turn off error status. */
+ if (yyerrstatus) yyerrstatus--;
+
+ yystate = yyn;
+ goto yynewstate;
+
+/* Do the default action for the current state. */
+yydefault:
+
+ yyn = yydefact[yystate];
+ if (yyn == 0)
+ goto yyerrlab;
+
+/* Do a reduction. yyn is the number of a rule to reduce with. */
+yyreduce:
+ yylen = yyr2[yyn];
+ if (yylen > 0)
+ yyval = yyvsp[1-yylen]; /* implement default value of the action */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ int i;
+
+ fprintf (stderr, "Reducing via rule %d (line %d), ",
+ yyn, yyrline[yyn]);
+
+ /* Print the symbols being reduced, and their result. */
+ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+ fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+ fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+ }
+#endif
+
+
+ switch (yyn) {
+
+case 1:
+#line 55 "levcomp.ypp"
+{
+ if (outhandle && outfilename) {
+ fclose(outhandle);
+ outhandle = NULL;
+ }
+ ;
+ break;}
+case 5:
+#line 71 "levcomp.ypp"
+{
+ default_depth = range;
+ ;
+ break;}
+case 8:
+#line 81 "levcomp.ypp"
+{
+ if (!outhandle) {
+ if (outfilename) {
+ if (!(outhandle =
+ fopen(outfilename,
+ write_append? "a" :"w")))
+ outfilename = NULL;
+ }
+ if (!outhandle)
+ outhandle = stdout;
+ }
+ if (!autowarned) {
+ fprintf(outhandle, "%s", autogenheader);
+ autowarned = true;
+ }
+ fprintf(outhandle, "%s", map.get_initialiser().c_str());
+ ;
+ break;}
+case 9:
+#line 101 "levcomp.ypp"
+{
+ map.init();
+ map.depth = default_depth;
+ map.name = yyvsp[0].text;
+ ;
+ break;}
+case 20:
+#line 122 "levcomp.ypp"
+{;
+ break;}
+case 22:
+#line 127 "levcomp.ypp"
+{
+ map.tags += " ";
+ map.tags += yyvsp[-1].text;
+ map.tags += " ";
+ ;
+ break;}
+case 23:
+#line 134 "levcomp.ypp"
+{;
+ break;}
+case 24:
+#line 136 "levcomp.ypp"
+{
+ map.random_symbols = yyvsp[0].text;
+ ;
+ break;}
+case 25:
+#line 141 "levcomp.ypp"
+{;
+ break;}
+case 26:
+#line 142 "levcomp.ypp"
+{;
+ break;}
+case 29:
+#line 150 "levcomp.ypp"
+{
+ map.mons.add_mons(yyvsp[0].text);
+ ;
+ break;}
+case 30:
+#line 156 "levcomp.ypp"
+{
+ map.place = yyvsp[0].text;
+ ;
+ break;}
+case 31:
+#line 161 "levcomp.ypp"
+{;
+ break;}
+case 32:
+#line 163 "levcomp.ypp"
+{
+ map.depth = range;
+ ;
+ break;}
+case 33:
+#line 169 "levcomp.ypp"
+{
+ range.set(yyvsp[-2].i, yyvsp[0].i);
+ ;
+ break;}
+case 34:
+#line 174 "levcomp.ypp"
+{
+ range.set(yyvsp[0].i);
+ ;
+ break;}
+case 35:
+#line 180 "levcomp.ypp"
+{
+ map.chance = yyvsp[0].i;
+ ;
+ break;}
+case 36:
+#line 185 "levcomp.ypp"
+{;
+ break;}
+case 37:
+#line 187 "levcomp.ypp"
+{
+ map.orient = (map_section_type) yyvsp[0].i;
+ ;
+ break;}
+case 38:
+#line 192 "levcomp.ypp"
+{ yyval.i = MAP_ENCOMPASS; ;
+ break;}
+case 39:
+#line 193 "levcomp.ypp"
+{ yyval.i = MAP_NORTH; ;
+ break;}
+case 40:
+#line 194 "levcomp.ypp"
+{ yyval.i = MAP_EAST; ;
+ break;}
+case 41:
+#line 195 "levcomp.ypp"
+{ yyval.i = MAP_SOUTH; ;
+ break;}
+case 42:
+#line 196 "levcomp.ypp"
+{ yyval.i = MAP_WEST; ;
+ break;}
+case 43:
+#line 197 "levcomp.ypp"
+{ yyval.i = MAP_NORTHEAST; ;
+ break;}
+case 44:
+#line 198 "levcomp.ypp"
+{ yyval.i = MAP_SOUTHEAST; ;
+ break;}
+case 45:
+#line 199 "levcomp.ypp"
+{ yyval.i = MAP_SOUTHWEST; ;
+ break;}
+case 46:
+#line 200 "levcomp.ypp"
+{ yyval.i = MAP_NORTHWEST; ;
+ break;}
+case 47:
+#line 201 "levcomp.ypp"
+{ yyval.i = MAP_NORTH_DIS; ;
+ break;}
+case 48:
+#line 204 "levcomp.ypp"
+{;
+ break;}
+case 50:
+#line 209 "levcomp.ypp"
+{
+ switch (yyvsp[-1].i) {
+ case NO_HMIRROR:
+ map.flags &= ~MAPF_MIRROR_HORIZONTAL;
+ break;
+ case NO_VMIRROR:
+ map.flags &= ~MAPF_MIRROR_VERTICAL;
+ break;
+ }
+ ;
+ break;}
+case 51:
+#line 221 "levcomp.ypp"
+{ yyval.i = NO_HMIRROR; ;
+ break;}
+case 52:
+#line 222 "levcomp.ypp"
+{ yyval.i = NO_VMIRROR; ;
+ break;}
+case 56:
+#line 233 "levcomp.ypp"
+{
+ map.map.add_line(yyvsp[0].text);
+ ;
+ break;}
+}
+ /* the action file gets copied in in place of this dollarsign */
+#line 543 "/usr/share/bison.simple"
+
+ yyvsp -= yylen;
+ yyssp -= yylen;
+#ifdef YYLSP_NEEDED
+ yylsp -= yylen;
+#endif
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ short *ssp1 = yyss - 1;
+ fprintf (stderr, "state stack now");
+ while (ssp1 != yyssp)
+ fprintf (stderr, " %d", *++ssp1);
+ fprintf (stderr, "\n");
+ }
+#endif
+
+ *++yyvsp = yyval;
+
+#ifdef YYLSP_NEEDED
+ yylsp++;
+ if (yylen == 0)
+ {
+ yylsp->first_line = yylloc.first_line;
+ yylsp->first_column = yylloc.first_column;
+ yylsp->last_line = (yylsp-1)->last_line;
+ yylsp->last_column = (yylsp-1)->last_column;
+ yylsp->text = 0;
+ }
+ else
+ {
+ yylsp->last_line = (yylsp+yylen-1)->last_line;
+ yylsp->last_column = (yylsp+yylen-1)->last_column;
+ }
+#endif
+
+ /* Now "shift" the result of the reduction.
+ Determine what state that goes to,
+ based on the state we popped back to
+ and the rule number reduced by. */
+
+ yyn = yyr1[yyn];
+
+ yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+ if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yytable[yystate];
+ else
+ yystate = yydefgoto[yyn - YYNTBASE];
+
+ goto yynewstate;
+
+yyerrlab: /* here on detecting error */
+
+ if (! yyerrstatus)
+ /* If not already recovering from an error, report this error. */
+ {
+ ++yynerrs;
+
+#ifdef YYERROR_VERBOSE
+ yyn = yypact[yystate];
+
+ if (yyn > YYFLAG && yyn < YYLAST)
+ {
+ int size = 0;
+ char *msg;
+ int x, count;
+
+ count = 0;
+ /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
+ for (x = (yyn < 0 ? -yyn : 0);
+ x < (sizeof(yytname) / sizeof(char *)); x++)
+ if (yycheck[x + yyn] == x)
+ size += strlen(yytname[x]) + 15, count++;
+ msg = (char *) malloc(size + 15);
+ if (msg != 0)
+ {
+ strcpy(msg, "parse error");
+
+ if (count < 5)
+ {
+ count = 0;
+ for (x = (yyn < 0 ? -yyn : 0);
+ x < (sizeof(yytname) / sizeof(char *)); x++)
+ if (yycheck[x + yyn] == x)
+ {
+ strcat(msg, count == 0 ? ", expecting `" : " or `");
+ strcat(msg, yytname[x]);
+ strcat(msg, "'");
+ count++;
+ }
+ }
+ yyerror(msg);
+ free(msg);
+ }
+ else
+ yyerror ("parse error; also virtual memory exceeded");
+ }
+ else
+#endif /* YYERROR_VERBOSE */
+ yyerror("parse error");
+ }
+
+ goto yyerrlab1;
+yyerrlab1: /* here on error raised explicitly by an action */
+
+ if (yyerrstatus == 3)
+ {
+ /* if just tried and failed to reuse lookahead token after an error, discard it. */
+
+ /* return failure if at end of input */
+ if (yychar == YYEOF)
+ YYABORT;
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
+#endif
+
+ yychar = YYEMPTY;
+ }
+
+ /* Else will try to reuse lookahead token
+ after shifting the error token. */
+
+ yyerrstatus = 3; /* Each real token shifted decrements this */
+
+ goto yyerrhandle;
+
+yyerrdefault: /* current state does not do anything special for the error token. */
+
+#if 0
+ /* This is wrong; only states that explicitly want error tokens
+ should shift them. */
+ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
+ if (yyn) goto yydefault;
+#endif
+
+yyerrpop: /* pop the current state because it cannot handle the error token */
+
+ if (yyssp == yyss) YYABORT;
+ yyvsp--;
+ yystate = *--yyssp;
+#ifdef YYLSP_NEEDED
+ yylsp--;
+#endif
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ short *ssp1 = yyss - 1;
+ fprintf (stderr, "Error: state stack now");
+ while (ssp1 != yyssp)
+ fprintf (stderr, " %d", *++ssp1);
+ fprintf (stderr, "\n");
+ }
+#endif
+
+yyerrhandle:
+
+ yyn = yypact[yystate];
+ if (yyn == YYFLAG)
+ goto yyerrdefault;
+
+ yyn += YYTERROR;
+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+ goto yyerrdefault;
+
+ yyn = yytable[yyn];
+ if (yyn < 0)
+ {
+ if (yyn == YYFLAG)
+ goto yyerrpop;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+ else if (yyn == 0)
+ goto yyerrpop;
+
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Shifting error token, ");
+#endif
+
+ *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+ *++yylsp = yylloc;
+#endif
+
+ yystate = yyn;
+ goto yynewstate;
+
+ yyacceptlab:
+ /* YYACCEPT comes here. */
+ if (yyfree_stacks)
+ {
+ free (yyss);
+ free (yyvs);
+#ifdef YYLSP_NEEDED
+ free (yyls);
+#endif
+ }
+ return 0;
+
+ yyabortlab:
+ /* YYABORT comes here. */
+ if (yyfree_stacks)
+ {
+ free (yyss);
+ free (yyvs);
+#ifdef YYLSP_NEEDED
+ free (yyls);
+#endif
+ }
+ return 1;
+}
+#line 238 "levcomp.ypp"
+
diff --git a/crawl-ref/source/prebuilt/levcomp.tab.h b/crawl-ref/source/prebuilt/levcomp.tab.h
new file mode 100644
index 0000000000..f8c309fa75
--- /dev/null
+++ b/crawl-ref/source/prebuilt/levcomp.tab.h
@@ -0,0 +1,38 @@
+typedef union
+{
+ int i;
+ const char *text;
+} YYSTYPE;
+#define DEFAULT_DEPTH 257
+#define SYMBOL 258
+#define TAGS 259
+#define NAME 260
+#define DEPTH 261
+#define ORIENT 262
+#define PLACE 263
+#define CHANCE 264
+#define FLAGS 265
+#define MONS 266
+#define ENCOMPASS 267
+#define NORTH 268
+#define EAST 269
+#define SOUTH 270
+#define WEST 271
+#define NORTH_DIS 272
+#define NORTHEAST 273
+#define SOUTHEAST 274
+#define SOUTHWEST 275
+#define NORTHWEST 276
+#define BAD_CHARACTER 277
+#define NO_HMIRROR 278
+#define NO_VMIRROR 279
+#define PANDEMONIC 280
+#define DASH 281
+#define COMMA 282
+#define INTEGER 283
+#define STRING 284
+#define MAP_LINE 285
+#define MONSTER_NAME 286
+
+
+extern YYSTYPE yylval;
diff --git a/crawl-ref/source/prebuilt/levcomp_yacc.cc b/crawl-ref/source/prebuilt/levcomp_yacc.cc
deleted file mode 100644
index 1ec6b01be2..0000000000
--- a/crawl-ref/source/prebuilt/levcomp_yacc.cc
+++ /dev/null
@@ -1,1943 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.3. */
-
-/* Skeleton implementation for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-/* As a special exception, you may create a larger work that contains
- part or all of the Bison parser skeleton and distribute that work
- under terms of your choice, so long as that work isn't itself a
- parser generator using the skeleton or a modified version thereof
- as a parser skeleton. Alternatively, if you modify or redistribute
- the parser skeleton itself, you may (at your option) remove this
- special exception, which will cause the skeleton and the resulting
- Bison output files to be licensed under the GNU General Public
- License without this special exception.
-
- This special exception was added by the Free Software Foundation in
- version 2.2 of Bison. */
-
-/* C LALR(1) parser skeleton written by Richard Stallman, by
- simplifying the original so-called "semantic" parser. */
-
-/* All symbols defined below should begin with yy or YY, to avoid
- infringing on user name space. This should be done even for local
- variables, as they might otherwise be expanded by user macros.
- There are some unavoidable exceptions within include files to
- define necessary library symbols; they are noted "INFRINGES ON
- USER NAME SPACE" below. */
-
-/* Identify Bison output. */
-#define YYBISON 1
-
-/* Bison version. */
-#define YYBISON_VERSION "2.3"
-
-/* Skeleton name. */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers. */
-#define YYPURE 0
-
-/* Using locations. */
-#define YYLSP_NEEDED 0
-
-
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- DEFAULT_DEPTH = 258,
- SYMBOL = 259,
- TAGS = 260,
- NAME = 261,
- DEPTH = 262,
- ORIENT = 263,
- PLACE = 264,
- CHANCE = 265,
- FLAGS = 266,
- MONS = 267,
- ENCOMPASS = 268,
- NORTH = 269,
- EAST = 270,
- SOUTH = 271,
- WEST = 272,
- NORTH_DIS = 273,
- NORTHEAST = 274,
- SOUTHEAST = 275,
- SOUTHWEST = 276,
- NORTHWEST = 277,
- BAD_CHARACTER = 278,
- NO_HMIRROR = 279,
- NO_VMIRROR = 280,
- PANDEMONIC = 281,
- DASH = 282,
- COMMA = 283,
- INTEGER = 284,
- STRING = 285,
- MAP_LINE = 286,
- MONSTER_NAME = 287
- };
-#endif
-/* Tokens. */
-#define DEFAULT_DEPTH 258
-#define SYMBOL 259
-#define TAGS 260
-#define NAME 261
-#define DEPTH 262
-#define ORIENT 263
-#define PLACE 264
-#define CHANCE 265
-#define FLAGS 266
-#define MONS 267
-#define ENCOMPASS 268
-#define NORTH 269
-#define EAST 270
-#define SOUTH 271
-#define WEST 272
-#define NORTH_DIS 273
-#define NORTHEAST 274
-#define SOUTHEAST 275
-#define SOUTHWEST 276
-#define NORTHWEST 277
-#define BAD_CHARACTER 278
-#define NO_HMIRROR 279
-#define NO_VMIRROR 280
-#define PANDEMONIC 281
-#define DASH 282
-#define COMMA 283
-#define INTEGER 284
-#define STRING 285
-#define MAP_LINE 286
-#define MONSTER_NAME 287
-
-
-
-
-/* Copy the first part of user declarations. */
-#line 1 "levcomp.y"
-
-
-#include <cstdio>
-#include <string>
-#include <vector>
-#include "mapdef.h"
-
-// [dshaligram] It may be better to build the web of conditional #ifdefs to
-// figure out which header this is in by platform...
-extern "C" {
- extern int unlink(const char *);
-}
-
-int yylex();
-
-extern int yylineno;
-
-static map_def map;
-static level_range range;
-static level_range default_depth;
-
-static const char *autogenheader =
- "/*************************************************************\n"
- " * WARNING: This file is automatically generated! Do not edit.\n"
- " *************************************************************/\n";
-
-static const char *outfilename = NULL;
-static FILE *outhandle = NULL;
-static bool autowarned = false;
-
-static bool write_append = false;
-
-
-void yyerror(const char *e)
-{
- fprintf(stderr, "Error on line %d: %s\n", yylineno, e);
-
- // If an error occurs, delete the file we're supposed to be writing to
- // so that life is easier for makefile writers.
- if (outhandle && outfilename) {
- fclose(outhandle);
- outhandle = NULL;
- }
-
- if (outfilename) {
- unlink(outfilename);
- outfilename = NULL;
- }
-}
-
-
-
-/* Enabling traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-
-/* Enabling verbose error messages. */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-/* Enabling the token table. */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
-#endif
-
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
-#line 54 "levcomp.y"
-{
- int i;
- const char *text;
-}
-/* Line 193 of yacc.c. */
-#line 217 "y.tab.c"
- YYSTYPE;
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-
-
-/* Copy the second part of user declarations. */
-
-
-/* Line 216 of yacc.c. */
-#line 230 "y.tab.c"
-
-#ifdef short
-# undef short
-#endif
-
-#ifdef YYTYPE_UINT8
-typedef YYTYPE_UINT8 yytype_uint8;
-#else
-typedef unsigned char yytype_uint8;
-#endif
-
-#ifdef YYTYPE_INT8
-typedef YYTYPE_INT8 yytype_int8;
-#elif (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-typedef signed char yytype_int8;
-#else
-typedef short int yytype_int8;
-#endif
-
-#ifdef YYTYPE_UINT16
-typedef YYTYPE_UINT16 yytype_uint16;
-#else
-typedef unsigned short int yytype_uint16;
-#endif
-
-#ifdef YYTYPE_INT16
-typedef YYTYPE_INT16 yytype_int16;
-#else
-typedef short int yytype_int16;
-#endif
-
-#ifndef YYSIZE_T
-# ifdef __SIZE_TYPE__
-# define YYSIZE_T __SIZE_TYPE__
-# elif defined size_t
-# define YYSIZE_T size_t
-# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-# else
-# define YYSIZE_T unsigned int
-# endif
-#endif
-
-#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-
-#ifndef YY_
-# if YYENABLE_NLS
-# if ENABLE_NLS
-# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-# define YY_(msgid) dgettext ("bison-runtime", msgid)
-# endif
-# endif
-# ifndef YY_
-# define YY_(msgid) msgid
-# endif
-#endif
-
-/* Suppress unused-variable warnings by "using" E. */
-#if ! defined lint || defined __GNUC__
-# define YYUSE(e) ((void) (e))
-#else
-# define YYUSE(e) /* empty */
-#endif
-
-/* Identity function, used to suppress warnings about constant conditions. */
-#ifndef lint
-# define YYID(n) (n)
-#else
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static int
-YYID (int i)
-#else
-static int
-YYID (i)
- int i;
-#endif
-{
- return i;
-}
-#endif
-
-#if ! defined yyoverflow || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols. */
-
-# ifdef YYSTACK_USE_ALLOCA
-# if YYSTACK_USE_ALLOCA
-# ifdef __GNUC__
-# define YYSTACK_ALLOC __builtin_alloca
-# elif defined __BUILTIN_VA_ARG_INCR
-# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-# elif defined _AIX
-# define YYSTACK_ALLOC __alloca
-# elif defined _MSC_VER
-# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-# define alloca _alloca
-# else
-# define YYSTACK_ALLOC alloca
-# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
-# endif
-# endif
-# endif
-# endif
-# endif
-
-# ifdef YYSTACK_ALLOC
- /* Pacify GCC's `empty if-body' warning. */
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
-# ifndef YYSTACK_ALLOC_MAXIMUM
- /* The OS might guarantee only one guard page at the bottom of the stack,
- and a page size can be as small as 4096 bytes. So we cannot safely
- invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
- to allow for a few compiler-allocated temporary stack slots. */
-# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
-# endif
-# else
-# define YYSTACK_ALLOC YYMALLOC
-# define YYSTACK_FREE YYFREE
-# ifndef YYSTACK_ALLOC_MAXIMUM
-# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-# endif
-# if (defined __cplusplus && ! defined _STDLIB_H \
- && ! ((defined YYMALLOC || defined malloc) \
- && (defined YYFREE || defined free)))
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
-# endif
-# endif
-# ifndef YYMALLOC
-# define YYMALLOC malloc
-# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# ifndef YYFREE
-# define YYFREE free
-# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# endif
-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
-#if (! defined yyoverflow \
- && (! defined __cplusplus \
- || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member. */
-union yyalloc
-{
- yytype_int16 yyss;
- YYSTYPE yyvs;
- };
-
-/* The size of the maximum gap between one aligned stack and the next. */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
- N elements. */
-# define YYSTACK_BYTES(N) \
- ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
- + YYSTACK_GAP_MAXIMUM)
-
-/* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
-# ifndef YYCOPY
-# if defined __GNUC__ && 1 < __GNUC__
-# define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-# else
-# define YYCOPY(To, From, Count) \
- do \
- { \
- YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
- while (YYID (0))
-# endif
-# endif
-
-/* Relocate STACK from its old location to the new one. The
- local variables YYSIZE and YYSTACKSIZE give the old and new number of
- elements in the stack, and YYPTR gives the new location of the
- stack. Advance YYPTR to a properly aligned location for the next
- stack. */
-# define YYSTACK_RELOCATE(Stack) \
- do \
- { \
- YYSIZE_T yynewbytes; \
- YYCOPY (&yyptr->Stack, Stack, yysize); \
- Stack = &yyptr->Stack; \
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
- while (YYID (0))
-
-#endif
-
-/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 3
-/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 42
-
-/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 33
-/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 28
-/* YYNRULES -- Number of rules. */
-#define YYNRULES 57
-/* YYNRULES -- Number of states. */
-#define YYNSTATES 70
-
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
-#define YYUNDEFTOK 2
-#define YYMAXUTOK 287
-
-#define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
-static const yytype_uint8 yytranslate[] =
-{
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32
-};
-
-#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
-static const yytype_uint8 yyprhs[] =
-{
- 0, 0, 3, 6, 7, 10, 12, 15, 16, 19,
- 24, 27, 28, 31, 33, 35, 37, 39, 41, 43,
- 45, 47, 50, 51, 54, 56, 59, 61, 64, 68,
- 70, 72, 75, 77, 80, 84, 86, 89, 91, 94,
- 96, 98, 100, 102, 104, 106, 108, 110, 112, 114,
- 117, 118, 121, 123, 125, 127, 129, 132
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const yytype_int8 yyrhs[] =
-{
- 34, 0, -1, 35, 38, -1, -1, 35, 36, -1,
- 37, -1, 3, 51, -1, -1, 39, 38, -1, 40,
- 41, 58, 41, -1, 6, 30, -1, -1, 42, 41,
- -1, 49, -1, 50, -1, 52, -1, 53, -1, 55,
- -1, 46, -1, 45, -1, 43, -1, 5, 44, -1,
- -1, 30, 44, -1, 4, -1, 4, 30, -1, 12,
- -1, 12, 47, -1, 48, 28, 47, -1, 48, -1,
- 32, -1, 9, 30, -1, 7, -1, 7, 51, -1,
- 29, 27, 29, -1, 29, -1, 10, 29, -1, 8,
- -1, 8, 54, -1, 13, -1, 14, -1, 15, -1,
- 16, -1, 17, -1, 19, -1, 20, -1, 21, -1,
- 22, -1, 18, -1, 11, 56, -1, -1, 57, 56,
- -1, 24, -1, 25, -1, 59, -1, 60, -1, 60,
- 59, -1, 31, -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const yytype_uint16 yyrline[] =
-{
- 0, 79, 79, 88, 89, 92, 95, 101, 102, 105,
- 125, 133, 134, 137, 138, 139, 140, 141, 142, 143,
- 144, 147, 150, 151, 159, 160, 166, 167, 170, 171,
- 174, 180, 186, 187, 193, 198, 204, 210, 211, 217,
- 218, 219, 220, 221, 222, 223, 224, 225, 226, 229,
- 232, 233, 246, 247, 250, 253, 254, 257
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
-static const char *const yytname[] =
-{
- "$end", "error", "$undefined", "DEFAULT_DEPTH", "SYMBOL", "TAGS",
- "NAME", "DEPTH", "ORIENT", "PLACE", "CHANCE", "FLAGS", "MONS",
- "ENCOMPASS", "NORTH", "EAST", "SOUTH", "WEST", "NORTH_DIS", "NORTHEAST",
- "SOUTHEAST", "SOUTHWEST", "NORTHWEST", "BAD_CHARACTER", "NO_HMIRROR",
- "NO_VMIRROR", "PANDEMONIC", "DASH", "COMMA", "INTEGER", "STRING",
- "MAP_LINE", "MONSTER_NAME", "$accept", "file", "defs", "def", "defdepth",
- "levels", "level", "name", "metalines", "metaline", "tags", "tagstrings",
- "symbol", "mons", "mnames", "mname", "place", "depth", "depth_range",
- "chance", "orientation", "orient_name", "flags", "flagnames", "flagname",
- "map_def", "map_lines", "map_line", 0
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
-static const yytype_uint16 yytoknum[] =
-{
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
- 285, 286, 287
-};
-# endif
-
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const yytype_uint8 yyr1[] =
-{
- 0, 33, 34, 35, 35, 36, 37, 38, 38, 39,
- 40, 41, 41, 42, 42, 42, 42, 42, 42, 42,
- 42, 43, 44, 44, 45, 45, 46, 46, 47, 47,
- 48, 49, 50, 50, 51, 51, 52, 53, 53, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 55,
- 56, 56, 57, 57, 58, 59, 59, 60
-};
-
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-static const yytype_uint8 yyr2[] =
-{
- 0, 2, 2, 0, 2, 1, 2, 0, 2, 4,
- 2, 0, 2, 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 0, 2, 1, 2, 1, 2, 3, 1,
- 1, 2, 1, 2, 3, 1, 2, 1, 2, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
- 0, 2, 1, 1, 1, 1, 2, 1
-};
-
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
- means the default is an error. */
-static const yytype_uint8 yydefact[] =
-{
- 3, 0, 7, 1, 0, 0, 4, 5, 2, 7,
- 11, 35, 6, 10, 8, 24, 22, 32, 37, 0,
- 0, 50, 26, 0, 11, 20, 19, 18, 13, 14,
- 15, 16, 17, 0, 25, 22, 21, 33, 39, 40,
- 41, 42, 43, 48, 44, 45, 46, 47, 38, 31,
- 36, 52, 53, 49, 50, 30, 27, 29, 57, 11,
- 54, 55, 12, 34, 23, 51, 0, 9, 56, 28
-};
-
-/* YYDEFGOTO[NTERM-NUM]. */
-static const yytype_int8 yydefgoto[] =
-{
- -1, 1, 2, 6, 7, 8, 9, 10, 23, 24,
- 25, 36, 26, 27, 56, 57, 28, 29, 12, 30,
- 31, 48, 32, 53, 54, 59, 60, 61
-};
-
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
-#define YYPACT_NINF -29
-static const yytype_int8 yypact[] =
-{
- -29, 13, 17, -29, -5, -4, -29, -29, -29, 19,
- 7, 0, -29, -29, -29, -2, -1, -5, -12, 1,
- 3, -3, 2, 5, 7, -29, -29, -29, -29, -29,
- -29, -29, -29, 4, -29, -1, -29, -29, -29, -29,
- -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
- -29, -29, -29, -29, -3, -29, -29, 9, -29, 7,
- -29, 5, -29, -29, -29, -29, 2, -29, -29, -29
-};
-
-/* YYPGOTO[NTERM-NUM]. */
-static const yytype_int8 yypgoto[] =
-{
- -29, -29, -29, -29, -29, 21, -29, -29, -24, -29,
- -29, 6, -29, -29, -28, -29, -29, -29, 22, -29,
- -29, -29, -29, -14, -29, -29, -19, -29
-};
-
-/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
- positive, shift that token. If negative, reduce the rule which
- number is the opposite. If zero, do what YYDEFACT says.
- If YYTABLE_NINF, syntax error. */
-#define YYTABLE_NINF -1
-static const yytype_uint8 yytable[] =
-{
- 62, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 15, 16, 3, 17, 18, 19, 20, 21, 22,
- 4, 51, 52, 5, 11, 5, 13, 33, 34, 35,
- 14, 49, 50, 63, 55, 67, 58, 66, 69, 37,
- 65, 64, 68
-};
-
-static const yytype_uint8 yycheck[] =
-{
- 24, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 4, 5, 0, 7, 8, 9, 10, 11, 12,
- 3, 24, 25, 6, 29, 6, 30, 27, 30, 30,
- 9, 30, 29, 29, 32, 59, 31, 28, 66, 17,
- 54, 35, 61
-};
-
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
-static const yytype_uint8 yystos[] =
-{
- 0, 34, 35, 0, 3, 6, 36, 37, 38, 39,
- 40, 29, 51, 30, 38, 4, 5, 7, 8, 9,
- 10, 11, 12, 41, 42, 43, 45, 46, 49, 50,
- 52, 53, 55, 27, 30, 30, 44, 51, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 54, 30,
- 29, 24, 25, 56, 57, 32, 47, 48, 31, 58,
- 59, 60, 41, 29, 44, 56, 28, 41, 59, 47
-};
-
-#define yyerrok (yyerrstatus = 0)
-#define yyclearin (yychar = YYEMPTY)
-#define YYEMPTY (-2)
-#define YYEOF 0
-
-#define YYACCEPT goto yyacceptlab
-#define YYABORT goto yyabortlab
-#define YYERROR goto yyerrorlab
-
-
-/* Like YYERROR except do call yyerror. This remains here temporarily
- to ease the transition to the new meaning of YYERROR, for GCC.
- Once GCC version 2 has supplanted version 1, this can go. */
-
-#define YYFAIL goto yyerrlab
-
-#define YYRECOVERING() (!!yyerrstatus)
-
-#define YYBACKUP(Token, Value) \
-do \
- if (yychar == YYEMPTY && yylen == 1) \
- { \
- yychar = (Token); \
- yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
- YYPOPSTACK (1); \
- goto yybackup; \
- } \
- else \
- { \
- yyerror (YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
-while (YYID (0))
-
-
-#define YYTERROR 1
-#define YYERRCODE 256
-
-
-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
- If N is 0, then set CURRENT to the empty location which ends
- the previous symbol: RHS[0] (always defined). */
-
-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N) \
- do \
- if (YYID (N)) \
- { \
- (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
- (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
- (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
- (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
- } \
- else \
- { \
- (Current).first_line = (Current).last_line = \
- YYRHSLOC (Rhs, 0).last_line; \
- (Current).first_column = (Current).last_column = \
- YYRHSLOC (Rhs, 0).last_column; \
- } \
- while (YYID (0))
-#endif
-
-
-/* YY_LOCATION_PRINT -- Print the location on the stream.
- This macro was not mandated originally: define only if we know
- we won't break user code: when these are the locations we know. */
-
-#ifndef YY_LOCATION_PRINT
-# if YYLTYPE_IS_TRIVIAL
-# define YY_LOCATION_PRINT(File, Loc) \
- fprintf (File, "%d.%d-%d.%d", \
- (Loc).first_line, (Loc).first_column, \
- (Loc).last_line, (Loc).last_column)
-# else
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
-#endif
-
-
-/* YYLEX -- calling `yylex' with the right arguments. */
-
-#ifdef YYLEX_PARAM
-# define YYLEX yylex (YYLEX_PARAM)
-#else
-# define YYLEX yylex ()
-#endif
-
-/* Enable debugging if requested. */
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-# define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args) \
-do { \
- if (yydebug) \
- YYFPRINTF Args; \
-} while (YYID (0))
-
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-do { \
- if (yydebug) \
- { \
- YYFPRINTF (stderr, "%s ", Title); \
- yy_symbol_print (stderr, \
- Type, Value); \
- YYFPRINTF (stderr, "\n"); \
- } \
-} while (YYID (0))
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT. |
-`--------------------------------*/
-
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static void
-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-#else
-static void
-yy_symbol_value_print (yyoutput, yytype, yyvaluep)
- FILE *yyoutput;
- int yytype;
- YYSTYPE const * const yyvaluep;
-#endif
-{
- if (!yyvaluep)
- return;
-# ifdef YYPRINT
- if (yytype < YYNTOKENS)
- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# else
- YYUSE (yyoutput);
-# endif
- switch (yytype)
- {
- default:
- break;
- }
-}
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT. |
-`--------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static void
-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-#else
-static void
-yy_symbol_print (yyoutput, yytype, yyvaluep)
- FILE *yyoutput;
- int yytype;
- YYSTYPE const * const yyvaluep;
-#endif
-{
- if (yytype < YYNTOKENS)
- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
- else
- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-
- yy_symbol_value_print (yyoutput, yytype, yyvaluep);
- YYFPRINTF (yyoutput, ")");
-}
-
-/*------------------------------------------------------------------.
-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (included). |
-`------------------------------------------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static void
-yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
-#else
-static void
-yy_stack_print (bottom, top)
- yytype_int16 *bottom;
- yytype_int16 *top;
-#endif
-{
- YYFPRINTF (stderr, "Stack now");
- for (; bottom <= top; ++bottom)
- YYFPRINTF (stderr, " %d", *bottom);
- YYFPRINTF (stderr, "\n");
-}
-
-# define YY_STACK_PRINT(Bottom, Top) \
-do { \
- if (yydebug) \
- yy_stack_print ((Bottom), (Top)); \
-} while (YYID (0))
-
-
-/*------------------------------------------------.
-| Report that the YYRULE is going to be reduced. |
-`------------------------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static void
-yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
-#else
-static void
-yy_reduce_print (yyvsp, yyrule)
- YYSTYPE *yyvsp;
- int yyrule;
-#endif
-{
- int yynrhs = yyr2[yyrule];
- int yyi;
- unsigned long int yylno = yyrline[yyrule];
- YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
- yyrule - 1, yylno);
- /* The symbols being reduced. */
- for (yyi = 0; yyi < yynrhs; yyi++)
- {
- fprintf (stderr, " $%d = ", yyi + 1);
- yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
- &(yyvsp[(yyi + 1) - (yynrhs)])
- );
- fprintf (stderr, "\n");
- }
-}
-
-# define YY_REDUCE_PRINT(Rule) \
-do { \
- if (yydebug) \
- yy_reduce_print (yyvsp, Rule); \
-} while (YYID (0))
-
-/* Nonzero means print parse trace. It is left uninitialized so that
- multiple parsers can coexist. */
-int yydebug;
-#else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
-# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Rule)
-#endif /* !YYDEBUG */
-
-
-/* YYINITDEPTH -- initial size of the parser's stacks. */
-#ifndef YYINITDEPTH
-# define YYINITDEPTH 200
-#endif
-
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
- if the built-in stack extension method is used).
-
- Do not make this value too large; the results are undefined if
- YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
-
-#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
-#endif
-
-
-
-#if YYERROR_VERBOSE
-
-# ifndef yystrlen
-# if defined __GLIBC__ && defined _STRING_H
-# define yystrlen strlen
-# else
-/* Return the length of YYSTR. */
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static YYSIZE_T
-yystrlen (const char *yystr)
-#else
-static YYSIZE_T
-yystrlen (yystr)
- const char *yystr;
-#endif
-{
- YYSIZE_T yylen;
- for (yylen = 0; yystr[yylen]; yylen++)
- continue;
- return yylen;
-}
-# endif
-# endif
-
-# ifndef yystpcpy
-# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-# define yystpcpy stpcpy
-# else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
- YYDEST. */
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static char *
-yystpcpy (char *yydest, const char *yysrc)
-#else
-static char *
-yystpcpy (yydest, yysrc)
- char *yydest;
- const char *yysrc;
-#endif
-{
- char *yyd = yydest;
- const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-
- return yyd - 1;
-}
-# endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
- quotes and backslashes, so that it's suitable for yyerror. The
- heuristic is that double-quoting is unnecessary unless the string
- contains an apostrophe, a comma, or backslash (other than
- backslash-backslash). YYSTR is taken from yytname. If YYRES is
- null, do not copy; instead, return the length of what the result
- would have been. */
-static YYSIZE_T
-yytnamerr (char *yyres, const char *yystr)
-{
- if (*yystr == '"')
- {
- YYSIZE_T yyn = 0;
- char const *yyp = yystr;
-
- for (;;)
- switch (*++yyp)
- {
- case '\'':
- case ',':
- goto do_not_strip_quotes;
-
- case '\\':
- if (*++yyp != '\\')
- goto do_not_strip_quotes;
- /* Fall through. */
- default:
- if (yyres)
- yyres[yyn] = *yyp;
- yyn++;
- break;
-
- case '"':
- if (yyres)
- yyres[yyn] = '\0';
- return yyn;
- }
- do_not_strip_quotes: ;
- }
-
- if (! yyres)
- return yystrlen (yystr);
-
- return yystpcpy (yyres, yystr) - yyres;
-}
-# endif
-
-/* Copy into YYRESULT an error message about the unexpected token
- YYCHAR while in state YYSTATE. Return the number of bytes copied,
- including the terminating null byte. If YYRESULT is null, do not
- copy anything; just return the number of bytes that would be
- copied. As a special case, return 0 if an ordinary "syntax error"
- message will do. Return YYSIZE_MAXIMUM if overflow occurs during
- size calculation. */
-static YYSIZE_T
-yysyntax_error (char *yyresult, int yystate, int yychar)
-{
- int yyn = yypact[yystate];
-
- if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
- return 0;
- else
- {
- int yytype = YYTRANSLATE (yychar);
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
- YYSIZE_T yysize = yysize0;
- YYSIZE_T yysize1;
- int yysize_overflow = 0;
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- int yyx;
-
-# if 0
- /* This is so xgettext sees the translatable formats that are
- constructed on the fly. */
- YY_("syntax error, unexpected %s");
- YY_("syntax error, unexpected %s, expecting %s");
- YY_("syntax error, unexpected %s, expecting %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-# endif
- char *yyfmt;
- char const *yyf;
- static char const yyunexpected[] = "syntax error, unexpected %s";
- static char const yyexpecting[] = ", expecting %s";
- static char const yyor[] = " or %s";
- char yyformat[sizeof yyunexpected
- + sizeof yyexpecting - 1
- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
- * (sizeof yyor - 1))];
- char const *yyprefix = yyexpecting;
-
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
-
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn + 1;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yycount = 1;
-
- yyarg[0] = yytname[yytype];
- yyfmt = yystpcpy (yyformat, yyunexpected);
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- yyformat[sizeof yyunexpected - 1] = '\0';
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
- yyfmt = yystpcpy (yyfmt, yyprefix);
- yyprefix = yyor;
- }
-
- yyf = YY_(yyformat);
- yysize1 = yysize + yystrlen (yyf);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
-
- if (yysize_overflow)
- return YYSIZE_MAXIMUM;
-
- if (yyresult)
- {
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- char *yyp = yyresult;
- int yyi = 0;
- while ((*yyp = *yyf) != '\0')
- {
- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyf += 2;
- }
- else
- {
- yyp++;
- yyf++;
- }
- }
- }
- return yysize;
- }
-}
-#endif /* YYERROR_VERBOSE */
-
-
-/*-----------------------------------------------.
-| Release the memory associated to this symbol. |
-`-----------------------------------------------*/
-
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yydestruct (yymsg, yytype, yyvaluep)
- const char *yymsg;
- int yytype;
- YYSTYPE *yyvaluep;
-#endif
-{
- YYUSE (yyvaluep);
-
- if (!yymsg)
- yymsg = "Deleting";
- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
- switch (yytype)
- {
-
- default:
- break;
- }
-}
-
-
-/* Prevent warnings from -Wmissing-prototypes. */
-
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
-
-
-
-/* The look-ahead symbol. */
-int yychar;
-
-/* The semantic value of the look-ahead symbol. */
-YYSTYPE yylval;
-
-/* Number of syntax errors so far. */
-int yynerrs;
-
-
-
-/*----------.
-| yyparse. |
-`----------*/
-
-#ifdef YYPARSE_PARAM
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (void *YYPARSE_PARAM)
-#else
-int
-yyparse (YYPARSE_PARAM)
- void *YYPARSE_PARAM;
-#endif
-#else /* ! YYPARSE_PARAM */
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (void)
-#else
-int
-yyparse ()
-
-#endif
-#endif
-{
-
- int yystate;
- int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
- /* Look-ahead token as an internal (translated) token number. */
- int yytoken = 0;
-#if YYERROR_VERBOSE
- /* Buffer for error messages, and its allocated size. */
- char yymsgbuf[128];
- char *yymsg = yymsgbuf;
- YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
-
- /* Three stacks and their tools:
- `yyss': related to states,
- `yyvs': related to semantic values,
- `yyls': related to locations.
-
- Refer to the stacks thru separate pointers, to allow yyoverflow
- to reallocate them elsewhere. */
-
- /* The state stack. */
- yytype_int16 yyssa[YYINITDEPTH];
- yytype_int16 *yyss = yyssa;
- yytype_int16 *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
- YYSTYPE *yyvsp;
-
-
-
-#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
-
- YYSIZE_T yystacksize = YYINITDEPTH;
-
- /* The variables used to return semantic value and location from the
- action routines. */
- YYSTYPE yyval;
-
-
- /* The number of symbols on the RHS of the reduced rule.
- Keep to zero when no symbol should be popped. */
- int yylen = 0;
-
- YYDPRINTF ((stderr, "Starting parse\n"));
-
- yystate = 0;
- yyerrstatus = 0;
- yynerrs = 0;
- yychar = YYEMPTY; /* Cause a token to be read. */
-
- /* Initialize stack pointers.
- Waste one element of value and location stack
- so that they stay on the same level as the state stack.
- The wasted elements are never initialized. */
-
- yyssp = yyss;
- yyvsp = yyvs;
-
- goto yysetstate;
-
-/*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate. |
-`------------------------------------------------------------*/
- yynewstate:
- /* In all cases, when you get here, the value and location stacks
- have just been pushed. So pushing a state here evens the stacks. */
- yyssp++;
-
- yysetstate:
- *yyssp = yystate;
-
- if (yyss + yystacksize - 1 <= yyssp)
- {
- /* Get the current used size of the three stacks, in elements. */
- YYSIZE_T yysize = yyssp - yyss + 1;
-
-#ifdef yyoverflow
- {
- /* Give user a chance to reallocate the stack. Use copies of
- these so that the &'s don't force the real ones into
- memory. */
- YYSTYPE *yyvs1 = yyvs;
- yytype_int16 *yyss1 = yyss;
-
-
- /* Each stack pointer address is followed by the size of the
- data in use in that stack, in bytes. This used to be a
- conditional around just the two extra args, but that might
- be undefined if yyoverflow is a macro. */
- yyoverflow (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
-
- &yystacksize);
-
- yyss = yyss1;
- yyvs = yyvs1;
- }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
- goto yyexhaustedlab;
-# else
- /* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
- goto yyexhaustedlab;
- yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
-
- {
- yytype_int16 *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
- goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss);
- YYSTACK_RELOCATE (yyvs);
-
-# undef YYSTACK_RELOCATE
- if (yyss1 != yyssa)
- YYSTACK_FREE (yyss1);
- }
-# endif
-#endif /* no yyoverflow */
-
- yyssp = yyss + yysize - 1;
- yyvsp = yyvs + yysize - 1;
-
-
- YYDPRINTF ((stderr, "Stack size increased to %lu\n",
- (unsigned long int) yystacksize));
-
- if (yyss + yystacksize - 1 <= yyssp)
- YYABORT;
- }
-
- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-
- goto yybackup;
-
-/*-----------.
-| yybackup. |
-`-----------*/
-yybackup:
-
- /* Do appropriate processing given the current state. Read a
- look-ahead token if we need one and don't already have one. */
-
- /* First try to decide what to do without reference to look-ahead token. */
- yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
- goto yydefault;
-
- /* Not known => get a look-ahead token if don't already have one. */
-
- /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
- if (yychar == YYEMPTY)
- {
- YYDPRINTF ((stderr, "Reading a token: "));
- yychar = YYLEX;
- }
-
- if (yychar <= YYEOF)
- {
- yychar = yytoken = YYEOF;
- YYDPRINTF ((stderr, "Now at end of input.\n"));
- }
- else
- {
- yytoken = YYTRANSLATE (yychar);
- YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
- }
-
- /* If the proper action on seeing token YYTOKEN is to reduce or to
- detect an error, take that action. */
- yyn += yytoken;
- if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
- goto yydefault;
- yyn = yytable[yyn];
- if (yyn <= 0)
- {
- if (yyn == 0 || yyn == YYTABLE_NINF)
- goto yyerrlab;
- yyn = -yyn;
- goto yyreduce;
- }
-
- if (yyn == YYFINAL)
- YYACCEPT;
-
- /* Count tokens shifted since error; after three, turn off error
- status. */
- if (yyerrstatus)
- yyerrstatus--;
-
- /* Shift the look-ahead token. */
- YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
- /* Discard the shifted token unless it is eof. */
- if (yychar != YYEOF)
- yychar = YYEMPTY;
-
- yystate = yyn;
- *++yyvsp = yylval;
-
- goto yynewstate;
-
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state. |
-`-----------------------------------------------------------*/
-yydefault:
- yyn = yydefact[yystate];
- if (yyn == 0)
- goto yyerrlab;
- goto yyreduce;
-
-
-/*-----------------------------.
-| yyreduce -- Do a reduction. |
-`-----------------------------*/
-yyreduce:
- /* yyn is the number of a rule to reduce with. */
- yylen = yyr2[yyn];
-
- /* If YYLEN is nonzero, implement the default value of the action:
- `$$ = $1'.
-
- Otherwise, the following line sets YYVAL to garbage.
- This behavior is undocumented and Bison
- users should not rely upon it. Assigning to YYVAL
- unconditionally makes the parser a bit smaller, and it avoids a
- GCC warning that YYVAL may be used uninitialized. */
- yyval = yyvsp[1-yylen];
-
-
- YY_REDUCE_PRINT (yyn);
- switch (yyn)
- {
- case 2:
-#line 80 "levcomp.y"
- {
- if (outhandle && outfilename) {
- fclose(outhandle);
- outhandle = NULL;
- }
- }
- break;
-
- case 6:
-#line 96 "levcomp.y"
- {
- default_depth = range;
- }
- break;
-
- case 9:
-#line 106 "levcomp.y"
- {
- if (!outhandle) {
- if (outfilename) {
- if (!(outhandle =
- fopen(outfilename,
- write_append? "a" :"w")))
- outfilename = NULL;
- }
- if (!outhandle)
- outhandle = stdout;
- }
- if (!autowarned) {
- fprintf(outhandle, "%s", autogenheader);
- autowarned = true;
- }
- fprintf(outhandle, "%s", map.get_initialiser().c_str());
- }
- break;
-
- case 10:
-#line 126 "levcomp.y"
- {
- map.init();
- map.depth = default_depth;
- map.name = (yyvsp[(2) - (2)].text);
- }
- break;
-
- case 21:
-#line 147 "levcomp.y"
- {}
- break;
-
- case 23:
-#line 152 "levcomp.y"
- {
- map.tags += " ";
- map.tags += (yyvsp[(1) - (2)].text);
- map.tags += " ";
- }
- break;
-
- case 24:
-#line 159 "levcomp.y"
- {}
- break;
-
- case 25:
-#line 161 "levcomp.y"
- {
- map.random_symbols = (yyvsp[(2) - (2)].text);
- }
- break;
-
- case 26:
-#line 166 "levcomp.y"
- {}
- break;
-
- case 27:
-#line 167 "levcomp.y"
- {}
- break;
-
- case 30:
-#line 175 "levcomp.y"
- {
- map.mons.add_mons((yyvsp[(1) - (1)].text));
- }
- break;
-
- case 31:
-#line 181 "levcomp.y"
- {
- map.place = (yyvsp[(2) - (2)].text);
- }
- break;
-
- case 32:
-#line 186 "levcomp.y"
- {}
- break;
-
- case 33:
-#line 188 "levcomp.y"
- {
- map.depth = range;
- }
- break;
-
- case 34:
-#line 194 "levcomp.y"
- {
- range.set((yyvsp[(1) - (3)].i), (yyvsp[(3) - (3)].i));
- }
- break;
-
- case 35:
-#line 199 "levcomp.y"
- {
- range.set((yyvsp[(1) - (1)].i));
- }
- break;
-
- case 36:
-#line 205 "levcomp.y"
- {
- map.chance = (yyvsp[(2) - (2)].i);
- }
- break;
-
- case 37:
-#line 210 "levcomp.y"
- {}
- break;
-
- case 38:
-#line 212 "levcomp.y"
- {
- map.orient = (map_section_type) (yyvsp[(2) - (2)].i);
- }
- break;
-
- case 39:
-#line 217 "levcomp.y"
- { (yyval.i) = MAP_ENCOMPASS; }
- break;
-
- case 40:
-#line 218 "levcomp.y"
- { (yyval.i) = MAP_NORTH; }
- break;
-
- case 41:
-#line 219 "levcomp.y"
- { (yyval.i) = MAP_EAST; }
- break;
-
- case 42:
-#line 220 "levcomp.y"
- { (yyval.i) = MAP_SOUTH; }
- break;
-
- case 43:
-#line 221 "levcomp.y"
- { (yyval.i) = MAP_WEST; }
- break;
-
- case 44:
-#line 222 "levcomp.y"
- { (yyval.i) = MAP_NORTHEAST; }
- break;
-
- case 45:
-#line 223 "levcomp.y"
- { (yyval.i) = MAP_SOUTHEAST; }
- break;
-
- case 46:
-#line 224 "levcomp.y"
- { (yyval.i) = MAP_SOUTHWEST; }
- break;
-
- case 47:
-#line 225 "levcomp.y"
- { (yyval.i) = MAP_NORTHWEST; }
- break;
-
- case 48:
-#line 226 "levcomp.y"
- { (yyval.i) = MAP_NORTH_DIS; }
- break;
-
- case 49:
-#line 229 "levcomp.y"
- {}
- break;
-
- case 51:
-#line 234 "levcomp.y"
- {
- switch ((yyvsp[(1) - (2)].i)) {
- case NO_HMIRROR:
- map.flags &= ~MAPF_MIRROR_HORIZONTAL;
- break;
- case NO_VMIRROR:
- map.flags &= ~MAPF_MIRROR_VERTICAL;
- break;
- }
- }
- break;
-
- case 52:
-#line 246 "levcomp.y"
- { (yyval.i) = NO_HMIRROR; }
- break;
-
- case 53:
-#line 247 "levcomp.y"
- { (yyval.i) = NO_VMIRROR; }
- break;
-
- case 57:
-#line 258 "levcomp.y"
- {
- map.map.add_line((yyvsp[(1) - (1)].text));
- }
- break;
-
-
-/* Line 1267 of yacc.c. */
-#line 1714 "y.tab.c"
- default: break;
- }
- YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
- YYPOPSTACK (yylen);
- yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
-
- *++yyvsp = yyval;
-
-
- /* Now `shift' the result of the reduction. Determine what state
- that goes to, based on the state we popped back to and the rule
- number reduced by. */
-
- yyn = yyr1[yyn];
-
- yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
- if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
- yystate = yytable[yystate];
- else
- yystate = yydefgoto[yyn - YYNTOKENS];
-
- goto yynewstate;
-
-
-/*------------------------------------.
-| yyerrlab -- here on detecting error |
-`------------------------------------*/
-yyerrlab:
- /* If not already recovering from an error, report this error. */
- if (!yyerrstatus)
- {
- ++yynerrs;
-#if ! YYERROR_VERBOSE
- yyerror (YY_("syntax error"));
-#else
- {
- YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
- if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
- {
- YYSIZE_T yyalloc = 2 * yysize;
- if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
- yyalloc = YYSTACK_ALLOC_MAXIMUM;
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
- yymsg = (char *) YYSTACK_ALLOC (yyalloc);
- if (yymsg)
- yymsg_alloc = yyalloc;
- else
- {
- yymsg = yymsgbuf;
- yymsg_alloc = sizeof yymsgbuf;
- }
- }
-
- if (0 < yysize && yysize <= yymsg_alloc)
- {
- (void) yysyntax_error (yymsg, yystate, yychar);
- yyerror (yymsg);
- }
- else
- {
- yyerror (YY_("syntax error"));
- if (yysize != 0)
- goto yyexhaustedlab;
- }
- }
-#endif
- }
-
-
-
- if (yyerrstatus == 3)
- {
- /* If just tried and failed to reuse look-ahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
- {
- /* Return failure if at end of input. */
- if (yychar == YYEOF)
- YYABORT;
- }
- else
- {
- yydestruct ("Error: discarding",
- yytoken, &yylval);
- yychar = YYEMPTY;
- }
- }
-
- /* Else will try to reuse look-ahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR. |
-`---------------------------------------------------*/
-yyerrorlab:
-
- /* Pacify compilers like GCC when the user code never invokes
- YYERROR and the label yyerrorlab therefore never appears in user
- code. */
- if (/*CONSTCOND*/ 0)
- goto yyerrorlab;
-
- /* Do not reclaim the symbols of the rule which action triggered
- this YYERROR. */
- YYPOPSTACK (yylen);
- yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
- yystate = *yyssp;
- goto yyerrlab1;
-
-
-/*-------------------------------------------------------------.
-| yyerrlab1 -- common code for both syntax error and YYERROR. |
-`-------------------------------------------------------------*/
-yyerrlab1:
- yyerrstatus = 3; /* Each real token shifted decrements this. */
-
- for (;;)
- {
- yyn = yypact[yystate];
- if (yyn != YYPACT_NINF)
- {
- yyn += YYTERROR;
- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
- {
- yyn = yytable[yyn];
- if (0 < yyn)
- break;
- }
- }
-
- /* Pop the current state because it cannot handle the error token. */
- if (yyssp == yyss)
- YYABORT;
-
-
- yydestruct ("Error: popping",
- yystos[yystate], yyvsp);
- YYPOPSTACK (1);
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
- }
-
- if (yyn == YYFINAL)
- YYACCEPT;
-
- *++yyvsp = yylval;
-
-
- /* Shift the error token. */
- YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-
- yystate = yyn;
- goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here. |
-`-------------------------------------*/
-yyacceptlab:
- yyresult = 0;
- goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here. |
-`-----------------------------------*/
-yyabortlab:
- yyresult = 1;
- goto yyreturn;
-
-#ifndef yyoverflow
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here. |
-`-------------------------------------------------*/
-yyexhaustedlab:
- yyerror (YY_("memory exhausted"));
- yyresult = 2;
- /* Fall through. */
-#endif
-
-yyreturn:
- if (yychar != YYEOF && yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval);
- /* Do not reclaim the symbols of the rule which action triggered
- this YYABORT or YYACCEPT. */
- YYPOPSTACK (yylen);
- YY_STACK_PRINT (yyss, yyssp);
- while (yyssp != yyss)
- {
- yydestruct ("Cleanup: popping",
- yystos[*yyssp], yyvsp);
- YYPOPSTACK (1);
- }
-#ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
-#endif
-#if YYERROR_VERBOSE
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
-#endif
- /* Make sure YYID is used. */
- return YYID (yyresult);
-}
-
-
-#line 263 "levcomp.y"
-
-
-int main(int argc, char **argv) {
- for (int i = 1; i < argc; ++i) {
- if (argv[i][0] == '-') {
- if (argv[i][1] == 'a')
- {
- write_append = true;
- }
- }
- else
- outfilename = argv[i];
- }
- return yyparse();
-}
-
diff --git a/crawl-ref/source/randart.cc b/crawl-ref/source/randart.cc
index 0f09f8ec39..2aa804e957 100644
--- a/crawl-ref/source/randart.cc
+++ b/crawl-ref/source/randart.cc
@@ -610,7 +610,7 @@ const char *rand_armour_names[] = {
not randart.h because they're only used in this code module.
*/
-#if defined(__IBMCPP__) || defined(__BCPLUSPLUS__)
+#if defined(__IBMCPP__)
#define PACKED
#else
#ifndef PACKED
diff --git a/crawl-ref/source/tags.cc b/crawl-ref/source/tags.cc
index 789451f3a2..f671197067 100644
--- a/crawl-ref/source/tags.cc
+++ b/crawl-ref/source/tags.cc
@@ -65,18 +65,6 @@
#include <unistd.h>
#endif
-#ifdef USE_EMX
-#include <sys/types.h>
-#include <fcntl.h>
-#include <unistd.h>
-#endif
-
-#ifdef OS9
-#include <stat.h>
-#else
-#include <sys/stat.h>
-#endif
-
#include "AppHdr.h"
#include "abl-show.h"
diff --git a/crawl-ref/source/util/levcomp.cc b/crawl-ref/source/util/levcomp.cc
new file mode 100644
index 0000000000..6550f8b503
--- /dev/null
+++ b/crawl-ref/source/util/levcomp.cc
@@ -0,0 +1,33 @@
+#include <cstdio>
+#include <string>
+#include "levcomp.h"
+
+map_def map;
+level_range range;
+level_range default_depth;
+
+const char *autogenheader =
+ "/*************************************************************\n"
+ " * WARNING: This file is automatically generated! Do not edit.\n"
+ " *************************************************************/\n";
+
+const char *outfilename = NULL;
+FILE *outhandle = NULL;
+bool autowarned = false;
+bool write_append = false;
+
+extern int yyparse();
+
+int main(int argc, char **argv) {
+ for (int i = 1; i < argc; ++i) {
+ if (argv[i][0] == '-') {
+ if (argv[i][1] == 'a')
+ {
+ write_append = true;
+ }
+ }
+ else
+ outfilename = argv[i];
+ }
+ return yyparse();
+}
diff --git a/crawl-ref/source/util/levcomp.h b/crawl-ref/source/util/levcomp.h
new file mode 100644
index 0000000000..e7d1a46f52
--- /dev/null
+++ b/crawl-ref/source/util/levcomp.h
@@ -0,0 +1,19 @@
+#include <cstdio>
+#include <string>
+#include <vector>
+#include "mapdef.h"
+
+// [dshaligram] It may be better to build the web of conditional #ifdefs to
+// figure out which header this is in by platform...
+extern "C" {
+ extern int unlink(const char *);
+}
+
+extern map_def map;
+extern level_range range;
+extern level_range default_depth;
+extern const char *autogenheader;
+extern const char *outfilename;
+extern FILE *outhandle;
+extern bool autowarned;
+extern bool write_append;
diff --git a/crawl-ref/source/util/levcomp.l b/crawl-ref/source/util/levcomp.lpp
index a59fa7026c..e50372fd36 100644
--- a/crawl-ref/source/util/levcomp.l
+++ b/crawl-ref/source/util/levcomp.lpp
@@ -5,7 +5,7 @@
//
// Based loosely on NetHack's lev_comp.l
-#include "levcomp.h"
+#include "levcomp.tab.h"
#include <cstring>
static bool alloced = false;
diff --git a/crawl-ref/source/util/levcomp.y b/crawl-ref/source/util/levcomp.ypp
index 78a3ff1509..94bc916f38 100644
--- a/crawl-ref/source/util/levcomp.y
+++ b/crawl-ref/source/util/levcomp.ypp
@@ -1,36 +1,11 @@
%{
-#include <cstdio>
-#include <string>
-#include <vector>
-#include "mapdef.h"
-
-// [dshaligram] It may be better to build the web of conditional #ifdefs to
-// figure out which header this is in by platform...
-extern "C" {
- extern int unlink(const char *);
-}
+#include "levcomp.h"
int yylex();
extern int yylineno;
-static map_def map;
-static level_range range;
-static level_range default_depth;
-
-static const char *autogenheader =
- "/*************************************************************\n"
- " * WARNING: This file is automatically generated! Do not edit.\n"
- " *************************************************************/\n";
-
-static const char *outfilename = NULL;
-static FILE *outhandle = NULL;
-static bool autowarned = false;
-
-static bool write_append = false;
-
-
void yyerror(const char *e)
{
fprintf(stderr, "Error on line %d: %s\n", yylineno, e);
@@ -261,17 +236,3 @@ map_line : MAP_LINE
;
%%
-
-int main(int argc, char **argv) {
- for (int i = 1; i < argc; ++i) {
- if (argv[i][0] == '-') {
- if (argv[i][1] == 'a')
- {
- write_append = true;
- }
- }
- else
- outfilename = argv[i];
- }
- return yyparse();
-}