home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / games / volume16 / nethack31 / part32 < prev    next >
Internet Message Format  |  1993-02-01  |  60KB

  1. Path: uunet!news.tek.com!master!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v16i032:  nethack31 - display oriented dungeons & dragons (Ver. 3.1), Part32/108
  5. Message-ID: <4320@master.CNA.TEK.COM>
  6. Date: 29 Jan 93 20:46:35 GMT
  7. Sender: news@master.CNA.TEK.COM
  8. Lines: 1731
  9. Approved: billr@saab.CNA.TEK.COM
  10. Xref: uunet comp.sources.games:1589
  11.  
  12. Submitted-by: izchak@linc.cis.upenn.edu (Izchak Miller)
  13. Posting-number: Volume 16, Issue 32
  14. Archive-name: nethack31/Part32
  15. Supersedes: nethack3p9: Volume 10, Issue 46-102
  16. Environment: Amiga, Atari, Mac, MS-DOS, OS2, Unix, VMS, X11
  17.  
  18.  
  19.  
  20. #! /bin/sh
  21. # This is a shell archive.  Remove anything before this line, then unpack
  22. # it by saving it into a file and typing "sh file".  To overwrite existing
  23. # files, type "sh file -c".  You can also feed this as standard input via
  24. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  25. # will see the following message at the end:
  26. #        "End of archive 32 (of 108)."
  27. # Contents:  sys/mac/News sys/msdos/MakeGCC.src sys/share/lev_yacc.c1
  28. # Wrapped by billr@saab on Wed Jan 27 16:08:58 1993
  29. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  30. if test -f 'sys/mac/News' -a "${1}" != "-c" ; then 
  31.   echo shar: Will not clobber existing file \"'sys/mac/News'\"
  32. else
  33. echo shar: Extracting \"'sys/mac/News'\" \(364 characters\)
  34. sed "s/^X//" >'sys/mac/News' <<'END_OF_FILE'
  35. XWelcome to NetHack 3.1 for the Macintosh    (1/93)
  36. X
  37. XThis game is brought to you by Jon Watte, Hao-Yang Wang and the rest
  38. Xof the Macintosh Team (Mike Engber, David Hairston, Jonathan Handler,
  39. XTim Lennan, Rob Menke, Chris Russo and Andy Swanson).
  40. X
  41. XBug reports, suggestions, comments, etc., should be e-mailed to the
  42. XInternet address: nethack-bugs@linc.cis.upenn.edu
  43. END_OF_FILE
  44. if test 364 -ne `wc -c <'sys/mac/News'`; then
  45.     echo shar: \"'sys/mac/News'\" unpacked with wrong size!
  46. fi
  47. # end of 'sys/mac/News'
  48. fi
  49. if test -f 'sys/msdos/MakeGCC.src' -a "${1}" != "-c" ; then 
  50.   echo shar: Will not clobber existing file \"'sys/msdos/MakeGCC.src'\"
  51. else
  52. echo shar: Extracting \"'sys/msdos/MakeGCC.src'\" \(12579 characters\)
  53. sed "s/^X//" >'sys/msdos/MakeGCC.src' <<'END_OF_FILE'
  54. X#       SCCS Id: @(#)MakeGCC.src       3.1     93/01/05
  55. X#    Copyright (c) NetHack PC Development Team 1992, 1993.
  56. X#       PC NetHack 3.1 Src Makefile for djgpp 1.09 and ndmake 4.5
  57. X#
  58. X#       For questions read the Install.dos file included with
  59. X#       the distribution.
  60. X#
  61. X#       Kevin D Smolkowski, Kevins@ori.org
  62. X
  63. X#
  64. X#   Programs
  65. X#   gcc and go32 dos extender
  66. X
  67. X
  68. XCC       = gcc
  69. XSTUB     = stub.exe         # Can either be stub.exe or go32.exe
  70. XSTUBPATH = f:\djgpp\bin\    # Must be complete path with trailing '\'
  71. XLINK     = gcc
  72. X
  73. X#
  74. X#  Set the gamedir according to your preference.  It must be present prior
  75. X#  to compilation.
  76. X
  77. XGAME    = nethack                 # Game Name
  78. XGAMEDIR = c:\games\nethack        # Game directory
  79. X
  80. X#
  81. X#  Flags.
  82. X#
  83. X
  84. X# Debugging
  85. X#CFLAGS = -pg -c -I../include
  86. X#LFLAGS = -pg
  87. X
  88. XCFLAGS = -c -O -I../include
  89. XLFLAGS =
  90. X
  91. X#
  92. X# Special libraries
  93. XLIBS = -lpc
  94. X
  95. X#
  96. X#  Source directories.    Makedefs hardcodes these, don't change them.
  97. X#
  98. X
  99. XINCL = ..\include   # NetHack include files
  100. XDAT  = ..\dat       # NetHack data files
  101. XDOC  = ..\doc       # NetHack documentation files
  102. XUTIL = ..\util      # Utility source
  103. XSRC  = ..\src       # Main source
  104. XSYS  = ..\sys\share # Shared system files
  105. XMSYS = ..\sys\msdos # Msdos specific files
  106. XWIN  = ..\win\tty   # Character terminal files
  107. XGAMEFILE = $(GAMEDIR)\$(GAME).exe # whole thing
  108. X
  109. X#
  110. X#  The default make target (so just typing 'make' is useful).
  111. X#
  112. X
  113. Xdefault : $(GAMEFILE)
  114. X
  115. X#
  116. X#  If TERMLIB is defined in pcconf.c, comment out the upper line and
  117. X#  uncomment the lower.  Note that you must build the termc library
  118. X#  and place it in djgpp's lib directory.  See termcap.zip for details
  119. X
  120. X#TERMLIB =
  121. XTERMLIB = -ltermc
  122. X
  123. XLIBRARIES = $(LIBS) $(TERMLIB)
  124. X
  125. X######################################################################
  126. X#
  127. X#  Nothing below this line should have to be changed.
  128. X#
  129. X#  Other things that have to be reconfigured are in
  130. X#       config.h, pccconf.h and possibly system.h.
  131. X#
  132. X
  133. X#       This line should not be deleted.
  134. X
  135. X#
  136. X#  Make Rules.
  137. X#
  138. X
  139. X.SUFFIXES:  .exe .o .c .y .l
  140. X
  141. X.c.o:
  142. X        $(CC) $(CFLAGS) -o$*.o $*.c
  143. X
  144. X
  145. X#
  146. X#  Object files for the game itself.
  147. X#
  148. X
  149. XVOBJ01 = allmain.o  alloc.o    apply.o    artifact.o  attrib.o
  150. XVOBJ02 = ball.o     bones.o    botl.o     cmd.o      dbridge.o
  151. XVOBJ03 = decl.o     detect.o   display.o  do.o       do_name.o
  152. XVOBJ04 = do_wear.o  dog.o      dogmove.o  dokick.o   dothrow.o
  153. XVOBJ05 = drawing.o  dungeon.o  eat.o      end.o      engrave.o
  154. XVOBJ06 = exper.o    explode.o  extralev.o files.o    fountain.o
  155. XVOBJ07 = getline.o  hack.o     hacklib.o  invent.o   lock.o
  156. XVOBJ08 = mail.o     main.o     makemon.o  mcastu.o   mhitm.o
  157. XVOBJ09 = mhitu.o    minion.o   mkmap.o    mklev.o    mkmaze.o
  158. XVOBJ10 = mkobj.o    mkroom.o   mon.o      mondata.o  monmove.o
  159. XVOBJ11 = monst.o    monstr.o   mplayer.o  mthrowu.o  muse.o
  160. XVOBJ12 = music.o    o_init.o   objects.o  objnam.o   options.o
  161. XVOBJ13 = pickup.o   pline.o    polyself.o potion.o   quest.o
  162. XVOBJ14 = questpgr.o pager.o    pray.o     priest.o   read.o
  163. XVOBJ15 = rect.o     restore.o  rip.o      rnd.o      rumors.o
  164. XVOBJ16 = save.o     shk.o      shknam.o   sit.o      sounds.o
  165. XVOBJ17 = sp_lev.o   spell.o    steal.o    termcap.o  timeout.o
  166. XVOBJ18 = topl.o     topten.o   track.o    trap.o     u_init.o
  167. XVOBJ19 = uhitm.o    vault.o    vision.o   vis_tab.o  weapon.o
  168. XVOBJ20 = were.o     wield.o    windows.o  wintty.o   wizard.o
  169. XVOBJ21 = worm.o     worn.o     write.o    zap.o
  170. X
  171. XSOBJ    = msdos.o    sys.o      tty.o      unix.o
  172. X
  173. XVVOBJ  = version.o
  174. X
  175. X
  176. XVOBJ   = $(VOBJ01) $(VOBJ02) $(VOBJ03) $(VOBJ04) $(VOBJ05) \
  177. X         $(VOBJ06) $(VOBJ07) $(VOBJ08) $(VOBJ09) $(VOBJ10) \
  178. X         $(VOBJ11) $(VOBJ12) $(VOBJ13) $(VOBJ14) $(VOBJ15) \
  179. X         $(VOBJ16) $(VOBJ17) $(VOBJ18) $(VOBJ19) $(VOBJ20) \
  180. X         $(VOBJ21)
  181. X
  182. XALLOBJ =     $(VOBJ) $(VVOBJ) $(SOBJ)
  183. X
  184. XDGN_FILE_H = $(INCL)\align.h    $(INCL)\dgn_file.h
  185. XDUNGEON_H  = $(INCL)\align.h    $(INCL)\dungeon.h
  186. XEMIN_H     = $(DUNGEON_H)       $(INCL)\emin.h
  187. XEPRI_H     = $(DUNGEON_H)       $(INCL)\align.h     $(INCL)\epri.h
  188. XESHK_H     = $(DUNGEON_H)       $(INCL)\eshk.h
  189. XMONDATA_H  = $(INCL)\align.h    $(INCL)\mondata.h
  190. XMONST_H    = $(INCL)\align.h    $(INCL)\monst.h
  191. XPERMONST_H = $(INCL)\monattk.h  $(INCL)\monflag.h   $(INCL)\align.h   \
  192. X             $(INCL)\permonst.h
  193. XRM_H       = $(INCL)\align.h    $(INCL)\rm.h
  194. XSP_LEV_H   = $(INCL)\align.h    $(INCL)\sp_lev.h
  195. XVAULT_H    = $(DUNGEON_H)       $(INCL)\vault.h
  196. XYOUPROP_H  = $(PERMONST_H)      $(MONDATA_H)        $(INCL)\prop.h    \
  197. X             $(INCL)\pm.h       $(INCL)\youprop.h
  198. XYOU_H      = $(MONST_H)         $(YOUPROP_H)        $(INCL)\align.h   \
  199. X             $(INCL)\attrib.h   $(INCL)\you.h
  200. XDISPLAY_H  = $(MONDATA_H)       $(INCL)\vision.h    $(INCL)\display.h
  201. XPCCONF_H   = $(INCL)\micro.h    $(INCL)\system.h    $(INCL)\pcconf.h
  202. XCONFIG_H   = $(GLOBAL_H)        $(INCL)\tradstdc.h  $(INCL)\config.h
  203. XDECL_H     = $(YOU_H)           $(INCL)\spell.h     $(INCL)\color.h   \
  204. X             $(INCL)\obj.h      $(INCL)\onames.h    $(INCL)\pm.h      \
  205. X             $(INCL)\decl.h
  206. XGLOBAL_H   = $(PCCONF_H)        $(INCL)\coord.h     $(INCL)\global.h
  207. XHACK_H     = $(CONFIG_H)        $(DUNGEON_H)        $(DECL_H)         \
  208. X             $(DISPLAY_H)       $(INCL)\monsym.h    $(INCL)\mkroom.h  \
  209. X             $(INCL)\objclass.h $(INCL)\trap.h      $(INCL)\flag.h    \
  210. X             $(RM_H)            $(INCL)\vision.h    $(INCL)\wintype.h \
  211. X             $(INCL)\engrave.h  $(INCL)\rect.h      $(INCL)\extern.h \
  212. X             $(INCL)\trampoli.h $(INCL)\hack.h
  213. X
  214. X
  215. X
  216. X
  217. X#
  218. X#  The default target.
  219. X#
  220. X
  221. Xall :     $(GAMEFILE) install.tag
  222. X    @echo Done.
  223. X
  224. Xinstall: install.tag
  225. X
  226. Xinstall.tag:    $(GAMEFILE) $(DAT)\sp_lev.tag
  227. X    copy $(SYS)\termcap       $(GAMEDIR)
  228. X    copy $(DAT)\*.?           $(GAMEDIR)
  229. X    copy $(DAT)\*.dat         $(GAMEDIR)
  230. X    copy $(DAT)\*.lev         $(GAMEDIR)
  231. X    copy $(SYS)\NetHack.cnf   $(GAMEDIR)
  232. X    copy $(UTIL)\recover.exe  $(GAMEDIR)
  233. X    del   $(GAMEDIR)\makefile
  234. X    echo install done > install.tag
  235. X
  236. X#
  237. X#  The main target.
  238. X#
  239. X$(GAMEFILE) : $(GAME).res  $(UTIL)\utility.tag
  240. X    $(CC) $(LFLAGS) @$(GAME).res $(LIBRARIES)
  241. X    copy /b $(STUBPATH)$(STUB) + a.out $(GAMEFILE)
  242. X#    del a.out
  243. X
  244. X$(GAME).res : $(ALLOBJ)
  245. X    @echo $(VOBJ01) > $@
  246. X    @echo $(VOBJ02) >> $@
  247. X    @echo $(VOBJ03) >> $@
  248. X    @echo $(VOBJ04) >> $@
  249. X    @echo $(VOBJ05) >> $@
  250. X    @echo $(VOBJ06) >> $@
  251. X    @echo $(VOBJ07) >> $@
  252. X    @echo $(VOBJ08) >> $@
  253. X    @echo $(VOBJ09) >> $@
  254. X    @echo $(VOBJ10) >> $@
  255. X    @echo $(VOBJ11) >> $@
  256. X    @echo $(VOBJ12) >> $@
  257. X    @echo $(VOBJ13) >> $@
  258. X    @echo $(VOBJ14) >> $@
  259. X    @echo $(VOBJ15) >> $@
  260. X    @echo $(VOBJ16) >> $@
  261. X    @echo $(VOBJ17) >> $@
  262. X    @echo $(VOBJ18) >> $@
  263. X    @echo $(VOBJ19) >> $@
  264. X    @echo $(VOBJ20) >> $@
  265. X    @echo $(VOBJ21) >> $@
  266. X    @echo $(SOBJ)   >> $@
  267. X    @echo $(VVOBJ)  >> $@
  268. X
  269. X#
  270. X#  The following include files depend on makedefs to be created.
  271. X#
  272. X#  date.h should be remade every time any of the source or include
  273. X#  files is modified.
  274. X#
  275. X
  276. X$(INCL)\date.h : $(VOBJ)
  277. X    $(UTIL)\makedefs -v
  278. X
  279. X$(INCL)\onames.h :
  280. X    $(UTIL)\makedefs -o
  281. X
  282. X$(INCL)\pm.h :
  283. X    $(UTIL)\makedefs -p
  284. X
  285. X$(INCL)\trap.h :
  286. X    $(UTIL)\makedefs -t
  287. X
  288. X#
  289. X#       System specific modules
  290. X#
  291. X#             Ndmake doesn't like unix style / directory specs and
  292. X#             djgcc doesn't like dos style directory specs.  So we
  293. X#             get to copy stuff where we might need it.   Fun eh?
  294. X#
  295. X
  296. Xmain.o:  $(HACK_H) $(SYS)\pcmain.c
  297. X    copy $(SYS)\pcmain.c .
  298. X    $(CC) $(CFLAGS) -omain.o pcmain.c
  299. X
  300. Xtty.o:   $(HACK_H) $(INCL)\wintty.h $(SYS)\pctty.c
  301. X    copy $(SYS)\pctty.c .
  302. X    $(CC) $(CFLAGS) -otty.o  pctty.c
  303. X
  304. Xunix.o:  $(SYS)\pcunix.c $(HACK_H)
  305. X    copy $(SYS)\pcunix.c .
  306. X    $(CC) $(CFLAGS) -ounix.o pcunix.c
  307. X
  308. Xsys.o : $(SYS)\pcsys.c $(HACK_H)
  309. X    copy $(SYS)\pcsys.c .
  310. X    $(CC) $(CFLAGS) -o$*.o pcsys.c
  311. X
  312. Xmsdos.o : $(HACK_H)  $(MSYS)\msdos.c
  313. X    copy $(MSYS)\msdos.c .
  314. X    $(CC) $(CFLAGS) -o$*.o $*.c
  315. X
  316. X
  317. X# some other files requiring movement
  318. X
  319. Xgetline.o : $(WIN)\getline.c
  320. X    copy $(WIN)\getline.c .
  321. X    $(CC) $(CFLAGS) -o$*.o $*.c
  322. X
  323. Xtermcap.o : $(CONFIG_H) $(WIN)\termcap.c
  324. X    copy $(WIN)\termcap.c .
  325. X    $(CC) $(CFLAGS) -o$*.o $*.c
  326. X
  327. Xtopl.o : $(CONFIG_H) $(WIN)\topl.c
  328. X    copy $(WIN)\topl.c .
  329. X    $(CC) $(CFLAGS) -o$*.o $*.c
  330. X
  331. Xwintty.o : $(CONFIG_H) $(WIN)\wintty.c
  332. X    copy $(WIN)\wintty.c .
  333. X    $(CC) $(CFLAGS) -o$*.o $*.c
  334. X
  335. X#
  336. X#  Housekeeping.
  337. X#
  338. X
  339. Xclean :
  340. X    -del *.o
  341. X
  342. Xspotless : clean
  343. X    -del $(INCL)\date.h
  344. X    -del $(INCL)\onames.h
  345. X    -del $(INCL)\pm.h
  346. X    -del $(INCL)\vis_tab.h
  347. X    -del vis_tab.c
  348. X    -del $(UTIL)\makedefs.exe
  349. X    -del $(UTIL)\lev_comp.exe
  350. X    -del $(UTIL)\dgn_comp.exe
  351. X    -del $(UTIL)\*.res
  352. X    -del $(UTIL)\*.def
  353. X    -del $(UTIL)\*.map
  354. X    -del $(DAT)\data
  355. X    -del $(DAT)\rumors
  356. X    -del $(UTIL)\guideboo.dvi
  357. X
  358. X# dependencies
  359. Xallmain.o     : $(HACK_H)
  360. Xalloc.o       : $(CONFIG_H)
  361. Xapply.o       : $(HACK_H)
  362. Xartifact.o    : $(HACK_H)       $(INCL)\artifact.h
  363. Xattrib.o      : $(HACK_H)
  364. Xbones.o       : $(HACK_H)
  365. Xbotl.o        : $(HACK_H)
  366. Xcmd.o         : $(HACK_H)       $(INCL)\func_tab.h
  367. Xdbridge.o     : $(HACK_H)
  368. Xdecl.o        : $(HACK_H)       $(INCL)\quest.h
  369. Xdetect.o      : $(HACK_H)
  370. Xdisplay.o     : $(HACK_H)
  371. Xdo.o          : $(HACK_H)       $(INCL)\lev.h
  372. Xdo_name.o     : $(HACK_H)
  373. Xdo_wear.o     : $(HACK_H)
  374. Xdog.o         : $(HACK_H)       $(INCL)\edog.h
  375. Xdogmove.o     : $(HACK_H)       $(INCL)\mfndpos.h   $(INCL)\edog.h
  376. Xdokick.o      : $(HACK_H)       $(ESHK_H)
  377. Xdothrow.o     : $(HACK_H)
  378. Xdrawing.o     : $(HACK_H)       $(INCL)\termcap.h
  379. Xdungeon.o     : $(HACK_H)       $(DGN_FILE_H)
  380. Xeat.o         : $(HACK_H)
  381. Xend.o         : $(HACK_H)       $(ESHK_H)
  382. Xengrave.o     : $(HACK_H)       $(INCL)\lev.h
  383. Xexper.o       : $(HACK_H)
  384. Xexplode.o     : $(HACK_H)
  385. Xextralev.o    : $(HACK_H)
  386. Xfiles.o       : $(HACK_H)
  387. Xfountain.o    : $(HACK_H)
  388. Xgetline.o     : $(HACK_H)
  389. Xhack.o        : $(HACK_H)
  390. Xinvent.o      : $(HACK_H)
  391. Xlock.o        : $(HACK_H)
  392. Xmail.o        : $(HACK_H)
  393. Xhacklib.o     : $(HACK_H)
  394. Xmain.o        : $(HACK_H)
  395. Xmakemon.o     : $(HACK_H)
  396. Xmcastu.o      : $(HACK_H)
  397. Xmhitm.o       : $(HACK_H)
  398. Xmhitu.o       : $(HACK_H)
  399. Xminion.o      : $(HACK_H)
  400. Xmklev.o       : $(HACK_H)
  401. Xmkmap.o       : $(HACK_H)
  402. Xmkmaze.o      : $(HACK_H)
  403. Xmkobj.o       : $(HACK_H)
  404. Xmkroom.o      : $(HACK_H)
  405. Xmon.o         : $(HACK_H)
  406. Xmondata.o     : $(HACK_H)
  407. Xmonmove.o     : $(HACK_H)       $(INCL)\mfndpos.h   $(INCL)\artifact.h
  408. Xmonst.o       : $(CONFIG_H)     $(PERMONST_H)       $(INCL)\monsym.h     \
  409. X                $(ESHK_H)       $(VAULT_H)          $(INCL)\color.h      \
  410. X                $(EPRI_H)
  411. Xmonstr.o      : $(CONFIG_H)
  412. Xmplayer.o     : $(HACK_H)
  413. Xmthrowu.o     : $(HACK_H)
  414. Xmuse.o        : $(HACK_H)
  415. Xmusic.o       : $(HACK_H)
  416. Xo_init.o      : $(HACK_H)
  417. Xobjects.o     : $(CONFIG_H)     $(INCL)\obj.h       $(INCL)\objclass.h   \
  418. X                $(INCL)\prop.h  $(INCL)\color.h
  419. Xobjects.o     : $(HACK_H)
  420. Xobjnam.o      : $(HACK_H)
  421. Xoptions.o     : $(HACK_H)       $(INCL)\termcap.h
  422. Xmsdos.o       : $(HACK_H)
  423. Xpager.o       : $(HACK_H)
  424. Xpickup.o      : $(HACK_H)
  425. Xpline.o       : $(HACK_H)     $(EPRI_H)
  426. Xpolyself.o    : $(HACK_H)
  427. Xpotion.o      : $(HACK_H)
  428. Xpriest.o      : $(HACK_H)     $(INCL)\mfndpos.h   $(ESHK_H) \
  429. X                $(EPRI_H)     $(EMIN_H)
  430. Xquest.o       : $(HACK_H)     $(INCL)\quest.h     $(INCL)\qtext.h
  431. Xquestpgr.o    : $(HACK_H)     $(INCL)\quest.h     $(INCL)\qtext.h
  432. Xpray.o        : $(HACK_H)
  433. Xpriest.o      : $(HACK_H)
  434. Xread.o        : $(HACK_H)
  435. Xrect.o        : $(HACK_H)
  436. Xrestore.o     : $(HACK_H)     $(INCL)\lev.h       $(INCL)\quest.h
  437. Xrip.o         : $(HACK_H)
  438. Xrnd.o         : $(HACK_H)
  439. Xrumors.o      : $(HACK_H)
  440. Xsave.o        : $(HACK_H)     $(INCL)\lev.h       $(INCL)\quest.h
  441. Xsearch.o      : $(HACK_H)     $(INCL)\artifact.h
  442. Xshk.o         : $(HACK_H)
  443. Xshknam.o      : $(HACK_H)     $(ESHK_H)
  444. Xsit.o         : $(HACK_H)
  445. Xsounds.o      : $(HACK_H)     $(INCL)\edog.h      $(ESHK_H)
  446. Xsp_lev.o      : $(HACK_H)
  447. Xspell.o       : $(HACK_H)
  448. Xsteal.o       : $(HACK_H)
  449. Xsys.o         : $(HACK_H)
  450. Xtermcap.o     : $(HACK_H)
  451. Xtimeout.o     : $(HACK_H)
  452. Xtopl.o        : $(HACK_H)
  453. Xtopten.o      : $(HACK_H)
  454. Xtrack.o       : $(HACK_H)
  455. Xtrap.o        : $(HACK_H)     $(INCL)\edog.h
  456. Xtty.o         : $(HACK_H)
  457. Xu_init.o      : $(HACK_H)
  458. Xuhitm.o       : $(HACK_H)
  459. Xunix.o        : $(HACK_H)
  460. Xvault.o       : $(HACK_H)     $(INCL)\vault.h
  461. Xversion.o     : $(HACK_H)     $(INCL)\date.h      $(INCL)\patchlev.h
  462. Xvision.o      : $(HACK_H)     $(INCL)\vis_tab.h
  463. Xvis_tab.o     : $(HACK_H)
  464. Xweapon.o      : $(HACK_H)
  465. Xwere.o        : $(HACK_H)
  466. Xwield.o       : $(HACK_H)
  467. Xwindows.o     : $(HACK_H)
  468. Xwintty.o      : $(HACK_H)
  469. Xwizard.o      : $(HACK_H)
  470. Xworm.o        : $(HACK_H)     $(INCL)\lev.h
  471. Xworn.o        : $(HACK_H)
  472. Xwrite.o       : $(HACK_H)
  473. Xzap.o         : $(HACK_H)
  474. END_OF_FILE
  475. if test 12579 -ne `wc -c <'sys/msdos/MakeGCC.src'`; then
  476.     echo shar: \"'sys/msdos/MakeGCC.src'\" unpacked with wrong size!
  477. fi
  478. # end of 'sys/msdos/MakeGCC.src'
  479. fi
  480. if test -f 'sys/share/lev_yacc.c1' -a "${1}" != "-c" ; then 
  481.   echo shar: Will not clobber existing file \"'sys/share/lev_yacc.c1'\"
  482. else
  483. echo shar: Extracting \"'sys/share/lev_yacc.c1'\" \(42090 characters\)
  484. sed "s/^X//" >'sys/share/lev_yacc.c1' <<'END_OF_FILE'
  485. Xextern char *malloc(), *realloc();
  486. X
  487. X# line 2 "lev_comp.y"
  488. X/*    SCCS Id: @(#)lev_comp.c    3.1    92/07/12    */
  489. X/*    Copyright (c) 1989 by Jean-Christophe Collet */
  490. X/* NetHack may be freely redistributed.  See license for details. */
  491. X
  492. X/*
  493. X * This file contains the Level Compiler code
  494. X * It may handle special mazes & special room-levels
  495. X */
  496. X
  497. X/* In case we're using bison in AIX.  This definition must be
  498. X * placed before any other C-language construct in the file
  499. X * excluding comments and preprocessor directives (thanks IBM
  500. X * for this wonderful feature...).
  501. X *
  502. X * Note: some cpps barf on this 'undefined control' (#pragma).
  503. X * Addition of the leading space seems to prevent barfage for now,
  504. X * and AIX will still see the directive in its non-standard locale.
  505. X */
  506. X
  507. X#ifdef _AIX
  508. X #pragma alloca        /* keep leading space! */
  509. X#endif
  510. X
  511. X#include "hack.h"
  512. X#include "sp_lev.h"
  513. X#ifndef O_WRONLY
  514. X# include <fcntl.h>
  515. X#endif
  516. X#ifndef O_CREAT    /* some older BSD systems do not define O_CREAT in <fcntl.h> */
  517. X# include <sys/file.h>
  518. X#endif
  519. X#ifndef O_BINARY    /* used for micros, no-op for others */
  520. X# define O_BINARY 0
  521. X#endif
  522. X
  523. X#ifdef MICRO
  524. X# define OMASK FCMASK
  525. X#else
  526. X# define OMASK 0644
  527. X#endif
  528. X
  529. X#define MAX_REGISTERS    10
  530. X#define ERR        (-1)
  531. X
  532. X#define New(type)        (type *) alloc(sizeof(type))
  533. X#define NewTab(type, size)    (type **) alloc(sizeof(type *) * size)
  534. X
  535. X#ifdef MICRO
  536. X# undef exit
  537. Xextern void FDECL(exit, (int));
  538. X#endif
  539. X
  540. Xextern void FDECL(yyerror, (char *));
  541. Xextern void FDECL(yywarning, (char *));
  542. Xextern int NDECL(yylex);
  543. Xint NDECL(yyparse);
  544. X
  545. Xextern char *FDECL(dup_string,(char *));
  546. Xextern int FDECL(get_floor_type, (CHAR_P));
  547. Xextern int FDECL(get_room_type, (char *));
  548. Xextern int FDECL(get_trap_type, (char *));
  549. Xextern int FDECL(get_monster_id, (char *, CHAR_P));
  550. Xextern int FDECL(get_object_id, (char *));
  551. Xextern boolean FDECL(check_monster_char, (CHAR_P));
  552. Xextern boolean FDECL(check_object_char, (CHAR_P));
  553. Xextern char FDECL(what_map_char, (CHAR_P));
  554. Xextern void FDECL(scan_map, (char *));
  555. Xextern void NDECL(wallify_map);
  556. Xextern boolean NDECL(check_subrooms);
  557. Xextern void FDECL(check_coord, (int, int, char *));
  558. Xextern void NDECL(store_part);
  559. Xextern void NDECL(store_room);
  560. Xextern void FDECL(write_maze, (int, specialmaze *));
  561. Xextern void FDECL(write_lev, (int, splev *));
  562. Xextern void FDECL(free_rooms, (room **, int));
  563. X
  564. Xstatic struct reg {
  565. X    int x1, y1;
  566. X    int x2, y2;
  567. X}        current_region;
  568. X
  569. Xstatic struct coord {
  570. X    int x;
  571. X    int y;
  572. X}        current_coord, current_align;
  573. X
  574. Xstatic struct size {
  575. X    int height;
  576. X    int width;
  577. X}        current_size;
  578. X
  579. Xchar tmpmessage[256];
  580. Xaltar *tmpaltar[256];
  581. Xlad *tmplad[256];
  582. Xstair *tmpstair[256];
  583. Xdigpos *tmpdig[256];
  584. Xchar *tmpmap[ROWNO];
  585. Xregion *tmpreg[256];
  586. Xlev_region *tmplreg[32];
  587. Xdoor *tmpdoor[256];
  588. Xroom_door *tmprdoor[256];
  589. Xtrap *tmptrap[256];
  590. Xmonster *tmpmonst[256];
  591. Xobject *tmpobj[256];
  592. Xdrawbridge *tmpdb[256];
  593. Xwalk *tmpwalk[256];
  594. Xgold *tmpgold[256];
  595. Xfountain *tmpfountain[256];
  596. Xsink *tmpsink[256];
  597. Xpool *tmppool[256];
  598. Xengraving *tmpengraving[256];
  599. Xmazepart *tmppart[10];
  600. Xroom *tmproom[MAXNROFROOMS*2];
  601. Xcorridor *tmpcor[256];
  602. X
  603. Xstatic specialmaze maze;
  604. Xstatic splev special_lev;
  605. Xstatic lev_init init_lev;
  606. X
  607. Xstatic char olist[MAX_REGISTERS], mlist[MAX_REGISTERS];
  608. Xstatic struct coord plist[MAX_REGISTERS];
  609. X
  610. Xint n_olist = 0, n_mlist = 0, n_plist = 0;
  611. X
  612. Xunsigned int nlreg = 0, nreg = 0, ndoor = 0, ntrap = 0, nmons = 0, nobj = 0;
  613. Xunsigned int ndb = 0, nwalk = 0, npart = 0, ndig = 0, nlad = 0, nstair = 0;
  614. Xunsigned int naltar = 0, ncorridor = 0, nrooms = 0, ngold = 0, nengraving = 0;
  615. Xunsigned int nfountain = 0, npool = 0, nsink = 0;
  616. X
  617. Xstatic unsigned long lev_flags = 0;
  618. X
  619. Xunsigned int max_x_map, max_y_map;
  620. X
  621. Xstatic xchar in_room;
  622. X
  623. Xextern int fatal_error;
  624. Xextern int want_warnings;
  625. Xextern char* fname;
  626. X
  627. X
  628. X# line 143 "lev_comp.y"
  629. Xtypedef union 
  630. X{
  631. X    int    i;
  632. X    char*    map;
  633. X    struct {
  634. X        xchar room;
  635. X        xchar wall;
  636. X        xchar door;
  637. X    } corpos;
  638. X} YYSTYPE;
  639. X# define CHAR 257
  640. X# define INTEGER 258
  641. X# define BOOLEAN 259
  642. X# define MESSAGE_ID 260
  643. X# define MAZE_ID 261
  644. X# define LEVEL_ID 262
  645. X# define LEV_INIT_ID 263
  646. X# define GEOMETRY_ID 264
  647. X# define NOMAP_ID 265
  648. X# define OBJECT_ID 266
  649. X# define MONSTER_ID 267
  650. X# define TRAP_ID 268
  651. X# define DOOR_ID 269
  652. X# define DRAWBRIDGE_ID 270
  653. X# define MAZEWALK_ID 271
  654. X# define WALLIFY_ID 272
  655. X# define REGION_ID 273
  656. X# define FILLING 274
  657. X# define RANDOM_OBJECTS_ID 275
  658. X# define RANDOM_MONSTERS_ID 276
  659. X# define RANDOM_PLACES_ID 277
  660. X# define ALTAR_ID 278
  661. X# define LADDER_ID 279
  662. X# define STAIR_ID 280
  663. X# define NON_DIGGABLE_ID 281
  664. X# define ROOM_ID 282
  665. X# define PORTAL_ID 283
  666. X# define TELEPRT_ID 284
  667. X# define BRANCH_ID 285
  668. X# define LEV 286
  669. X# define CHANCE_ID 287
  670. X# define CORRIDOR_ID 288
  671. X# define GOLD_ID 289
  672. X# define ENGRAVING_ID 290
  673. X# define FOUNTAIN_ID 291
  674. X# define POOL_ID 292
  675. X# define SINK_ID 293
  676. X# define NONE 294
  677. X# define RAND_CORRIDOR_ID 295
  678. X# define DOOR_STATE 296
  679. X# define LIGHT_STATE 297
  680. X# define CURSE_TYPE 298
  681. X# define ENGRAVING_TYPE 299
  682. X# define DIRECTION 300
  683. X# define RANDOM_TYPE 301
  684. X# define O_REGISTER 302
  685. X# define M_REGISTER 303
  686. X# define P_REGISTER 304
  687. X# define A_REGISTER 305
  688. X# define ALIGNMENT 306
  689. X# define LEFT_OR_RIGHT 307
  690. X# define CENTER 308
  691. X# define TOP_OR_BOT 309
  692. X# define ALTAR_TYPE 310
  693. X# define UP_OR_DOWN 311
  694. X# define SUBROOM_ID 312
  695. X# define NAME_ID 313
  696. X# define FLAGS_ID 314
  697. X# define FLAG_TYPE 315
  698. X# define MON_ATTITUDE 316
  699. X# define MON_ALERTNESS 317
  700. X# define MON_APPEARANCE 318
  701. X# define STRING 319
  702. X# define MAP_ID 320
  703. X#define yyclearin yychar = -1
  704. X#define yyerrok yyerrflag = 0
  705. Xextern int yychar;
  706. Xextern int yyerrflag;
  707. X#ifndef YYMAXDEPTH
  708. X#define YYMAXDEPTH 150
  709. X#endif
  710. XYYSTYPE yylval, yyval;
  711. X# define YYERRCODE 256
  712. X
  713. X# line 1528 "lev_comp.y"
  714. X
  715. Xint yyexca[] ={
  716. X-1, 1,
  717. X    0, -1,
  718. X    -2, 0,
  719. X-1, 176,
  720. X    44, 98,
  721. X    -2, 97,
  722. X    };
  723. X# define YYNPROD 212
  724. X# define YYLAST 483
  725. Xint yyact[]={
  726. X
  727. X   154,   447,   304,   428,   180,   376,    67,   394,   218,   153,
  728. X   205,    47,   455,   307,   249,    20,    22,   308,   305,    21,
  729. X   103,   102,   105,   149,   155,    49,    28,    12,   434,   435,
  730. X   437,    21,   112,   424,   152,   289,   423,   454,   285,   210,
  731. X    60,   148,    21,   117,   118,   113,   151,   150,    55,    56,
  732. X   410,   385,   364,    21,   421,    60,    21,    21,   310,   297,
  733. X   219,   363,   222,   182,   181,   448,   178,   147,    68,    69,
  734. X    61,   307,   377,   373,   132,   308,   305,   129,   370,   371,
  735. X   395,   206,   392,   250,   245,    61,   207,   251,   326,   323,
  736. X   231,   156,   103,   102,   105,   104,   106,   114,   115,   107,
  737. X   313,    43,   314,   347,   112,   116,   108,   119,   449,   109,
  738. X   110,   111,   309,   293,    74,   117,   118,   113,   197,   126,
  739. X   199,   202,   204,   396,   393,   217,   246,    64,    66,    65,
  740. X   238,   212,   175,   232,   407,    36,    34,    17,     8,     9,
  741. X    25,   443,   440,   277,   183,    44,   442,   239,   432,   426,
  742. X   409,   403,   402,   400,   384,   365,   359,   352,   350,   338,
  743. X   335,   209,   316,   299,   294,   290,   286,   279,   266,   262,
  744. X   211,   243,   236,   132,   129,    70,   226,   227,   228,   229,
  745. X    39,   233,   130,   220,   131,   390,   127,   333,   242,   128,
  746. X   331,   329,   343,   260,   256,   254,   146,   145,   144,   247,
  747. X   248,   141,   140,    78,   192,   139,   138,   137,   191,   252,
  748. X   190,   189,   188,   187,   184,   173,   172,   171,   170,   169,
  749. X   168,   167,   166,   165,   164,   223,   224,   225,   163,   162,
  750. X   161,   160,   159,   158,   157,   122,   121,   120,    81,    80,
  751. X    76,    75,    48,    38,    26,    18,    15,    14,    54,   345,
  752. X   452,   439,   357,   177,   284,   438,   288,   429,   427,    98,
  753. X   100,    99,   425,    79,    94,    93,   291,   292,    86,    84,
  754. X    83,   420,   417,   414,   408,   406,   295,   401,   398,   397,
  755. X   389,   386,   311,   383,   379,   375,   368,   367,   360,   358,
  756. X   357,   321,   351,   349,   348,   344,   342,   337,   334,   332,
  757. X   330,   328,   320,   317,   303,   179,    77,   174,   221,   302,
  758. X   301,   300,   298,   296,   282,   281,   280,   278,   276,   275,
  759. X   274,   273,   272,   214,   271,   270,   215,   214,   263,   261,
  760. X   215,   259,   346,   378,   374,   258,   257,   353,   255,   354,
  761. X   253,   237,   196,   355,   356,   366,   216,   194,   201,   327,
  762. X   324,   193,   186,   185,   124,   123,    50,   234,    40,   336,
  763. X    30,   387,   339,   340,   341,   319,   451,   445,   444,   241,
  764. X   441,   221,   240,   418,   415,   411,   345,    27,   178,   265,
  765. X   399,   239,   217,    31,    16,    11,    23,     2,   213,   269,
  766. X   388,    10,   361,    13,   268,   267,   264,   405,    19,   381,
  767. X   419,   404,   416,   380,   413,   412,    29,   177,   315,   318,
  768. X   101,    37,    97,    96,    95,    92,    45,    91,    51,   430,
  769. X   431,   433,    90,   436,    89,    88,    87,    85,    82,   235,
  770. X   176,    63,    35,    62,    46,    33,    32,   143,   446,   142,
  771. X   136,   450,   135,   134,   133,   372,   322,   325,    59,    58,
  772. X   125,    73,    72,    57,    53,    24,    71,    52,    41,     5,
  773. X     4,     3,     1,   453,   287,   283,     7,     6,   203,   200,
  774. X   198,   195,   382,   312,   230,   422,   244,   391,   369,    42,
  775. X   306,   362,   208 };
  776. Xint yypact[]={
  777. X
  778. X  -123, -1000, -1000,  -123, -1000, -1000,  -287,  -287,   189,   188,
  779. X -1000,  -126,   187,  -126,  -300,  -300,  -120,   186,  -289,  -120,
  780. X   316, -1000, -1000,  -129,  -120,   185,   -77, -1000,   314, -1000,
  781. X  -156, -1000,  -129, -1000, -1000,  -309,   184, -1000,  -294,   312,
  782. X  -289,  -227, -1000, -1000, -1000, -1000,  -148, -1000,  -239, -1000,
  783. X   -82, -1000,  -181, -1000, -1000,   183,   182,  -242, -1000, -1000,
  784. X   181,   180,  -174, -1000,   179,   178,   177,   311, -1000, -1000,
  785. X   310, -1000, -1000,  -169, -1000,   -83,   -84, -1000,  -246,  -246,
  786. X  -277,  -277, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
  787. X -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
  788. X -1000, -1000,   176,   175,   174,   173,   172,   171,   170,   166,
  789. X   165,   164,   163,   162,   161, -1000,   160,   159,   158,   157,
  790. X   -83,   338,   -84,  -245,  -115, -1000,   156, -1000,   309, -1000,
  791. X -1000,   308, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
  792. X -1000, -1000, -1000, -1000, -1000, -1000, -1000,   155,   154,   153,
  793. X   152,   150,   146,   307, -1000, -1000,   303,  -183,  -180,  -215,
  794. X  -262,    26,   342,    22,    85,    85,    85,    26,    26,    26,
  795. X    26,  -168,    26,   342, -1000, -1000, -1000, -1000,   -86, -1000,
  796. X -1000, -1000, -1000,   297,   341,   -83,   -84,  -300,   -87,  -175,
  797. X    26,    26,    26,  -214,  -214,   296, -1000, -1000, -1000,   104,
  798. X   294, -1000, -1000, -1000,   103,   292, -1000, -1000,   291, -1000,
  799. X -1000,   287, -1000, -1000, -1000,   102,   285,   -89,   284, -1000,
  800. X -1000,   339,   -90, -1000, -1000, -1000,   281, -1000,   280,   278,
  801. X   277, -1000, -1000,   276, -1000,   275,   274,  -116,   273,   -91,
  802. X -1000, -1000, -1000, -1000,   272, -1000, -1000, -1000, -1000,   271,
  803. X -1000, -1000,   270,  -263,   -92,  -266,   -93,    26,    26,  -187,
  804. X   -94,  -214,   269,  -252,   268,   -95,   267,   266,   265,   260,
  805. X  -230,  -188,  -253,    26,  -199,   338,   -96,   259,   107,   258,
  806. X  -215,    49,    48,   257, -1000, -1000,    98,   256, -1000, -1000,
  807. X    97, -1000, -1000,   255,    94,   254,   -98, -1000,    85,   253,
  808. X   -99,    85,    85,    85,   252, -1000, -1000, -1000,   101, -1000,
  809. X -1000, -1000,   251, -1000, -1000, -1000,   335,  -214, -1000, -1000,
  810. X  -197,   250,   249,  -100, -1000,   248,  -101, -1000,    26, -1000,
  811. X    26, -1000,  -215, -1000,  -277,   246,   245,  -102,   208,   244,
  812. X -1000, -1000,  -249,  -103,  -300, -1000,   243,   242,  -222,    33,
  813. X   241,    32,   240, -1000, -1000, -1000,   239,  -104,  -260,   237,
  814. X  -300,   236, -1000, -1000, -1000,    92, -1000,  -177,  -178,   235,
  815. X -1000, -1000,   234,  -239, -1000,  -105,   233,  -106, -1000,  -107,
  816. X -1000,   231, -1000,  -140,   230, -1000,  -108, -1000, -1000,  -261,
  817. X -1000, -1000, -1000, -1000,   334, -1000, -1000,  -178,    32,   229,
  818. X   333,  -300,   228,   332,   227, -1000,  -265,   218,  -109,   214,
  819. X -1000, -1000, -1000,   213,  -245, -1000,   213,  -110, -1000, -1000,
  820. X  -288,   211,   207, -1000, -1000,  -117,   329,  -112, -1000,  -118,
  821. X   327, -1000,   326, -1000, -1000, -1000, -1000,  -300,  -193,  -193,
  822. X -1000, -1000,   325, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
  823. X   206, -1000,  -282, -1000, -1000, -1000 };
  824. Xint yypgo[]={
  825. X
  826. X     0,     6,     4,   482,     9,    10,    14,     2,   481,   480,
  827. X     3,   479,     7,   478,   477,   476,   475,     1,   474,   473,
  828. X   385,   377,   472,    60,   384,   184,   471,   470,   189,   469,
  829. X   468,     0,   467,   466,   465,   464,   463,   130,   462,   387,
  830. X   461,   460,   459,   386,   383,   458,   457,   456,   455,   454,
  831. X   186,   182,   248,   453,   452,   451,   450,   449,   203,   448,
  832. X   447,     5,   446,   445,   444,   443,   442,   440,   207,   206,
  833. X   205,   202,   201,   439,   437,   198,   197,   196,   436,   435,
  834. X   434,   433,   432,   431,   132,   430,   429,   428,   427,   426,
  835. X   425,   424,   422,   417,   415,   414,   413,   412,   410,     8,
  836. X   403,   401,   400,   399,   397,   396,   395,   394,   392,   390,
  837. X   389,   183,   131,   388 };
  838. Xint yyr1[]={
  839. X
  840. X     0,    38,    38,    39,    39,    40,    40,    41,    42,    33,
  841. X    24,    24,    14,    14,    20,    20,    21,    21,    43,    43,
  842. X    48,    45,    45,    49,    49,    46,    46,    52,    52,    47,
  843. X    47,    54,    55,    55,    56,    56,    37,    53,    53,    59,
  844. X    57,    10,    10,    62,    62,    60,    60,    63,    63,    61,
  845. X    61,    58,    58,    64,    64,    64,    64,    64,    64,    64,
  846. X    64,    64,    64,    64,    64,    64,    65,    66,    67,    15,
  847. X    15,    13,    13,    12,    12,    32,    11,    11,    44,    44,
  848. X    78,    79,    79,    82,     1,     1,     2,     2,    80,    80,
  849. X    83,    83,    83,    50,    50,    51,    51,    84,    86,    84,
  850. X    81,    81,    87,    87,    87,    87,    87,    87,    87,    87,
  851. X    87,    87,    87,    87,    87,    87,    87,    87,    87,    87,
  852. X    87,   100,    68,   101,   101,   102,   102,   102,   102,   102,
  853. X   103,    69,   104,   104,   104,    16,    16,    17,    17,    88,
  854. X    70,    89,    95,    96,    97,    77,   105,    91,   106,    92,
  855. X   107,   108,    93,   110,    94,   109,   109,    23,    23,    72,
  856. X    73,    74,    98,    90,    71,    75,    76,    26,    26,    26,
  857. X    29,    29,    29,    34,    34,    35,    35,     3,     3,     4,
  858. X     4,    22,    22,    22,    99,    99,    99,     5,     5,     6,
  859. X     6,     7,     7,     7,     8,     8,   113,    30,    27,     9,
  860. X    85,    25,    28,    31,    36,    36,    18,    18,    19,    19,
  861. X   112,   111 };
  862. Xint yyr2[]={
  863. X
  864. X     0,     0,     2,     2,     4,     2,     2,    11,    15,     7,
  865. X     1,    27,     2,     2,     1,     7,     3,     7,     0,     4,
  866. X     7,     0,     4,     7,     7,     1,     2,     2,     4,     2,
  867. X     2,     3,     0,     4,    11,    11,    15,     5,     5,    25,
  868. X    25,     1,     5,    11,     3,    11,     3,    11,     3,    11,
  869. X     3,     0,     4,     2,     2,     2,     2,     2,     2,     2,
  870. X     2,     2,     2,     2,     2,     2,     7,     7,    19,     2,
  871. X     2,     2,     2,     2,     2,    11,     3,     3,     2,     4,
  872. X     7,     3,     5,    11,     2,     2,     2,     2,     0,     4,
  873. X     7,     7,     7,     3,     7,     3,     7,     3,     1,     8,
  874. X     0,     4,     2,     2,     2,     2,     2,     2,     2,     2,
  875. X     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  876. X     2,     1,    19,     0,     4,     5,     5,     5,     5,     7,
  877. X     1,    19,     1,     9,    13,     2,     2,     2,     3,    11,
  878. X    11,    15,    11,     3,    11,    11,     1,    17,     1,    17,
  879. X     1,     1,    17,     1,    13,     1,     5,     3,    21,     7,
  880. X     7,     7,     7,    17,    15,    11,    15,     2,     3,     2,
  881. X     2,     3,     2,     2,     3,     2,     3,     3,     2,     3,
  882. X     2,     1,     5,     9,     2,     2,     3,     2,     2,     2,
  883. X     2,     2,     2,     3,     2,     2,     9,     9,     9,     9,
  884. X     2,     3,     3,     2,     2,     3,     2,     2,     2,     2,
  885. X    11,    19 };
  886. Xint yychk[]={
  887. X
  888. X -1000,   -38,   -39,   -40,   -41,   -42,   -32,   -33,   261,   262,
  889. X   -39,   -20,   314,   -20,    58,    58,   -24,   263,    58,   -24,
  890. X   -31,   319,   -31,   -43,   -48,   260,    58,   -21,   315,   -43,
  891. X    44,   -44,   -78,   -79,   265,   -82,   264,   -43,    58,   257,
  892. X    44,   -45,   -11,   257,   301,   -44,   -80,   320,    58,   319,
  893. X    44,   -21,   -46,   -49,   -52,   275,   276,   -53,   -57,   -59,
  894. X   282,   312,   -81,   -83,   275,   277,   276,    -1,   307,   308,
  895. X   257,   -47,   -54,   -55,   295,    58,    58,   -52,   -58,   -58,
  896. X    58,    58,   -87,   -68,   -69,   -88,   -70,   -89,   -90,   -91,
  897. X   -92,   -93,   -94,   -71,   -72,   -95,   -96,   -97,   -77,   -75,
  898. X   -76,   -98,   267,   266,   269,   268,   270,   273,   280,   283,
  899. X   284,   285,   278,   291,   271,   272,   279,   289,   290,   281,
  900. X    58,    58,    58,    44,    44,   -56,   288,   -50,   -28,   257,
  901. X   -51,   -25,   257,   -64,   -65,   -66,   -67,   -68,   -69,   -70,
  902. X   -71,   -72,   -73,   -74,   -75,   -76,   -77,   313,   287,   269,
  903. X   293,   292,   280,    -4,   -31,   301,    -4,    58,    58,    58,
  904. X    58,    58,    58,    58,    58,    58,    58,    58,    58,    58,
  905. X    58,    58,    58,    58,   -50,   -84,   -85,  -112,    40,   -51,
  906. X    -2,   309,   308,   259,    58,    44,    44,    58,    58,    58,
  907. X    58,    58,    58,    44,    44,   -26,   -25,   301,   -27,   303,
  908. X   -29,   -28,   301,   -30,   302,    -5,   296,   301,    -3,   -31,
  909. X   301,   -99,  -112,  -113,   301,   304,  -111,    40,   -99,   -23,
  910. X  -111,   286,    40,   -23,   -23,   -23,   -99,   -99,   -99,   -99,
  911. X   -18,   258,   301,   -99,  -111,   -86,   258,    44,   -37,    40,
  912. X   -50,   -51,   -31,   258,   -15,   259,   301,   -99,   -99,    -6,
  913. X   297,   301,    -6,    44,    91,    44,    91,    44,    44,    44,
  914. X    91,    44,   258,    44,  -105,    40,   258,  -106,  -107,  -110,
  915. X    44,    44,    44,    44,    44,    44,    44,   259,    44,   258,
  916. X    44,    44,    44,   -34,   -31,   301,   258,   -35,   -31,   301,
  917. X   258,   -99,   -99,   300,   258,    -6,    44,   311,    44,   258,
  918. X    44,    44,    44,    44,    -7,   306,    -9,   301,   305,   300,
  919. X   311,   -99,   -19,   299,   301,   -84,   258,    44,   -37,   258,
  920. X    44,    -5,   -62,    40,   301,   -60,    40,   301,    44,    93,
  921. X    44,    93,    44,    93,    44,   258,   -23,    44,   258,   -23,
  922. X   -23,   -23,    44,    91,    44,    41,    -6,   300,    44,    44,
  923. X   258,    44,   258,   -99,   -99,    -5,    -4,    44,    44,   258,
  924. X    44,  -108,    -8,   310,   301,   258,   -31,    44,    44,   -13,
  925. X   300,   301,   -63,    40,   301,    44,   -61,    40,   301,    44,
  926. X  -100,  -103,   -22,    44,   258,   311,    44,   -31,  -109,    44,
  927. X    93,   -14,   259,   301,   -12,   258,   301,    44,    44,    -1,
  928. X   258,    44,   258,   258,  -101,  -104,    44,   274,    44,   258,
  929. X   311,    41,   -12,   -61,    44,    41,   -31,    44,    41,  -102,
  930. X    44,   319,   -16,   301,   298,    44,   258,    44,   -10,    44,
  931. X    -2,   -10,   258,   -31,   316,   317,    -7,   318,    44,    44,
  932. X   259,    41,   258,   259,    41,    41,   -31,   -17,   258,   301,
  933. X   -17,    41,    44,   -36,   319,   294 };
  934. Xint yydef[]={
  935. X
  936. X     1,    -2,     2,     3,     5,     6,    14,    14,     0,     0,
  937. X     4,    10,     0,    10,     0,     0,    18,     0,     0,    18,
  938. X     0,   203,     9,     0,    18,     0,     0,    15,    16,    21,
  939. X     0,     7,    78,    88,    81,     0,     0,    19,     0,     0,
  940. X     0,    25,    75,    76,    77,    79,   100,    82,     0,    20,
  941. X     0,    17,    32,    22,    26,     0,     0,    27,    51,    51,
  942. X     0,     0,    80,    89,     0,     0,     0,     0,    84,    85,
  943. X     0,     8,    29,    30,    31,     0,     0,    28,    37,    38,
  944. X     0,     0,   101,   102,   103,   104,   105,   106,   107,   108,
  945. X   109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
  946. X   119,   120,     0,     0,     0,     0,     0,     0,     0,     0,
  947. X     0,     0,     0,     0,     0,   143,     0,     0,     0,     0,
  948. X     0,     0,     0,     0,     0,    33,     0,    23,    93,   202,
  949. X    24,    95,   201,    52,    53,    54,    55,    56,    57,    58,
  950. X    59,    60,    61,    62,    63,    64,    65,     0,     0,     0,
  951. X     0,     0,     0,     0,   179,   180,     0,     0,     0,     0,
  952. X     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  953. X     0,     0,     0,     0,    90,    91,    -2,   200,     0,    92,
  954. X    83,    86,    87,     0,     0,     0,     0,     0,     0,     0,
  955. X     0,     0,     0,     0,     0,     0,   167,   168,   169,     0,
  956. X     0,   170,   171,   172,     0,     0,   187,   188,     0,   177,
  957. X   178,     0,   184,   185,   186,     0,     0,     0,     0,   146,
  958. X   157,     0,     0,   148,   150,   153,     0,   159,     0,     0,
  959. X     0,   206,   207,     0,   162,     0,     0,     0,     0,     0,
  960. X    94,    96,    66,    67,     0,    69,    70,   160,   161,     0,
  961. X   189,   190,     0,     0,     0,     0,     0,     0,     0,     0,
  962. X     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  963. X     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  964. X     0,     0,     0,     0,   173,   174,     0,     0,   175,   176,
  965. X     0,   139,   140,     0,     0,     0,     0,   145,     0,     0,
  966. X     0,     0,     0,     0,     0,   191,   192,   193,     0,   142,
  967. X   144,   165,     0,   208,   209,    99,     0,     0,    34,    35,
  968. X     0,     0,     0,     0,    44,     0,     0,    46,     0,   198,
  969. X     0,   197,     0,   196,     0,     0,     0,     0,     0,     0,
  970. X   151,   154,     0,     0,     0,   210,     0,     0,     0,     0,
  971. X     0,     0,     0,   121,   130,   141,   181,     0,     0,     0,
  972. X     0,   155,   164,   194,   195,     0,   166,     0,     0,     0,
  973. X    71,    72,     0,     0,    48,     0,     0,     0,    50,     0,
  974. X   123,   132,   163,     0,     0,   147,     0,   149,   152,     0,
  975. X   199,    11,    12,    13,     0,    73,    74,     0,     0,     0,
  976. X     0,     0,     0,     0,   122,   131,     0,   182,     0,     0,
  977. X   156,    36,    68,    41,     0,    43,    41,     0,    45,   124,
  978. X     0,     0,     0,   135,   136,     0,     0,     0,    40,     0,
  979. X     0,    39,     0,   125,   126,   127,   128,     0,     0,     0,
  980. X   183,   211,     0,    42,    47,    49,   129,   133,   137,   138,
  981. X     0,   158,     0,   134,   204,   205 };
  982. Xtypedef struct { char *t_name; int t_val; } yytoktype;
  983. X#ifndef YYDEBUG
  984. X#    define YYDEBUG    0    /* don't allow debugging */
  985. X#endif
  986. X
  987. X#if YYDEBUG
  988. X
  989. Xyytoktype yytoks[] =
  990. X{
  991. X    "CHAR",    257,
  992. X    "INTEGER",    258,
  993. X    "BOOLEAN",    259,
  994. X    "MESSAGE_ID",    260,
  995. X    "MAZE_ID",    261,
  996. X    "LEVEL_ID",    262,
  997. X    "LEV_INIT_ID",    263,
  998. X    "GEOMETRY_ID",    264,
  999. X    "NOMAP_ID",    265,
  1000. X    "OBJECT_ID",    266,
  1001. X    "MONSTER_ID",    267,
  1002. X    "TRAP_ID",    268,
  1003. X    "DOOR_ID",    269,
  1004. X    "DRAWBRIDGE_ID",    270,
  1005. X    "MAZEWALK_ID",    271,
  1006. X    "WALLIFY_ID",    272,
  1007. X    "REGION_ID",    273,
  1008. X    "FILLING",    274,
  1009. X    "RANDOM_OBJECTS_ID",    275,
  1010. X    "RANDOM_MONSTERS_ID",    276,
  1011. X    "RANDOM_PLACES_ID",    277,
  1012. X    "ALTAR_ID",    278,
  1013. X    "LADDER_ID",    279,
  1014. X    "STAIR_ID",    280,
  1015. X    "NON_DIGGABLE_ID",    281,
  1016. X    "ROOM_ID",    282,
  1017. X    "PORTAL_ID",    283,
  1018. X    "TELEPRT_ID",    284,
  1019. X    "BRANCH_ID",    285,
  1020. X    "LEV",    286,
  1021. X    "CHANCE_ID",    287,
  1022. X    "CORRIDOR_ID",    288,
  1023. X    "GOLD_ID",    289,
  1024. X    "ENGRAVING_ID",    290,
  1025. X    "FOUNTAIN_ID",    291,
  1026. X    "POOL_ID",    292,
  1027. X    "SINK_ID",    293,
  1028. X    "NONE",    294,
  1029. X    "RAND_CORRIDOR_ID",    295,
  1030. X    "DOOR_STATE",    296,
  1031. X    "LIGHT_STATE",    297,
  1032. X    "CURSE_TYPE",    298,
  1033. X    "ENGRAVING_TYPE",    299,
  1034. X    "DIRECTION",    300,
  1035. X    "RANDOM_TYPE",    301,
  1036. X    "O_REGISTER",    302,
  1037. X    "M_REGISTER",    303,
  1038. X    "P_REGISTER",    304,
  1039. X    "A_REGISTER",    305,
  1040. X    "ALIGNMENT",    306,
  1041. X    "LEFT_OR_RIGHT",    307,
  1042. X    "CENTER",    308,
  1043. X    "TOP_OR_BOT",    309,
  1044. X    "ALTAR_TYPE",    310,
  1045. X    "UP_OR_DOWN",    311,
  1046. X    "SUBROOM_ID",    312,
  1047. X    "NAME_ID",    313,
  1048. X    "FLAGS_ID",    314,
  1049. X    "FLAG_TYPE",    315,
  1050. X    "MON_ATTITUDE",    316,
  1051. X    "MON_ALERTNESS",    317,
  1052. X    "MON_APPEARANCE",    318,
  1053. X    ",",    44,
  1054. X    ":",    58,
  1055. X    "(",    40,
  1056. X    ")",    41,
  1057. X    "[",    91,
  1058. X    "]",    93,
  1059. X    "STRING",    319,
  1060. X    "MAP_ID",    320,
  1061. X    "-unknown-",    -1    /* ends search */
  1062. X};
  1063. X
  1064. Xchar * yyreds[] =
  1065. X{
  1066. X    "-no such reduction-",
  1067. X    "file : /* empty */",
  1068. X    "file : levels",
  1069. X    "levels : level",
  1070. X    "levels : level levels",
  1071. X    "level : maze_level",
  1072. X    "level : room_level",
  1073. X    "maze_level : maze_def flags lev_init messages regions",
  1074. X    "room_level : level_def flags lev_init messages rreg_init rooms corridors_def",
  1075. X    "level_def : LEVEL_ID ':' string",
  1076. X    "lev_init : /* empty */",
  1077. X    "lev_init : LEV_INIT_ID ':' CHAR ',' CHAR ',' BOOLEAN ',' BOOLEAN ',' light_state ',' walled",
  1078. X    "walled : BOOLEAN",
  1079. X    "walled : RANDOM_TYPE",
  1080. X    "flags : /* empty */",
  1081. X    "flags : FLAGS_ID ':' flag_list",
  1082. X    "flag_list : FLAG_TYPE",
  1083. X    "flag_list : FLAG_TYPE ',' flag_list",
  1084. X    "messages : /* empty */",
  1085. X    "messages : message messages",
  1086. X    "message : MESSAGE_ID ':' STRING",
  1087. X    "rreg_init : /* empty */",
  1088. X    "rreg_init : rreg_init init_rreg",
  1089. X    "init_rreg : RANDOM_OBJECTS_ID ':' object_list",
  1090. X    "init_rreg : RANDOM_MONSTERS_ID ':' monster_list",
  1091. X    "rooms : /* empty */",
  1092. X    "rooms : roomlist",
  1093. X    "roomlist : aroom",
  1094. X    "roomlist : aroom roomlist",
  1095. X    "corridors_def : random_corridors",
  1096. X    "corridors_def : corridors",
  1097. X    "random_corridors : RAND_CORRIDOR_ID",
  1098. X    "corridors : /* empty */",
  1099. X    "corridors : corridors corridor",
  1100. X    "corridor : CORRIDOR_ID ':' corr_spec ',' corr_spec",
  1101. X    "corridor : CORRIDOR_ID ':' corr_spec ',' INTEGER",
  1102. X    "corr_spec : '(' INTEGER ',' DIRECTION ',' door_pos ')'",
  1103. X    "aroom : room_def room_details",
  1104. X    "aroom : subroom_def room_details",
  1105. X    "subroom_def : SUBROOM_ID ':' room_type ',' light_state ',' subroom_pos ',' room_size ',' string roomfill",
  1106. X    "room_def : ROOM_ID ':' room_type ',' light_state ',' room_pos ',' room_align ',' room_size roomfill",
  1107. X    "roomfill : /* empty */",
  1108. X    "roomfill : ',' BOOLEAN",
  1109. X    "room_pos : '(' INTEGER ',' INTEGER ')'",
  1110. X    "room_pos : RANDOM_TYPE",
  1111. X    "subroom_pos : '(' INTEGER ',' INTEGER ')'",
  1112. X    "subroom_pos : RANDOM_TYPE",
  1113. X    "room_align : '(' h_justif ',' v_justif ')'",
  1114. X    "room_align : RANDOM_TYPE",
  1115. X    "room_size : '(' INTEGER ',' INTEGER ')'",
  1116. X    "room_size : RANDOM_TYPE",
  1117. X    "room_details : /* empty */",
  1118. X    "room_details : room_details room_detail",
  1119. X    "room_detail : room_name",
  1120. X    "room_detail : room_chance",
  1121. X    "room_detail : room_door",
  1122. X    "room_detail : monster_detail",
  1123. X    "room_detail : object_detail",
  1124. X    "room_detail : trap_detail",
  1125. X    "room_detail : altar_detail",
  1126. X    "room_detail : fountain_detail",
  1127. X    "room_detail : sink_detail",
  1128. X    "room_detail : pool_detail",
  1129. X    "room_detail : gold_detail",
  1130. X    "room_detail : engraving_detail",
  1131. X    "room_detail : stair_detail",
  1132. X    "room_name : NAME_ID ':' string",
  1133. X    "room_chance : CHANCE_ID ':' INTEGER",
  1134. X    "room_door : DOOR_ID ':' secret ',' door_state ',' door_wall ',' door_pos",
  1135. X    "secret : BOOLEAN",
  1136. X    "secret : RANDOM_TYPE",
  1137. X    "door_wall : DIRECTION",
  1138. X    "door_wall : RANDOM_TYPE",
  1139. X    "door_pos : INTEGER",
  1140. X    "door_pos : RANDOM_TYPE",
  1141. X    "maze_def : MAZE_ID ':' string ',' filling",
  1142. X    "filling : CHAR",
  1143. X    "filling : RANDOM_TYPE",
  1144. X    "regions : aregion",
  1145. X    "regions : aregion regions",
  1146. X    "aregion : map_definition reg_init map_details",
  1147. X    "map_definition : NOMAP_ID",
  1148. X    "map_definition : map_geometry MAP_ID",
  1149. X    "map_geometry : GEOMETRY_ID ':' h_justif ',' v_justif",
  1150. X    "h_justif : LEFT_OR_RIGHT",
  1151. X    "h_justif : CENTER",
  1152. X    "v_justif : TOP_OR_BOT",
  1153. X    "v_justif : CENTER",
  1154. X    "reg_init : /* empty */",
  1155. X    "reg_init : reg_init init_reg",
  1156. X    "init_reg : RANDOM_OBJECTS_ID ':' object_list",
  1157. X    "init_reg : RANDOM_PLACES_ID ':' place_list",
  1158. X    "init_reg : RANDOM_MONSTERS_ID ':' monster_list",
  1159. X    "object_list : object",
  1160. X    "object_list : object ',' object_list",
  1161. X    "monster_list : monster",
  1162. X    "monster_list : monster ',' monster_list",
  1163. X    "place_list : place",
  1164. X    "place_list : place",
  1165. X    "place_list : place ',' place_list",
  1166. X    "map_details : /* empty */",
  1167. X    "map_details : map_details map_detail",
  1168. X    "map_detail : monster_detail",
  1169. X    "map_detail : object_detail",
  1170. X    "map_detail : door_detail",
  1171. X    "map_detail : trap_detail",
  1172. X    "map_detail : drawbridge_detail",
  1173. X    "map_detail : region_detail",
  1174. X    "map_detail : stair_region",
  1175. X    "map_detail : portal_region",
  1176. X    "map_detail : teleprt_region",
  1177. X    "map_detail : branch_region",
  1178. X    "map_detail : altar_detail",
  1179. X    "map_detail : fountain_detail",
  1180. X    "map_detail : mazewalk_detail",
  1181. X    "map_detail : wallify_detail",
  1182. X    "map_detail : ladder_detail",
  1183. X    "map_detail : stair_detail",
  1184. X    "map_detail : gold_detail",
  1185. X    "map_detail : engraving_detail",
  1186. X    "map_detail : diggable_detail",
  1187. X    "monster_detail : MONSTER_ID ':' monster_c ',' m_name ',' coordinate",
  1188. X    "monster_detail : MONSTER_ID ':' monster_c ',' m_name ',' coordinate monster_infos",
  1189. X    "monster_infos : /* empty */",
  1190. X    "monster_infos : monster_infos monster_info",
  1191. X    "monster_info : ',' string",
  1192. X    "monster_info : ',' MON_ATTITUDE",
  1193. X    "monster_info : ',' MON_ALERTNESS",
  1194. X    "monster_info : ',' alignment",
  1195. X    "monster_info : ',' MON_APPEARANCE string",
  1196. X    "object_detail : OBJECT_ID ':' object_c ',' o_name ',' coordinate",
  1197. X    "object_detail : OBJECT_ID ':' object_c ',' o_name ',' coordinate object_infos",
  1198. X    "object_infos : /* empty */",
  1199. X    "object_infos : ',' STRING ',' enchantment",
  1200. X    "object_infos : ',' curse_state ',' enchantment ',' art_name",
  1201. X    "curse_state : RANDOM_TYPE",
  1202. X    "curse_state : CURSE_TYPE",
  1203. X    "enchantment : INTEGER",
  1204. X    "enchantment : RANDOM_TYPE",
  1205. X    "door_detail : DOOR_ID ':' door_state ',' coordinate",
  1206. X    "trap_detail : TRAP_ID ':' trap_name ',' coordinate",
  1207. X    "drawbridge_detail : DRAWBRIDGE_ID ':' coordinate ',' DIRECTION ',' door_state",
  1208. X    "mazewalk_detail : MAZEWALK_ID ':' coordinate ',' DIRECTION",
  1209. X    "wallify_detail : WALLIFY_ID",
  1210. X    "ladder_detail : LADDER_ID ':' coordinate ',' UP_OR_DOWN",
  1211. X    "stair_detail : STAIR_ID ':' coordinate ',' UP_OR_DOWN",
  1212. X    "stair_region : STAIR_ID ':' lev_region",
  1213. X    "stair_region : STAIR_ID ':' lev_region ',' lev_region ',' UP_OR_DOWN",
  1214. X    "portal_region : PORTAL_ID ':' lev_region",
  1215. X    "portal_region : PORTAL_ID ':' lev_region ',' lev_region ',' string",
  1216. X    "teleprt_region : TELEPRT_ID ':' lev_region",
  1217. X    "teleprt_region : TELEPRT_ID ':' lev_region ',' lev_region",
  1218. X    "teleprt_region : TELEPRT_ID ':' lev_region ',' lev_region teleprt_detail",
  1219. X    "branch_region : BRANCH_ID ':' lev_region",
  1220. X    "branch_region : BRANCH_ID ':' lev_region ',' lev_region",
  1221. X    "teleprt_detail : /* empty */",
  1222. X    "teleprt_detail : ',' UP_OR_DOWN",
  1223. X    "lev_region : region",
  1224. X    "lev_region : LEV '(' INTEGER ',' INTEGER ',' INTEGER ',' INTEGER ')'",
  1225. X    "fountain_detail : FOUNTAIN_ID ':' coordinate",
  1226. X    "sink_detail : SINK_ID ':' coordinate",
  1227. X    "pool_detail : POOL_ID ':' coordinate",
  1228. X    "diggable_detail : NON_DIGGABLE_ID ':' region",
  1229. X    "region_detail : REGION_ID ':' region ',' light_state ',' room_type prefilled",
  1230. X    "altar_detail : ALTAR_ID ':' coordinate ',' alignment ',' altar_type",
  1231. X    "gold_detail : GOLD_ID ':' amount ',' coordinate",
  1232. X    "engraving_detail : ENGRAVING_ID ':' coordinate ',' engraving_type ',' string",
  1233. X    "monster_c : monster",
  1234. X    "monster_c : RANDOM_TYPE",
  1235. X    "monster_c : m_register",
  1236. X    "object_c : object",
  1237. X    "object_c : RANDOM_TYPE",
  1238. X    "object_c : o_register",
  1239. X    "m_name : string",
  1240. X    "m_name : RANDOM_TYPE",
  1241. X    "o_name : string",
  1242. X    "o_name : RANDOM_TYPE",
  1243. X    "trap_name : string",
  1244. X    "trap_name : RANDOM_TYPE",
  1245. X    "room_type : string",
  1246. X    "room_type : RANDOM_TYPE",
  1247. X    "prefilled : /* empty */",
  1248. X    "prefilled : ',' FILLING",
  1249. X    "prefilled : ',' FILLING ',' BOOLEAN",
  1250. X    "coordinate : coord",
  1251. X    "coordinate : p_register",
  1252. X    "coordinate : RANDOM_TYPE",
  1253. X    "door_state : DOOR_STATE",
  1254. X    "door_state : RANDOM_TYPE",
  1255. X    "light_state : LIGHT_STATE",
  1256. X    "light_state : RANDOM_TYPE",
  1257. X    "alignment : ALIGNMENT",
  1258. X    "alignment : a_register",
  1259. X    "alignment : RANDOM_TYPE",
  1260. X    "altar_type : ALTAR_TYPE",
  1261. X    "altar_type : RANDOM_TYPE",
  1262. X    "p_register : P_REGISTER '[' INTEGER ']'",
  1263. X    "o_register : O_REGISTER '[' INTEGER ']'",
  1264. X    "m_register : M_REGISTER '[' INTEGER ']'",
  1265. X    "a_register : A_REGISTER '[' INTEGER ']'",
  1266. X    "place : coord",
  1267. X    "monster : CHAR",
  1268. X    "object : CHAR",
  1269. X    "string : STRING",
  1270. X    "art_name : STRING",
  1271. X    "art_name : NONE",
  1272. X    "amount : INTEGER",
  1273. X    "amount : RANDOM_TYPE",
  1274. X    "engraving_type : ENGRAVING_TYPE",
  1275. X    "engraving_type : RANDOM_TYPE",
  1276. X    "coord : '(' INTEGER ',' INTEGER ')'",
  1277. X    "region : '(' INTEGER ',' INTEGER ',' INTEGER ',' INTEGER ')'",
  1278. X};
  1279. X#endif /* YYDEBUG */
  1280. X#line 1 "/usr/lib/yaccpar"
  1281. X/*    @(#)yaccpar 1.10 89/04/04 SMI; from S5R3 1.10    */
  1282. X
  1283. X/*
  1284. X** Skeleton parser driver for yacc output
  1285. X*/
  1286. X
  1287. X/*
  1288. X** yacc user known macros and defines
  1289. X*/
  1290. X#define YYERROR        goto yyerrlab
  1291. X#define YYACCEPT    { free(yys); free(yyv); return(0); }
  1292. X#define YYABORT        { free(yys); free(yyv); return(1); }
  1293. X#define YYBACKUP( newtoken, newvalue )\
  1294. X{\
  1295. X    if ( yychar >= 0 || ( yyr2[ yytmp ] >> 1 ) != 1 )\
  1296. X    {\
  1297. X        yyerror( "syntax error - cannot backup" );\
  1298. X        goto yyerrlab;\
  1299. X    }\
  1300. X    yychar = newtoken;\
  1301. X    yystate = *yyps;\
  1302. X    yylval = newvalue;\
  1303. X    goto yynewstate;\
  1304. X}
  1305. X#define YYRECOVERING()    (!!yyerrflag)
  1306. X#ifndef YYDEBUG
  1307. X#    define YYDEBUG    1    /* make debugging available */
  1308. X#endif
  1309. X
  1310. X/*
  1311. X** user known globals
  1312. X*/
  1313. Xint yydebug;            /* set to 1 to get debugging */
  1314. X
  1315. X/*
  1316. X** driver internal defines
  1317. X*/
  1318. X#define YYFLAG        (-1000)
  1319. X
  1320. X/*
  1321. X** static variables used by the parser
  1322. X*/
  1323. Xstatic YYSTYPE *yyv;            /* value stack */
  1324. Xstatic int *yys;            /* state stack */
  1325. X
  1326. Xstatic YYSTYPE *yypv;            /* top of value stack */
  1327. Xstatic int *yyps;            /* top of state stack */
  1328. X
  1329. Xstatic int yystate;            /* current state */
  1330. Xstatic int yytmp;            /* extra var (lasts between blocks) */
  1331. X
  1332. Xint yynerrs;            /* number of errors */
  1333. X
  1334. Xint yyerrflag;            /* error recovery flag */
  1335. Xint yychar;            /* current input token number */
  1336. X
  1337. X
  1338. X/*
  1339. X** yyparse - return 0 if worked, 1 if syntax error not recovered from
  1340. X*/
  1341. Xint
  1342. Xyyparse()
  1343. X{
  1344. X    register YYSTYPE *yypvt;    /* top of value stack for $vars */
  1345. X    unsigned yymaxdepth = YYMAXDEPTH;
  1346. X
  1347. X    /*
  1348. X    ** Initialize externals - yyparse may be called more than once
  1349. X    */
  1350. X    yyv = (YYSTYPE*)malloc(yymaxdepth*sizeof(YYSTYPE));
  1351. X    yys = (int*)malloc(yymaxdepth*sizeof(int));
  1352. X    if (!yyv || !yys)
  1353. X    {
  1354. X        yyerror( "out of memory" );
  1355. X        return(1);
  1356. X    }
  1357. X    yypv = &yyv[-1];
  1358. X    yyps = &yys[-1];
  1359. X    yystate = 0;
  1360. X    yytmp = 0;
  1361. X    yynerrs = 0;
  1362. X    yyerrflag = 0;
  1363. X    yychar = -1;
  1364. X
  1365. X    goto yystack;
  1366. X    {
  1367. X        register YYSTYPE *yy_pv;    /* top of value stack */
  1368. X        register int *yy_ps;        /* top of state stack */
  1369. X        register int yy_state;        /* current state */
  1370. X        register int  yy_n;        /* internal state number info */
  1371. X
  1372. X        /*
  1373. X        ** get globals into registers.
  1374. X        ** branch to here only if YYBACKUP was called.
  1375. X        */
  1376. X    yynewstate:
  1377. X        yy_pv = yypv;
  1378. X        yy_ps = yyps;
  1379. X        yy_state = yystate;
  1380. X        goto yy_newstate;
  1381. X
  1382. X        /*
  1383. X        ** get globals into registers.
  1384. X        ** either we just started, or we just finished a reduction
  1385. X        */
  1386. X    yystack:
  1387. X        yy_pv = yypv;
  1388. X        yy_ps = yyps;
  1389. X        yy_state = yystate;
  1390. X
  1391. X        /*
  1392. X        ** top of for (;;) loop while no reductions done
  1393. X        */
  1394. X    yy_stack:
  1395. X        /*
  1396. X        ** put a state and value onto the stacks
  1397. X        */
  1398. X#if YYDEBUG
  1399. X        /*
  1400. X        ** if debugging, look up token value in list of value vs.
  1401. X        ** name pairs.  0 and negative (-1) are special values.
  1402. X        ** Note: linear search is used since time is not a real
  1403. X        ** consideration while debugging.
  1404. X        */
  1405. X        if ( yydebug )
  1406. X        {
  1407. X            register int yy_i;
  1408. X
  1409. X            (void)printf( "State %d, token ", yy_state );
  1410. X            if ( yychar == 0 )
  1411. X                (void)printf( "end-of-file\n" );
  1412. X            else if ( yychar < 0 )
  1413. X                (void)printf( "-none-\n" );
  1414. X            else
  1415. X            {
  1416. X                for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
  1417. X                    yy_i++ )
  1418. X                {
  1419. X                    if ( yytoks[yy_i].t_val == yychar )
  1420. X                        break;
  1421. X                }
  1422. X                (void)printf( "%s\n", yytoks[yy_i].t_name );
  1423. X            }
  1424. X        }
  1425. X#endif /* YYDEBUG */
  1426. X        if ( ++yy_ps >= &yys[ yymaxdepth ] )    /* room on stack? */
  1427. X        {
  1428. X            /*
  1429. X            ** reallocate and recover.  Note that pointers
  1430. X            ** have to be reset, or bad things will happen
  1431. X            */
  1432. X            int yyps_index = (yy_ps - yys);
  1433. X            int yypv_index = (yy_pv - yyv);
  1434. X            int yypvt_index = (yypvt - yyv);
  1435. X            yymaxdepth += YYMAXDEPTH;
  1436. X            yyv = (YYSTYPE*)realloc((char*)yyv,
  1437. X                yymaxdepth * sizeof(YYSTYPE));
  1438. X            yys = (int*)realloc((char*)yys,
  1439. X                yymaxdepth * sizeof(int));
  1440. X            if (!yyv || !yys)
  1441. X            {
  1442. X                yyerror( "yacc stack overflow" );
  1443. X                return(1);
  1444. X            }
  1445. X            yy_ps = yys + yyps_index;
  1446. X            yy_pv = yyv + yypv_index;
  1447. X            yypvt = yyv + yypvt_index;
  1448. X        }
  1449. X        *yy_ps = yy_state;
  1450. X        *++yy_pv = yyval;
  1451. X
  1452. X        /*
  1453. X        ** we have a new state - find out what to do
  1454. X        */
  1455. X    yy_newstate:
  1456. X        if ( ( yy_n = yypact[ yy_state ] ) <= YYFLAG )
  1457. X            goto yydefault;        /* simple state */
  1458. X#if YYDEBUG
  1459. X        /*
  1460. X        ** if debugging, need to mark whether new token grabbed
  1461. X        */
  1462. X        yytmp = yychar < 0;
  1463. X#endif
  1464. X        if ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) )
  1465. X            yychar = 0;        /* reached EOF */
  1466. X#if YYDEBUG
  1467. X        if ( yydebug && yytmp )
  1468. X        {
  1469. X            register int yy_i;
  1470. X
  1471. X            (void)printf( "Received token " );
  1472. X            if ( yychar == 0 )
  1473. X                (void)printf( "end-of-file\n" );
  1474. X            else if ( yychar < 0 )
  1475. X                (void)printf( "-none-\n" );
  1476. X            else
  1477. X            {
  1478. X                for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
  1479. X                    yy_i++ )
  1480. X                {
  1481. X                    if ( yytoks[yy_i].t_val == yychar )
  1482. X                        break;
  1483. X                }
  1484. X                (void)printf( "%s\n", yytoks[yy_i].t_name );
  1485. X            }
  1486. X        }
  1487. X#endif /* YYDEBUG */
  1488. X        if ( ( ( yy_n += yychar ) < 0 ) || ( yy_n >= YYLAST ) )
  1489. X            goto yydefault;
  1490. X        if ( yychk[ yy_n = yyact[ yy_n ] ] == yychar )    /*valid shift*/
  1491. X        {
  1492. X            yychar = -1;
  1493. X            yyval = yylval;
  1494. X            yy_state = yy_n;
  1495. X            if ( yyerrflag > 0 )
  1496. X                yyerrflag--;
  1497. X            goto yy_stack;
  1498. X        }
  1499. X
  1500. X    yydefault:
  1501. X        if ( ( yy_n = yydef[ yy_state ] ) == -2 )
  1502. X        {
  1503. X#if YYDEBUG
  1504. X            yytmp = yychar < 0;
  1505. X#endif
  1506. X            if ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) )
  1507. X                yychar = 0;        /* reached EOF */
  1508. X#if YYDEBUG
  1509. X            if ( yydebug && yytmp )
  1510. X            {
  1511. X                register int yy_i;
  1512. X
  1513. X                (void)printf( "Received token " );
  1514. X                if ( yychar == 0 )
  1515. X                    (void)printf( "end-of-file\n" );
  1516. X                else if ( yychar < 0 )
  1517. X                    (void)printf( "-none-\n" );
  1518. X                else
  1519. X                {
  1520. X                    for ( yy_i = 0;
  1521. X                        yytoks[yy_i].t_val >= 0;
  1522. X                        yy_i++ )
  1523. X                    {
  1524. X                        if ( yytoks[yy_i].t_val
  1525. X                            == yychar )
  1526. X                        {
  1527. X                            break;
  1528. X                        }
  1529. X                    }
  1530. X                    (void)printf( "%s\n", yytoks[yy_i].t_name );
  1531. X                }
  1532. X            }
  1533. X#endif /* YYDEBUG */
  1534. X            /*
  1535. X            ** look through exception table
  1536. X            */
  1537. X            {
  1538. X                register int *yyxi = yyexca;
  1539. X
  1540. X                while ( ( *yyxi != -1 ) ||
  1541. X                    ( yyxi[1] != yy_state ) )
  1542. X                {
  1543. X                    yyxi += 2;
  1544. X                }
  1545. X                while ( ( *(yyxi += 2) >= 0 ) &&
  1546. X                    ( *yyxi != yychar ) )
  1547. X                    ;
  1548. X                if ( ( yy_n = yyxi[1] ) < 0 )
  1549. X                    YYACCEPT;
  1550. X            }
  1551. X        }
  1552. X
  1553. X        /*
  1554. X        ** check for syntax error
  1555. X        */
  1556. X        if ( yy_n == 0 )    /* have an error */
  1557. X        {
  1558. X            /* no worry about speed here! */
  1559. X            switch ( yyerrflag )
  1560. X            {
  1561. X            case 0:        /* new error */
  1562. X                yyerror( "syntax error" );
  1563. X                goto skip_init;
  1564. X            yyerrlab:
  1565. X                /*
  1566. X                ** get globals into registers.
  1567. X                ** we have a user generated syntax type error
  1568. X                */
  1569. X                yy_pv = yypv;
  1570. X                yy_ps = yyps;
  1571. X                yy_state = yystate;
  1572. X                yynerrs++;
  1573. X            skip_init:
  1574. X            case 1:
  1575. X            case 2:        /* incompletely recovered error */
  1576. X                    /* try again... */
  1577. X                yyerrflag = 3;
  1578. X                /*
  1579. X                ** find state where "error" is a legal
  1580. X                ** shift action
  1581. X                */
  1582. X                while ( yy_ps >= yys )
  1583. X                {
  1584. X                    yy_n = yypact[ *yy_ps ] + YYERRCODE;
  1585. X                    if ( yy_n >= 0 && yy_n < YYLAST &&
  1586. X                        yychk[yyact[yy_n]] == YYERRCODE)                    {
  1587. X                        /*
  1588. X                        ** simulate shift of "error"
  1589. X                        */
  1590. X                        yy_state = yyact[ yy_n ];
  1591. X                        goto yy_stack;
  1592. X                    }
  1593. X                    /*
  1594. X                    ** current state has no shift on
  1595. X                    ** "error", pop stack
  1596. X                    */
  1597. X#if YYDEBUG
  1598. X#    define _POP_ "Error recovery pops state %d, uncovers state %d\n"
  1599. X                    if ( yydebug )
  1600. X                        (void)printf( _POP_, *yy_ps,
  1601. X                            yy_ps[-1] );
  1602. X#    undef _POP_
  1603. X#endif
  1604. X                    yy_ps--;
  1605. X                    yy_pv--;
  1606. X                }
  1607. X                /*
  1608. X                ** there is no state on stack with "error" as
  1609. X                ** a valid shift.  give up.
  1610. X                */
  1611. X                YYABORT;
  1612. X            case 3:        /* no shift yet; eat a token */
  1613. X#if YYDEBUG
  1614. X                /*
  1615. X                ** if debugging, look up token in list of
  1616. X                ** pairs.  0 and negative shouldn't occur,
  1617. X                ** but since timing doesn't matter when
  1618. X                ** debugging, it doesn't hurt to leave the
  1619. X                ** tests here.
  1620. X                */
  1621. X                if ( yydebug )
  1622. X                {
  1623. X                    register int yy_i;
  1624. X
  1625. X                    (void)printf( "Error recovery discards " );
  1626. X                    if ( yychar == 0 )
  1627. X                        (void)printf( "token end-of-file\n" );
  1628. X                    else if ( yychar < 0 )
  1629. X                        (void)printf( "token -none-\n" );
  1630. X                    else
  1631. X                    {
  1632. X                        for ( yy_i = 0;
  1633. X                            yytoks[yy_i].t_val >= 0;
  1634. X                            yy_i++ )
  1635. X                        {
  1636. X                            if ( yytoks[yy_i].t_val
  1637. X                                == yychar )
  1638. X                            {
  1639. X                                break;
  1640. X                            }
  1641. X                        }
  1642. X                        (void)printf( "token %s\n",
  1643. X                            yytoks[yy_i].t_name );
  1644. X                    }
  1645. X                }
  1646. X#endif /* YYDEBUG */
  1647. X                if ( yychar == 0 )    /* reached EOF. quit */
  1648. X                    YYABORT;
  1649. X                yychar = -1;
  1650. X                goto yy_newstate;
  1651. X            }
  1652. X        }/* end if ( yy_n == 0 ) */
  1653. X        /*
  1654. X        ** reduction by production yy_n
  1655. X        ** put stack tops, etc. so things right after switch
  1656. X        */
  1657. X#if YYDEBUG
  1658. X        /*
  1659. X        ** if debugging, print the string that is the user's
  1660. X        ** specification of the reduction which is just about
  1661. X        ** to be done.
  1662. X        */
  1663. X        if ( yydebug )
  1664. X            (void)printf( "Reduce by (%d) \"%s\"\n",
  1665. X                yy_n, yyreds[ yy_n ] );
  1666. X#endif
  1667. X        yytmp = yy_n;            /* value to switch over */
  1668. X        yypvt = yy_pv;            /* $vars top of value stack */
  1669. X        /*
  1670. X        ** Look in goto table for next state
  1671. X        ** Sorry about using yy_state here as temporary
  1672. X        ** register variable, but why not, if it works...
  1673. X        ** If yyr2[ yy_n ] doesn't have the low order bit
  1674. X        ** set, then there is no action to be done for
  1675. X        ** this reduction.  So, no saving & unsaving of
  1676. X        ** registers done.  The only difference between the
  1677. X        ** code just after the if and the body of the if is
  1678. X        ** the goto yy_stack in the body.  This way the test
  1679. X        ** can be made before the choice of what to do is needed.
  1680. X        */
  1681. X        {
  1682. X            /* length of production doubled with extra bit */
  1683. X            register int yy_len = yyr2[ yy_n ];
  1684. X
  1685. X            if ( !( yy_len & 01 ) )
  1686. X            {
  1687. X                yy_len >>= 1;
  1688. X                yyval = ( yy_pv -= yy_len )[1];    /* $$ = $1 */
  1689. X                yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] +
  1690. X                    *( yy_ps -= yy_len ) + 1;
  1691. X                if ( yy_state >= YYLAST ||
  1692. X                    yychk[ yy_state =
  1693. X                    yyact[ yy_state ] ] != -yy_n )
  1694. X                {
  1695. X                    yy_state = yyact[ yypgo[ yy_n ] ];
  1696. X                }
  1697. X                goto yy_stack;
  1698. X            }
  1699. X            yy_len >>= 1;
  1700. X            yyval = ( yy_pv -= yy_len )[1];    /* $$ = $1 */
  1701. X            yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] +
  1702. X                *( yy_ps -= yy_len ) + 1;
  1703. X            if ( yy_state >= YYLAST ||
  1704. X                yychk[ yy_state = yyact[ yy_state ] ] != -yy_n )
  1705. X            {
  1706. X                yy_state = yyact[ yypgo[ yy_n ] ];
  1707. X            }
  1708. X        }
  1709. X                    /* save until reenter driver code */
  1710. X        yystate = yy_state;
  1711. X        yyps = yy_ps;
  1712. X        yypv = yy_pv;
  1713. X    }
  1714. END_OF_FILE
  1715. if test 42090 -ne `wc -c <'sys/share/lev_yacc.c1'`; then
  1716.     echo shar: \"'sys/share/lev_yacc.c1'\" unpacked with wrong size!
  1717. fi
  1718. # end of 'sys/share/lev_yacc.c1'
  1719. fi
  1720. echo shar: End of archive 32 \(of 108\).
  1721. cp /dev/null ark32isdone
  1722. MISSING=""
  1723. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 \
  1724. 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 \
  1725. 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 \
  1726. 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 \
  1727. 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 \
  1728. 101 102 103 104 105 106 107 108 ; do
  1729.     if test ! -f ark${I}isdone ; then
  1730.     MISSING="${MISSING} ${I}"
  1731.     fi
  1732. done
  1733. if test "${MISSING}" = "" ; then
  1734.     echo You have unpacked all 108 archives.
  1735.     echo "Now execute 'rebuild.sh'"
  1736.     rm -f ark10[0-8]isdone ark[1-9]isdone ark[1-9][0-9]isdone
  1737. else
  1738.     echo You still need to unpack the following archives:
  1739.     echo "        " ${MISSING}
  1740. fi
  1741. ##  End of shell archive.
  1742. exit 0
  1743.