diff options
author | Karl Berry <karl@freefriends.org> | 2021-09-28 21:45:20 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-09-28 21:45:20 +0000 |
commit | 45194e1f2a32e93e5d01fe694ff7b37563c4c45e (patch) | |
tree | 9b39a7c2d9c57f2ef56caffe582666bc718a115f /Build/source | |
parent | 6053124b74560b39d832852a190f83897d227075 (diff) |
hishrink yacc/lex build (attempted) fixes
git-svn-id: svn://tug.org/texlive/trunk@60644 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source')
-rw-r--r-- | Build/source/doc/build-tools.txt | 2 | ||||
-rw-r--r-- | Build/source/doc/tlbuild.info | 804 | ||||
-rw-r--r-- | Build/source/doc/tlbuild.texi | 13 | ||||
-rw-r--r-- | Build/source/texk/web2c/Makefile.in | 448 | ||||
-rw-r--r-- | Build/source/texk/web2c/hitexdir/am/hitex.am | 64 | ||||
-rw-r--r-- | Build/source/texk/web2c/hitexdir/format.w | 4 | ||||
-rw-r--r-- | Build/source/texk/web2c/hitexdir/hishrink-lexer.c (renamed from Build/source/texk/web2c/hitexdir/lexer.c) | 2 | ||||
-rw-r--r-- | Build/source/texk/web2c/hitexdir/hishrink-lexer.l (renamed from Build/source/texk/web2c/hitexdir/lexer.l) | 376 | ||||
-rw-r--r-- | Build/source/texk/web2c/hitexdir/hishrink-parser.c | 3896 | ||||
-rw-r--r-- | Build/source/texk/web2c/hitexdir/hishrink-parser.h | 258 | ||||
-rw-r--r-- | Build/source/texk/web2c/hitexdir/hishrink-parser.y | 742 | ||||
-rw-r--r-- | Build/source/texk/web2c/hitexdir/parser.c | 4175 | ||||
-rw-r--r-- | Build/source/texk/web2c/hitexdir/parser.h | 174 | ||||
-rw-r--r-- | Build/source/texk/web2c/hitexdir/parser.y | 873 |
14 files changed, 5727 insertions, 6104 deletions
diff --git a/Build/source/doc/build-tools.txt b/Build/source/doc/build-tools.txt index 05f304e2894..4c98a5a988d 100644 --- a/Build/source/doc/build-tools.txt +++ b/Build/source/doc/build-tools.txt @@ -1,6 +1,6 @@ autoconf (GNU Autoconf) 2.71 automake (GNU automake) 1.16.4 -bison (GNU Bison) 3.7.5 +bison (GNU Bison) 3.8.2 flex 2.6.0 ltmain.sh (GNU libtool) 2.4.6 m4 (GNU M4) 1.4.19 diff --git a/Build/source/doc/tlbuild.info b/Build/source/doc/tlbuild.info index d33201125fc..69b4d32b146 100644 --- a/Build/source/doc/tlbuild.info +++ b/Build/source/doc/tlbuild.info @@ -59,7 +59,8 @@ File: tlbuild.info, Node: Introduction, Next: Overview of build system, Prev: 1 Introduction ************** -This manual (dated July 2021) corresponds to the TeX Live 2021 release. +This manual (dated September 2021) corresponds to the TeX Live 2021 +release. This manual is aimed at system installers and programmers, and focuses on how to configure, build, and develop the TeX Live (TL) @@ -765,7 +766,7 @@ many extra hassles, so don't do that, tempting as it may be. autoconf (GNU Autoconf) 2.71 automake (GNU automake) 1.16.4 - bison (GNU Bison) 3.7.5 + bison (GNU Bison) 3.8.2 flex 2.6.0 ltmain.sh (GNU libtool) 2.4.6 m4 (GNU M4) 1.4.19 @@ -1405,7 +1406,7 @@ Adding a new TeX engine is not completely different from adding a program, but it's not all that similar, either. In this case, the main work is done by creating a new subdirectory of 'texk/web2c/' for the engine. The subdirectory is conventionally named ending in 'dir', like -'pdftexdir' and 'xetexdir'. +'pdftexdir' and 'xetexdir', to avoid clashes with executable names. The source files for the new engine should be put in this 'NEWENGINEdir' subdirectory. Also, a file @@ -1425,6 +1426,13 @@ libraries requires. LuaTeX. Of course, every engine will have its own unique features and requirements, so existing examples will only take you so far. + Web2c is built as one "package", with each subdirectory's '.am' +fragment inserted with an Automake 'include'. This means that, for +instance, '$(srcdir)' is '.../web2c', not '.../webdir/enginedir'. It is +a difficult setup to come to terms with, but the alternative is to +recurse into each engine subdirectory, and that would be far worse +(*note (automake)Directories::). + File: tlbuild.info, Node: Adding a new generic library module, Next: Adding a new TeX-specific library module, Prev: Adding a new engine, Up: Extending TeX Live @@ -5951,401 +5959,401 @@ Index Tag Table: Node: Top1208 Node: Introduction2118 -Node: Overview of build system3942 -Node: Prerequisites5993 -Node: Building8589 -Node: Build iteration9975 -Node: Build problems11016 -Node: Build in parallel11470 -Node: Build distribution12074 -Node: Build one package12722 -Node: Build one engine16496 -Node: Cross compilation18179 -Node: Cross configuring19459 -Node: Cross problems21136 -Node: Installing22798 -Node: Installation directories23818 -Node: Linked scripts25636 -Node: Distro builds27127 -Node: Layout and infrastructure29503 -Node: Build system tools30334 -Node: Top-level directories32551 -Node: Autoconf macros34787 -Node: General setup macros35549 -Node: Macros for programs36424 -Node: Macros for compilers37225 -Node: Macros for libraries38633 -Node: Macros for library and header flags39059 -Node: Macros for Windows40970 -Node: Library modules42557 -Node: png library43046 -Node: zlib library45394 -Node: freetype library45909 -Node: kpathsea library46605 -Node: Program modules47984 -Node: t1utils package48412 -Node: xindy package48957 -Node: xdvik package50073 -Node: asymptote51132 -Node: Extending TeX Live51628 -Node: Adding a new program module52435 -Node: Adding a new engine57198 -Node: Adding a new generic library module58567 -Node: Adding a new TeX-specific library module60788 -Node: Configure options61486 -Node: Global configure options62867 -Node: --disable-native-texlive-build63409 -Node: --prefix --bindir ...64371 -Node: --disable-largefile64911 -Node: --disable-missing65453 -Node: --enable-compiler-warnings=LEVEL65854 -Node: --enable-cxx-runtime-hack66510 -Node: --enable-maintainer-mode66930 -Node: --enable-multiplatform67459 -Node: --enable-shared68032 -Node: --enable-silent-rules68403 -Node: --without-ln-s68855 -Node: --without-x69202 -Node: Program-specific configure options69390 -Node: --enable-PROG --disable-PROG70033 -Node: --disable-all-pkgs70306 -Node: Configure options for texk/web2c71089 -Node: Configure options for texk/bibtex-x73627 -Node: Configure options for texk/dvipdfm-x74170 -Node: Configure options for texk/dvisvgm74946 -Node: Configure options for texk/texlive75827 -Node: Configure options for texk/xdvik76248 -Node: Configure options for utils/xindy76869 -Node: Library-specific configure options77759 -Node: Configure options for kpathsea78720 -Node: Variables for configure79424 -Node: Coding conventions80850 -Node: Declarations and definitions81565 -Node: Const83739 -Node: Continuous integration85603 -Node: Transfer from Subversion to Github86267 -Node: Automatic update of the Git mirror88429 -Node: CI testing on Travis-CI89011 -Node: Releases on Github89720 -Node: install-tl90160 -Node: install-tl NAME90529 -Node: install-tl SYNOPSIS90687 -Node: install-tl DESCRIPTION90945 -Node: install-tl REFERENCES92005 -Node: install-tl OPTIONS92529 -Ref: install-tl *-gui* [[=]_module_]92870 -Ref: install-tl text93078 -Ref: install-tl tcl (or "perltk" or "wizard" or "expert" or nothing)93263 -Ref: install-tl *-no-gui*93895 -Ref: install-tl *-lang* _llcode_93985 -Ref: install-tl *-repository* _url|path_94609 -Ref: install-tl *-select-repository*95498 -Ref: install-tl *-all-options*95916 -Ref: install-tl *-custom-bin* _path_96171 -Ref: install-tl *-debug-translation*97005 -Ref: install-tl *-force-platform* _platform_97281 -Ref: install-tl *-help*, *--help*, *-?*97525 -Ref: install-tl *-in-place*97938 -Ref: install-tl *-init-from-profile* _profile_file_98483 -Ref: install-tl *-logfile* _file_98752 -Ref: install-tl *-no-cls*99103 -Ref: install-tl *-no-persistent-downloads*99251 -Ref: install-tl *-persistent-downloads*99276 -Ref: install-tl *-no-verify-downloads*99894 -Ref: install-tl *-non-admin*100257 -Ref: install-tl *-portable*100350 -Ref: install-tl *-print-platform*100489 -Ref: install-tl *-profile* _profile_file_100687 -Ref: install-tl *-q*100908 -Ref: install-tl *-scheme* _scheme_100970 -Ref: install-tl *-v*101444 -Ref: install-tl *-version*, *--version*101599 -Node: install-tl PROFILES101733 -Ref: install-tl instopt_adjustpath (default 0 on Unix, 1 on Windows)104599 -Ref: install-tl instopt_adjustrepo (default 1)104675 -Ref: install-tl instopt_letter (default 0)104812 -Ref: install-tl instopt_portable (default 0)104903 -Ref: install-tl instopt_write18_restricted (default 1)104999 -Node: install-tl ENVIRONMENT VARIABLES106338 -Ref: install-tl TEXLIVE_DOWNLOADER106716 -Ref: install-tl TL_DOWNLOAD_PROGRAM106739 -Ref: install-tl TL_DOWNLOAD_ARGS106759 -Ref: install-tl TEXLIVE_INSTALL_ENV_NOCHECK106963 -Ref: install-tl TEXLIVE_INSTALL_NO_CONTEXT_CACHE107165 -Ref: install-tl TEXLIVE_INSTALL_NO_RESUME107274 -Ref: install-tl TEXLIVE_INSTALL_NO_WELCOME107426 -Ref: install-tl TEXLIVE_INSTALL_PAPER107547 -Ref: install-tl TEXLIVE_INSTALL_PREFIX107693 -Ref: install-tl TEXLIVE_INSTALL_TEXDIR107719 -Ref: install-tl TEXLIVE_INSTALL_TEXMFCONFIG107750 -Ref: install-tl TEXLIVE_INSTALL_TEXMFVAR107778 -Ref: install-tl TEXLIVE_INSTALL_TEXMFHOME107807 -Ref: install-tl TEXLIVE_INSTALL_TEXMFLOCAL107837 -Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSCONFIG107871 -Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSVAR107902 -Ref: install-tl NOPERLDOC108273 -Node: install-tl AUTHORS AND COPYRIGHT108337 -Node: tlmgr108750 -Node: tlmgr NAME109235 -Node: tlmgr SYNOPSIS109367 -Node: tlmgr DESCRIPTION109557 -Node: tlmgr EXAMPLES110656 -Ref: tlmgr tlmgr option repository ctan110907 -Ref: tlmgr tlmgr option repository https://mirror.ctan.org/systems/texlive/tlnet110980 -Ref: tlmgr tlmgr update --list111585 -Ref: tlmgr tlmgr update --all111678 -Ref: tlmgr tlmgr info _what_111835 -Node: tlmgr OPTIONS112097 -Ref: tlmgr *--repository* _url|path_112617 -Ref: tlmgr /some/local/dir113803 -Ref: tlmgr file:/some/local/dir113832 -Ref: tlmgr ctan113905 -Ref: tlmgr https://mirror.ctan.org/systems/texlive/tlnet113959 -Ref: tlmgr http://server/path/to/tlnet114300 -Ref: tlmgr https://server/path/to/tlnet114681 -Ref: tlmgr ftp://server/path/to/tlnet115149 -Ref: tlmgr user@machine:/path/to/tlnet115281 -Ref: tlmgr scp://user@machine/path/to/tlnet115322 -Ref: tlmgr ssh://user@machine/path/to/tlnet115363 -Ref: tlmgr *--gui* [_action_]115756 -Ref: tlmgr *--gui-lang* _llcode_116569 -Ref: tlmgr *--command-logfile* _file_117310 -Ref: tlmgr *--debug-translation*117576 -Ref: tlmgr *--machine-readable*117779 -Ref: tlmgr *--no-execute-actions*118047 -Ref: tlmgr *--package-logfile* _file_118240 -Ref: tlmgr *--pause*118494 -Ref: tlmgr *--persistent-downloads*118649 -Ref: tlmgr *--no-persistent-downloads*118677 -Ref: tlmgr *--pin-file*119171 -Ref: tlmgr *--usermode*119389 -Ref: tlmgr *--usertree* _dir_119509 -Ref: tlmgr *--verify-repo=[none|main|all]*119635 -Node: tlmgr ACTIONS120534 -Node: tlmgr help121395 -Node: tlmgr version121872 -Node: tlmgr backup122135 -Ref: tlmgr *backup [_option_...] --all*122306 -Ref: tlmgr *backup [_option_...] _pkg_...*122339 -Ref: tlmgr *--backupdir* _directory_123405 -Ref: tlmgr *--all*123622 -Ref: tlmgr *--clean*[=_N_]123874 -Ref: tlmgr *--dry-run*124201 -Node: tlmgr candidates _pkg_124331 -Node: tlmgr check [_option_...] [depends|executes|files|runfiles|texmfdbs|all]124686 -Ref: tlmgr *depends*125200 -Ref: tlmgr *executes*125542 -Ref: tlmgr *files*125657 -Ref: tlmgr *runfiles*125793 -Ref: tlmgr *texmfdbs*125930 -Ref: tlmgr - all items in TEXMFDBS have the !! prefix.126160 -Ref: tlmgr - all items in TEXMFBDS have an ls-R file (if they exist at all).126236 -Ref: tlmgr - all items in TEXMF with !! are listed in TEXMFDBS.126301 -Ref: tlmgr - all items in TEXMF with an ls-R file are listed in TEXMFDBS.126376 -Ref: tlmgr *--use-svn*126401 -Node: tlmgr conf126542 -Ref: tlmgr *conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]]*126830 -Ref: tlmgr *conf auxtrees [--conffile _file_] [show|add|remove] [_value_]*126894 -Node: tlmgr dump-tlpdb [_option_...] [--json]129309 -Ref: tlmgr *--local*129742 -Ref: tlmgr *--remote*129781 -Ref: tlmgr *--json*129819 -Node: tlmgr generate130390 -Ref: tlmgr *generate [_option_...] language*130586 -Ref: tlmgr *generate [_option_...] language.dat*130625 -Ref: tlmgr *generate [_option_...] language.def*130664 -Ref: tlmgr *generate [_option_...] language.dat.lua*130707 -Ref: tlmgr *--dest* _output_file_133034 -Ref: tlmgr *--localcfg* _local_conf_file_133610 -Ref: tlmgr *--rebuild-sys*133733 -Node: tlmgr gui134548 -Node: tlmgr info134726 -Ref: tlmgr *info [_option_...] _pkg_...*134888 -Ref: tlmgr *info [_option_...] collections*134922 -Ref: tlmgr *info [_option_...] schemes*134952 -Ref: tlmgr *--list*136482 -Ref: tlmgr *--only-installed*136796 -Ref: tlmgr *--only-remote*136984 -Ref: tlmgr *--data item1,item2,...*137288 -Ref: tlmgr *--json* 1138651 -Node: tlmgr init-usertree139034 -Node: tlmgr install [_option_...] _pkg_...139415 -Ref: tlmgr *--dry-run* 1139923 -Ref: tlmgr *--file*140040 -Ref: tlmgr *--force*140262 -Ref: tlmgr *--no-depends*140482 -Ref: tlmgr *--no-depends-at-all*140641 -Ref: tlmgr *--reinstall*141041 -Ref: tlmgr *--with-doc*141419 -Ref: tlmgr *--with-src*141432 -Node: tlmgr key142160 -Ref: tlmgr *key list*142318 -Ref: tlmgr *key add _file_*142336 -Ref: tlmgr *key remove _keyid_*142358 -Node: tlmgr list142952 -Node: tlmgr option143114 -Ref: tlmgr *option [--json] [show]*143269 -Ref: tlmgr *option [--json] showall|help*143300 -Ref: tlmgr *option _key_ [_value_]*143326 -Node: tlmgr paper147905 -Ref: tlmgr *paper [a4|letter]*148054 -Ref: tlmgr *<[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [_papersize_|--list]*>148130 -Ref: tlmgr *paper --json*148145 -Node: tlmgr path149360 -Ref: tlmgr *path [--w32mode=user|admin] add*149521 -Ref: tlmgr *path [--w32mode=user|admin] remove*149558 -Node: tlmgr pinning151043 -Ref: tlmgr pinning show151284 -Ref: tlmgr pinning add _repo_ _pkgglob_...151357 -Ref: tlmgr pinning remove _repo_ _pkgglob_...151476 -Ref: tlmgr pinning remove _repo_ --all151629 -Node: tlmgr platform151683 -Ref: tlmgr *platform list|add|remove _platform_...*151869 -Ref: tlmgr *platform set _platform_*151896 -Ref: tlmgr *platform set auto*151917 -Ref: tlmgr *--dry-run* 2152794 -Node: tlmgr postaction152913 -Ref: tlmgr *postaction [_option_...] install [shortcut|fileassoc|script] [_pkg_...]*153143 -Ref: tlmgr *postaction [_option_...] remove [shortcut|fileassoc|script] [_pkg_...]*153217 -Ref: tlmgr *--w32mode=[user|admin]*153532 -Ref: tlmgr *--fileassocmode=[1|2]*153948 -Ref: tlmgr *--all* 1154233 -Node: tlmgr print-platform154288 -Node: tlmgr print-platform-info154619 -Node: tlmgr remove [_option_...] _pkg_...154919 -Ref: tlmgr *--all* 2155403 -Ref: tlmgr *--backup*155513 -Ref: tlmgr *--backupdir* _directory_ 1155539 -Ref: tlmgr *--no-depends* 1155944 -Ref: tlmgr *--no-depends-at-all* 1156006 -Ref: tlmgr *--force* 1156109 -Ref: tlmgr *--dry-run* 3156582 -Node: tlmgr repository156918 -Ref: tlmgr *repository list*157106 -Ref: tlmgr *repository list _path|url|tag_*157140 -Ref: tlmgr *repository add _path_ [_tag_]*157173 -Ref: tlmgr *repository remove _path|tag_*157205 -Ref: tlmgr *repository set _path_[#_tag_] [_path_[#_tag_] ...]*157259 -Ref: tlmgr *repository status*157280 -Ref: tlmgr The tag (which can be the same as the url);158507 -Node: tlmgr restore158985 -Ref: tlmgr *restore [_option_...] _pkg_ [_rev_]*159164 -Ref: tlmgr *restore [_option_...] --all*159194 -Ref: tlmgr *--all* 3159894 -Ref: tlmgr *--backupdir* _directory_ 2160108 -Ref: tlmgr *--dry-run* 4160289 -Ref: tlmgr *--force* 2160421 -Ref: tlmgr *--json* 2160467 -Node: tlmgr search160794 -Ref: tlmgr *search [_option_...] _what_*160958 -Ref: tlmgr *search [_option_...] --file _what_*160995 -Ref: tlmgr *search [_option_...] --all _what_*161031 -Ref: tlmgr *--file* 1161251 -Ref: tlmgr *--all* 4161313 -Ref: tlmgr *--global*161402 -Ref: tlmgr *--word*161529 -Node: tlmgr shell161844 -Ref: tlmgr protocol162579 -Ref: tlmgr help 1162643 -Ref: tlmgr version 1162696 -Ref: tlmgr quit, end, bye, byebye, EOF162764 -Ref: tlmgr restart162785 -Ref: tlmgr load [local|remote]162908 -Ref: tlmgr save162978 -Ref: tlmgr get [_var_] =item set [_var_ [_val_]]163101 -Node: tlmgr show163702 -Node: tlmgr uninstall163869 -Node: tlmgr update [_option_...] [_pkg_...]164099 -Ref: tlmgr *--all* 5164470 -Ref: tlmgr *--self*166649 -Ref: tlmgr *--dry-run* 5167413 -Ref: tlmgr *--list* [_pkg_]167590 -Ref: tlmgr *--exclude* _pkg_168279 -Ref: tlmgr *--no-auto-remove* [_pkg_...]169079 -Ref: tlmgr *--no-auto-install* [_pkg_...]169563 -Ref: tlmgr *--reinstall-forcibly-removed*170325 -Ref: tlmgr *--backup* 1170860 -Ref: tlmgr *--backupdir* _directory_ 3170886 -Ref: tlmgr *--no-depends* 2172052 -Ref: tlmgr *--no-depends-at-all* 2172255 -Ref: tlmgr *--force* 3172358 -Node: tlmgr CONFIGURATION FILE FOR TLMGR173349 -Ref: tlmgr auto-remove, value 0 or 1 (default 1), same as command-line option.174356 -Ref: tlmgr gui-expertmode, value 0 or 1 (default 1). This switches between the full GUI and a simplified GUI with only the most common settings.174493 -Ref: tlmgr gui-lang _llcode_, with a language code value as with the command-line option.174575 -Ref: tlmgr no-checksums, value 0 or 1 (default 0, see below).174629 -Ref: tlmgr persistent-downloads, value 0 or 1 (default 1), same as command-line option.174709 -Ref: tlmgr require-verification, value 0 or 1 (default 0), same as command-line option.174789 -Ref: tlmgr tkfontscale, value any float. Controls the scaling of fonts in the Tk based frontends.174879 -Ref: tlmgr update-exclude, value: comma-separated list of packages (no space allowed). Same as the command line option --exclude for the action update.175027 -Ref: tlmgr verify-downloads, value 0 or 1 (default 1), same as command-line option.175103 -Ref: tlmgr allowed-actions _action1_ [,_action_,...] The value is a comma-separated list of tlmgr actions which are allowed to be executed when tlmgr is invoked in system mode (that is, without --usermode).175372 -Node: tlmgr CRYPTOGRAPHIC VERIFICATION176460 -Node: tlmgr Configuration of GnuPG invocation178633 -Node: tlmgr USER MODE179271 -Node: tlmgr User mode install182117 -Node: tlmgr User mode backup, restore, remove, update183261 -Node: tlmgr User mode generate, option, paper183703 -Node: tlmgr MULTIPLE REPOSITORIES184079 -Node: tlmgr Pinning185808 -Node: tlmgr GUI FOR TLMGR187731 -Node: tlmgr Main display189380 -Node: tlmgr Display configuration area189632 -Ref: tlmgr Status189993 -Ref: tlmgr Category190157 -Ref: tlmgr Match190343 -Ref: tlmgr Selection190524 -Ref: tlmgr Display configuration buttons190728 -Node: tlmgr Package list area190911 -Ref: tlmgr a checkbox191495 -Ref: tlmgr package name191631 -Ref: tlmgr local revision (and version)191730 -Ref: tlmgr remote revision (and version)192105 -Ref: tlmgr short description192402 -Node: tlmgr Main display action buttons192447 -Ref: tlmgr Update all installed192713 -Ref: tlmgr Update193085 -Ref: tlmgr Install193135 -Ref: tlmgr Remove193321 -Ref: tlmgr Backup193499 -Node: tlmgr Menu bar193656 -Ref: tlmgr tlmgr menu193879 -Ref: tlmgr Options menu194187 -Ref: tlmgr Actions menu195270 -Ref: tlmgr Help menu195698 -Node: tlmgr GUI options195832 -Ref: tlmgr -background _color_196078 -Ref: tlmgr -font " _fontname_ _fontsize_ "196143 -Ref: tlmgr -foreground _color_196301 -Ref: tlmgr -geometry _geomspec_196353 -Ref: tlmgr -xrm _xresource_196545 -Node: tlmgr MACHINE-READABLE OUTPUT196814 -Node: tlmgr Machine-readable update and install output197624 -Ref: tlmgr location-url _location_198900 -Ref: tlmgr total-bytes _count_199116 -Ref: tlmgr _pkgname_199526 -Ref: tlmgr _status_199736 -Ref: tlmgr d199814 -Ref: tlmgr f199874 -Ref: tlmgr u200053 -Ref: tlmgr r200099 -Ref: tlmgr a200222 -Ref: tlmgr i200400 -Ref: tlmgr I200519 -Ref: tlmgr _localrev_200621 -Ref: tlmgr _serverrev_200728 -Ref: tlmgr _size_200840 -Ref: tlmgr _runtime_201009 -Ref: tlmgr _esttot_201079 -Node: tlmgr Machine-readable option output201112 -Node: tlmgr ENVIRONMENT VARIABLES201624 -Ref: tlmgr TEXLIVE_COMPRESSOR202135 -Ref: tlmgr TEXLIVE_DOWNLOADER202983 -Ref: tlmgr TL_DOWNLOAD_PROGRAM203006 -Ref: tlmgr TL_DOWNLOAD_ARGS203026 -Ref: tlmgr TEXLIVE_PREFER_OWN204052 -Node: tlmgr AUTHORS AND COPYRIGHT204876 -Node: Index205274 +Node: Overview of build system3947 +Node: Prerequisites5998 +Node: Building8594 +Node: Build iteration9980 +Node: Build problems11021 +Node: Build in parallel11475 +Node: Build distribution12079 +Node: Build one package12727 +Node: Build one engine16501 +Node: Cross compilation18184 +Node: Cross configuring19464 +Node: Cross problems21141 +Node: Installing22803 +Node: Installation directories23823 +Node: Linked scripts25641 +Node: Distro builds27132 +Node: Layout and infrastructure29508 +Node: Build system tools30339 +Node: Top-level directories32556 +Node: Autoconf macros34792 +Node: General setup macros35554 +Node: Macros for programs36429 +Node: Macros for compilers37230 +Node: Macros for libraries38638 +Node: Macros for library and header flags39064 +Node: Macros for Windows40975 +Node: Library modules42562 +Node: png library43051 +Node: zlib library45399 +Node: freetype library45914 +Node: kpathsea library46610 +Node: Program modules47989 +Node: t1utils package48417 +Node: xindy package48962 +Node: xdvik package50078 +Node: asymptote51137 +Node: Extending TeX Live51633 +Node: Adding a new program module52440 +Node: Adding a new engine57203 +Node: Adding a new generic library module58988 +Node: Adding a new TeX-specific library module61209 +Node: Configure options61907 +Node: Global configure options63288 +Node: --disable-native-texlive-build63830 +Node: --prefix --bindir ...64792 +Node: --disable-largefile65332 +Node: --disable-missing65874 +Node: --enable-compiler-warnings=LEVEL66275 +Node: --enable-cxx-runtime-hack66931 +Node: --enable-maintainer-mode67351 +Node: --enable-multiplatform67880 +Node: --enable-shared68453 +Node: --enable-silent-rules68824 +Node: --without-ln-s69276 +Node: --without-x69623 +Node: Program-specific configure options69811 +Node: --enable-PROG --disable-PROG70454 +Node: --disable-all-pkgs70727 +Node: Configure options for texk/web2c71510 +Node: Configure options for texk/bibtex-x74048 +Node: Configure options for texk/dvipdfm-x74591 +Node: Configure options for texk/dvisvgm75367 +Node: Configure options for texk/texlive76248 +Node: Configure options for texk/xdvik76669 +Node: Configure options for utils/xindy77290 +Node: Library-specific configure options78180 +Node: Configure options for kpathsea79141 +Node: Variables for configure79845 +Node: Coding conventions81271 +Node: Declarations and definitions81986 +Node: Const84160 +Node: Continuous integration86024 +Node: Transfer from Subversion to Github86688 +Node: Automatic update of the Git mirror88850 +Node: CI testing on Travis-CI89432 +Node: Releases on Github90141 +Node: install-tl90581 +Node: install-tl NAME90950 +Node: install-tl SYNOPSIS91108 +Node: install-tl DESCRIPTION91366 +Node: install-tl REFERENCES92426 +Node: install-tl OPTIONS92950 +Ref: install-tl *-gui* [[=]_module_]93291 +Ref: install-tl text93499 +Ref: install-tl tcl (or "perltk" or "wizard" or "expert" or nothing)93684 +Ref: install-tl *-no-gui*94316 +Ref: install-tl *-lang* _llcode_94406 +Ref: install-tl *-repository* _url|path_95030 +Ref: install-tl *-select-repository*95919 +Ref: install-tl *-all-options*96337 +Ref: install-tl *-custom-bin* _path_96592 +Ref: install-tl *-debug-translation*97426 +Ref: install-tl *-force-platform* _platform_97702 +Ref: install-tl *-help*, *--help*, *-?*97946 +Ref: install-tl *-in-place*98359 +Ref: install-tl *-init-from-profile* _profile_file_98904 +Ref: install-tl *-logfile* _file_99173 +Ref: install-tl *-no-cls*99524 +Ref: install-tl *-no-persistent-downloads*99672 +Ref: install-tl *-persistent-downloads*99697 +Ref: install-tl *-no-verify-downloads*100315 +Ref: install-tl *-non-admin*100678 +Ref: install-tl *-portable*100771 +Ref: install-tl *-print-platform*100910 +Ref: install-tl *-profile* _profile_file_101108 +Ref: install-tl *-q*101329 +Ref: install-tl *-scheme* _scheme_101391 +Ref: install-tl *-v*101865 +Ref: install-tl *-version*, *--version*102020 +Node: install-tl PROFILES102154 +Ref: install-tl instopt_adjustpath (default 0 on Unix, 1 on Windows)105020 +Ref: install-tl instopt_adjustrepo (default 1)105096 +Ref: install-tl instopt_letter (default 0)105233 +Ref: install-tl instopt_portable (default 0)105324 +Ref: install-tl instopt_write18_restricted (default 1)105420 +Node: install-tl ENVIRONMENT VARIABLES106759 +Ref: install-tl TEXLIVE_DOWNLOADER107137 +Ref: install-tl TL_DOWNLOAD_PROGRAM107160 +Ref: install-tl TL_DOWNLOAD_ARGS107180 +Ref: install-tl TEXLIVE_INSTALL_ENV_NOCHECK107384 +Ref: install-tl TEXLIVE_INSTALL_NO_CONTEXT_CACHE107586 +Ref: install-tl TEXLIVE_INSTALL_NO_RESUME107695 +Ref: install-tl TEXLIVE_INSTALL_NO_WELCOME107847 +Ref: install-tl TEXLIVE_INSTALL_PAPER107968 +Ref: install-tl TEXLIVE_INSTALL_PREFIX108114 +Ref: install-tl TEXLIVE_INSTALL_TEXDIR108140 +Ref: install-tl TEXLIVE_INSTALL_TEXMFCONFIG108171 +Ref: install-tl TEXLIVE_INSTALL_TEXMFVAR108199 +Ref: install-tl TEXLIVE_INSTALL_TEXMFHOME108228 +Ref: install-tl TEXLIVE_INSTALL_TEXMFLOCAL108258 +Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSCONFIG108292 +Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSVAR108323 +Ref: install-tl NOPERLDOC108694 +Node: install-tl AUTHORS AND COPYRIGHT108758 +Node: tlmgr109171 +Node: tlmgr NAME109656 +Node: tlmgr SYNOPSIS109788 +Node: tlmgr DESCRIPTION109978 +Node: tlmgr EXAMPLES111077 +Ref: tlmgr tlmgr option repository ctan111328 +Ref: tlmgr tlmgr option repository https://mirror.ctan.org/systems/texlive/tlnet111401 +Ref: tlmgr tlmgr update --list112006 +Ref: tlmgr tlmgr update --all112099 +Ref: tlmgr tlmgr info _what_112256 +Node: tlmgr OPTIONS112518 +Ref: tlmgr *--repository* _url|path_113038 +Ref: tlmgr /some/local/dir114224 +Ref: tlmgr file:/some/local/dir114253 +Ref: tlmgr ctan114326 +Ref: tlmgr https://mirror.ctan.org/systems/texlive/tlnet114380 +Ref: tlmgr http://server/path/to/tlnet114721 +Ref: tlmgr https://server/path/to/tlnet115102 +Ref: tlmgr ftp://server/path/to/tlnet115570 +Ref: tlmgr user@machine:/path/to/tlnet115702 +Ref: tlmgr scp://user@machine/path/to/tlnet115743 +Ref: tlmgr ssh://user@machine/path/to/tlnet115784 +Ref: tlmgr *--gui* [_action_]116177 +Ref: tlmgr *--gui-lang* _llcode_116990 +Ref: tlmgr *--command-logfile* _file_117731 +Ref: tlmgr *--debug-translation*117997 +Ref: tlmgr *--machine-readable*118200 +Ref: tlmgr *--no-execute-actions*118468 +Ref: tlmgr *--package-logfile* _file_118661 +Ref: tlmgr *--pause*118915 +Ref: tlmgr *--persistent-downloads*119070 +Ref: tlmgr *--no-persistent-downloads*119098 +Ref: tlmgr *--pin-file*119592 +Ref: tlmgr *--usermode*119810 +Ref: tlmgr *--usertree* _dir_119930 +Ref: tlmgr *--verify-repo=[none|main|all]*120056 +Node: tlmgr ACTIONS120955 +Node: tlmgr help121816 +Node: tlmgr version122293 +Node: tlmgr backup122556 +Ref: tlmgr *backup [_option_...] --all*122727 +Ref: tlmgr *backup [_option_...] _pkg_...*122760 +Ref: tlmgr *--backupdir* _directory_123826 +Ref: tlmgr *--all*124043 +Ref: tlmgr *--clean*[=_N_]124295 +Ref: tlmgr *--dry-run*124622 +Node: tlmgr candidates _pkg_124752 +Node: tlmgr check [_option_...] [depends|executes|files|runfiles|texmfdbs|all]125107 +Ref: tlmgr *depends*125621 +Ref: tlmgr *executes*125963 +Ref: tlmgr *files*126078 +Ref: tlmgr *runfiles*126214 +Ref: tlmgr *texmfdbs*126351 +Ref: tlmgr - all items in TEXMFDBS have the !! prefix.126581 +Ref: tlmgr - all items in TEXMFBDS have an ls-R file (if they exist at all).126657 +Ref: tlmgr - all items in TEXMF with !! are listed in TEXMFDBS.126722 +Ref: tlmgr - all items in TEXMF with an ls-R file are listed in TEXMFDBS.126797 +Ref: tlmgr *--use-svn*126822 +Node: tlmgr conf126963 +Ref: tlmgr *conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]]*127251 +Ref: tlmgr *conf auxtrees [--conffile _file_] [show|add|remove] [_value_]*127315 +Node: tlmgr dump-tlpdb [_option_...] [--json]129730 +Ref: tlmgr *--local*130163 +Ref: tlmgr *--remote*130202 +Ref: tlmgr *--json*130240 +Node: tlmgr generate130811 +Ref: tlmgr *generate [_option_...] language*131007 +Ref: tlmgr *generate [_option_...] language.dat*131046 +Ref: tlmgr *generate [_option_...] language.def*131085 +Ref: tlmgr *generate [_option_...] language.dat.lua*131128 +Ref: tlmgr *--dest* _output_file_133455 +Ref: tlmgr *--localcfg* _local_conf_file_134031 +Ref: tlmgr *--rebuild-sys*134154 +Node: tlmgr gui134969 +Node: tlmgr info135147 +Ref: tlmgr *info [_option_...] _pkg_...*135309 +Ref: tlmgr *info [_option_...] collections*135343 +Ref: tlmgr *info [_option_...] schemes*135373 +Ref: tlmgr *--list*136903 +Ref: tlmgr *--only-installed*137217 +Ref: tlmgr *--only-remote*137405 +Ref: tlmgr *--data item1,item2,...*137709 +Ref: tlmgr *--json* 1139072 +Node: tlmgr init-usertree139455 +Node: tlmgr install [_option_...] _pkg_...139836 +Ref: tlmgr *--dry-run* 1140344 +Ref: tlmgr *--file*140461 +Ref: tlmgr *--force*140683 +Ref: tlmgr *--no-depends*140903 +Ref: tlmgr *--no-depends-at-all*141062 +Ref: tlmgr *--reinstall*141462 +Ref: tlmgr *--with-doc*141840 +Ref: tlmgr *--with-src*141853 +Node: tlmgr key142581 +Ref: tlmgr *key list*142739 +Ref: tlmgr *key add _file_*142757 +Ref: tlmgr *key remove _keyid_*142779 +Node: tlmgr list143373 +Node: tlmgr option143535 +Ref: tlmgr *option [--json] [show]*143690 +Ref: tlmgr *option [--json] showall|help*143721 +Ref: tlmgr *option _key_ [_value_]*143747 +Node: tlmgr paper148326 +Ref: tlmgr *paper [a4|letter]*148475 +Ref: tlmgr *<[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [_papersize_|--list]*>148551 +Ref: tlmgr *paper --json*148566 +Node: tlmgr path149781 +Ref: tlmgr *path [--w32mode=user|admin] add*149942 +Ref: tlmgr *path [--w32mode=user|admin] remove*149979 +Node: tlmgr pinning151464 +Ref: tlmgr pinning show151705 +Ref: tlmgr pinning add _repo_ _pkgglob_...151778 +Ref: tlmgr pinning remove _repo_ _pkgglob_...151897 +Ref: tlmgr pinning remove _repo_ --all152050 +Node: tlmgr platform152104 +Ref: tlmgr *platform list|add|remove _platform_...*152290 +Ref: tlmgr *platform set _platform_*152317 +Ref: tlmgr *platform set auto*152338 +Ref: tlmgr *--dry-run* 2153215 +Node: tlmgr postaction153334 +Ref: tlmgr *postaction [_option_...] install [shortcut|fileassoc|script] [_pkg_...]*153564 +Ref: tlmgr *postaction [_option_...] remove [shortcut|fileassoc|script] [_pkg_...]*153638 +Ref: tlmgr *--w32mode=[user|admin]*153953 +Ref: tlmgr *--fileassocmode=[1|2]*154369 +Ref: tlmgr *--all* 1154654 +Node: tlmgr print-platform154709 +Node: tlmgr print-platform-info155040 +Node: tlmgr remove [_option_...] _pkg_...155340 +Ref: tlmgr *--all* 2155824 +Ref: tlmgr *--backup*155934 +Ref: tlmgr *--backupdir* _directory_ 1155960 +Ref: tlmgr *--no-depends* 1156365 +Ref: tlmgr *--no-depends-at-all* 1156427 +Ref: tlmgr *--force* 1156530 +Ref: tlmgr *--dry-run* 3157003 +Node: tlmgr repository157339 +Ref: tlmgr *repository list*157527 +Ref: tlmgr *repository list _path|url|tag_*157561 +Ref: tlmgr *repository add _path_ [_tag_]*157594 +Ref: tlmgr *repository remove _path|tag_*157626 +Ref: tlmgr *repository set _path_[#_tag_] [_path_[#_tag_] ...]*157680 +Ref: tlmgr *repository status*157701 +Ref: tlmgr The tag (which can be the same as the url);158928 +Node: tlmgr restore159406 +Ref: tlmgr *restore [_option_...] _pkg_ [_rev_]*159585 +Ref: tlmgr *restore [_option_...] --all*159615 +Ref: tlmgr *--all* 3160315 +Ref: tlmgr *--backupdir* _directory_ 2160529 +Ref: tlmgr *--dry-run* 4160710 +Ref: tlmgr *--force* 2160842 +Ref: tlmgr *--json* 2160888 +Node: tlmgr search161215 +Ref: tlmgr *search [_option_...] _what_*161379 +Ref: tlmgr *search [_option_...] --file _what_*161416 +Ref: tlmgr *search [_option_...] --all _what_*161452 +Ref: tlmgr *--file* 1161672 +Ref: tlmgr *--all* 4161734 +Ref: tlmgr *--global*161823 +Ref: tlmgr *--word*161950 +Node: tlmgr shell162265 +Ref: tlmgr protocol163000 +Ref: tlmgr help 1163064 +Ref: tlmgr version 1163117 +Ref: tlmgr quit, end, bye, byebye, EOF163185 +Ref: tlmgr restart163206 +Ref: tlmgr load [local|remote]163329 +Ref: tlmgr save163399 +Ref: tlmgr get [_var_] =item set [_var_ [_val_]]163522 +Node: tlmgr show164123 +Node: tlmgr uninstall164290 +Node: tlmgr update [_option_...] [_pkg_...]164520 +Ref: tlmgr *--all* 5164891 +Ref: tlmgr *--self*167070 +Ref: tlmgr *--dry-run* 5167834 +Ref: tlmgr *--list* [_pkg_]168011 +Ref: tlmgr *--exclude* _pkg_168700 +Ref: tlmgr *--no-auto-remove* [_pkg_...]169500 +Ref: tlmgr *--no-auto-install* [_pkg_...]169984 +Ref: tlmgr *--reinstall-forcibly-removed*170746 +Ref: tlmgr *--backup* 1171281 +Ref: tlmgr *--backupdir* _directory_ 3171307 +Ref: tlmgr *--no-depends* 2172473 +Ref: tlmgr *--no-depends-at-all* 2172676 +Ref: tlmgr *--force* 3172779 +Node: tlmgr CONFIGURATION FILE FOR TLMGR173770 +Ref: tlmgr auto-remove, value 0 or 1 (default 1), same as command-line option.174777 +Ref: tlmgr gui-expertmode, value 0 or 1 (default 1). This switches between the full GUI and a simplified GUI with only the most common settings.174914 +Ref: tlmgr gui-lang _llcode_, with a language code value as with the command-line option.174996 +Ref: tlmgr no-checksums, value 0 or 1 (default 0, see below).175050 +Ref: tlmgr persistent-downloads, value 0 or 1 (default 1), same as command-line option.175130 +Ref: tlmgr require-verification, value 0 or 1 (default 0), same as command-line option.175210 +Ref: tlmgr tkfontscale, value any float. Controls the scaling of fonts in the Tk based frontends.175300 +Ref: tlmgr update-exclude, value: comma-separated list of packages (no space allowed). Same as the command line option --exclude for the action update.175448 +Ref: tlmgr verify-downloads, value 0 or 1 (default 1), same as command-line option.175524 +Ref: tlmgr allowed-actions _action1_ [,_action_,...] The value is a comma-separated list of tlmgr actions which are allowed to be executed when tlmgr is invoked in system mode (that is, without --usermode).175793 +Node: tlmgr CRYPTOGRAPHIC VERIFICATION176881 +Node: tlmgr Configuration of GnuPG invocation179054 +Node: tlmgr USER MODE179692 +Node: tlmgr User mode install182538 +Node: tlmgr User mode backup, restore, remove, update183682 +Node: tlmgr User mode generate, option, paper184124 +Node: tlmgr MULTIPLE REPOSITORIES184500 +Node: tlmgr Pinning186229 +Node: tlmgr GUI FOR TLMGR188152 +Node: tlmgr Main display189801 +Node: tlmgr Display configuration area190053 +Ref: tlmgr Status190414 +Ref: tlmgr Category190578 +Ref: tlmgr Match190764 +Ref: tlmgr Selection190945 +Ref: tlmgr Display configuration buttons191149 +Node: tlmgr Package list area191332 +Ref: tlmgr a checkbox191916 +Ref: tlmgr package name192052 +Ref: tlmgr local revision (and version)192151 +Ref: tlmgr remote revision (and version)192526 +Ref: tlmgr short description192823 +Node: tlmgr Main display action buttons192868 +Ref: tlmgr Update all installed193134 +Ref: tlmgr Update193506 +Ref: tlmgr Install193556 +Ref: tlmgr Remove193742 +Ref: tlmgr Backup193920 +Node: tlmgr Menu bar194077 +Ref: tlmgr tlmgr menu194300 +Ref: tlmgr Options menu194608 +Ref: tlmgr Actions menu195691 +Ref: tlmgr Help menu196119 +Node: tlmgr GUI options196253 +Ref: tlmgr -background _color_196499 +Ref: tlmgr -font " _fontname_ _fontsize_ "196564 +Ref: tlmgr -foreground _color_196722 +Ref: tlmgr -geometry _geomspec_196774 +Ref: tlmgr -xrm _xresource_196966 +Node: tlmgr MACHINE-READABLE OUTPUT197235 +Node: tlmgr Machine-readable update and install output198045 +Ref: tlmgr location-url _location_199321 +Ref: tlmgr total-bytes _count_199537 +Ref: tlmgr _pkgname_199947 +Ref: tlmgr _status_200157 +Ref: tlmgr d200235 +Ref: tlmgr f200295 +Ref: tlmgr u200474 +Ref: tlmgr r200520 +Ref: tlmgr a200643 +Ref: tlmgr i200821 +Ref: tlmgr I200940 +Ref: tlmgr _localrev_201042 +Ref: tlmgr _serverrev_201149 +Ref: tlmgr _size_201261 +Ref: tlmgr _runtime_201430 +Ref: tlmgr _esttot_201500 +Node: tlmgr Machine-readable option output201533 +Node: tlmgr ENVIRONMENT VARIABLES202045 +Ref: tlmgr TEXLIVE_COMPRESSOR202556 +Ref: tlmgr TEXLIVE_DOWNLOADER203404 +Ref: tlmgr TL_DOWNLOAD_PROGRAM203427 +Ref: tlmgr TL_DOWNLOAD_ARGS203447 +Ref: tlmgr TEXLIVE_PREFER_OWN204473 +Node: tlmgr AUTHORS AND COPYRIGHT205297 +Node: Index205695 End Tag Table diff --git a/Build/source/doc/tlbuild.texi b/Build/source/doc/tlbuild.texi index 6084aa2af5c..5afbd68b925 100644 --- a/Build/source/doc/tlbuild.texi +++ b/Build/source/doc/tlbuild.texi @@ -2,7 +2,7 @@ @setfilename tlbuild.info @set version 2021 -@set month-year July 2021 +@set month-year September 2021 @set mytitle Building @TeX{} Live (@value{version}) @settitle @value{mytitle} @@ -1762,7 +1762,8 @@ Adding a new @TeX{} engine is not completely different from adding a program, but it's not all that similar, either. In this case, the main work is done by creating a new subdirectory of @file{texk/web2c/} for the engine. The subdirectory is conventionally named ending in -@file{dir}, like @file{pdftexdir} and @file{xetexdir}. +@file{dir}, like @file{pdftexdir} and @file{xetexdir}, to avoid +clashes with executable names. The source files for the new engine should be put in this @file{@var{newengine}dir} subdirectory. Also, a file @@ -1784,6 +1785,14 @@ simpler than Lua@TeX{}. Of course, every engine will have its own unique features and requirements, so existing examples will only take you so far. +Web2c is built as one ``package'', with each subdirectory's @file{.am} +fragment inserted with an Automake @code{include}. This means that, +for instance, @code{$(srcdir)} is @file{.../web2c}, not +@file{.../webdir/enginedir}. It is a difficult setup to come to terms +with, but the alternative is to recurse into each engine subdirectory, +and that would be far worse (@pxref{Directories,,, automake, GNU +Automake}). + @node Adding a new generic library module @subsection Adding a new generic library module diff --git a/Build/source/texk/web2c/Makefile.in b/Build/source/texk/web2c/Makefile.in index 7273a62c1ed..fcff84452dc 100644 --- a/Build/source/texk/web2c/Makefile.in +++ b/Build/source/texk/web2c/Makefile.in @@ -1387,27 +1387,22 @@ nodist_gftype_OBJECTS = gftype.$(OBJEXT) gftype_OBJECTS = $(nodist_gftype_OBJECTS) gftype_LDADD = $(LDADD) gftype_DEPENDENCIES = $(proglib) $(am__DEPENDENCIES_1) -nodist_hishrink_OBJECTS = hishrink-hformat.$(OBJEXT) \ - hishrink-hishrink.$(OBJEXT) hishrink-shrink-lexer.$(OBJEXT) \ - hishrink-shrink-parser.$(OBJEXT) -hishrink_OBJECTS = $(nodist_hishrink_OBJECTS) +am_hishrink_OBJECTS = hitexdir/hishrink-hishrink-lexer.$(OBJEXT) \ + hitexdir/hishrink-hishrink-parser.$(OBJEXT) +hishrink_OBJECTS = $(am_hishrink_OBJECTS) hishrink_DEPENDENCIES = $(am__DEPENDENCIES_1) -nodist_histretch_OBJECTS = histretch-hformat.$(OBJEXT) \ - histretch-histretch.$(OBJEXT) -histretch_OBJECTS = $(nodist_histretch_OBJECTS) +histretch_SOURCES = histretch.c +histretch_OBJECTS = histretch-histretch.$(OBJEXT) histretch_DEPENDENCIES = $(am__DEPENDENCIES_1) -am__objects_37 = hitex-htex.$(OBJEXT) -am__objects_38 = hitex-hitex.$(OBJEXT) -nodist_hitex_OBJECTS = hitex-hformat.$(OBJEXT) hitex-hput.$(OBJEXT) \ - $(am__objects_37) $(am__objects_38) -hitex_OBJECTS = $(nodist_hitex_OBJECTS) +hitex_SOURCES = hitex.c +hitex_OBJECTS = hitex-hitex.$(OBJEXT) hitex_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) nodist_initex_OBJECTS = initex-callexe.$(OBJEXT) initex_OBJECTS = $(nodist_initex_OBJECTS) initex_DEPENDENCIES = -am__objects_39 = luatexdir/luahbtex-luatex.$(OBJEXT) \ +am__objects_37 = luatexdir/luahbtex-luatex.$(OBJEXT) \ mplibdir/luahbtex-lmplib.$(OBJEXT) -nodist_luahbtex_OBJECTS = $(am__objects_39) +nodist_luahbtex_OBJECTS = $(am__objects_37) luahbtex_OBJECTS = $(nodist_luahbtex_OBJECTS) am__DEPENDENCIES_6 = $(am__DEPENDENCIES_1) am__DEPENDENCIES_7 = libmplibcore.a $(am__DEPENDENCIES_1) \ @@ -1418,16 +1413,16 @@ am__DEPENDENCIES_7 = libmplibcore.a $(am__DEPENDENCIES_1) \ luahbtex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(luahbtex_CXXFLAGS) \ $(CXXFLAGS) $(luahbtex_LDFLAGS) $(LDFLAGS) -o $@ -am__objects_40 = luatexdir/luajithbtex-luatex.$(OBJEXT) \ +am__objects_38 = luatexdir/luajithbtex-luatex.$(OBJEXT) \ mplibdir/luajithbtex-lmplib.$(OBJEXT) -nodist_luajithbtex_OBJECTS = $(am__objects_40) +nodist_luajithbtex_OBJECTS = $(am__objects_38) luajithbtex_OBJECTS = $(nodist_luajithbtex_OBJECTS) luajithbtex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(luajithbtex_CXXFLAGS) \ $(CXXFLAGS) $(luajithbtex_LDFLAGS) $(LDFLAGS) -o $@ -am__objects_41 = luatexdir/luajittex-luatex.$(OBJEXT) \ +am__objects_39 = luatexdir/luajittex-luatex.$(OBJEXT) \ mplibdir/luajittex-lmplib.$(OBJEXT) -nodist_luajittex_OBJECTS = $(am__objects_41) +nodist_luajittex_OBJECTS = $(am__objects_39) luajittex_OBJECTS = $(nodist_luajittex_OBJECTS) am__DEPENDENCIES_8 = libmplibcore.a $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ @@ -1436,9 +1431,9 @@ am__DEPENDENCIES_8 = libmplibcore.a $(am__DEPENDENCIES_1) \ luajittex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(luajittex_LDFLAGS) $(LDFLAGS) -o $@ -am__objects_42 = luatexdir/luatex-luatex.$(OBJEXT) \ +am__objects_40 = luatexdir/luatex-luatex.$(OBJEXT) \ mplibdir/luatex-lmplib.$(OBJEXT) -nodist_luatex_OBJECTS = $(am__objects_42) +nodist_luatex_OBJECTS = $(am__objects_40) luatex_OBJECTS = $(nodist_luatex_OBJECTS) luatex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ @@ -1464,8 +1459,8 @@ mflua_DEPENDENCIES = libmflua.a libmfluaotfcc.a $(am__DEPENDENCIES_2) \ mflua_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(mflua_LDFLAGS) $(LDFLAGS) -o $@ -am__objects_43 = mfluadir/mflua_nowin-mfluaextra.$(OBJEXT) -nodist_mflua_nowin_OBJECTS = $(am__objects_43) +am__objects_41 = mfluadir/mflua_nowin-mfluaextra.$(OBJEXT) +nodist_mflua_nowin_OBJECTS = $(am__objects_41) mflua_nowin_OBJECTS = $(nodist_mflua_nowin_OBJECTS) mflua_nowin_DEPENDENCIES = libmflua.a libmfluaotfcc.a \ $(am__DEPENDENCIES_2) $(windowlib) $(am__DEPENDENCIES_6) @@ -1480,8 +1475,8 @@ mfluajit_DEPENDENCIES = libmfluajit.a libmfluaotfcc.a \ mfluajit_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(mfluajit_LDFLAGS) $(LDFLAGS) -o $@ -am__objects_44 = mfluajitdir/mfluajit_nowin-mfluajitextra.$(OBJEXT) -nodist_mfluajit_nowin_OBJECTS = $(am__objects_44) +am__objects_42 = mfluajitdir/mfluajit_nowin-mfluajitextra.$(OBJEXT) +nodist_mfluajit_nowin_OBJECTS = $(am__objects_42) mfluajit_nowin_OBJECTS = $(nodist_mfluajit_nowin_OBJECTS) mfluajit_nowin_DEPENDENCIES = libmfluajit.a libmfluaotfcc.a \ $(am__DEPENDENCIES_2) $(windowlib) $(am__DEPENDENCIES_1) @@ -1493,8 +1488,8 @@ nodist_mft_OBJECTS = mft.$(OBJEXT) mft_OBJECTS = $(nodist_mft_OBJECTS) mft_LDADD = $(LDADD) mft_DEPENDENCIES = $(proglib) $(am__DEPENDENCIES_1) -am__objects_45 = mpost-mpxout.$(OBJEXT) -nodist_mpost_OBJECTS = mpost-mpost.$(OBJEXT) $(am__objects_45) +am__objects_43 = mpost-mpxout.$(OBJEXT) +nodist_mpost_OBJECTS = mpost-mpost.$(OBJEXT) $(am__objects_43) mpost_OBJECTS = $(nodist_mpost_OBJECTS) mpost_DEPENDENCIES = libmplibcore.a libmplibextramath.a \ libmplibbackends.a $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ @@ -1527,12 +1522,12 @@ am__dist_pdftex_SOURCES_DIST = pdftexdir/pdftexextra.c \ pdftexdir/etex_version.h synctexdir/synctex.c \ synctexdir/synctex.h synctexdir/synctex-common.h \ synctexdir/synctex-pdftex.h -@PDFTEX_SYNCTEX_TRUE@am__objects_46 = \ +@PDFTEX_SYNCTEX_TRUE@am__objects_44 = \ @PDFTEX_SYNCTEX_TRUE@ synctexdir/pdftex-synctex.$(OBJEXT) dist_pdftex_OBJECTS = pdftexdir/pdftex-pdftexextra.$(OBJEXT) \ - $(am__objects_46) -am__objects_47 = pdftex-pdftexini.$(OBJEXT) pdftex-pdftex0.$(OBJEXT) -nodist_pdftex_OBJECTS = $(am__objects_47) pdftex-pdftex-pool.$(OBJEXT) + $(am__objects_44) +am__objects_45 = pdftex-pdftexini.$(OBJEXT) pdftex-pdftex0.$(OBJEXT) +nodist_pdftex_OBJECTS = $(am__objects_45) pdftex-pdftex-pool.$(OBJEXT) pdftex_OBJECTS = $(dist_pdftex_OBJECTS) $(nodist_pdftex_OBJECTS) am__DEPENDENCIES_11 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) libmd5.a @@ -1559,20 +1554,20 @@ nodist_pltotf_OBJECTS = pltotf.$(OBJEXT) pltotf_OBJECTS = $(nodist_pltotf_OBJECTS) pltotf_LDADD = $(LDADD) pltotf_DEPENDENCIES = $(proglib) $(am__DEPENDENCIES_1) -am__objects_48 = pmpost-pmp.$(OBJEXT) -am__objects_49 = pmpost-pmpmath.$(OBJEXT) -am__objects_50 = pmpost-pmpmathbinary.$(OBJEXT) -am__objects_51 = pmpost-pmpmathdecimal.$(OBJEXT) -am__objects_52 = pmpost-pmpmathdouble.$(OBJEXT) -am__objects_53 = pmpost-pmpstrings.$(OBJEXT) -am__objects_54 = pmpost-pmpxout.$(OBJEXT) -am__objects_55 = pmpost-ppngout.$(OBJEXT) -am__objects_56 = pmpost-ppsout.$(OBJEXT) -am__objects_57 = pmpost-psvgout.$(OBJEXT) -nodist_pmpost_OBJECTS = $(am__objects_48) $(am__objects_49) \ - $(am__objects_50) $(am__objects_51) $(am__objects_52) \ - pmpost-pmpost.$(OBJEXT) $(am__objects_53) $(am__objects_54) \ - $(am__objects_55) $(am__objects_56) $(am__objects_57) \ +am__objects_46 = pmpost-pmp.$(OBJEXT) +am__objects_47 = pmpost-pmpmath.$(OBJEXT) +am__objects_48 = pmpost-pmpmathbinary.$(OBJEXT) +am__objects_49 = pmpost-pmpmathdecimal.$(OBJEXT) +am__objects_50 = pmpost-pmpmathdouble.$(OBJEXT) +am__objects_51 = pmpost-pmpstrings.$(OBJEXT) +am__objects_52 = pmpost-pmpxout.$(OBJEXT) +am__objects_53 = pmpost-ppngout.$(OBJEXT) +am__objects_54 = pmpost-ppsout.$(OBJEXT) +am__objects_55 = pmpost-psvgout.$(OBJEXT) +nodist_pmpost_OBJECTS = $(am__objects_46) $(am__objects_47) \ + $(am__objects_48) $(am__objects_49) $(am__objects_50) \ + pmpost-pmpost.$(OBJEXT) $(am__objects_51) $(am__objects_52) \ + $(am__objects_53) $(am__objects_54) $(am__objects_55) \ pmpost-ptfmin.$(OBJEXT) pmpost_OBJECTS = $(nodist_pmpost_OBJECTS) pmpost_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ @@ -1590,10 +1585,10 @@ am__dist_ptex_SOURCES_DIST = ptexdir/ptexextra.c ptexdir/ptexextra.h \ ptexdir/ptex_version.h synctexdir/synctex.c \ synctexdir/synctex.h synctexdir/synctex-common.h \ synctexdir/synctex-ptex.h -@PTEX_SYNCTEX_TRUE@am__objects_58 = synctexdir/ptex-synctex.$(OBJEXT) -dist_ptex_OBJECTS = ptexdir/ptex-ptexextra.$(OBJEXT) $(am__objects_58) -am__objects_59 = ptex-ptexini.$(OBJEXT) ptex-ptex0.$(OBJEXT) -nodist_ptex_OBJECTS = $(am__objects_59) ptex-ptex-pool.$(OBJEXT) +@PTEX_SYNCTEX_TRUE@am__objects_56 = synctexdir/ptex-synctex.$(OBJEXT) +dist_ptex_OBJECTS = ptexdir/ptex-ptexextra.$(OBJEXT) $(am__objects_56) +am__objects_57 = ptex-ptexini.$(OBJEXT) ptex-ptex0.$(OBJEXT) +nodist_ptex_OBJECTS = $(am__objects_57) ptex-ptex-pool.$(OBJEXT) ptex_OBJECTS = $(dist_ptex_OBJECTS) $(nodist_ptex_OBJECTS) @PTEX_SYNCTEX_TRUE@am__DEPENDENCIES_12 = $(am__DEPENDENCIES_1) am_ptftopl_OBJECTS = @@ -1614,10 +1609,10 @@ tangleboot_LDADD = $(LDADD) am__dist_tex_SOURCES_DIST = texextra.c synctexdir/synctex.c \ synctexdir/synctex.h synctexdir/synctex-common.h \ synctexdir/synctex-tex.h -@TEX_SYNCTEX_TRUE@am__objects_60 = synctexdir/tex-synctex.$(OBJEXT) -dist_tex_OBJECTS = tex-texextra.$(OBJEXT) $(am__objects_60) -am__objects_61 = tex-texini.$(OBJEXT) tex-tex0.$(OBJEXT) -nodist_tex_OBJECTS = $(am__objects_61) tex-tex-pool.$(OBJEXT) +@TEX_SYNCTEX_TRUE@am__objects_58 = synctexdir/tex-synctex.$(OBJEXT) +dist_tex_OBJECTS = tex-texextra.$(OBJEXT) $(am__objects_58) +am__objects_59 = tex-texini.$(OBJEXT) tex-tex0.$(OBJEXT) +nodist_tex_OBJECTS = $(am__objects_59) tex-tex-pool.$(OBJEXT) tex_OBJECTS = $(dist_tex_OBJECTS) $(nodist_tex_OBJECTS) @TEX_SYNCTEX_TRUE@am__DEPENDENCIES_14 = $(am__DEPENDENCIES_1) tex_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \ @@ -1642,21 +1637,21 @@ am_updvitype_OBJECTS = nodist_updvitype_OBJECTS = updvitype-updvitype.$(OBJEXT) updvitype_OBJECTS = $(am_updvitype_OBJECTS) \ $(nodist_updvitype_OBJECTS) -am__objects_62 = upmpost-pmp.$(OBJEXT) -am__objects_63 = upmpost-pmpmath.$(OBJEXT) -am__objects_64 = upmpost-pmpmathbinary.$(OBJEXT) -am__objects_65 = upmpost-pmpmathdecimal.$(OBJEXT) -am__objects_66 = upmpost-pmpmathdouble.$(OBJEXT) -am__objects_67 = upmpost-pmpstrings.$(OBJEXT) -am__objects_68 = upmpost-pmpxout.$(OBJEXT) -am__objects_69 = upmpost-ppngout.$(OBJEXT) -am__objects_70 = upmpost-ppsout.$(OBJEXT) -am__objects_71 = upmpost-psvgout.$(OBJEXT) -am__objects_72 = $(am__objects_62) $(am__objects_63) $(am__objects_64) \ - $(am__objects_65) $(am__objects_66) upmpost-pmpost.$(OBJEXT) \ - $(am__objects_67) $(am__objects_68) $(am__objects_69) \ - $(am__objects_70) $(am__objects_71) upmpost-ptfmin.$(OBJEXT) -nodist_upmpost_OBJECTS = $(am__objects_72) +am__objects_60 = upmpost-pmp.$(OBJEXT) +am__objects_61 = upmpost-pmpmath.$(OBJEXT) +am__objects_62 = upmpost-pmpmathbinary.$(OBJEXT) +am__objects_63 = upmpost-pmpmathdecimal.$(OBJEXT) +am__objects_64 = upmpost-pmpmathdouble.$(OBJEXT) +am__objects_65 = upmpost-pmpstrings.$(OBJEXT) +am__objects_66 = upmpost-pmpxout.$(OBJEXT) +am__objects_67 = upmpost-ppngout.$(OBJEXT) +am__objects_68 = upmpost-ppsout.$(OBJEXT) +am__objects_69 = upmpost-psvgout.$(OBJEXT) +am__objects_70 = $(am__objects_60) $(am__objects_61) $(am__objects_62) \ + $(am__objects_63) $(am__objects_64) upmpost-pmpost.$(OBJEXT) \ + $(am__objects_65) $(am__objects_66) $(am__objects_67) \ + $(am__objects_68) $(am__objects_69) upmpost-ptfmin.$(OBJEXT) +nodist_upmpost_OBJECTS = $(am__objects_70) upmpost_OBJECTS = $(nodist_upmpost_OBJECTS) am__DEPENDENCIES_16 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ @@ -1670,12 +1665,12 @@ am__dist_uptex_SOURCES_DIST = uptexdir/uptexextra.c \ uptexdir/uptexextra.h uptexdir/uptex_version.h \ synctexdir/synctex.c synctexdir/synctex.h \ synctexdir/synctex-common.h synctexdir/synctex-uptex.h -@UPTEX_SYNCTEX_TRUE@am__objects_73 = \ +@UPTEX_SYNCTEX_TRUE@am__objects_71 = \ @UPTEX_SYNCTEX_TRUE@ synctexdir/uptex-synctex.$(OBJEXT) dist_uptex_OBJECTS = uptexdir/uptex-uptexextra.$(OBJEXT) \ - $(am__objects_73) -am__objects_74 = uptex-uptexini.$(OBJEXT) uptex-uptex0.$(OBJEXT) -nodist_uptex_OBJECTS = $(am__objects_74) uptex-uptex-pool.$(OBJEXT) + $(am__objects_71) +am__objects_72 = uptex-uptexini.$(OBJEXT) uptex-uptex0.$(OBJEXT) +nodist_uptex_OBJECTS = $(am__objects_72) uptex-uptex-pool.$(OBJEXT) uptex_OBJECTS = $(dist_uptex_OBJECTS) $(nodist_uptex_OBJECTS) @UPTEX_SYNCTEX_TRUE@am__DEPENDENCIES_17 = $(am__DEPENDENCIES_1) am_uptftopl_OBJECTS = @@ -1714,12 +1709,12 @@ am__dist_xetex_SOURCES_DIST = xetexdir/xetexextra.c \ xetexdir/xetex_version.h synctexdir/synctex.c \ synctexdir/synctex.h synctexdir/synctex-common.h \ synctexdir/synctex-xetex.h -@XETEX_SYNCTEX_TRUE@am__objects_75 = \ +@XETEX_SYNCTEX_TRUE@am__objects_73 = \ @XETEX_SYNCTEX_TRUE@ synctexdir/xetex-synctex.$(OBJEXT) dist_xetex_OBJECTS = xetexdir/xetex-xetexextra.$(OBJEXT) \ - $(am__objects_75) -am__objects_76 = xetex-xetexini.$(OBJEXT) xetex-xetex0.$(OBJEXT) -nodist_xetex_OBJECTS = $(am__objects_76) xetex-xetex-pool.$(OBJEXT) + $(am__objects_73) +am__objects_74 = xetex-xetexini.$(OBJEXT) xetex-xetex0.$(OBJEXT) +nodist_xetex_OBJECTS = $(am__objects_74) xetex-xetex-pool.$(OBJEXT) xetex_OBJECTS = $(dist_xetex_OBJECTS) $(nodist_xetex_OBJECTS) @XETEX_MACOSX_FALSE@am__DEPENDENCIES_18 = $(am__DEPENDENCIES_1) am__DEPENDENCIES_19 = $(libxetex) $(am__DEPENDENCIES_1) \ @@ -1770,15 +1765,8 @@ am__depfiles_remade = ./$(DEPDIR)/aleph-aleph-pool.Po \ ./$(DEPDIR)/euptex-euptex-pool.Po \ ./$(DEPDIR)/euptex-euptex0.Po ./$(DEPDIR)/euptex-euptexini.Po \ ./$(DEPDIR)/gftodvi.Po ./$(DEPDIR)/gftopk.Po \ - ./$(DEPDIR)/gftype.Po ./$(DEPDIR)/hishrink-hformat.Po \ - ./$(DEPDIR)/hishrink-hishrink.Po \ - ./$(DEPDIR)/hishrink-shrink-lexer.Po \ - ./$(DEPDIR)/hishrink-shrink-parser.Po \ - ./$(DEPDIR)/histretch-hformat.Po \ - ./$(DEPDIR)/histretch-histretch.Po \ - ./$(DEPDIR)/hitex-hformat.Po ./$(DEPDIR)/hitex-hitex.Po \ - ./$(DEPDIR)/hitex-hput.Po ./$(DEPDIR)/hitex-htex.Po \ - ./$(DEPDIR)/initex-callexe.Po \ + ./$(DEPDIR)/gftype.Po ./$(DEPDIR)/histretch-histretch.Po \ + ./$(DEPDIR)/hitex-hitex.Po ./$(DEPDIR)/initex-callexe.Po \ ./$(DEPDIR)/libluahbtexspecific_a-luainit-hb.Po \ ./$(DEPDIR)/libluahbtexspecific_a-luastuff-hb.Po \ ./$(DEPDIR)/libluahbtexspecific_a-printing-hb.Po \ @@ -1856,6 +1844,8 @@ am__depfiles_remade = ./$(DEPDIR)/aleph-aleph-pool.Po \ eptexdir/$(DEPDIR)/eptex-eptexextra.Po \ etexdir/$(DEPDIR)/etex-etexextra.Po \ euptexdir/$(DEPDIR)/euptex-euptexextra.Po \ + hitexdir/$(DEPDIR)/hishrink-hishrink-lexer.Po \ + hitexdir/$(DEPDIR)/hishrink-hishrink-parser.Po \ libmd5/$(DEPDIR)/a-md5.Po libmd5/$(DEPDIR)/md5main-md5main.Po \ luatexdir/$(DEPDIR)/luahbtex-luatex.Po \ luatexdir/$(DEPDIR)/luajithbtex-luatex.Po \ @@ -2540,10 +2530,9 @@ SOURCES = $(libff_a_SOURCES) $(libkanji_a_SOURCES) \ $(dist_euptex_SOURCES) $(nodist_euptex_SOURCES) \ $(gftodvi_SOURCES) $(nodist_gftodvi_SOURCES) \ $(nodist_gftopk_SOURCES) $(nodist_gftype_SOURCES) \ - $(nodist_hishrink_SOURCES) $(nodist_histretch_SOURCES) \ - $(nodist_hitex_SOURCES) $(nodist_initex_SOURCES) \ - $(nodist_luahbtex_SOURCES) $(nodist_EXTRA_luahbtex_SOURCES) \ - $(nodist_luajithbtex_SOURCES) \ + $(hishrink_SOURCES) histretch.c hitex.c \ + $(nodist_initex_SOURCES) $(nodist_luahbtex_SOURCES) \ + $(nodist_EXTRA_luahbtex_SOURCES) $(nodist_luajithbtex_SOURCES) \ $(nodist_EXTRA_luajithbtex_SOURCES) \ $(nodist_luajittex_SOURCES) $(nodist_luatex_SOURCES) \ $(md5main_SOURCES) $(dist_mf_SOURCES) $(dist_mf_nowin_SOURCES) \ @@ -2588,11 +2577,11 @@ DIST_SOURCES = $(libff_a_SOURCES) $(libkanji_a_SOURCES) \ $(am__libxetex_a_SOURCES_DIST) $(libsynctex_la_SOURCES) \ $(dist_aleph_SOURCES) $(am__dist_eptex_SOURCES_DIST) \ $(am__dist_etex_SOURCES_DIST) $(am__dist_euptex_SOURCES_DIST) \ - $(gftodvi_SOURCES) $(md5main_SOURCES) $(dist_mf_SOURCES) \ - $(dist_mf_nowin_SOURCES) $(dist_mflua_SOURCES) \ - $(dist_mfluajit_SOURCES) $(pbibtex_SOURCES) \ - $(am__dist_pdftex_SOURCES_DIST) $(pdftosrc_SOURCES) \ - $(pdvitype_SOURCES) $(ppltotf_SOURCES) \ + $(gftodvi_SOURCES) $(hishrink_SOURCES) histretch.c hitex.c \ + $(md5main_SOURCES) $(dist_mf_SOURCES) $(dist_mf_nowin_SOURCES) \ + $(dist_mflua_SOURCES) $(dist_mfluajit_SOURCES) \ + $(pbibtex_SOURCES) $(am__dist_pdftex_SOURCES_DIST) \ + $(pdftosrc_SOURCES) $(pdvitype_SOURCES) $(ppltotf_SOURCES) \ $(am__dist_ptex_SOURCES_DIST) $(ptftopl_SOURCES) \ $(synctex_SOURCES) $(am__dist_tex_SOURCES_DIST) \ $(ttf2afm_SOURCES) $(EXTRA_ttf2afm_SOURCES) \ @@ -2880,7 +2869,9 @@ am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/../../am/bin_links.am \ ../../build-aux/config.sub ../../build-aux/depcomp \ ../../build-aux/install-sh ../../build-aux/ltmain.sh \ ../../build-aux/missing ../../build-aux/texinfo.tex \ - ../../build-aux/ylwrap AUTHORS ChangeLog NEWS README + ../../build-aux/ylwrap AUTHORS ChangeLog NEWS README \ + hitexdir/hishrink-lexer.c hitexdir/hishrink-parser.c \ + hitexdir/hishrink-parser.h DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -3297,7 +3288,7 @@ EXTRA_DIST = PROJECTS cftests cpascal.h help.h w2c/config.h \ euptexdir/pdfprimitive.test \ eptexdir/tests/pdfprimitive-test.tex \ euptexdir/tests/pdfprimitive-euptex.log hitexdir/ChangeLog \ - $(hitex_web) lex.sed yacc.sed pdftexdir/regex/COPYING.LIB \ + $(hitex_web) pdftexdir/regex/COPYING.LIB \ pdftexdir/regex/README $(pdftex_ch_srcs) \ pdftexdir/pdftex.defines pdftexdir/ChangeLog pdftexdir/NEWS \ pdftexdir/README pdftexdir/change-files.txt $(pdftex_tests) \ @@ -3621,12 +3612,12 @@ DISTCLEANFILES = CXXLD.sh tangle.c tangle.h tangle.p tangle-web2c \ euptex.p euptex.pool euptex-tangle euptrip.diffs \ pdfprimitive-euptex.* $(nodist_hitex_SOURCES) \ $(nodist_hishrink_SOURCES) $(nodist_histretch_SOURCES) \ - format-tangle htex-tangle hitex-tangle shrink-parser.* \ - shrink-lexer.* $(nodist_pdftex_SOURCES) pdftex-final.ch \ - pdftex-web2c pdftex.p pdftex.pool pdftex-tangle pwprob.log \ - pwprob.tex pdfimage.fmt pdfimage.log pdfimage.pdf expanded.log \ - cnfline.log partoken-ok.log partoken-xfail.log postV3.afm \ - postV7.afm test-13.pdf test-13.xref test-15.pdf test-15.xref \ + format-tangle htex-tangle hitex-tangle \ + $(nodist_pdftex_SOURCES) pdftex-final.ch pdftex-web2c pdftex.p \ + pdftex.pool pdftex-tangle pwprob.log pwprob.tex pdfimage.fmt \ + pdfimage.log pdfimage.pdf expanded.log cnfline.log \ + partoken-ok.log partoken-xfail.log postV3.afm postV7.afm \ + test-13.pdf test-13.xref test-15.pdf test-15.xref \ $(nodist_libluatex_sources) luaimage.* luajitimage.* \ $(nodist_xetex_SOURCES) xetex.web xetex-final.ch xetex-web2c \ xetex.p xetex.pool xetex-tangle bug73.fmt bug73.log bug73.out \ @@ -4587,21 +4578,19 @@ euptex_ch_srcs = \ # euptex_tests = euptexdir/euptriptest.test euptexdir/pdfprimitive.test euptexdir/eupver.test -#kb hitex_CFLAGS = $(AM_CFLAGS) \ -#kb -Wno-parentheses -Wno-maybe-uninitialized -Wno-unused-function -Wno-unused-variable +# We want debugging for the parser, and we use features not in POSIX yacc. +# The result is that we assume bison? Not sure if that's ok. +AM_YFLAGS = -d -v -Wno-yacc hitex_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) hitex_LDADD = $(KPATHSEA_LIBS) $(ZLIB_LIBS) # histretch_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) histretch_LDADD = $(ZLIB_LIBS) # -hishrink_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) +# The -I$(srcdir)/hitexdir is so the compiler can find the *parser.h file. +hishrink_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) -I$(srcdir)/hitexdir hishrink_LDADD = $(ZLIB_LIBS) -# We want debugging for the parser, and we use features not in POSIX yacc. -# I guess the result is that we assume bison? Not sure if that's ok. -AM_YFLAGS = -d -v -Wno-yacc - # HiTeX CWEB sources hitex_web = hitexdir/format.w hitexdir/htex.w hitexdir/hitex.w @@ -4614,19 +4603,24 @@ format_c_h_l_y = basetypes.h error.h hformat.h \ mkhformat.c \ hput.c hput.h \ hget.c hget.h \ - shrink.lex-in shrink.yacc-in \ + shrink.l shrink.y \ hishrink.c histretch.c htex_c_h = htex.c htex.h hitex_c_h = hitex.c hitex.h -# Other web2c/*dir/am/*.am engine Makefile fragments define a bunch of -# _OBJECTS variables. This does not seem right to me. Instead, we -# correctly define the _SOURCES. +# The actual sources for the lexer and parser are in format.w. +# However, to simplify life with Automake (a little), we maintain them +# here as if they were real, direct source files. +# +# We want to do this partly because ultimately we want the generated +# .[ch] files to be saved in $(srcdir), as is done for the other .[ly] +# files, so that builders need not have yacc (bison in this case) and (f)lex. # -nodist_hitex_SOURCES = hformat.c hput.c $(htex_c_h) $(hitex_c_h) -nodist_histretch_SOURCES = hformat.c histretch.c -nodist_hishrink_SOURCES = hformat.c hishrink.c shrink-lexer.l shrink-parser.y +# Without the strange $(srcdir), +hishrink_SOURCES = hitexdir/hishrink-lexer.l \ + hitexdir/hishrink-parser.y + libpdftex_a_CPPFLAGS = $(REGEX_INCLUDES) $(pdftex_cppflags) libpdftex_a_CXXFLAGS = $(WARNING_CXXFLAGS) libpdftex_a_SOURCES = pdftexdir/avl.c pdftexdir/avl.h \ @@ -8045,9 +8039,19 @@ gftopk$(EXEEXT): $(gftopk_OBJECTS) $(gftopk_DEPENDENCIES) $(EXTRA_gftopk_DEPENDE gftype$(EXEEXT): $(gftype_OBJECTS) $(gftype_DEPENDENCIES) $(EXTRA_gftype_DEPENDENCIES) @rm -f gftype$(EXEEXT) $(AM_V_CCLD)$(LINK) $(gftype_OBJECTS) $(gftype_LDADD) $(LIBS) -shrink-parser.h: shrink-parser.c - @if test ! -f $@; then rm -f shrink-parser.c; else :; fi - @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) shrink-parser.c; else :; fi +hitexdir/$(am__dirstamp): + @$(MKDIR_P) hitexdir + @: > hitexdir/$(am__dirstamp) +hitexdir/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) hitexdir/$(DEPDIR) + @: > hitexdir/$(DEPDIR)/$(am__dirstamp) +hitexdir/hishrink-hishrink-lexer.$(OBJEXT): hitexdir/$(am__dirstamp) \ + hitexdir/$(DEPDIR)/$(am__dirstamp) +hitexdir/hishrink-parser.h: hitexdir/hishrink-parser.c + @if test ! -f $@; then rm -f hitexdir/hishrink-parser.c; else :; fi + @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) hitexdir/hishrink-parser.c; else :; fi +hitexdir/hishrink-hishrink-parser.$(OBJEXT): hitexdir/$(am__dirstamp) \ + hitexdir/$(DEPDIR)/$(am__dirstamp) hishrink$(EXEEXT): $(hishrink_OBJECTS) $(hishrink_DEPENDENCIES) $(EXTRA_hishrink_DEPENDENCIES) @rm -f hishrink$(EXEEXT) @@ -8337,6 +8341,7 @@ mostlyclean-compile: -rm -f eptexdir/*.$(OBJEXT) -rm -f etexdir/*.$(OBJEXT) -rm -f euptexdir/*.$(OBJEXT) + -rm -f hitexdir/*.$(OBJEXT) -rm -f libmd5/*.$(OBJEXT) -rm -f luatexdir/*.$(OBJEXT) -rm -f luatexdir/dvi/*.$(OBJEXT) @@ -8441,16 +8446,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gftodvi.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gftopk.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gftype.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hishrink-hformat.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hishrink-hishrink.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hishrink-shrink-lexer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hishrink-shrink-parser.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/histretch-hformat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/histretch-histretch.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hitex-hformat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hitex-hitex.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hitex-hput.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hitex-htex.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/initex-callexe.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libluahbtexspecific_a-luainit-hb.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libluahbtexspecific_a-luastuff-hb.Po@am__quote@ # am--include-marker @@ -8563,6 +8560,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@eptexdir/$(DEPDIR)/eptex-eptexextra.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@etexdir/$(DEPDIR)/etex-etexextra.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@euptexdir/$(DEPDIR)/euptex-euptexextra.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@hitexdir/$(DEPDIR)/hishrink-hishrink-lexer.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@hitexdir/$(DEPDIR)/hishrink-hishrink-parser.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@libmd5/$(DEPDIR)/a-md5.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@libmd5/$(DEPDIR)/md5main-md5main.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/$(DEPDIR)/luahbtex-luatex.Po@am__quote@ # am--include-marker @@ -17368,75 +17367,33 @@ euptex-euptex-pool.obj: euptex-pool.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(euptex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o euptex-euptex-pool.obj `if test -f 'euptex-pool.c'; then $(CYGPATH_W) 'euptex-pool.c'; else $(CYGPATH_W) '$(srcdir)/euptex-pool.c'; fi` -hishrink-hformat.o: hformat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hishrink-hformat.o -MD -MP -MF $(DEPDIR)/hishrink-hformat.Tpo -c -o hishrink-hformat.o `test -f 'hformat.c' || echo '$(srcdir)/'`hformat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/hishrink-hformat.Tpo $(DEPDIR)/hishrink-hformat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hformat.c' object='hishrink-hformat.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hishrink-hformat.o `test -f 'hformat.c' || echo '$(srcdir)/'`hformat.c - -hishrink-hformat.obj: hformat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hishrink-hformat.obj -MD -MP -MF $(DEPDIR)/hishrink-hformat.Tpo -c -o hishrink-hformat.obj `if test -f 'hformat.c'; then $(CYGPATH_W) 'hformat.c'; else $(CYGPATH_W) '$(srcdir)/hformat.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/hishrink-hformat.Tpo $(DEPDIR)/hishrink-hformat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hformat.c' object='hishrink-hformat.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hishrink-hformat.obj `if test -f 'hformat.c'; then $(CYGPATH_W) 'hformat.c'; else $(CYGPATH_W) '$(srcdir)/hformat.c'; fi` - -hishrink-hishrink.o: hishrink.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hishrink-hishrink.o -MD -MP -MF $(DEPDIR)/hishrink-hishrink.Tpo -c -o hishrink-hishrink.o `test -f 'hishrink.c' || echo '$(srcdir)/'`hishrink.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/hishrink-hishrink.Tpo $(DEPDIR)/hishrink-hishrink.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hishrink.c' object='hishrink-hishrink.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hishrink-hishrink.o `test -f 'hishrink.c' || echo '$(srcdir)/'`hishrink.c - -hishrink-hishrink.obj: hishrink.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hishrink-hishrink.obj -MD -MP -MF $(DEPDIR)/hishrink-hishrink.Tpo -c -o hishrink-hishrink.obj `if test -f 'hishrink.c'; then $(CYGPATH_W) 'hishrink.c'; else $(CYGPATH_W) '$(srcdir)/hishrink.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/hishrink-hishrink.Tpo $(DEPDIR)/hishrink-hishrink.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hishrink.c' object='hishrink-hishrink.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hishrink-hishrink.obj `if test -f 'hishrink.c'; then $(CYGPATH_W) 'hishrink.c'; else $(CYGPATH_W) '$(srcdir)/hishrink.c'; fi` - -hishrink-shrink-lexer.o: shrink-lexer.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hishrink-shrink-lexer.o -MD -MP -MF $(DEPDIR)/hishrink-shrink-lexer.Tpo -c -o hishrink-shrink-lexer.o `test -f 'shrink-lexer.c' || echo '$(srcdir)/'`shrink-lexer.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/hishrink-shrink-lexer.Tpo $(DEPDIR)/hishrink-shrink-lexer.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shrink-lexer.c' object='hishrink-shrink-lexer.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hishrink-shrink-lexer.o `test -f 'shrink-lexer.c' || echo '$(srcdir)/'`shrink-lexer.c - -hishrink-shrink-lexer.obj: shrink-lexer.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hishrink-shrink-lexer.obj -MD -MP -MF $(DEPDIR)/hishrink-shrink-lexer.Tpo -c -o hishrink-shrink-lexer.obj `if test -f 'shrink-lexer.c'; then $(CYGPATH_W) 'shrink-lexer.c'; else $(CYGPATH_W) '$(srcdir)/shrink-lexer.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/hishrink-shrink-lexer.Tpo $(DEPDIR)/hishrink-shrink-lexer.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shrink-lexer.c' object='hishrink-shrink-lexer.obj' libtool=no @AMDEPBACKSLASH@ +hitexdir/hishrink-hishrink-lexer.o: hitexdir/hishrink-lexer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hitexdir/hishrink-hishrink-lexer.o -MD -MP -MF hitexdir/$(DEPDIR)/hishrink-hishrink-lexer.Tpo -c -o hitexdir/hishrink-hishrink-lexer.o `test -f 'hitexdir/hishrink-lexer.c' || echo '$(srcdir)/'`hitexdir/hishrink-lexer.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) hitexdir/$(DEPDIR)/hishrink-hishrink-lexer.Tpo hitexdir/$(DEPDIR)/hishrink-hishrink-lexer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hitexdir/hishrink-lexer.c' object='hitexdir/hishrink-hishrink-lexer.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hishrink-shrink-lexer.obj `if test -f 'shrink-lexer.c'; then $(CYGPATH_W) 'shrink-lexer.c'; else $(CYGPATH_W) '$(srcdir)/shrink-lexer.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hitexdir/hishrink-hishrink-lexer.o `test -f 'hitexdir/hishrink-lexer.c' || echo '$(srcdir)/'`hitexdir/hishrink-lexer.c -hishrink-shrink-parser.o: shrink-parser.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hishrink-shrink-parser.o -MD -MP -MF $(DEPDIR)/hishrink-shrink-parser.Tpo -c -o hishrink-shrink-parser.o `test -f 'shrink-parser.c' || echo '$(srcdir)/'`shrink-parser.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/hishrink-shrink-parser.Tpo $(DEPDIR)/hishrink-shrink-parser.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shrink-parser.c' object='hishrink-shrink-parser.o' libtool=no @AMDEPBACKSLASH@ +hitexdir/hishrink-hishrink-lexer.obj: hitexdir/hishrink-lexer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hitexdir/hishrink-hishrink-lexer.obj -MD -MP -MF hitexdir/$(DEPDIR)/hishrink-hishrink-lexer.Tpo -c -o hitexdir/hishrink-hishrink-lexer.obj `if test -f 'hitexdir/hishrink-lexer.c'; then $(CYGPATH_W) 'hitexdir/hishrink-lexer.c'; else $(CYGPATH_W) '$(srcdir)/hitexdir/hishrink-lexer.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) hitexdir/$(DEPDIR)/hishrink-hishrink-lexer.Tpo hitexdir/$(DEPDIR)/hishrink-hishrink-lexer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hitexdir/hishrink-lexer.c' object='hitexdir/hishrink-hishrink-lexer.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hishrink-shrink-parser.o `test -f 'shrink-parser.c' || echo '$(srcdir)/'`shrink-parser.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hitexdir/hishrink-hishrink-lexer.obj `if test -f 'hitexdir/hishrink-lexer.c'; then $(CYGPATH_W) 'hitexdir/hishrink-lexer.c'; else $(CYGPATH_W) '$(srcdir)/hitexdir/hishrink-lexer.c'; fi` -hishrink-shrink-parser.obj: shrink-parser.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hishrink-shrink-parser.obj -MD -MP -MF $(DEPDIR)/hishrink-shrink-parser.Tpo -c -o hishrink-shrink-parser.obj `if test -f 'shrink-parser.c'; then $(CYGPATH_W) 'shrink-parser.c'; else $(CYGPATH_W) '$(srcdir)/shrink-parser.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/hishrink-shrink-parser.Tpo $(DEPDIR)/hishrink-shrink-parser.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shrink-parser.c' object='hishrink-shrink-parser.obj' libtool=no @AMDEPBACKSLASH@ +hitexdir/hishrink-hishrink-parser.o: hitexdir/hishrink-parser.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hitexdir/hishrink-hishrink-parser.o -MD -MP -MF hitexdir/$(DEPDIR)/hishrink-hishrink-parser.Tpo -c -o hitexdir/hishrink-hishrink-parser.o `test -f 'hitexdir/hishrink-parser.c' || echo '$(srcdir)/'`hitexdir/hishrink-parser.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) hitexdir/$(DEPDIR)/hishrink-hishrink-parser.Tpo hitexdir/$(DEPDIR)/hishrink-hishrink-parser.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hitexdir/hishrink-parser.c' object='hitexdir/hishrink-hishrink-parser.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hishrink-shrink-parser.obj `if test -f 'shrink-parser.c'; then $(CYGPATH_W) 'shrink-parser.c'; else $(CYGPATH_W) '$(srcdir)/shrink-parser.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hitexdir/hishrink-hishrink-parser.o `test -f 'hitexdir/hishrink-parser.c' || echo '$(srcdir)/'`hitexdir/hishrink-parser.c -histretch-hformat.o: hformat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(histretch_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT histretch-hformat.o -MD -MP -MF $(DEPDIR)/histretch-hformat.Tpo -c -o histretch-hformat.o `test -f 'hformat.c' || echo '$(srcdir)/'`hformat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/histretch-hformat.Tpo $(DEPDIR)/histretch-hformat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hformat.c' object='histretch-hformat.o' libtool=no @AMDEPBACKSLASH@ +hitexdir/hishrink-hishrink-parser.obj: hitexdir/hishrink-parser.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hitexdir/hishrink-hishrink-parser.obj -MD -MP -MF hitexdir/$(DEPDIR)/hishrink-hishrink-parser.Tpo -c -o hitexdir/hishrink-hishrink-parser.obj `if test -f 'hitexdir/hishrink-parser.c'; then $(CYGPATH_W) 'hitexdir/hishrink-parser.c'; else $(CYGPATH_W) '$(srcdir)/hitexdir/hishrink-parser.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) hitexdir/$(DEPDIR)/hishrink-hishrink-parser.Tpo hitexdir/$(DEPDIR)/hishrink-hishrink-parser.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hitexdir/hishrink-parser.c' object='hitexdir/hishrink-hishrink-parser.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(histretch_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o histretch-hformat.o `test -f 'hformat.c' || echo '$(srcdir)/'`hformat.c - -histretch-hformat.obj: hformat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(histretch_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT histretch-hformat.obj -MD -MP -MF $(DEPDIR)/histretch-hformat.Tpo -c -o histretch-hformat.obj `if test -f 'hformat.c'; then $(CYGPATH_W) 'hformat.c'; else $(CYGPATH_W) '$(srcdir)/hformat.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/histretch-hformat.Tpo $(DEPDIR)/histretch-hformat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hformat.c' object='histretch-hformat.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(histretch_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o histretch-hformat.obj `if test -f 'hformat.c'; then $(CYGPATH_W) 'hformat.c'; else $(CYGPATH_W) '$(srcdir)/hformat.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hitexdir/hishrink-hishrink-parser.obj `if test -f 'hitexdir/hishrink-parser.c'; then $(CYGPATH_W) 'hitexdir/hishrink-parser.c'; else $(CYGPATH_W) '$(srcdir)/hitexdir/hishrink-parser.c'; fi` histretch-histretch.o: histretch.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(histretch_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT histretch-histretch.o -MD -MP -MF $(DEPDIR)/histretch-histretch.Tpo -c -o histretch-histretch.o `test -f 'histretch.c' || echo '$(srcdir)/'`histretch.c @@ -17452,48 +17409,6 @@ histretch-histretch.obj: histretch.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(histretch_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o histretch-histretch.obj `if test -f 'histretch.c'; then $(CYGPATH_W) 'histretch.c'; else $(CYGPATH_W) '$(srcdir)/histretch.c'; fi` -hitex-hformat.o: hformat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hitex-hformat.o -MD -MP -MF $(DEPDIR)/hitex-hformat.Tpo -c -o hitex-hformat.o `test -f 'hformat.c' || echo '$(srcdir)/'`hformat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/hitex-hformat.Tpo $(DEPDIR)/hitex-hformat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hformat.c' object='hitex-hformat.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hitex-hformat.o `test -f 'hformat.c' || echo '$(srcdir)/'`hformat.c - -hitex-hformat.obj: hformat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hitex-hformat.obj -MD -MP -MF $(DEPDIR)/hitex-hformat.Tpo -c -o hitex-hformat.obj `if test -f 'hformat.c'; then $(CYGPATH_W) 'hformat.c'; else $(CYGPATH_W) '$(srcdir)/hformat.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/hitex-hformat.Tpo $(DEPDIR)/hitex-hformat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hformat.c' object='hitex-hformat.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hitex-hformat.obj `if test -f 'hformat.c'; then $(CYGPATH_W) 'hformat.c'; else $(CYGPATH_W) '$(srcdir)/hformat.c'; fi` - -hitex-hput.o: hput.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hitex-hput.o -MD -MP -MF $(DEPDIR)/hitex-hput.Tpo -c -o hitex-hput.o `test -f 'hput.c' || echo '$(srcdir)/'`hput.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/hitex-hput.Tpo $(DEPDIR)/hitex-hput.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hput.c' object='hitex-hput.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hitex-hput.o `test -f 'hput.c' || echo '$(srcdir)/'`hput.c - -hitex-hput.obj: hput.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hitex-hput.obj -MD -MP -MF $(DEPDIR)/hitex-hput.Tpo -c -o hitex-hput.obj `if test -f 'hput.c'; then $(CYGPATH_W) 'hput.c'; else $(CYGPATH_W) '$(srcdir)/hput.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/hitex-hput.Tpo $(DEPDIR)/hitex-hput.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hput.c' object='hitex-hput.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hitex-hput.obj `if test -f 'hput.c'; then $(CYGPATH_W) 'hput.c'; else $(CYGPATH_W) '$(srcdir)/hput.c'; fi` - -hitex-htex.o: htex.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hitex-htex.o -MD -MP -MF $(DEPDIR)/hitex-htex.Tpo -c -o hitex-htex.o `test -f 'htex.c' || echo '$(srcdir)/'`htex.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/hitex-htex.Tpo $(DEPDIR)/hitex-htex.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='htex.c' object='hitex-htex.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hitex-htex.o `test -f 'htex.c' || echo '$(srcdir)/'`htex.c - -hitex-htex.obj: htex.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hitex-htex.obj -MD -MP -MF $(DEPDIR)/hitex-htex.Tpo -c -o hitex-htex.obj `if test -f 'htex.c'; then $(CYGPATH_W) 'htex.c'; else $(CYGPATH_W) '$(srcdir)/htex.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/hitex-htex.Tpo $(DEPDIR)/hitex-htex.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='htex.c' object='hitex-htex.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hitex-htex.obj `if test -f 'htex.c'; then $(CYGPATH_W) 'htex.c'; else $(CYGPATH_W) '$(srcdir)/htex.c'; fi` - hitex-hitex.o: hitex.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hitex-hitex.o -MD -MP -MF $(DEPDIR)/hitex-hitex.Tpo -c -o hitex-hitex.o `test -f 'hitex.c' || echo '$(srcdir)/'`hitex.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/hitex-hitex.Tpo $(DEPDIR)/hitex-hitex.Po @@ -18899,10 +18814,6 @@ xetex-dummy.obj: dummy.cxx .l.c: $(AM_V_LEX)$(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE) -shrink-lexer.c: shrink-lexer.l - $(AM_V_LEX) \ - $(SHELL) $(YLWRAP) `test -f 'shrink-lexer.l' || echo '$(srcdir)/'`shrink-lexer.l $(LEX_OUTPUT_ROOT).c shrink-lexer.c -- $(LEX) $(AM_LFLAGS) $(LFLAGS) - .mm.o: @am__fastdepOBJCXX_TRUE@ $(AM_V_OBJCXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepOBJCXX_TRUE@ $(OBJCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @@ -18944,10 +18855,6 @@ xetexdir/libxetex_a-XeTeXFontMgr_Mac.obj: xetexdir/XeTeXFontMgr_Mac.mm .y.c: $(AM_V_YACC)$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h `echo $@ | $(am__yacc_c2h)` y.output $*.output -- $(YACCCOMPILE) -shrink-parser.c: shrink-parser.y - $(AM_V_YACC) \ - $(SHELL) $(YLWRAP) `test -f 'shrink-parser.y' || echo '$(srcdir)/'`shrink-parser.y y.tab.c shrink-parser.c y.tab.h `echo shrink-parser.c | $(am__yacc_c2h)` y.output shrink-parser.output -- $(YACC) $(AM_YFLAGS) $(YFLAGS) - mostlyclean-libtool: -rm -f *.lo @@ -19598,9 +19505,6 @@ mostlyclean-generic: -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: - -rm -f shrink-lexer.c - -rm -f shrink-parser.c - -rm -f shrink-parser.h -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: @@ -19614,6 +19518,8 @@ distclean-generic: -rm -f etexdir/$(am__dirstamp) -rm -f euptexdir/$(DEPDIR)/$(am__dirstamp) -rm -f euptexdir/$(am__dirstamp) + -rm -f hitexdir/$(DEPDIR)/$(am__dirstamp) + -rm -f hitexdir/$(am__dirstamp) -rm -f libmd5/$(DEPDIR)/$(am__dirstamp) -rm -f libmd5/$(am__dirstamp) -rm -f luatexdir/$(DEPDIR)/$(am__dirstamp) @@ -19743,6 +19649,9 @@ distclean-generic: maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." + -rm -f hitexdir/hishrink-lexer.c + -rm -f hitexdir/hishrink-parser.c + -rm -f hitexdir/hishrink-parser.h clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libLIBRARIES \ @@ -19788,16 +19697,8 @@ distclean: distclean-recursive -rm -f ./$(DEPDIR)/gftodvi.Po -rm -f ./$(DEPDIR)/gftopk.Po -rm -f ./$(DEPDIR)/gftype.Po - -rm -f ./$(DEPDIR)/hishrink-hformat.Po - -rm -f ./$(DEPDIR)/hishrink-hishrink.Po - -rm -f ./$(DEPDIR)/hishrink-shrink-lexer.Po - -rm -f ./$(DEPDIR)/hishrink-shrink-parser.Po - -rm -f ./$(DEPDIR)/histretch-hformat.Po -rm -f ./$(DEPDIR)/histretch-histretch.Po - -rm -f ./$(DEPDIR)/hitex-hformat.Po -rm -f ./$(DEPDIR)/hitex-hitex.Po - -rm -f ./$(DEPDIR)/hitex-hput.Po - -rm -f ./$(DEPDIR)/hitex-htex.Po -rm -f ./$(DEPDIR)/initex-callexe.Po -rm -f ./$(DEPDIR)/libluahbtexspecific_a-luainit-hb.Po -rm -f ./$(DEPDIR)/libluahbtexspecific_a-luastuff-hb.Po @@ -19910,6 +19811,8 @@ distclean: distclean-recursive -rm -f eptexdir/$(DEPDIR)/eptex-eptexextra.Po -rm -f etexdir/$(DEPDIR)/etex-etexextra.Po -rm -f euptexdir/$(DEPDIR)/euptex-euptexextra.Po + -rm -f hitexdir/$(DEPDIR)/hishrink-hishrink-lexer.Po + -rm -f hitexdir/$(DEPDIR)/hishrink-hishrink-parser.Po -rm -f libmd5/$(DEPDIR)/a-md5.Po -rm -f libmd5/$(DEPDIR)/md5main-md5main.Po -rm -f luatexdir/$(DEPDIR)/luahbtex-luatex.Po @@ -20567,16 +20470,8 @@ maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/gftodvi.Po -rm -f ./$(DEPDIR)/gftopk.Po -rm -f ./$(DEPDIR)/gftype.Po - -rm -f ./$(DEPDIR)/hishrink-hformat.Po - -rm -f ./$(DEPDIR)/hishrink-hishrink.Po - -rm -f ./$(DEPDIR)/hishrink-shrink-lexer.Po - -rm -f ./$(DEPDIR)/hishrink-shrink-parser.Po - -rm -f ./$(DEPDIR)/histretch-hformat.Po -rm -f ./$(DEPDIR)/histretch-histretch.Po - -rm -f ./$(DEPDIR)/hitex-hformat.Po -rm -f ./$(DEPDIR)/hitex-hitex.Po - -rm -f ./$(DEPDIR)/hitex-hput.Po - -rm -f ./$(DEPDIR)/hitex-htex.Po -rm -f ./$(DEPDIR)/initex-callexe.Po -rm -f ./$(DEPDIR)/libluahbtexspecific_a-luainit-hb.Po -rm -f ./$(DEPDIR)/libluahbtexspecific_a-luastuff-hb.Po @@ -20689,6 +20584,8 @@ maintainer-clean: maintainer-clean-recursive -rm -f eptexdir/$(DEPDIR)/eptex-eptexextra.Po -rm -f etexdir/$(DEPDIR)/etex-etexextra.Po -rm -f euptexdir/$(DEPDIR)/euptex-euptexextra.Po + -rm -f hitexdir/$(DEPDIR)/hishrink-hishrink-lexer.Po + -rm -f hitexdir/$(DEPDIR)/hishrink-hishrink-parser.Po -rm -f libmd5/$(DEPDIR)/a-md5.Po -rm -f libmd5/$(DEPDIR)/md5main-md5main.Po -rm -f luatexdir/$(DEPDIR)/luahbtex-luatex.Po @@ -22122,45 +22019,18 @@ euptrip.diffs: euptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT) euptrip-clean: rm -rf euptripdir +# convenience target to build all the programs here. +hiall: hitex hishrink histretch + $(format_c_h_l_y): format-tangle $(hi_ctangle_sh) format # format-tangle: ctangle$(EXEEXT) hitexdir/format.w tangle-sh $(hi_ctangle_sh) format -$(hitex_c_h): hitex-tangle - $(hi_ctangle_sh) hitex -# -hitex-tangle: ctangle$(EXEEXT) hitexdir/hitex.w tangle-sh - $(hi_ctangle_sh) hitex - -# htex.c needs hitex.h, so depend on the hitex tangle. -$(htex_c_h): htex-tangle hitex-tangle - $(hi_ctangle_sh) htex -# -htex-tangle: ctangle$(EXEEXT) hitexdir/htex.w tangle-sh hitex-tangle - $(hi_ctangle_sh) htex - -# Generating hformat.c using mkhformat. -hformat.c: mkhformat - ./mkhformat >hformat.c || { rm -f hformat.c; exit 1; } - -# Postprocessing lex and yacc files generated by ctangle. -# (SED is defined with AC_PROG_SED) -shrink-parser.y: $(srcdir)/hitexdir/yacc.sed shrink.yacc-in - $(SED) -f $(srcdir)/hitexdir/yacc.sed shrink.yacc-in >shrink-parser.y \ - || { rm -f shrink-parser.y; exit 1; } +# This is our attempt to ensure that bison is run before anything else. # -shrink-lexer.l: $(srcdir)/hitexdir/lex.sed shrink.lex-in - $(SED) -f $(srcdir)/hitexdir/lex.sed shrink.lex-in >shrink-lexer.l \ - || { rm -f shrink-lexer.l; exit 1; } - -# shrink needs the yacc header. It's actually the .o that should be the -# target here, seems to me, but hishrink.o is not used for the object -# name, it's hishrink-hishrink.o (because the program is also named -# hishrink), and adding that here ends up trying to link with -# hishrink-hishrink.o (I don't know), which doesn't exist. Sigh. -hishrink.c: shrink-parser.h shrink-parser.c +$(hishrink_OBJECTS): hitexdir/hishrink-parser.h # still missing diff --git a/Build/source/texk/web2c/hitexdir/am/hitex.am b/Build/source/texk/web2c/hitexdir/am/hitex.am index b82a4cc8648..19713c08ac8 100644 --- a/Build/source/texk/web2c/hitexdir/am/hitex.am +++ b/Build/source/texk/web2c/hitexdir/am/hitex.am @@ -9,21 +9,23 @@ bin_PROGRAMS += hitex hishrink histretch endif HITEX EXTRA_PROGRAMS += hitex hishrink histretch -#kb hitex_CFLAGS = $(AM_CFLAGS) \ -#kb -Wno-parentheses -Wno-maybe-uninitialized -Wno-unused-function -Wno-unused-variable +# convenience target to build all the programs here. +hiall: hitex hishrink histretch + +# We want debugging for the parser, and we use features not in POSIX yacc. +# The result is that we assume bison? Not sure if that's ok. +AM_YFLAGS = -d -v -Wno-yacc + hitex_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) hitex_LDADD = $(KPATHSEA_LIBS) $(ZLIB_LIBS) # histretch_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) histretch_LDADD = $(ZLIB_LIBS) # -hishrink_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) +# The -I$(srcdir)/hitexdir is so the compiler can find the *parser.h file. +hishrink_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) -I$(srcdir)/hitexdir hishrink_LDADD = $(ZLIB_LIBS) -# We want debugging for the parser, and we use features not in POSIX yacc. -# I guess the result is that we assume bison? Not sure if that's ok. -AM_YFLAGS = -d -v -Wno-yacc - # HiTeX CWEB sources hitex_web = hitexdir/format.w hitexdir/htex.w hitexdir/hitex.w @@ -47,40 +49,28 @@ $(format_c_h_l_y): format-tangle format-tangle: ctangle$(EXEEXT) hitexdir/format.w tangle-sh $(hi_ctangle_sh) format -$(hitex_c_h): hitex-tangle - $(hi_ctangle_sh) hitex +# The actual sources for the lexer and parser are in format.w. +# However, to simplify life with Automake (a little), we maintain them +# here as if they were real, direct source files. That is, we update +# them by hand when they change. +# +# We want to do this partly because ultimately we want the generated +# .[ch] files to be saved in $(srcdir), as is done for the other .[ly] +# files, so that builders need not have yacc (bison in this case) and (f)lex. # -hitex-tangle: ctangle$(EXEEXT) hitexdir/hitex.w tangle-sh - $(hi_ctangle_sh) hitex +# The $(srcdir) is not necessary if everything is up to date, +# but can help with the remake if the [.ch] or [.ly] are not present. +hishrink_SOURCES = $(srcdir)/hitexdir/hishrink-lexer.l \ + $(srcdir)/hitexdir/hishrink-parser.y -# htex.c needs hitex.h, so depend on the hitex tangle. -$(htex_c_h): htex-tangle hitex-tangle - $(hi_ctangle_sh) htex +# This is our attempt to ensure that bison is run before anything else. # -htex-tangle: ctangle$(EXEEXT) hitexdir/htex.w tangle-sh hitex-tangle - $(hi_ctangle_sh) htex - -# Generating hformat.c using mkhformat. -hformat.c: mkhformat - ./mkhformat >hformat.c || { rm -f hformat.c; exit 1; } - - - -# Other web2c/*dir/am/*.am engine Makefile fragments define a bunch of -# _OBJECTS variables. This does not seem right to me. Instead, we -# correctly define the _SOURCES. +$(hishrink_OBJECTS): $(srcdir)/hitexdir/hishrink-parser.h # -nodist_hitex_SOURCES = hformat.c hput.c $(htex_c_h) $(hitex_c_h) -nodist_histretch_SOURCES = hformat.c histretch.c -hishrink_SOURCES = lexer.c parser.c parser.h -nodist_hishrink_SOURCES = hformat.c hishrink.c - -# shrink needs the yacc header. It's actually the .o that should be the -# target here, seems to me, but hishrink.o is not used for the object -# name, it's hishrink-hishrink.o (because the program is also named -# hishrink), and adding that here ends up trying to link with -# hishrink-hishrink.o (I don't know), which doesn't exist. Sigh. -#hishrink.c: shrink-parser.h shrink-parser.c +# By the way, the $(BUILT_SOURCES) suggestion in the Automake manual for +# this does not work for us, because we want to be able to invoke +# specific targets (hiall, hitex, hishrink, ...), and $(BUILT_SOURCES) +# is only a dependency on general targets (all, install, ...). EXTRA_DIST += hitexdir/ChangeLog $(hitex_web) diff --git a/Build/source/texk/web2c/hitexdir/format.w b/Build/source/texk/web2c/hitexdir/format.w index 287584f9e63..1a9f6f54a25 100644 --- a/Build/source/texk/web2c/hitexdir/format.w +++ b/Build/source/texk/web2c/hitexdir/format.w @@ -10179,7 +10179,7 @@ The definitions for lex are collected in the file {\tt shrink.l} #include "hput.h" @<enable bison debugging@>@; -#include "parser.h" +#include "hishrink-parser.h" @<scanning macros@>@;@+ @<scanning functions@>@; @@ -10274,7 +10274,7 @@ extern int yylex(void); #include "error.h" #include "hformat.h" #include "hput.h" -#include "parser.h" +#include "hishrink-parser.h" extern void yyset_debug(int lex_debug); extern int yylineno; diff --git a/Build/source/texk/web2c/hitexdir/lexer.c b/Build/source/texk/web2c/hitexdir/hishrink-lexer.c index fa545693833..22a3f4fa4d9 100644 --- a/Build/source/texk/web2c/hitexdir/lexer.c +++ b/Build/source/texk/web2c/hitexdir/hishrink-lexer.c @@ -866,7 +866,7 @@ extern int yydebug; #define YYDEBUG 0 #endif /*:423*/ -#include "parser.h" +#include "hishrink-parser.h" /*22:*/ #define SCAN_UDEC(S) yylval.u= strtoul(S,NULL,10) diff --git a/Build/source/texk/web2c/hitexdir/lexer.l b/Build/source/texk/web2c/hitexdir/hishrink-lexer.l index 048b28c5e95..a73b071561f 100644 --- a/Build/source/texk/web2c/hitexdir/lexer.l +++ b/Build/source/texk/web2c/hitexdir/hishrink-lexer.l @@ -1,28 +1,34 @@ - /*509:*/ + /*509:*/ + %{ - #include "basetypes.h" #include "error.h" #include "hformat.h" #include "hput.h" - /*423:*/ + /*423:*/ + #ifdef DEBUG #define YYDEBUG 1 extern int yydebug; #else #define YYDEBUG 0 #endif - /*:423*/ -#include "parser.h" + /*:423*/ + +#include "hishrink-parser.h" + + /*22:*/ - /*22:*/ #define SCAN_UDEC(S) yylval.u= strtoul(S,NULL,10) - /*:22*/ /*25:*/ + /*:22*/ /*25:*/ + #define SCAN_HEX(S) yylval.u= strtoul(S,NULL,16) - /*:25*/ /*28:*/ + /*:25*/ /*28:*/ + #define SCAN_DEC(S) yylval.i= strtol(S,NULL,10) - /*:28*/ /*31:*/ + /*:28*/ /*31:*/ + #define MAX_STR (1<<10) static char str_buffer[MAX_STR]; static int str_length; @@ -31,139 +37,165 @@ static int str_length; #define STR_ADD(C) STR_PUT(C);RNG("String length",str_length,0,MAX_STR-1) #define STR_END str_buffer[str_length]= 0 #define SCAN_STR yylval.s= str_buffer - /*:31*/ /*40:*/ + /*:31*/ /*40:*/ + #define SCAN_UTF8_1(S) yylval.u= ((S)[0]&0x7F) - /*:40*/ /*42:*/ + /*:40*/ /*42:*/ + #define SCAN_UTF8_2(S) yylval.u= (((S)[0]&0x1F)<<6)+((S)[1]&0x3F) - /*:42*/ /*44:*/ + /*:42*/ /*44:*/ + #define SCAN_UTF8_3(S) yylval.u= (((S)[0]&0x0F)<<12)+(((S)[1]&0x3F)<<6)+((S)[2]&0x3F) - /*:44*/ /*46:*/ + /*:44*/ /*46:*/ + #define SCAN_UTF8_4(S) yylval.u= (((S)[0]&0x03)<<18)+(((S)[1]&0x3F)<<12)+(((S)[2]&0x3F)<<6)+((S)[3]&0x3F) - /*:46*/ /*57:*/ + /*:46*/ /*57:*/ + #define SCAN_DECFLOAT yylval.f= atof(yytext) - /*:57*/ /*60:*/ + /*:57*/ /*60:*/ + #define SCAN_HEXFLOAT yylval.f= xtof(yytext) - /*:60*/ /*152:*/ + /*:60*/ /*152:*/ + #define SCAN_REF(K) yylval.rf.k= K; yylval.rf.n= atoi(yytext+2) static int scan_level= 0; #define SCAN_START yy_push_state(INITIAL);if (1==scan_level++) hpos0= hpos; #define SCAN_END if (scan_level--) yy_pop_state(); else QUIT("Too many '>' in line %d",yylineno) #define SCAN_TXT_START BEGIN(TXT) #define SCAN_TXT_END BEGIN(INITIAL) - /*:152*/ - /*61:*/ + /*:152*/ + + /*61:*/ + float64_t xtof(char*x) -{ - int sign,digits,exp; - uint64_t mantissa= 0; - DBG(DBGFLOAT,"converting %s:\n",x); - /*62:*/ - if(*x=='-'){sign= -1;x++;} - else if(*x=='+'){sign= +1;x++;} - else sign= +1; - DBG(DBGFLOAT,"\tsign=%d\n",sign); - /*:62*/ - x= x+2; - /*63:*/ - digits= 0; - while(*x=='0')x++; - while(*x!='.') - {mantissa= mantissa<<4; - if(*x<'A')mantissa= mantissa+*x-'0'; - else mantissa= mantissa+*x-'A'+10; - x++; - digits++; - } - x++; - exp= 0; - while(*x!=0&&*x!='x') - {mantissa= mantissa<<4; - exp= exp-4; - if(*x<'A')mantissa= mantissa+*x-'0'; - else mantissa= mantissa+*x-'A'+10; - x++; - digits++; - } - DBG(DBGFLOAT,"\tdigits=%d mantissa=0x%"PRIx64", exp=%d\n",digits,mantissa,exp); - /*:63*/ - /*64:*/ - if(mantissa==0)return 0.0; - {int s; - s= digits-DBL_M_BITS/4; - if(s>1) - mantissa= mantissa>>(4*(s-1)); - else if(s<1) - mantissa= mantissa<<(4*(1-s)); - exp= exp+4*(digits-1); - DBG(DBGFLOAT,"\tdigits=%d mantissa=0x%"PRIx64", exp=%d\n",digits,mantissa,exp); - while((mantissa>>DBL_M_BITS)>1){mantissa= mantissa>>1;exp++;} - DBG(DBGFLOAT,"\tdigits=%d mantissa=0x%"PRIx64", exp=%d\n",digits,mantissa,exp); - mantissa= mantissa&~((uint64_t)1<<DBL_M_BITS); - DBG(DBGFLOAT,"\tdigits=%d mantissa=0x%"PRIx64", exp=%d\n",digits,mantissa,exp); - } - /*:64*/ - /*65:*/ - if(*x=='x') - {int s; - x++; - if(*x=='-'){s= -1;x++;} - else if(*x=='+'){s= +1;x++;} - else s= +1; - DBG(DBGFLOAT,"\texpsign=%d\n",s); - DBG(DBGFLOAT,"\texp=%d\n",exp); - while(*x!=0) - {if(*x<'A')exp= exp+4*s*(*x-'0'); - else exp= exp+4*s*(*x-'A'+10); - x++; - DBG(DBGFLOAT,"\texp=%d\n",exp); - } - } - RNG("Floating point exponent",exp,-DBL_EXCESS,DBL_EXCESS); - /*:65*/ - /*66:*/ - {union{float64_t d;uint64_t bits;}u; - if(sign<0)sign= 1;else sign= 0; - exp= exp+DBL_EXCESS; - u.bits= ((uint64_t)sign<<63) - |((uint64_t)exp<<DBL_M_BITS) |mantissa; - DBG(DBGFLOAT," return %f\n",u.d); - return u.d; - } - /*:66*/ - } - /*:61*/ -int yywrap(void){ - return 1;} +{int sign,digits,exp; +uint64_t mantissa= 0; +DBG(DBGFLOAT,"converting %s:\n",x); + /*62:*/ + +if(*x=='-'){sign= -1;x++;} +else if(*x=='+'){sign= +1;x++;} +else sign= +1; +DBG(DBGFLOAT,"\tsign=%d\n",sign); + /*:62*/ + +x= x+2; + /*63:*/ + +digits= 0; +while(*x=='0')x++; +while(*x!='.') +{mantissa= mantissa<<4; +if(*x<'A')mantissa= mantissa+*x-'0'; +else mantissa= mantissa+*x-'A'+10; +x++; +digits++; +} +x++; +exp= 0; +while(*x!=0&&*x!='x') +{mantissa= mantissa<<4; +exp= exp-4; +if(*x<'A')mantissa= mantissa+*x-'0'; +else mantissa= mantissa+*x-'A'+10; +x++; +digits++; +} +DBG(DBGFLOAT,"\tdigits=%d mantissa=0x%"PRIx64", exp=%d\n",digits,mantissa,exp); + /*:63*/ + + /*64:*/ + +if(mantissa==0)return 0.0; +{int s; +s= digits-DBL_M_BITS/4; +if(s> 1) +mantissa= mantissa>>(4*(s-1)); +else if(s<1) +mantissa= mantissa<<(4*(1-s)); +exp= exp+4*(digits-1); +DBG(DBGFLOAT,"\tdigits=%d mantissa=0x%"PRIx64", exp=%d\n",digits,mantissa,exp); +while((mantissa>>DBL_M_BITS)> 1){mantissa= mantissa>>1;exp++;} +DBG(DBGFLOAT,"\tdigits=%d mantissa=0x%"PRIx64", exp=%d\n",digits,mantissa,exp); +mantissa= mantissa&~((uint64_t)1<<DBL_M_BITS); +DBG(DBGFLOAT,"\tdigits=%d mantissa=0x%"PRIx64", exp=%d\n",digits,mantissa,exp); +} + /*:64*/ + + /*65:*/ + +if(*x=='x') +{int s; +x++; +if(*x=='-'){s= -1;x++;} +else if(*x=='+'){s= +1;x++;} +else s= +1; +DBG(DBGFLOAT,"\texpsign=%d\n",s); +DBG(DBGFLOAT,"\texp=%d\n",exp); +while(*x!=0) +{if(*x<'A')exp= exp+4*s*(*x-'0'); +else exp= exp+4*s*(*x-'A'+10); +x++; +DBG(DBGFLOAT,"\texp=%d\n",exp); +} +} +RNG("Floating point exponent",exp,-DBL_EXCESS,DBL_EXCESS); + /*:65*/ + + /*66:*/ + +{union{float64_t d;uint64_t bits;}u; +if(sign<0)sign= 1;else sign= 0; +exp= exp+DBL_EXCESS; +u.bits= ((uint64_t)sign<<63) +|((uint64_t)exp<<DBL_M_BITS)|mantissa; +DBG(DBGFLOAT," return %f\n",u.d); +return u.d; +} + /*:66*/ + +} + /*:61*/ + +int yywrap(void){return 1;} #ifdef _MSC_VER #pragma warning( disable : 4267) #endif - %} %option yylineno batch stack %option debug -%option nounistd nounput noinput noyy_top_state +%option nounistd nounput noinput noyy_top_state + + /*23:*/ - /*23:*/ HEX [0-9A-F] - /*:23*/ /*32:*/ + /*:23*/ /*32:*/ + %x STR - /*:32*/ /*39:*/ + /*:32*/ /*39:*/ + UTF8_1 [\x00-\x7F] - /*:39*/ /*41:*/ + /*:39*/ /*41:*/ + UTF8_2 [\xC0-\xDF][\x80-\xBF] - /*:41*/ /*43:*/ + /*:41*/ /*43:*/ + UTF8_3 [\xE0-\xEF][\x80-\xBF][\x80-\xBF] - /*:43*/ /*45:*/ + /*:43*/ /*45:*/ + UTF8_4 [\xF0-\xF7][\x80-\xBF][\x80-\xBF][\x80-\xBF] - /*:45*/ /*149:*/ + /*:45*/ /*149:*/ + %x TXT - /*:149*/ + /*:149*/ + %% - /*3:*/ + /*3:*/ + "<" SCAN_START;return START; ">" SCAN_END;return END; glyph return GLYPH; @@ -171,11 +203,14 @@ glyph return GLYPH; \*(0|[1-9][0-9]*) SCAN_UDEC(yytext+1);return REFERENCE; [[:space:]] ; \([^()\n]*[)\n] ; - /*:3*/ /*24:*/ + /*:3*/ /*24:*/ + 0x{HEX}+ SCAN_HEX(yytext+2);return UNSIGNED; - /*:24*/ /*27:*/ + /*:24*/ /*27:*/ + [+-](0|[1-9][0-9]*) SCAN_DEC(yytext);return SIGNED; - /*:27*/ /*34:*/ + /*:27*/ /*34:*/ + ' STR_START;BEGIN(STR); <STR>{ ' STR_END;SCAN_STR;BEGIN(INITIAL);return STRING; @@ -186,7 +221,8 @@ glyph return GLYPH; } - /*:34*/ /*48:*/ + /*:34*/ /*48:*/ + ''' STR_START;STR_PUT('\'');BEGIN(STR); '''' SCAN_UTF8_1(yytext+1);return CHARCODE; '[\x20-\x7E]'' STR_START;STR_PUT(yytext[1]);STR_PUT('\'');BEGIN(STR); @@ -195,40 +231,51 @@ glyph return GLYPH; '{UTF8_2}' SCAN_UTF8_2(yytext+1);return CHARCODE; '{UTF8_3}' SCAN_UTF8_3(yytext+1);return CHARCODE; '{UTF8_4}' SCAN_UTF8_4(yytext+1);return CHARCODE; - /*:48*/ /*55:*/ + /*:48*/ /*55:*/ + [+-]?[0-9]+\.[0-9]+(e[+-]?[0-9])? SCAN_DECFLOAT;return FPNUM; - /*:55*/ /*59:*/ + /*:55*/ /*59:*/ + [+-]?0x{HEX}+\.{HEX}+(x[+-]?{HEX}+)? SCAN_HEXFLOAT;return FPNUM; - /*:59*/ /*80:*/ + /*:59*/ /*80:*/ + dimen return DIMEN; pt return PT; mm return MM; in return INCH; - /*:80*/ /*88:*/ + /*:80*/ /*88:*/ + xdimen return XDIMEN; h return H; v return V; - /*:88*/ /*99:*/ + /*:88*/ /*99:*/ + fil return FIL; fill return FILL; filll return FILLL; - /*:99*/ /*103:*/ + /*:99*/ /*103:*/ + penalty return PENALTY; int return INTEGER; - /*:103*/ /*109:*/ + /*:103*/ /*109:*/ + language return LANGUAGE; - /*:109*/ /*115:*/ + /*:109*/ /*115:*/ + rule return RULE; "|" return RUNNING; "_" return RUNNING; - /*:115*/ /*124:*/ + /*:115*/ /*124:*/ + kern return KERN; ! return EXPLICIT; - /*:124*/ /*133:*/ + /*:124*/ /*133:*/ + glue return GLUE; plus return PLUS; minus return MINUS; - /*:133*/ /*151:*/ + /*:133*/ /*151:*/ + \" SCAN_TXT_START;return TXT_START; <TXT>{ @@ -272,11 +319,13 @@ minus return MINUS; {UTF8_3} SCAN_UTF8_3(yytext);return TXT_CC; {UTF8_4} SCAN_UTF8_4(yytext);return TXT_CC; } - /*:151*/ /*162:*/ + /*:151*/ /*162:*/ + hbox return HBOX; vbox return VBOX; shifted return SHIFTED; - /*:162*/ /*170:*/ + /*:162*/ /*170:*/ + hpack return HPACK; hset return HSET; vpack return VPACK; @@ -284,67 +333,90 @@ vset return VSET; add return ADD; to return TO; depth return DEPTH; - /*:170*/ /*175:*/ + /*:170*/ /*175:*/ + leaders return LEADERS; align return ALIGN; center return CENTER; expand return EXPAND; - /*:175*/ /*182:*/ + /*:175*/ /*182:*/ + baseline return BASELINE; - /*:182*/ /*189:*/ + /*:182*/ /*189:*/ + ligature return LIGATURE; - /*:189*/ /*197:*/ + /*:189*/ /*197:*/ + disc return DISC; - /*:197*/ /*205:*/ + /*:197*/ /*205:*/ + par return PAR; - /*:205*/ /*210:*/ + /*:205*/ /*210:*/ + math return MATH; - /*:210*/ /*215:*/ + /*:210*/ /*215:*/ + on return ON; off return OFF; - /*:215*/ /*219:*/ + /*:215*/ /*219:*/ + adjust return ADJUST; - /*:219*/ /*223:*/ + /*:219*/ /*223:*/ + table return TABLE; item return ITEM; row return ITEM; column return ITEM; - /*:223*/ /*230:*/ + /*:223*/ /*230:*/ + image return IMAGE; - /*:230*/ /*247:*/ + /*:230*/ /*247:*/ + label return LABEL; bot return BOT; mid return MID; - /*:247*/ /*261:*/ + /*:247*/ /*261:*/ + link return LINK; - /*:261*/ /*271:*/ + /*:261*/ /*271:*/ + outline return OUTLINE; - /*:271*/ /*278:*/ + /*:271*/ /*278:*/ + stream if(section_no==1)return STREAMDEF;else return STREAM; first return FIRST; last return LAST; top return TOP; \* return NOREFERENCE; - /*:278*/ /*288:*/ + /*:278*/ /*288:*/ + page return PAGE; - /*:288*/ /*296:*/ + /*:288*/ /*296:*/ + range return RANGE; - /*:296*/ /*323:*/ + /*:296*/ /*323:*/ + directory return DIRECTORY; section return SECTION; - /*:323*/ /*342:*/ + /*:323*/ /*342:*/ + definitions return DEFINITIONS; - /*:342*/ /*350:*/ + /*:342*/ /*350:*/ + max return MAX; - /*:350*/ /*365:*/ + /*:350*/ /*365:*/ + param return PARAM; - /*:365*/ /*374:*/ + /*:365*/ /*374:*/ + font return FONT; - /*:374*/ /*402:*/ + /*:374*/ /*402:*/ + content return CONTENT; - /*:402*/ + /*:402*/ + [a-z]+ QUIT("Unexpected keyword '%s' in line %d",yytext,yylineno); -. QUIT("Unexpected character '%c' (0x%02X) in line %d",yytext[0]>' '?yytext[0]:' ',yytext[0],yylineno); +. QUIT("Unexpected character '%c' (0x%02X) in line %d",yytext[0]> ' '?yytext[0]:' ',yytext[0],yylineno); %% - /*:509*/ + /*:509*/ diff --git a/Build/source/texk/web2c/hitexdir/hishrink-parser.c b/Build/source/texk/web2c/hitexdir/hishrink-parser.c new file mode 100644 index 00000000000..913a5ab5684 --- /dev/null +++ b/Build/source/texk/web2c/hitexdir/hishrink-parser.c @@ -0,0 +1,3896 @@ +/* A Bison parser, made by GNU Bison 3.8.2. */ + +/* Bison implementation for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 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 3 of the License, 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, see <https://www.gnu.org/licenses/>. */ + +/* 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. */ + +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + +/* 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, and Bison version. */ +#define YYBISON 30802 + +/* Bison version string. */ +#define YYBISON_VERSION "3.8.2" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 0 + +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + + + + +/* First part of user prologue. */ +#line 3 "../../../texk/web2c/hitexdir/hishrink-parser.y" + +#include "basetypes.h" +#include <string.h> +#include <math.h> +#include "error.h" +#include "hformat.h" +#include "hput.h" +extern char**hfont_name; + +/*356:*/ + +uint32_t definition_bits[0x100/32][32]= {{0}}; + +#define SET_DBIT(N,K) ((N)> 0xFF?1:(definition_bits[N/32][K]|= (1<<((N)&(32-1))))) +#define GET_DBIT(N,K) ((N)> 0xFF?1:((definition_bits[N/32][K]>>((N)&(32-1)))&1)) +#define DEF(D,K,N) (D).k= K; (D).n= (N);SET_DBIT((D).n,(D).k);\ + DBG(DBGDEF,"Defining %s %d\n",definition_name[(D).k],(D).n);\ + RNG("Definition",(D).n,max_fixed[(D).k]+1,max_ref[(D).k]); +#define REF(K,N) REF_RNG(K,N);if(!GET_DBIT(N,K)) \ + QUIT("Reference %d to %s before definition",(N),definition_name[K]) +/*:356*//*360:*/ + +#define DEF_REF(D,K,M,N) DEF(D,K,M);\ +if ((M)> max_default[K]) QUIT("Defining non default reference %d for %s",M,definition_name[K]); \ +if ((N)> max_fixed[K]) QUIT("Defining reference %d for %s by non fixed reference %d",M,definition_name[K],N); +/*:360*/ + + +extern void hset_entry(entry_t*e,uint16_t i,uint32_t size, +uint32_t xsize,char*file_name); + +/*423:*/ + +#ifdef DEBUG +#define YYDEBUG 1 +extern int yydebug; +#else +#define YYDEBUG 0 +#endif +/*:423*/ + +extern int yylex(void); + +/*352:*/ + +void hset_max(kind_t k,int n) +{DBG(DBGDEF,"Setting max %s to %d\n",definition_name[k],n); +RNG("Maximum",n,max_fixed[k]+1,MAX_REF(k)); +if(n> max_ref[k]) +max_ref[k]= n; +} +/*:352*//*363:*/ + +void check_param_def(ref_t*df) +{if(df->k!=int_kind&&df->k!=dimen_kind&&df->k!=glue_kind) +QUIT("Kind %s not allowed in parameter list",definition_name[df->k]); +if(df->n<=max_fixed[df->k]||max_default[df->k]<df->n) +QUIT("Parameter %d for %s not allowed in parameter list",df->n,definition_name[df->k]); +} +/*:363*//*422:*/ + +extern int yylineno; +int yyerror(const char*msg) +{QUIT(" in line %d %s",yylineno,msg); +return 0; +} +/*:422*/ + + + +#line 142 "../../../texk/web2c/hitexdir/hishrink-parser.c" + +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast<Type> (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif +# ifndef YY_NULLPTR +# if defined __cplusplus +# if 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# else +# define YY_NULLPTR ((void*)0) +# endif +# endif + +/* Use api.header.include to #include this header + instead of duplicating it here. */ +#ifndef YY_YY__TEXK_WEB_C_HITEXDIR_HISHRINK_PARSER_H_INCLUDED +# define YY_YY__TEXK_WEB_C_HITEXDIR_HISHRINK_PARSER_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int yydebug; +#endif + +/* Token kinds. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + START = 258, /* "<" */ + END = 259, /* ">" */ + GLYPH = 260, /* "glyph" */ + UNSIGNED = 261, /* UNSIGNED */ + REFERENCE = 262, /* REFERENCE */ + SIGNED = 263, /* SIGNED */ + STRING = 264, /* STRING */ + CHARCODE = 265, /* CHARCODE */ + FPNUM = 266, /* FPNUM */ + DIMEN = 267, /* "dimen" */ + PT = 268, /* "pt" */ + MM = 269, /* "mm" */ + INCH = 270, /* "in" */ + XDIMEN = 271, /* "xdimen" */ + H = 272, /* "h" */ + V = 273, /* "v" */ + FIL = 274, /* "fil" */ + FILL = 275, /* "fill" */ + FILLL = 276, /* "filll" */ + PENALTY = 277, /* "penalty" */ + INTEGER = 278, /* "int" */ + LANGUAGE = 279, /* "language" */ + RULE = 280, /* "rule" */ + RUNNING = 281, /* "|" */ + KERN = 282, /* "kern" */ + EXPLICIT = 283, /* "!" */ + GLUE = 284, /* "glue" */ + PLUS = 285, /* "plus" */ + MINUS = 286, /* "minus" */ + TXT_START = 287, /* TXT_START */ + TXT_END = 288, /* TXT_END */ + TXT_IGNORE = 289, /* TXT_IGNORE */ + TXT_FONT_GLUE = 290, /* TXT_FONT_GLUE */ + TXT_FONT_HYPHEN = 291, /* TXT_FONT_HYPHEN */ + TXT_FONT = 292, /* TXT_FONT */ + TXT_LOCAL = 293, /* TXT_LOCAL */ + TXT_GLOBAL = 294, /* TXT_GLOBAL */ + TXT_CC = 295, /* TXT_CC */ + HBOX = 296, /* "hbox" */ + VBOX = 297, /* "vbox" */ + SHIFTED = 298, /* "shifted" */ + HPACK = 299, /* "hpack" */ + HSET = 300, /* "hset" */ + VPACK = 301, /* "vpack" */ + VSET = 302, /* "vset" */ + DEPTH = 303, /* "depth" */ + ADD = 304, /* "add" */ + TO = 305, /* "to" */ + LEADERS = 306, /* "leaders" */ + ALIGN = 307, /* "align" */ + CENTER = 308, /* "center" */ + EXPAND = 309, /* "expand" */ + BASELINE = 310, /* "baseline" */ + LIGATURE = 311, /* "ligature" */ + DISC = 312, /* "disc" */ + PAR = 313, /* "par" */ + MATH = 314, /* "math" */ + ON = 315, /* "on" */ + OFF = 316, /* "off" */ + ADJUST = 317, /* "adjust" */ + TABLE = 318, /* "table" */ + ITEM = 319, /* "item" */ + IMAGE = 320, /* "image" */ + LABEL = 321, /* "label" */ + BOT = 322, /* "bot" */ + MID = 323, /* "mid" */ + LINK = 324, /* "link" */ + OUTLINE = 325, /* "outline" */ + STREAM = 326, /* "stream" */ + STREAMDEF = 327, /* "stream (definition)" */ + FIRST = 328, /* "first" */ + LAST = 329, /* "last" */ + TOP = 330, /* "top" */ + NOREFERENCE = 331, /* "*" */ + PAGE = 332, /* "page" */ + RANGE = 333, /* "range" */ + DIRECTORY = 334, /* "directory" */ + SECTION = 335, /* "entry" */ + DEFINITIONS = 336, /* "definitions" */ + MAX = 337, /* "max" */ + PARAM = 338, /* "param" */ + FONT = 339, /* "font" */ + CONTENT = 340 /* "content" */ + }; + typedef enum yytokentype yytoken_kind_t; +#endif +/* Token kinds. */ +#define YYEMPTY -2 +#define YYEOF 0 +#define YYerror 256 +#define YYUNDEF 257 +#define START 258 +#define END 259 +#define GLYPH 260 +#define UNSIGNED 261 +#define REFERENCE 262 +#define SIGNED 263 +#define STRING 264 +#define CHARCODE 265 +#define FPNUM 266 +#define DIMEN 267 +#define PT 268 +#define MM 269 +#define INCH 270 +#define XDIMEN 271 +#define H 272 +#define V 273 +#define FIL 274 +#define FILL 275 +#define FILLL 276 +#define PENALTY 277 +#define INTEGER 278 +#define LANGUAGE 279 +#define RULE 280 +#define RUNNING 281 +#define KERN 282 +#define EXPLICIT 283 +#define GLUE 284 +#define PLUS 285 +#define MINUS 286 +#define TXT_START 287 +#define TXT_END 288 +#define TXT_IGNORE 289 +#define TXT_FONT_GLUE 290 +#define TXT_FONT_HYPHEN 291 +#define TXT_FONT 292 +#define TXT_LOCAL 293 +#define TXT_GLOBAL 294 +#define TXT_CC 295 +#define HBOX 296 +#define VBOX 297 +#define SHIFTED 298 +#define HPACK 299 +#define HSET 300 +#define VPACK 301 +#define VSET 302 +#define DEPTH 303 +#define ADD 304 +#define TO 305 +#define LEADERS 306 +#define ALIGN 307 +#define CENTER 308 +#define EXPAND 309 +#define BASELINE 310 +#define LIGATURE 311 +#define DISC 312 +#define PAR 313 +#define MATH 314 +#define ON 315 +#define OFF 316 +#define ADJUST 317 +#define TABLE 318 +#define ITEM 319 +#define IMAGE 320 +#define LABEL 321 +#define BOT 322 +#define MID 323 +#define LINK 324 +#define OUTLINE 325 +#define STREAM 326 +#define STREAMDEF 327 +#define FIRST 328 +#define LAST 329 +#define TOP 330 +#define NOREFERENCE 331 +#define PAGE 332 +#define RANGE 333 +#define DIRECTORY 334 +#define SECTION 335 +#define DEFINITIONS 336 +#define MAX 337 +#define PARAM 338 +#define FONT 339 +#define CONTENT 340 + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +union YYSTYPE +{ +#line 78 "../../../texk/web2c/hitexdir/hishrink-parser.y" +uint32_t u;int32_t i;char*s;float64_t f;glyph_t c; +dimen_t d;stretch_t st;xdimen_t xd;kern_t kt; +rule_t r;glue_t g;image_t x; +list_t l;box_t h;disc_t dc;lig_t lg; +ref_t rf;info_t info;order_t o;bool b; + +#line 372 "../../../texk/web2c/hitexdir/hishrink-parser.c" + +}; +typedef union YYSTYPE YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif + + +extern YYSTYPE yylval; + + +int yyparse (void); + + +#endif /* !YY_YY__TEXK_WEB_C_HITEXDIR_HISHRINK_PARSER_H_INCLUDED */ +/* Symbol kind. */ +enum yysymbol_kind_t +{ + YYSYMBOL_YYEMPTY = -2, + YYSYMBOL_YYEOF = 0, /* "end of file" */ + YYSYMBOL_YYerror = 1, /* error */ + YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ + YYSYMBOL_START = 3, /* "<" */ + YYSYMBOL_END = 4, /* ">" */ + YYSYMBOL_GLYPH = 5, /* "glyph" */ + YYSYMBOL_UNSIGNED = 6, /* UNSIGNED */ + YYSYMBOL_REFERENCE = 7, /* REFERENCE */ + YYSYMBOL_SIGNED = 8, /* SIGNED */ + YYSYMBOL_STRING = 9, /* STRING */ + YYSYMBOL_CHARCODE = 10, /* CHARCODE */ + YYSYMBOL_FPNUM = 11, /* FPNUM */ + YYSYMBOL_DIMEN = 12, /* "dimen" */ + YYSYMBOL_PT = 13, /* "pt" */ + YYSYMBOL_MM = 14, /* "mm" */ + YYSYMBOL_INCH = 15, /* "in" */ + YYSYMBOL_XDIMEN = 16, /* "xdimen" */ + YYSYMBOL_H = 17, /* "h" */ + YYSYMBOL_V = 18, /* "v" */ + YYSYMBOL_FIL = 19, /* "fil" */ + YYSYMBOL_FILL = 20, /* "fill" */ + YYSYMBOL_FILLL = 21, /* "filll" */ + YYSYMBOL_PENALTY = 22, /* "penalty" */ + YYSYMBOL_INTEGER = 23, /* "int" */ + YYSYMBOL_LANGUAGE = 24, /* "language" */ + YYSYMBOL_RULE = 25, /* "rule" */ + YYSYMBOL_RUNNING = 26, /* "|" */ + YYSYMBOL_KERN = 27, /* "kern" */ + YYSYMBOL_EXPLICIT = 28, /* "!" */ + YYSYMBOL_GLUE = 29, /* "glue" */ + YYSYMBOL_PLUS = 30, /* "plus" */ + YYSYMBOL_MINUS = 31, /* "minus" */ + YYSYMBOL_TXT_START = 32, /* TXT_START */ + YYSYMBOL_TXT_END = 33, /* TXT_END */ + YYSYMBOL_TXT_IGNORE = 34, /* TXT_IGNORE */ + YYSYMBOL_TXT_FONT_GLUE = 35, /* TXT_FONT_GLUE */ + YYSYMBOL_TXT_FONT_HYPHEN = 36, /* TXT_FONT_HYPHEN */ + YYSYMBOL_TXT_FONT = 37, /* TXT_FONT */ + YYSYMBOL_TXT_LOCAL = 38, /* TXT_LOCAL */ + YYSYMBOL_TXT_GLOBAL = 39, /* TXT_GLOBAL */ + YYSYMBOL_TXT_CC = 40, /* TXT_CC */ + YYSYMBOL_HBOX = 41, /* "hbox" */ + YYSYMBOL_VBOX = 42, /* "vbox" */ + YYSYMBOL_SHIFTED = 43, /* "shifted" */ + YYSYMBOL_HPACK = 44, /* "hpack" */ + YYSYMBOL_HSET = 45, /* "hset" */ + YYSYMBOL_VPACK = 46, /* "vpack" */ + YYSYMBOL_VSET = 47, /* "vset" */ + YYSYMBOL_DEPTH = 48, /* "depth" */ + YYSYMBOL_ADD = 49, /* "add" */ + YYSYMBOL_TO = 50, /* "to" */ + YYSYMBOL_LEADERS = 51, /* "leaders" */ + YYSYMBOL_ALIGN = 52, /* "align" */ + YYSYMBOL_CENTER = 53, /* "center" */ + YYSYMBOL_EXPAND = 54, /* "expand" */ + YYSYMBOL_BASELINE = 55, /* "baseline" */ + YYSYMBOL_LIGATURE = 56, /* "ligature" */ + YYSYMBOL_DISC = 57, /* "disc" */ + YYSYMBOL_PAR = 58, /* "par" */ + YYSYMBOL_MATH = 59, /* "math" */ + YYSYMBOL_ON = 60, /* "on" */ + YYSYMBOL_OFF = 61, /* "off" */ + YYSYMBOL_ADJUST = 62, /* "adjust" */ + YYSYMBOL_TABLE = 63, /* "table" */ + YYSYMBOL_ITEM = 64, /* "item" */ + YYSYMBOL_IMAGE = 65, /* "image" */ + YYSYMBOL_LABEL = 66, /* "label" */ + YYSYMBOL_BOT = 67, /* "bot" */ + YYSYMBOL_MID = 68, /* "mid" */ + YYSYMBOL_LINK = 69, /* "link" */ + YYSYMBOL_OUTLINE = 70, /* "outline" */ + YYSYMBOL_STREAM = 71, /* "stream" */ + YYSYMBOL_STREAMDEF = 72, /* "stream (definition)" */ + YYSYMBOL_FIRST = 73, /* "first" */ + YYSYMBOL_LAST = 74, /* "last" */ + YYSYMBOL_TOP = 75, /* "top" */ + YYSYMBOL_NOREFERENCE = 76, /* "*" */ + YYSYMBOL_PAGE = 77, /* "page" */ + YYSYMBOL_RANGE = 78, /* "range" */ + YYSYMBOL_DIRECTORY = 79, /* "directory" */ + YYSYMBOL_SECTION = 80, /* "entry" */ + YYSYMBOL_DEFINITIONS = 81, /* "definitions" */ + YYSYMBOL_MAX = 82, /* "max" */ + YYSYMBOL_PARAM = 83, /* "param" */ + YYSYMBOL_FONT = 84, /* "font" */ + YYSYMBOL_CONTENT = 85, /* "content" */ + YYSYMBOL_YYACCEPT = 86, /* $accept */ + YYSYMBOL_glyph = 87, /* glyph */ + YYSYMBOL_content_node = 88, /* content_node */ + YYSYMBOL_start = 89, /* start */ + YYSYMBOL_integer = 90, /* integer */ + YYSYMBOL_string = 91, /* string */ + YYSYMBOL_number = 92, /* number */ + YYSYMBOL_dimension = 93, /* dimension */ + YYSYMBOL_xdimen = 94, /* xdimen */ + YYSYMBOL_xdimen_node = 95, /* xdimen_node */ + YYSYMBOL_order = 96, /* order */ + YYSYMBOL_stretch = 97, /* stretch */ + YYSYMBOL_penalty = 98, /* penalty */ + YYSYMBOL_rule_dimension = 99, /* rule_dimension */ + YYSYMBOL_rule = 100, /* rule */ + YYSYMBOL_rule_node = 101, /* rule_node */ + YYSYMBOL_explicit = 102, /* explicit */ + YYSYMBOL_kern = 103, /* kern */ + YYSYMBOL_plus = 104, /* plus */ + YYSYMBOL_minus = 105, /* minus */ + YYSYMBOL_glue = 106, /* glue */ + YYSYMBOL_glue_node = 107, /* glue_node */ + YYSYMBOL_position = 108, /* position */ + YYSYMBOL_content_list = 109, /* content_list */ + YYSYMBOL_estimate = 110, /* estimate */ + YYSYMBOL_list = 111, /* list */ + YYSYMBOL_112_1 = 112, /* $@1 */ + YYSYMBOL_text = 113, /* text */ + YYSYMBOL_txt = 114, /* txt */ + YYSYMBOL_115_2 = 115, /* $@2 */ + YYSYMBOL_box_dimen = 116, /* box_dimen */ + YYSYMBOL_box_shift = 117, /* box_shift */ + YYSYMBOL_box_glue_set = 118, /* box_glue_set */ + YYSYMBOL_box = 119, /* box */ + YYSYMBOL_hbox_node = 120, /* hbox_node */ + YYSYMBOL_vbox_node = 121, /* vbox_node */ + YYSYMBOL_box_flex = 122, /* box_flex */ + YYSYMBOL_xbox = 123, /* xbox */ + YYSYMBOL_box_goal = 124, /* box_goal */ + YYSYMBOL_hpack = 125, /* hpack */ + YYSYMBOL_vpack = 126, /* vpack */ + YYSYMBOL_127_3 = 127, /* $@3 */ + YYSYMBOL_vxbox_node = 128, /* vxbox_node */ + YYSYMBOL_hxbox_node = 129, /* hxbox_node */ + YYSYMBOL_ltype = 130, /* ltype */ + YYSYMBOL_leaders = 131, /* leaders */ + YYSYMBOL_baseline = 132, /* baseline */ + YYSYMBOL_133_4 = 133, /* $@4 */ + YYSYMBOL_cc_list = 134, /* cc_list */ + YYSYMBOL_lig_cc = 135, /* lig_cc */ + YYSYMBOL_ref = 136, /* ref */ + YYSYMBOL_ligature = 137, /* ligature */ + YYSYMBOL_138_5 = 138, /* $@5 */ + YYSYMBOL_replace_count = 139, /* replace_count */ + YYSYMBOL_disc = 140, /* disc */ + YYSYMBOL_disc_node = 141, /* disc_node */ + YYSYMBOL_par_dimen = 142, /* par_dimen */ + YYSYMBOL_par = 143, /* par */ + YYSYMBOL_144_6 = 144, /* $@6 */ + YYSYMBOL_math = 145, /* math */ + YYSYMBOL_on_off = 146, /* on_off */ + YYSYMBOL_span_count = 147, /* span_count */ + YYSYMBOL_table = 148, /* table */ + YYSYMBOL_image_dimen = 149, /* image_dimen */ + YYSYMBOL_image = 150, /* image */ + YYSYMBOL_max_value = 151, /* max_value */ + YYSYMBOL_placement = 152, /* placement */ + YYSYMBOL_def_node = 153, /* def_node */ + YYSYMBOL_stream_link = 154, /* stream_link */ + YYSYMBOL_stream_split = 155, /* stream_split */ + YYSYMBOL_stream_info = 156, /* stream_info */ + YYSYMBOL_157_7 = 157, /* $@7 */ + YYSYMBOL_stream_type = 158, /* stream_type */ + YYSYMBOL_stream_def_node = 159, /* stream_def_node */ + YYSYMBOL_stream_ins_node = 160, /* stream_ins_node */ + YYSYMBOL_stream = 161, /* stream */ + YYSYMBOL_page_priority = 162, /* page_priority */ + YYSYMBOL_stream_def_list = 163, /* stream_def_list */ + YYSYMBOL_page = 164, /* page */ + YYSYMBOL_165_8 = 165, /* $@8 */ + YYSYMBOL_166_9 = 166, /* $@9 */ + YYSYMBOL_hint = 167, /* hint */ + YYSYMBOL_directory_section = 168, /* directory_section */ + YYSYMBOL_169_10 = 169, /* $@10 */ + YYSYMBOL_entry_list = 170, /* entry_list */ + YYSYMBOL_entry = 171, /* entry */ + YYSYMBOL_definition_section = 172, /* definition_section */ + YYSYMBOL_173_11 = 173, /* $@11 */ + YYSYMBOL_definition_list = 174, /* definition_list */ + YYSYMBOL_max_definitions = 175, /* max_definitions */ + YYSYMBOL_max_list = 176, /* max_list */ + YYSYMBOL_def_list = 177, /* def_list */ + YYSYMBOL_parameters = 178, /* parameters */ + YYSYMBOL_empty_param_list = 179, /* empty_param_list */ + YYSYMBOL_non_empty_param_list = 180, /* non_empty_param_list */ + YYSYMBOL_181_12 = 181, /* $@12 */ + YYSYMBOL_font = 182, /* font */ + YYSYMBOL_font_head = 183, /* font_head */ + YYSYMBOL_font_param_list = 184, /* font_param_list */ + YYSYMBOL_font_param = 185, /* font_param */ + YYSYMBOL_fref = 186, /* fref */ + YYSYMBOL_xdimen_ref = 187, /* xdimen_ref */ + YYSYMBOL_param_ref = 188, /* param_ref */ + YYSYMBOL_stream_ref = 189, /* stream_ref */ + YYSYMBOL_content_section = 190, /* content_section */ + YYSYMBOL_191_13 = 191 /* $@13 */ +}; +typedef enum yysymbol_kind_t yysymbol_kind_t; + + + + +#ifdef short +# undef short +#endif + +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + <limits.h> and (if available) <stdint.h> are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include <limits.h> /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include <stdint.h> /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif +#endif + +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; +#else +typedef signed char yytype_int8; +#endif + +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; +#else +typedef short yytype_int16; +#endif + +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 +#endif + +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; +#else +typedef short yytype_uint8; +#endif + +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; +#else +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif +#endif + +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned +# endif +#endif + +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + + +/* Stored state numbers (used for stacks). */ +typedef yytype_int16 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; + +#ifndef YY_ +# if defined YYENABLE_NLS && 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 + + +#ifndef YY_ATTRIBUTE_PURE +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED +# endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YY_USE(E) ((void) (E)) +#else +# define YY_USE(E) /* empty */ +#endif + +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__ +# if __GNUC__ * 100 + __GNUC_MINOR__ < 407 +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") +# else +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# endif +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") +#else +# define YY_INITIAL_VALUE(Value) Value +#endif +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + + +#define YY_ASSERT(E) ((void) (0 && (E))) + +#if 1 + +/* 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 EXIT_SUCCESS +# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ + /* Use EXIT_SUCCESS as a witness for stdlib.h. */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (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 EXIT_SUCCESS \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined EXIT_SUCCESS +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined EXIT_SUCCESS +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* 1 */ + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yy_state_t yyss_alloc; + YYSTYPE yyvs_alloc; +}; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +# define YYCOPY_NEEDED 1 + +/* 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_alloc, Stack) \ + do \ + { \ + YYPTRDIFF_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ + } \ + while (0) + +#endif + +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED +/* Copy COUNT objects from SRC to DST. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(Dst, Src, Count) \ + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) +# else +# define YYCOPY(Dst, Src, Count) \ + do \ + { \ + YYPTRDIFF_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (Dst)[yyi] = (Src)[yyi]; \ + } \ + while (0) +# endif +# endif +#endif /* !YYCOPY_NEEDED */ + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 5 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 657 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 86 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 106 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 266 +/* YYNSTATES -- Number of states. */ +#define YYNSTATES 566 + +/* YYMAXUTOK -- Last valid token kind. */ +#define YYMAXUTOK 340 + + +/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, with out-of-bounds checking. */ +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK \ + ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ + : YYSYMBOL_YYUNDEF) + +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex. */ +static const yytype_int8 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, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85 +}; + +#if YYDEBUG +/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ +static const yytype_int16 yyrline[] = +{ + 0, 306, 306, 307, 308, 311, 311, 314, 317, 317, + 322, 322, 322, 325, 326, 327, 330, 331, 332, 333, + 337, 341, 341, 341, 341, 343, 346, 347, 350, 350, + 351, 355, 356, 359, 359, 360, 361, 364, 364, 365, + 365, 366, 367, 369, 374, 375, 376, 377, 378, 379, + 385, 384, 389, 389, 391, 392, 393, 394, 395, 396, + 397, 398, 398, 402, 404, 405, 407, 408, 409, 412, + 414, 415, 416, 416, 419, 420, 421, 423, 424, 425, + 426, 428, 429, 429, 431, 432, 435, 436, 438, 438, + 441, 441, 441, 441, 442, 443, 444, 445, 448, 448, + 453, 457, 457, 458, 459, 460, 461, 461, 464, 467, + 468, 470, 472, 473, 476, 479, 482, 483, 484, 485, + 486, 486, 487, 488, 490, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 503, 506, 506, 507, 510, 513, + 514, 515, 516, 518, 519, 521, 524, 524, 525, 526, + 529, 535, 535, 535, 535, 536, 540, 544, 553, 553, + 554, 555, 555, 557, 557, 557, 557, 559, 563, 566, + 566, 569, 570, 571, 572, 576, 577, 579, 579, 581, + 581, 581, 587, 588, 591, 594, 594, 595, 595, 596, + 600, 600, 603, 603, 606, 635, 635, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 675, 676, + 677, 680, 681, 682, 685, 686, 686, 691, 693, 696, + 696, 699, 700, 701, 702, 703, 704, 705, 706, 708, + 711, 712, 713, 717, 718, 720, 722, 723, 724, 725, + 726, 727, 728, 729, 731, 737, 737 +}; +#endif + +/** Accessing symbol of state STATE. */ +#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) + +#if 1 +/* The user-facing name of the symbol whose (internal) number is + YYSYMBOL. No bounds checking. */ +static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; + +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "\"end of file\"", "error", "\"invalid token\"", "\"<\"", "\">\"", + "\"glyph\"", "UNSIGNED", "REFERENCE", "SIGNED", "STRING", "CHARCODE", + "FPNUM", "\"dimen\"", "\"pt\"", "\"mm\"", "\"in\"", "\"xdimen\"", + "\"h\"", "\"v\"", "\"fil\"", "\"fill\"", "\"filll\"", "\"penalty\"", + "\"int\"", "\"language\"", "\"rule\"", "\"|\"", "\"kern\"", "\"!\"", + "\"glue\"", "\"plus\"", "\"minus\"", "TXT_START", "TXT_END", + "TXT_IGNORE", "TXT_FONT_GLUE", "TXT_FONT_HYPHEN", "TXT_FONT", + "TXT_LOCAL", "TXT_GLOBAL", "TXT_CC", "\"hbox\"", "\"vbox\"", + "\"shifted\"", "\"hpack\"", "\"hset\"", "\"vpack\"", "\"vset\"", + "\"depth\"", "\"add\"", "\"to\"", "\"leaders\"", "\"align\"", + "\"center\"", "\"expand\"", "\"baseline\"", "\"ligature\"", "\"disc\"", + "\"par\"", "\"math\"", "\"on\"", "\"off\"", "\"adjust\"", "\"table\"", + "\"item\"", "\"image\"", "\"label\"", "\"bot\"", "\"mid\"", "\"link\"", + "\"outline\"", "\"stream\"", "\"stream (definition)\"", "\"first\"", + "\"last\"", "\"top\"", "\"*\"", "\"page\"", "\"range\"", "\"directory\"", + "\"entry\"", "\"definitions\"", "\"max\"", "\"param\"", "\"font\"", + "\"content\"", "$accept", "glyph", "content_node", "start", "integer", + "string", "number", "dimension", "xdimen", "xdimen_node", "order", + "stretch", "penalty", "rule_dimension", "rule", "rule_node", "explicit", + "kern", "plus", "minus", "glue", "glue_node", "position", "content_list", + "estimate", "list", "$@1", "text", "txt", "$@2", "box_dimen", + "box_shift", "box_glue_set", "box", "hbox_node", "vbox_node", "box_flex", + "xbox", "box_goal", "hpack", "vpack", "$@3", "vxbox_node", "hxbox_node", + "ltype", "leaders", "baseline", "$@4", "cc_list", "lig_cc", "ref", + "ligature", "$@5", "replace_count", "disc", "disc_node", "par_dimen", + "par", "$@6", "math", "on_off", "span_count", "table", "image_dimen", + "image", "max_value", "placement", "def_node", "stream_link", + "stream_split", "stream_info", "$@7", "stream_type", "stream_def_node", + "stream_ins_node", "stream", "page_priority", "stream_def_list", "page", + "$@8", "$@9", "hint", "directory_section", "$@10", "entry_list", "entry", + "definition_section", "$@11", "definition_list", "max_definitions", + "max_list", "def_list", "parameters", "empty_param_list", + "non_empty_param_list", "$@12", "font", "font_head", "font_param_list", + "font_param", "fref", "xdimen_ref", "param_ref", "stream_ref", + "content_section", "$@13", YY_NULLPTR +}; + +static const char * +yysymbol_name (yysymbol_kind_t yysymbol) +{ + return yytname[yysymbol]; +} +#endif + +#define YYPACT_NINF (-326) + +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) + +#define YYTABLE_NINF (-1) + +#define yytable_value_is_error(Yyn) \ + 0 + +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +static const yytype_int16 yypact[] = +{ + 48, -4, 110, 113, 107, -326, 52, 137, -326, -326, + 74, -326, -326, 153, -326, 211, 85, -326, -326, 94, + -326, -326, -326, 275, -326, 278, 190, 280, 159, -326, + 313, -326, 31, -326, -326, 585, -326, -326, -326, -326, + -326, -326, -326, -326, 223, 467, -326, 203, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 240, 248, 116, 219, 253, 140, 210, 229, + 182, 182, 220, 182, 220, 182, 121, 229, 234, 71, + 229, 41, 66, 271, 79, 301, 261, 234, 234, -326, + -326, 268, 270, 279, 284, 286, 288, 294, 297, 315, + 325, 326, 327, 328, 333, 334, 335, 337, 338, 339, + 343, 242, -326, 229, 182, 219, 223, 152, 229, 345, + 182, 234, 210, 348, 223, 350, 223, 82, 251, 323, + 342, 353, -326, -326, -326, 355, 357, 358, -326, -326, + -326, -326, 231, -326, 152, 359, 361, -326, 165, 362, + 182, 341, 372, 373, 182, 220, 375, 377, 182, 264, + 379, 220, 380, 305, 384, 385, -326, 363, 200, 387, + 389, -326, 390, 391, 395, 396, 398, 397, 66, 401, + 234, -326, -326, 404, 234, -326, -326, -326, -326, 405, + -326, 66, 66, -326, 350, 406, 264, 264, 407, -326, + 408, 530, 409, 399, 182, 410, 411, 255, -326, 234, + 80, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, 413, 414, 416, 417, 418, 419, 421, 422, + 423, 427, 429, -326, 430, 432, 433, -326, 435, -326, + -326, 436, 182, 437, 345, -326, -326, -326, 438, 440, + 441, -326, -326, -326, -326, -326, -326, -326, -326, -326, + 152, -326, -326, 234, -326, 442, -326, 302, 182, 420, + -326, -326, 182, 293, -326, -326, -326, 121, 121, 66, + -326, 341, -326, 400, -326, -326, 229, -326, -326, -326, + 345, -326, -326, 345, -326, -326, -326, 176, -326, -326, + -326, 66, -326, -326, 66, -326, 66, 66, -326, 38, + 345, 66, 66, 53, 345, 66, -326, -326, -326, 66, + 66, -326, -326, -326, 445, 182, 341, -326, -326, 446, + 448, 66, 66, -326, -326, -326, -326, 439, 450, -326, + 66, 66, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, 452, -326, -326, 451, + -326, 453, -326, 345, 345, -326, -326, -326, -326, 456, + -326, 182, -326, 164, -326, 182, -326, -326, 182, 182, + 66, -326, -326, -326, -326, -326, 420, 121, 182, 458, + 460, 49, -326, -326, -326, 345, -326, -326, 434, -326, + 66, 35, -326, 66, -326, 66, -326, -326, 424, -326, + -326, 345, 66, -326, -326, -326, 324, 66, 66, -326, + -326, 420, -326, -326, -326, 66, -326, 182, -326, 345, + 463, -326, 345, -326, 462, 412, -326, 105, -326, -326, + 454, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, 66, 66, -326, -326, -326, 152, -326, -326, -326, + -326, -326, 350, -326, -326, -326, 184, -326, -326, -326, + -326, -326, 466, 39, 345, -326, 182, -326, 210, 234, + 234, 234, 234, 234, 234, 234, 234, -326, -326, -326, + 264, 72, 471, -326, -326, -326, -326, -326, -326, -326, + -326, -326, 399, -326, -326, -326, 39, -326, 66, -326, + -326, 242, 223, 152, 210, 182, 234, 210, 348, 66, + -326, -326, -326, -326, 470, 345, 345, 473, 476, 478, + 182, 480, 481, 482, 483, 484, -326, -326, 489, 345, + -326, -326, -326, -326, -326, -326, -326, -326, -326, 66, + -326, 345, 425, -326, 234, 69 +}; + +/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ +static const yytype_int16 yydefact[] = +{ + 0, 0, 0, 0, 0, 1, 0, 0, 185, 190, + 0, 184, 187, 0, 265, 0, 0, 192, 44, 0, + 186, 188, 195, 0, 45, 0, 0, 0, 4, 191, + 0, 193, 4, 266, 46, 0, 32, 72, 73, 88, + 89, 115, 169, 170, 0, 0, 194, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, + 0, 0, 64, 0, 64, 0, 0, 0, 0, 33, + 0, 44, 0, 0, 0, 0, 0, 0, 0, 8, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 33, 0, 0, 47, 0, 154, 0, 0, + 0, 0, 6, 5, 26, 0, 0, 0, 10, 11, + 12, 29, 0, 28, 0, 0, 0, 34, 0, 0, + 19, 37, 0, 0, 0, 64, 0, 0, 0, 0, + 0, 64, 0, 0, 0, 0, 4, 0, 90, 0, + 0, 98, 0, 0, 106, 0, 109, 0, 113, 0, + 116, 250, 44, 0, 44, 135, 136, 234, 251, 0, + 137, 0, 0, 44, 47, 0, 0, 0, 0, 139, + 0, 47, 0, 0, 147, 0, 0, 0, 252, 44, + 0, 189, 199, 208, 198, 203, 204, 202, 206, 207, + 200, 201, 205, 213, 150, 210, 211, 212, 209, 197, + 196, 44, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 106, 0, 0, 0, 179, 0, 48, + 44, 0, 0, 0, 0, 152, 153, 151, 0, 0, + 0, 2, 7, 3, 27, 253, 263, 13, 15, 14, + 0, 31, 259, 0, 35, 0, 36, 0, 0, 39, + 42, 256, 0, 66, 70, 71, 65, 0, 0, 0, + 87, 37, 86, 0, 85, 84, 0, 91, 92, 93, + 0, 97, 261, 0, 100, 262, 257, 0, 108, 110, + 258, 112, 114, 120, 0, 124, 0, 0, 134, 47, + 128, 0, 0, 47, 125, 0, 50, 44, 138, 0, + 0, 145, 140, 142, 0, 0, 37, 260, 149, 0, + 0, 0, 0, 168, 164, 165, 166, 0, 0, 163, + 0, 0, 216, 229, 219, 215, 228, 217, 220, 218, + 230, 221, 222, 223, 224, 225, 175, 227, 231, 233, + 226, 0, 214, 0, 237, 155, 182, 183, 30, 0, + 254, 17, 18, 0, 38, 0, 41, 63, 0, 0, + 0, 80, 78, 79, 77, 81, 39, 0, 0, 0, + 0, 0, 94, 95, 96, 0, 103, 104, 0, 111, + 0, 47, 123, 0, 119, 0, 117, 235, 0, 129, + 130, 131, 0, 126, 127, 44, 0, 0, 0, 141, + 146, 39, 156, 174, 171, 0, 173, 0, 161, 0, + 0, 176, 0, 232, 0, 0, 239, 0, 240, 255, + 0, 21, 22, 23, 24, 25, 40, 67, 68, 69, + 74, 0, 0, 82, 43, 264, 0, 99, 101, 121, + 122, 118, 47, 132, 133, 52, 61, 49, 143, 144, + 148, 172, 0, 0, 0, 157, 0, 238, 33, 0, + 0, 0, 0, 0, 0, 0, 0, 16, 76, 75, + 0, 0, 0, 51, 60, 58, 59, 55, 57, 56, + 54, 53, 0, 20, 159, 158, 0, 162, 0, 180, + 249, 0, 0, 0, 33, 0, 0, 33, 0, 0, + 107, 102, 236, 62, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 83, 160, 0, 0, + 241, 246, 247, 242, 245, 243, 244, 248, 167, 0, + 177, 181, 0, 178, 0, 0 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -326, -326, -65, -23, 97, -79, -83, -13, -62, -232, + -326, -191, -27, -118, -94, 195, -67, -26, -228, -325, + -97, -226, -1, 172, -86, -55, -326, -326, -326, -326, + 198, -36, -326, 431, -111, 201, -326, 428, -147, -326, + -326, -326, -326, -326, -326, 381, 386, -326, -326, -326, + -45, -96, -326, -326, -95, 132, -326, -326, -326, -326, + 300, -326, -326, -326, -93, -326, -326, 139, -7, -326, + -326, -326, -326, -50, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, 42, -89, -227, -326, -326, -326, -326, -326, + -290, -222, -92, -326, -326, -326 +}; + +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + 0, 131, 34, 194, 134, 91, 142, 150, 151, 348, + 455, 384, 135, 144, 145, 36, 176, 149, 279, 386, + 152, 168, 187, 25, 327, 195, 425, 476, 511, 512, + 155, 159, 390, 156, 37, 38, 397, 162, 289, 160, + 164, 500, 39, 40, 300, 169, 172, 303, 501, 408, + 520, 175, 307, 178, 179, 41, 182, 183, 410, 189, + 190, 203, 198, 336, 206, 110, 258, 31, 516, 517, + 349, 483, 350, 42, 43, 340, 442, 561, 248, 366, + 536, 2, 3, 12, 15, 21, 7, 13, 23, 17, + 27, 369, 251, 191, 322, 472, 253, 254, 374, 448, + 521, 184, 192, 209, 11, 18 +}; + +/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ +static const yytype_int16 yytable[] = +{ + 30, 148, 35, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 24, 180, 200, + 136, 239, 146, 238, 153, 244, 270, 245, 373, 202, + 246, 170, 173, 174, 177, 181, 188, 237, 163, 250, + 205, 249, 208, 210, 249, 247, 112, 252, 112, 329, + 330, 1, 234, 167, 143, 391, 393, 154, 154, 249, + 154, 201, 154, 396, 171, 392, 394, 277, 233, 166, + 236, 460, 166, 240, 466, 4, 243, 405, 112, 70, + 321, 325, 32, 166, 343, 199, 274, 413, 313, 415, + 70, 71, 317, 314, 70, 316, 167, 62, 193, 147, + 232, 185, 186, 275, 143, 530, 480, 171, 431, 63, + 5, 193, 531, 8, 435, 514, 6, 342, 417, 283, + 341, 417, 129, 311, 166, 291, 130, 489, 112, 490, + 491, 143, 492, 9, 493, 188, 320, 324, 334, 188, + 10, 282, 344, 345, 346, 286, 138, 112, 139, 255, + 256, 140, 378, 344, 345, 346, 16, 257, 138, 14, + 139, 494, 495, 140, 188, 461, 141, 22, 319, 323, + 496, 138, 112, 139, 26, 462, 140, 451, 141, 467, + 35, 273, 406, 452, 453, 454, 407, 347, 138, 403, + 139, 335, 326, 140, 456, 383, 44, 457, 458, 399, + 522, 523, 524, 525, 526, 527, 528, 484, 231, 419, + 111, 422, 235, 423, 19, 20, 486, 503, 504, 505, + 506, 507, 508, 509, 510, 132, 112, 133, 379, 47, + 351, 167, 89, 90, 395, 138, 112, 139, 147, 371, + 140, 112, 181, 181, 267, 268, 269, 127, 132, 368, + 133, 400, 297, 298, 299, 128, 409, 143, 518, 412, + 137, 414, 416, 158, 347, 347, 420, 421, 207, 387, + 424, 161, 211, 161, 427, 428, 212, 401, 28, 29, + 167, 32, 33, 45, 46, 213, 434, 436, 196, 197, + 214, 411, 215, 411, 216, 439, 440, 418, 450, 323, + 217, 418, 383, 218, 549, 383, 383, 204, 112, 548, + 473, 259, 260, 287, 288, 185, 186, 559, 411, 381, + 382, 219, 430, 388, 389, 48, 24, 32, 477, 49, + 261, 220, 221, 222, 223, 459, 50, 51, 52, 224, + 225, 226, 53, 227, 228, 229, 30, 230, 166, 262, + 445, 447, 181, 529, 204, 469, 249, 263, 470, 264, + 471, 265, 266, 271, 54, 272, 276, 474, 55, 56, + 57, 278, 478, 479, 347, 482, 280, 281, 58, 284, + 481, 285, 167, 290, 292, 463, 250, 293, 294, 295, + 59, 301, 296, 302, 304, 305, 60, 61, 418, 306, + 308, 310, 32, 35, 309, 312, 498, 499, 315, 318, + 328, 331, 332, 333, 337, 338, 347, 352, 353, 167, + 354, 355, 356, 357, 475, 358, 359, 360, 542, 539, + 543, 361, 544, 362, 363, 545, 364, 365, 515, 367, + 370, 372, 375, 538, 376, 377, 380, 533, 398, 429, + 432, 385, 433, 143, 28, 437, 438, 540, 441, 444, + 449, 167, 464, 535, 465, 70, 468, 485, 487, 488, + 513, 515, 497, 519, 546, 532, 547, 550, 274, 92, + 551, 243, 552, 93, 553, 554, 555, 556, 557, 35, + 94, 95, 96, 558, 537, 402, 97, 564, 541, 426, + 241, 404, 157, 165, 560, 446, 242, 339, 443, 534, + 143, 563, 167, 347, 502, 0, 0, 0, 98, 565, + 0, 0, 99, 100, 101, 0, 347, 0, 0, 0, + 0, 0, 102, 103, 0, 64, 249, 104, 562, 105, + 0, 0, 347, 0, 106, 107, 0, 0, 0, 0, + 108, 109, 65, 0, 66, 67, 0, 68, 0, 69, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 70, 71, 0, 72, 73, 74, 75, 0, 0, + 0, 76, 0, 0, 0, 77, 78, 79, 80, 81, + 64, 0, 82, 83, 84, 85, 0, 0, 0, 86, + 0, 87, 88, 0, 0, 0, 0, 65, 0, 66, + 67, 0, 68, 0, 69, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 70, 71, 0, 72, + 73, 74, 75, 0, 0, 0, 76, 0, 0, 0, + 77, 78, 79, 80, 81, 0, 0, 82, 83, 84, + 85, 0, 0, 0, 86, 0, 87, 88 +}; + +static const yytype_int16 yycheck[] = +{ + 23, 68, 25, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 18, 80, 84, + 65, 118, 67, 117, 69, 121, 144, 122, 254, 84, + 123, 76, 77, 78, 79, 80, 81, 116, 74, 125, + 85, 6, 87, 88, 6, 124, 7, 126, 7, 196, + 197, 3, 114, 76, 67, 287, 288, 70, 71, 6, + 73, 84, 75, 291, 77, 287, 288, 150, 113, 3, + 115, 396, 3, 118, 25, 79, 121, 303, 7, 41, + 191, 192, 3, 3, 4, 6, 148, 314, 180, 316, + 41, 42, 184, 182, 41, 184, 119, 66, 32, 28, + 113, 60, 61, 148, 117, 33, 431, 120, 336, 78, + 0, 32, 40, 6, 341, 76, 3, 209, 83, 155, + 209, 83, 6, 178, 3, 161, 10, 22, 7, 24, + 25, 144, 27, 81, 29, 180, 191, 192, 203, 184, + 3, 154, 73, 74, 75, 158, 6, 7, 8, 67, + 68, 11, 270, 73, 74, 75, 3, 75, 6, 85, + 8, 56, 57, 11, 209, 397, 26, 82, 191, 192, + 65, 6, 7, 8, 80, 397, 11, 13, 26, 405, + 203, 16, 6, 19, 20, 21, 10, 210, 6, 300, + 8, 204, 193, 11, 385, 278, 6, 388, 389, 296, + 490, 491, 492, 493, 494, 495, 496, 439, 111, 320, + 7, 322, 115, 324, 3, 4, 442, 33, 34, 35, + 36, 37, 38, 39, 40, 6, 7, 8, 273, 70, + 231, 254, 9, 10, 289, 6, 7, 8, 28, 252, + 11, 7, 287, 288, 13, 14, 15, 7, 6, 250, + 8, 296, 52, 53, 54, 7, 311, 270, 484, 314, + 7, 316, 317, 43, 287, 288, 321, 322, 7, 282, + 325, 73, 4, 75, 329, 330, 6, 300, 3, 4, + 303, 3, 4, 3, 4, 6, 341, 342, 17, 18, + 6, 314, 6, 316, 6, 350, 351, 320, 381, 322, + 6, 324, 385, 6, 536, 388, 389, 6, 7, 535, + 421, 60, 61, 49, 50, 60, 61, 549, 341, 17, + 18, 6, 335, 30, 31, 12, 327, 3, 4, 16, + 7, 6, 6, 6, 6, 390, 23, 24, 25, 6, + 6, 6, 29, 6, 6, 6, 369, 4, 3, 7, + 373, 374, 397, 500, 6, 410, 6, 4, 413, 4, + 415, 4, 4, 4, 51, 4, 4, 422, 55, 56, + 57, 30, 427, 428, 397, 437, 4, 4, 65, 4, + 435, 4, 405, 4, 4, 398, 472, 82, 4, 4, + 77, 4, 29, 4, 4, 4, 83, 84, 421, 4, + 4, 4, 3, 426, 6, 4, 461, 462, 4, 4, + 4, 4, 4, 4, 4, 4, 439, 4, 4, 442, + 4, 4, 4, 4, 425, 4, 4, 4, 525, 523, + 526, 4, 527, 4, 4, 528, 4, 4, 483, 4, + 4, 4, 4, 522, 4, 4, 4, 512, 48, 4, + 4, 31, 4, 466, 3, 16, 6, 524, 6, 6, + 4, 484, 4, 518, 4, 41, 32, 4, 6, 57, + 4, 516, 18, 486, 529, 4, 6, 4, 540, 12, + 4, 526, 4, 16, 4, 4, 4, 4, 4, 512, + 23, 24, 25, 4, 521, 300, 29, 72, 524, 327, + 119, 300, 71, 75, 559, 373, 120, 207, 369, 516, + 523, 561, 535, 536, 472, -1, -1, -1, 51, 564, + -1, -1, 55, 56, 57, -1, 549, -1, -1, -1, + -1, -1, 65, 66, -1, 5, 6, 70, 561, 72, + -1, -1, 565, -1, 77, 78, -1, -1, -1, -1, + 83, 84, 22, -1, 24, 25, -1, 27, -1, 29, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 41, 42, -1, 44, 45, 46, 47, -1, -1, + -1, 51, -1, -1, -1, 55, 56, 57, 58, 59, + 5, -1, 62, 63, 64, 65, -1, -1, -1, 69, + -1, 71, 72, -1, -1, -1, -1, 22, -1, 24, + 25, -1, 27, -1, 29, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 41, 42, -1, 44, + 45, 46, 47, -1, -1, -1, 51, -1, -1, -1, + 55, 56, 57, 58, 59, -1, -1, 62, 63, 64, + 65, -1, -1, -1, 69, -1, 71, 72 +}; + +/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of + state STATE-NUM. */ +static const yytype_uint8 yystos[] = +{ + 0, 3, 167, 168, 79, 0, 3, 172, 6, 81, + 3, 190, 169, 173, 85, 170, 3, 175, 191, 3, + 4, 171, 82, 174, 108, 109, 80, 176, 3, 4, + 89, 153, 3, 4, 88, 89, 101, 120, 121, 128, + 129, 141, 159, 160, 6, 3, 4, 70, 12, 16, + 23, 24, 25, 29, 51, 55, 56, 57, 65, 77, + 83, 84, 66, 78, 5, 22, 24, 25, 27, 29, + 41, 42, 44, 45, 46, 47, 51, 55, 56, 57, + 58, 59, 62, 63, 64, 65, 69, 71, 72, 9, + 10, 91, 12, 16, 23, 24, 25, 29, 51, 55, + 56, 57, 65, 66, 70, 72, 77, 78, 83, 84, + 151, 7, 7, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 7, 7, 6, + 10, 87, 6, 8, 90, 98, 136, 7, 6, 8, + 11, 26, 92, 93, 99, 100, 136, 28, 102, 103, + 93, 94, 106, 136, 93, 116, 119, 119, 43, 117, + 125, 116, 123, 117, 126, 123, 3, 89, 107, 131, + 136, 93, 132, 136, 136, 137, 102, 136, 139, 140, + 94, 136, 142, 143, 187, 60, 61, 108, 136, 145, + 146, 179, 188, 32, 89, 111, 17, 18, 148, 6, + 88, 89, 111, 147, 6, 136, 150, 7, 136, 189, + 136, 4, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 4, 90, 93, 136, 94, 90, 136, 91, 100, 106, + 136, 131, 132, 136, 137, 140, 150, 91, 164, 6, + 110, 178, 91, 182, 183, 67, 68, 75, 152, 60, + 61, 7, 7, 4, 4, 4, 4, 13, 14, 15, + 99, 4, 4, 16, 94, 136, 4, 92, 30, 104, + 4, 4, 93, 117, 4, 4, 93, 49, 50, 124, + 4, 117, 4, 82, 4, 4, 29, 52, 53, 54, + 130, 4, 4, 133, 4, 4, 4, 138, 4, 6, + 4, 111, 4, 188, 179, 4, 179, 188, 4, 89, + 111, 120, 180, 89, 111, 120, 108, 110, 4, 124, + 124, 4, 4, 4, 88, 93, 149, 4, 4, 146, + 161, 179, 188, 4, 73, 74, 75, 89, 95, 156, + 158, 108, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 165, 4, 108, 177, + 4, 93, 4, 107, 184, 4, 4, 4, 99, 136, + 4, 17, 18, 92, 97, 31, 105, 93, 30, 31, + 118, 95, 187, 95, 187, 111, 104, 122, 48, 106, + 136, 89, 101, 120, 121, 107, 6, 10, 135, 111, + 144, 89, 111, 180, 111, 180, 111, 83, 89, 120, + 111, 111, 120, 120, 111, 112, 109, 111, 111, 4, + 93, 104, 4, 4, 111, 180, 111, 16, 6, 111, + 111, 6, 162, 153, 6, 89, 141, 89, 185, 4, + 92, 13, 19, 20, 21, 96, 97, 97, 97, 111, + 105, 95, 187, 93, 4, 4, 25, 107, 32, 111, + 111, 111, 181, 120, 111, 108, 113, 4, 111, 111, + 105, 111, 94, 157, 95, 4, 107, 6, 57, 22, + 24, 25, 27, 29, 56, 57, 65, 18, 111, 111, + 127, 134, 178, 33, 34, 35, 36, 37, 38, 39, + 40, 114, 115, 4, 76, 136, 154, 155, 107, 93, + 136, 186, 186, 186, 186, 186, 186, 186, 186, 124, + 33, 40, 4, 88, 154, 111, 166, 98, 91, 100, + 102, 103, 106, 137, 140, 150, 111, 6, 107, 95, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 95, + 111, 163, 89, 159, 72, 136 +}; + +/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ +static const yytype_uint8 yyr1[] = +{ + 0, 86, 87, 88, 89, 90, 90, 87, 91, 91, + 92, 92, 92, 93, 93, 93, 94, 94, 94, 94, + 95, 96, 96, 96, 96, 97, 98, 88, 99, 99, + 100, 101, 88, 102, 102, 103, 88, 104, 104, 105, + 105, 106, 88, 107, 108, 109, 109, 110, 110, 111, + 112, 111, 113, 113, 114, 114, 114, 114, 114, 114, + 114, 115, 114, 116, 117, 117, 118, 118, 118, 119, + 120, 121, 88, 88, 122, 123, 123, 124, 124, 124, + 124, 125, 127, 126, 128, 128, 129, 129, 88, 88, + 130, 130, 130, 130, 131, 131, 131, 88, 133, 132, + 88, 134, 134, 135, 135, 136, 138, 137, 88, 139, + 139, 140, 140, 140, 141, 88, 142, 143, 143, 143, + 144, 143, 143, 143, 88, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 88, 146, 146, 145, 88, 147, + 88, 88, 88, 148, 148, 88, 149, 149, 150, 88, + 151, 152, 152, 152, 152, 88, 88, 153, 154, 154, + 155, 157, 156, 158, 158, 158, 158, 159, 160, 88, + 88, 161, 161, 161, 88, 162, 162, 163, 163, 165, + 166, 164, 88, 88, 167, 169, 168, 170, 170, 171, + 173, 172, 174, 174, 175, 176, 176, 151, 151, 151, + 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, + 151, 151, 151, 151, 153, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 177, 177, 178, 179, 181, 180, 182, 183, 184, + 184, 185, 185, 185, 185, 185, 185, 185, 185, 186, + 187, 188, 189, 88, 88, 88, 88, 88, 88, 88, + 88, 88, 88, 88, 107, 191, 190 +}; + +/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ +static const yytype_int8 yyr2[] = +{ + 0, 2, 2, 4, 1, 1, 1, 2, 1, 1, + 1, 1, 1, 2, 2, 2, 5, 3, 3, 1, + 4, 1, 1, 1, 1, 2, 1, 4, 1, 1, + 3, 4, 1, 0, 1, 2, 4, 0, 2, 0, + 2, 3, 4, 4, 0, 1, 2, 0, 1, 4, + 0, 5, 1, 2, 1, 1, 1, 1, 1, 1, + 1, 0, 2, 3, 0, 2, 0, 2, 2, 4, + 4, 4, 1, 1, 2, 5, 5, 2, 2, 2, + 2, 3, 0, 7, 4, 4, 4, 4, 1, 1, + 0, 1, 1, 1, 3, 3, 3, 4, 0, 4, + 4, 0, 2, 1, 1, 1, 0, 6, 4, 1, + 2, 3, 2, 1, 4, 1, 1, 3, 4, 3, + 0, 4, 4, 3, 4, 2, 3, 3, 2, 3, + 3, 3, 4, 4, 4, 1, 1, 1, 4, 1, + 4, 5, 4, 4, 4, 4, 2, 0, 4, 4, + 2, 1, 1, 1, 0, 5, 5, 7, 1, 1, + 3, 0, 4, 1, 1, 1, 1, 10, 4, 1, + 1, 2, 3, 2, 5, 0, 1, 0, 2, 0, + 0, 10, 5, 5, 3, 0, 6, 0, 2, 5, + 0, 6, 0, 2, 4, 0, 4, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 1, 2, 2, 1, 0, 5, 2, 4, 2, + 2, 5, 5, 5, 5, 5, 5, 5, 5, 1, + 1, 1, 1, 4, 5, 6, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 0, 5 +}; + + +enum { YYENOMEM = -2 }; + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab +#define YYNOMEM goto yyexhaustedlab + + +#define YYRECOVERING() (!!yyerrstatus) + +#define YYBACKUP(Token, Value) \ + do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ + while (0) + +/* Backward compatibility with an undocumented macro. + Use YYerror or YYUNDEF. */ +#define YYERRCODE YYUNDEF + + +/* 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 (0) + + + + +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Kind, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + + +/*-----------------------------------. +| Print this symbol's value on YYO. | +`-----------------------------------*/ + +static void +yy_symbol_value_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) +{ + FILE *yyoutput = yyo; + YY_USE (yyoutput); + if (!yyvaluep) + return; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END +} + + +/*---------------------------. +| Print this symbol on YYO. | +`---------------------------*/ + +static void +yy_symbol_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) +{ + YYFPRINTF (yyo, "%s %s (", + yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); + + yy_symbol_value_print (yyo, yykind, yyvaluep); + YYFPRINTF (yyo, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +static void +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) +{ + YYFPRINTF (stderr, "Stack now"); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +static void +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, + int yyrule) +{ + int yylno = yyrline[yyrule]; + int yynrhs = yyr2[yyrule]; + int yyi; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, + YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), + &yyvsp[(yyi + 1) - (yynrhs)]); + YYFPRINTF (stderr, "\n"); + } +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, Rule); \ +} while (0) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) ((void) 0) +# define YY_SYMBOL_PRINT(Title, Kind, 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 + + +/* Context of a parse error. */ +typedef struct +{ + yy_state_t *yyssp; + yysymbol_kind_t yytoken; +} yypcontext_t; + +/* Put in YYARG at most YYARGN of the expected tokens given the + current YYCTX, and return the number of tokens stored in YYARG. If + YYARG is null, return the number of expected tokens (guaranteed to + be less than YYNTOKENS). Return YYENOMEM on memory exhaustion. + Return 0 if there are more than YYARGN expected tokens, yet fill + YYARG up to YYARGN. */ +static int +yypcontext_expected_tokens (const yypcontext_t *yyctx, + yysymbol_kind_t yyarg[], int yyargn) +{ + /* Actual size of YYARG. */ + int yycount = 0; + int yyn = yypact[+*yyctx->yyssp]; + if (!yypact_value_is_default (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + 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 yyx; + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror + && !yytable_value_is_error (yytable[yyx + yyn])) + { + if (!yyarg) + ++yycount; + else if (yycount == yyargn) + return 0; + else + yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx); + } + } + if (yyarg && yycount == 0 && 0 < yyargn) + yyarg[0] = YYSYMBOL_YYEMPTY; + return yycount; +} + + + + +#ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S))) +# else +/* Return the length of YYSTR. */ +static YYPTRDIFF_T +yystrlen (const char *yystr) +{ + YYPTRDIFF_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. */ +static char * +yystpcpy (char *yydest, const char *yysrc) +{ + 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 YYPTRDIFF_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + YYPTRDIFF_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; + else + goto append; + + append: + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (yyres) + return yystpcpy (yyres, yystr) - yyres; + else + return yystrlen (yystr); +} +#endif + + +static int +yy_syntax_error_arguments (const yypcontext_t *yyctx, + yysymbol_kind_t yyarg[], int yyargn) +{ + /* Actual size of YYARG. */ + int yycount = 0; + /* There are many possibilities here to consider: + - If this state is a consistent state with a default action, then + the only way this function was invoked is if the default action + is an error action. In that case, don't check for expected + tokens because there are none. + - The only way there can be no lookahead present (in yychar) is if + this state is a consistent state with a default action. Thus, + detecting the absence of a lookahead is sufficient to determine + that there is no unexpected or expected token to report. In that + case, just report a simple "syntax error". + - Don't assume there isn't a lookahead just because this state is a + consistent state with a default action. There might have been a + previous inconsistent state, consistent state with a non-default + action, or user semantic action that manipulated yychar. + - Of course, the expected token list depends on states to have + correct lookahead information, and it depends on the parser not + to perform extra reductions after fetching a lookahead from the + scanner and before detecting a syntax error. Thus, state merging + (from LALR or IELR) and default reductions corrupt the expected + token list. However, the list is correct for canonical LR with + one exception: it will still contain any token that will not be + accepted due to an error action in a later state. + */ + if (yyctx->yytoken != YYSYMBOL_YYEMPTY) + { + int yyn; + if (yyarg) + yyarg[yycount] = yyctx->yytoken; + ++yycount; + yyn = yypcontext_expected_tokens (yyctx, + yyarg ? yyarg + 1 : yyarg, yyargn - 1); + if (yyn == YYENOMEM) + return YYENOMEM; + else + yycount += yyn; + } + return yycount; +} + +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message + about the unexpected token YYTOKEN for the state stack whose top is + YYSSP. + + Return 0 if *YYMSG was successfully written. Return -1 if *YYMSG is + not large enough to hold the message. In that case, also set + *YYMSG_ALLOC to the required number of bytes. Return YYENOMEM if the + required number of bytes is too large to store. */ +static int +yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, + const yypcontext_t *yyctx) +{ + enum { YYARGS_MAX = 5 }; + /* Internationalized format string. */ + const char *yyformat = YY_NULLPTR; + /* Arguments of yyformat: reported tokens (one for the "unexpected", + one per "expected"). */ + yysymbol_kind_t yyarg[YYARGS_MAX]; + /* Cumulated lengths of YYARG. */ + YYPTRDIFF_T yysize = 0; + + /* Actual size of YYARG. */ + int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX); + if (yycount == YYENOMEM) + return YYENOMEM; + + switch (yycount) + { +#define YYCASE_(N, S) \ + case N: \ + yyformat = S; \ + break + default: /* Avoid compiler warnings. */ + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); +#undef YYCASE_ + } + + /* Compute error message size. Don't count the "%s"s, but reserve + room for the terminator. */ + yysize = yystrlen (yyformat) - 2 * yycount + 1; + { + int yyi; + for (yyi = 0; yyi < yycount; ++yyi) + { + YYPTRDIFF_T yysize1 + = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]); + if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) + yysize = yysize1; + else + return YYENOMEM; + } + } + + if (*yymsg_alloc < yysize) + { + *yymsg_alloc = 2 * yysize; + if (! (yysize <= *yymsg_alloc + && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) + *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; + return -1; + } + + /* 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 = *yymsg; + int yyi = 0; + while ((*yyp = *yyformat) != '\0') + if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]); + yyformat += 2; + } + else + { + ++yyp; + ++yyformat; + } + } + return 0; +} + + +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +static void +yydestruct (const char *yymsg, + yysymbol_kind_t yykind, YYSTYPE *yyvaluep) +{ + YY_USE (yyvaluep); + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END +} + + +/* Lookahead token kind. */ +int yychar; + +/* The semantic value of the lookahead symbol. */ +YYSTYPE yylval; +/* Number of syntax errors so far. */ +int yynerrs; + + + + +/*----------. +| yyparse. | +`----------*/ + +int +yyparse (void) +{ + yy_state_fast_t yystate = 0; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus = 0; + + /* Refer to the stacks through separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* Their size. */ + YYPTRDIFF_T yystacksize = YYINITDEPTH; + + /* The state stack: array, bottom, top. */ + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; + + /* The semantic value stack: array, bottom, top. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; + + int yyn; + /* The return value of yyparse. */ + int yyresult; + /* Lookahead symbol kind. */ + yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf; + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + + /* 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")); + + yychar = YYEMPTY; /* Cause a token to be read. */ + + 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 -- set current state (the top of the stack) to yystate. | +`--------------------------------------------------------------------*/ +yysetstate: + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END + YY_STACK_PRINT (yyss, yyssp); + + if (yyss + yystacksize - 1 <= yyssp) +#if !defined yyoverflow && !defined YYSTACK_RELOCATE + YYNOMEM; +#else + { + /* Get the current used size of the three stacks, in elements. */ + YYPTRDIFF_T yysize = yyssp - yyss + 1; + +# if defined 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. */ + yy_state_t *yyss1 = yyss; + YYSTYPE *yyvs1 = yyvs; + + /* 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 * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), + &yystacksize); + yyss = yyss1; + yyvs = yyvs1; + } +# else /* defined YYSTACK_RELOCATE */ + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + YYNOMEM; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + yy_state_t *yyss1 = yyss; + union yyalloc *yyptr = + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); + if (! yyptr) + YYNOMEM; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } +#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ + + + if (yystate == YYFINAL) + YYACCEPT; + + goto yybackup; + + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + /* Do appropriate processing given the current state. Read a + lookahead token if we need one and don't already have one. */ + + /* First try to decide what to do without reference to lookahead token. */ + yyn = yypact[yystate]; + if (yypact_value_is_default (yyn)) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token\n")); + yychar = yylex (); + } + + if (yychar <= YYEOF) + { + yychar = YYEOF; + yytoken = YYSYMBOL_YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); + } + else if (yychar == YYerror) + { + /* The scanner already issued an error message, process directly + to error recovery. But do not keep the error token as + lookahead, it is too special and may lead us to an endless + loop in error recovery. */ + yychar = YYUNDEF; + yytoken = YYSYMBOL_YYerror; + goto yyerrlab1; + } + 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 (yytable_value_is_error (yyn)) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + + /* Shift the lookahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + yystate = yyn; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + /* Discard the shifted token. */ + yychar = YYEMPTY; + 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: /* glyph: UNSIGNED REFERENCE */ +#line 306 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.c).c= (yyvsp[-1].u);REF(font_kind,(yyvsp[0].u));(yyval.c).f= (yyvsp[0].u);} +#line 2236 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 3: /* content_node: start "glyph" glyph ">" */ +#line 307 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-3].u),hput_glyph(&((yyvsp[-1].c))));} +#line 2242 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 4: /* start: "<" */ +#line 308 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {HPUTNODE;(yyval.u)= (uint32_t)(hpos++-hstart);} +#line 2248 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 6: /* integer: UNSIGNED */ +#line 311 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {RNG("number",(yyvsp[0].u),0,INT32_MAX);} +#line 2254 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 7: /* glyph: CHARCODE REFERENCE */ +#line 314 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.c).c= (yyvsp[-1].u);REF(font_kind,(yyvsp[0].u));(yyval.c).f= (yyvsp[0].u);} +#line 2260 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 9: /* string: CHARCODE */ +#line 317 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {static char s[2]; +RNG("String element",(yyvsp[0].u),0x20,0x7E); +s[0]= (yyvsp[0].u);s[1]= 0;(yyval.s)= s;} +#line 2268 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 10: /* number: UNSIGNED */ +#line 322 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.f)= (float64_t)(yyvsp[0].u);} +#line 2274 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 11: /* number: SIGNED */ +#line 322 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.f)= (float64_t)(yyvsp[0].i);} +#line 2280 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 13: /* dimension: number "pt" */ +#line 325 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.d)= ROUND((yyvsp[-1].f)*ONE);RNG("Dimension",(yyval.d),-MAX_DIMEN,MAX_DIMEN);} +#line 2286 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 14: /* dimension: number "in" */ +#line 326 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.d)= ROUND((yyvsp[-1].f)*ONE*72.27);RNG("Dimension",(yyval.d),-MAX_DIMEN,MAX_DIMEN);} +#line 2292 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 15: /* dimension: number "mm" */ +#line 327 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.d)= ROUND((yyvsp[-1].f)*ONE*(72.27/25.4));RNG("Dimension",(yyval.d),-MAX_DIMEN,MAX_DIMEN);} +#line 2298 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 16: /* xdimen: dimension number "h" number "v" */ +#line 330 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.xd).w= (yyvsp[-4].d);(yyval.xd).h= (yyvsp[-3].f);(yyval.xd).v= (yyvsp[-1].f);} +#line 2304 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 17: /* xdimen: dimension number "h" */ +#line 331 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.xd).w= (yyvsp[-2].d);(yyval.xd).h= (yyvsp[-1].f);(yyval.xd).v= 0.0;} +#line 2310 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 18: /* xdimen: dimension number "v" */ +#line 332 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.xd).w= (yyvsp[-2].d);(yyval.xd).h= 0.0;(yyval.xd).v= (yyvsp[-1].f);} +#line 2316 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 19: /* xdimen: dimension */ +#line 333 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.xd).w= (yyvsp[0].d);(yyval.xd).h= 0.0;(yyval.xd).v= 0.0;} +#line 2322 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 20: /* xdimen_node: start "xdimen" xdimen ">" */ +#line 337 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-3].u),hput_xdimen(&((yyvsp[-1].xd))));} +#line 2328 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 21: /* order: "pt" */ +#line 341 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.o)= normal_o;} +#line 2334 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 22: /* order: "fil" */ +#line 341 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.o)= fil_o;} +#line 2340 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 23: /* order: "fill" */ +#line 341 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.o)= fill_o;} +#line 2346 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 24: /* order: "filll" */ +#line 341 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.o)= filll_o;} +#line 2352 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 25: /* stretch: number order */ +#line 343 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.st).f= (yyvsp[-1].f);(yyval.st).o= (yyvsp[0].o);} +#line 2358 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 26: /* penalty: integer */ +#line 346 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {RNG("Penalty",(yyvsp[0].i),-20000,+20000);(yyval.i)= (yyvsp[0].i);} +#line 2364 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 27: /* content_node: start "penalty" penalty ">" */ +#line 347 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-3].u),hput_int((yyvsp[-1].i)));} +#line 2370 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 29: /* rule_dimension: "|" */ +#line 350 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.d)= RUNNING_DIMEN;} +#line 2376 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 30: /* rule: rule_dimension rule_dimension rule_dimension */ +#line 352 "../../../texk/web2c/hitexdir/hishrink-parser.y" +{(yyval.r).h= (yyvsp[-2].d);(yyval.r).d= (yyvsp[-1].d);(yyval.r).w= (yyvsp[0].d); +if((yyvsp[0].d)==RUNNING_DIMEN&&((yyvsp[-2].d)==RUNNING_DIMEN||(yyvsp[-1].d)==RUNNING_DIMEN)) +QUIT("Incompatible running dimensions 0x%x 0x%x 0x%x",(yyvsp[-2].d),(yyvsp[-1].d),(yyvsp[0].d));} +#line 2384 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 31: /* rule_node: start "rule" rule ">" */ +#line 355 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-3].u),hput_rule(&((yyvsp[-1].r))));} +#line 2390 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 33: /* explicit: %empty */ +#line 359 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.b)= false;} +#line 2396 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 34: /* explicit: "!" */ +#line 359 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.b)= true;} +#line 2402 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 35: /* kern: explicit xdimen */ +#line 360 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.kt).x= (yyvsp[-1].b);(yyval.kt).d= (yyvsp[0].xd);} +#line 2408 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 36: /* content_node: start "kern" kern ">" */ +#line 361 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-3].u),hput_kern(&((yyvsp[-1].kt))));} +#line 2414 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 37: /* plus: %empty */ +#line 364 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.st).f= 0.0;(yyval.st).o= 0;} +#line 2420 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 38: /* plus: "plus" stretch */ +#line 364 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.st)= (yyvsp[0].st);} +#line 2426 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 39: /* minus: %empty */ +#line 365 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.st).f= 0.0;(yyval.st).o= 0;} +#line 2432 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 40: /* minus: "minus" stretch */ +#line 365 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.st)= (yyvsp[0].st);} +#line 2438 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 41: /* glue: xdimen plus minus */ +#line 366 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.g).w= (yyvsp[-2].xd);(yyval.g).p= (yyvsp[-1].st);(yyval.g).m= (yyvsp[0].st);} +#line 2444 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 42: /* content_node: start "glue" glue ">" */ +#line 367 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {if(ZERO_GLUE((yyvsp[-1].g))){HPUT8(zero_skip_no); +hput_tags((yyvsp[-3].u),TAG(glue_kind,0));}else hput_tags((yyvsp[-3].u),hput_glue(&((yyvsp[-1].g))));} +#line 2451 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 43: /* glue_node: start "glue" glue ">" */ +#line 370 "../../../texk/web2c/hitexdir/hishrink-parser.y" +{if(ZERO_GLUE((yyvsp[-1].g))){hpos--;(yyval.b)= false;} +else{hput_tags((yyvsp[-3].u),hput_glue(&((yyvsp[-1].g))));(yyval.b)= true;}} +#line 2458 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 44: /* position: %empty */ +#line 374 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.u)= hpos-hstart;} +#line 2464 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 47: /* estimate: %empty */ +#line 377 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hpos+= 2;} +#line 2470 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 48: /* estimate: UNSIGNED */ +#line 378 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hpos+= hsize_bytes((yyvsp[0].u))+1;} +#line 2476 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 49: /* list: start estimate content_list ">" */ +#line 380 "../../../texk/web2c/hitexdir/hishrink-parser.y" +{(yyval.l).k= list_kind;(yyval.l).p= (yyvsp[-1].u);(yyval.l).s= (hpos-hstart)-(yyvsp[-1].u); +hput_tags((yyvsp[-3].u),hput_list((yyvsp[-3].u)+1,&((yyval.l))));} +#line 2483 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 50: /* $@1: %empty */ +#line 385 "../../../texk/web2c/hitexdir/hishrink-parser.y" +{hpos+= 4;} +#line 2489 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 51: /* list: TXT_START position $@1 text TXT_END */ +#line 387 "../../../texk/web2c/hitexdir/hishrink-parser.y" +{(yyval.l).k= text_kind;(yyval.l).p= (yyvsp[-1].u);(yyval.l).s= (hpos-hstart)-(yyvsp[-1].u); +hput_tags((yyvsp[-3].u),hput_list((yyvsp[-3].u)+1,&((yyval.l))));} +#line 2496 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 54: /* txt: TXT_CC */ +#line 391 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_txt_cc((yyvsp[0].u));} +#line 2502 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 55: /* txt: TXT_FONT */ +#line 392 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {REF(font_kind,(yyvsp[0].u));hput_txt_font((yyvsp[0].u));} +#line 2508 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 56: /* txt: TXT_GLOBAL */ +#line 393 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {REF((yyvsp[0].rf).k,(yyvsp[0].rf).n);hput_txt_global(&((yyvsp[0].rf)));} +#line 2514 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 57: /* txt: TXT_LOCAL */ +#line 394 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {RNG("Font parameter",(yyvsp[0].u),0,11);hput_txt_local((yyvsp[0].u));} +#line 2520 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 58: /* txt: TXT_FONT_GLUE */ +#line 395 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {HPUTX(1);HPUT8(txt_glue);} +#line 2526 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 59: /* txt: TXT_FONT_HYPHEN */ +#line 396 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {HPUTX(1);HPUT8(txt_hyphen);} +#line 2532 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 60: /* txt: TXT_IGNORE */ +#line 397 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {HPUTX(1);HPUT8(txt_ignore);} +#line 2538 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 61: /* $@2: %empty */ +#line 398 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {HPUTX(1);HPUT8(txt_node);} +#line 2544 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 63: /* box_dimen: dimension dimension dimension */ +#line 403 "../../../texk/web2c/hitexdir/hishrink-parser.y" +{(yyval.info)= hput_box_dimen((yyvsp[-2].d),(yyvsp[-1].d),(yyvsp[0].d));} +#line 2550 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 64: /* box_shift: %empty */ +#line 404 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b000;} +#line 2556 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 65: /* box_shift: "shifted" dimension */ +#line 405 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= hput_box_shift((yyvsp[0].d));} +#line 2562 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 66: /* box_glue_set: %empty */ +#line 407 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b000;} +#line 2568 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 67: /* box_glue_set: "plus" stretch */ +#line 408 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= hput_box_glue_set(+1,(yyvsp[0].st).f,(yyvsp[0].st).o);} +#line 2574 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 68: /* box_glue_set: "minus" stretch */ +#line 409 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= hput_box_glue_set(-1,(yyvsp[0].st).f,(yyvsp[0].st).o);} +#line 2580 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 69: /* box: box_dimen box_shift box_glue_set list */ +#line 412 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= (yyvsp[-3].info)|(yyvsp[-2].info)|(yyvsp[-1].info);} +#line 2586 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 70: /* hbox_node: start "hbox" box ">" */ +#line 414 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-3].u),TAG(hbox_kind,(yyvsp[-1].info)));} +#line 2592 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 71: /* vbox_node: start "vbox" box ">" */ +#line 415 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-3].u),TAG(vbox_kind,(yyvsp[-1].info)));} +#line 2598 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 74: /* box_flex: plus minus */ +#line 419 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_stretch(&((yyvsp[-1].st)));hput_stretch(&((yyvsp[0].st)));} +#line 2604 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 75: /* xbox: box_dimen box_shift box_flex xdimen_ref list */ +#line 420 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= (yyvsp[-4].info)|(yyvsp[-3].info);} +#line 2610 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 76: /* xbox: box_dimen box_shift box_flex xdimen_node list */ +#line 421 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= (yyvsp[-4].info)|(yyvsp[-3].info)|b100;} +#line 2616 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 77: /* box_goal: "to" xdimen_ref */ +#line 423 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b000;} +#line 2622 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 78: /* box_goal: "add" xdimen_ref */ +#line 424 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b001;} +#line 2628 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 79: /* box_goal: "to" xdimen_node */ +#line 425 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b100;} +#line 2634 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 80: /* box_goal: "add" xdimen_node */ +#line 426 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b101;} +#line 2640 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 81: /* hpack: box_shift box_goal list */ +#line 428 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= (yyvsp[-1].info);} +#line 2646 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 82: /* $@3: %empty */ +#line 429 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {HPUT32((yyvsp[0].d));} +#line 2652 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 83: /* vpack: box_shift "max" "depth" dimension $@3 box_goal list */ +#line 429 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= (yyvsp[-6].info)|(yyvsp[-1].info);} +#line 2658 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 84: /* vxbox_node: start "vset" xbox ">" */ +#line 431 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-3].u),TAG(vset_kind,(yyvsp[-1].info)));} +#line 2664 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 85: /* vxbox_node: start "vpack" vpack ">" */ +#line 432 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-3].u),TAG(vpack_kind,(yyvsp[-1].info)));} +#line 2670 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 86: /* hxbox_node: start "hset" xbox ">" */ +#line 435 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-3].u),TAG(hset_kind,(yyvsp[-1].info)));} +#line 2676 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 87: /* hxbox_node: start "hpack" hpack ">" */ +#line 436 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-3].u),TAG(hpack_kind,(yyvsp[-1].info)));} +#line 2682 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 90: /* ltype: %empty */ +#line 441 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= 1;} +#line 2688 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 91: /* ltype: "align" */ +#line 441 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= 1;} +#line 2694 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 92: /* ltype: "center" */ +#line 441 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= 2;} +#line 2700 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 93: /* ltype: "expand" */ +#line 441 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= 3;} +#line 2706 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 94: /* leaders: glue_node ltype rule_node */ +#line 442 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {if((yyvsp[-2].b))(yyval.info)= (yyvsp[-1].info)|b100;else (yyval.info)= (yyvsp[-1].info);} +#line 2712 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 95: /* leaders: glue_node ltype hbox_node */ +#line 443 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {if((yyvsp[-2].b))(yyval.info)= (yyvsp[-1].info)|b100;else (yyval.info)= (yyvsp[-1].info);} +#line 2718 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 96: /* leaders: glue_node ltype vbox_node */ +#line 444 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {if((yyvsp[-2].b))(yyval.info)= (yyvsp[-1].info)|b100;else (yyval.info)= (yyvsp[-1].info);} +#line 2724 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 97: /* content_node: start "leaders" leaders ">" */ +#line 445 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-3].u),TAG(leaders_kind,(yyvsp[-1].info)));} +#line 2730 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 98: /* $@4: %empty */ +#line 448 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {if((yyvsp[0].d)!=0)HPUT32((yyvsp[0].d));} +#line 2736 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 99: /* baseline: dimension $@4 glue_node glue_node */ +#line 449 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b000;if((yyvsp[-3].d)!=0)(yyval.info)|= b001; +if((yyvsp[-1].b))(yyval.info)|= b100; +if((yyvsp[0].b))(yyval.info)|= b010; +} +#line 2745 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 100: /* content_node: start "baseline" baseline ">" */ +#line 454 "../../../texk/web2c/hitexdir/hishrink-parser.y" +{if((yyvsp[-1].info)==b000)HPUT8(0);hput_tags((yyvsp[-3].u),TAG(baseline_kind,(yyvsp[-1].info)));} +#line 2751 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 102: /* cc_list: cc_list TXT_CC */ +#line 457 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_utf8((yyvsp[0].u));} +#line 2757 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 103: /* lig_cc: UNSIGNED */ +#line 458 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {RNG("UTF-8 code",(yyvsp[0].u),0,0x1FFFFF);(yyval.u)= hpos-hstart;hput_utf8((yyvsp[0].u));} +#line 2763 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 104: /* lig_cc: CHARCODE */ +#line 459 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.u)= hpos-hstart;hput_utf8((yyvsp[0].u));} +#line 2769 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 105: /* ref: REFERENCE */ +#line 460 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {HPUT8((yyvsp[0].u));(yyval.u)= (yyvsp[0].u);} +#line 2775 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 106: /* $@5: %empty */ +#line 461 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {REF(font_kind,(yyvsp[0].u));} +#line 2781 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 107: /* ligature: ref $@5 lig_cc TXT_START cc_list TXT_END */ +#line 462 "../../../texk/web2c/hitexdir/hishrink-parser.y" +{(yyval.lg).f= (yyvsp[-5].u);(yyval.lg).l.p= (yyvsp[-3].u);(yyval.lg).l.s= (hpos-hstart)-(yyvsp[-3].u); +RNG("Ligature size",(yyval.lg).l.s,0,255);} +#line 2788 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 108: /* content_node: start "ligature" ligature ">" */ +#line 464 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-3].u),hput_ligature(&((yyvsp[-1].lg))));} +#line 2794 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 109: /* replace_count: explicit */ +#line 467 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {if((yyvsp[0].b)){(yyval.u)= 0x80;HPUT8(0x80);}else (yyval.u)= 0x00;} +#line 2800 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 110: /* replace_count: explicit UNSIGNED */ +#line 468 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {RNG("Replace count",(yyvsp[0].u),0,31); +(yyval.u)= ((yyvsp[0].u))|(((yyvsp[-1].b))?0x80:0x00);if((yyval.u)!=0)HPUT8((yyval.u));} +#line 2807 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 111: /* disc: replace_count list list */ +#line 470 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.dc).r= (yyvsp[-2].u);(yyval.dc).p= (yyvsp[-1].l);(yyval.dc).q= (yyvsp[0].l); +if((yyvsp[0].l).s==0){hpos= hpos-2;if((yyvsp[-1].l).s==0)hpos= hpos-2;}} +#line 2814 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 112: /* disc: replace_count list */ +#line 472 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.dc).r= (yyvsp[-1].u);(yyval.dc).p= (yyvsp[0].l);if((yyvsp[0].l).s==0)hpos= hpos-2;(yyval.dc).q.s= 0;} +#line 2820 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 113: /* disc: replace_count */ +#line 473 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.dc).r= (yyvsp[0].u);(yyval.dc).p.s= 0;(yyval.dc).q.s= 0;} +#line 2826 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 114: /* disc_node: start "disc" disc ">" */ +#line 477 "../../../texk/web2c/hitexdir/hishrink-parser.y" +{hput_tags((yyvsp[-3].u),hput_disc(&((yyvsp[-1].dc))));} +#line 2832 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 116: /* par_dimen: xdimen */ +#line 482 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_xdimen_node(&((yyvsp[0].xd)));} +#line 2838 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 117: /* par: xdimen_ref param_ref list */ +#line 483 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b000;} +#line 2844 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 118: /* par: xdimen_ref empty_param_list non_empty_param_list list */ +#line 484 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b010;} +#line 2850 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 119: /* par: xdimen_ref empty_param_list list */ +#line 485 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b010;} +#line 2856 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 120: /* $@6: %empty */ +#line 486 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_xdimen_node(&((yyvsp[-1].xd)));} +#line 2862 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 121: /* par: xdimen param_ref $@6 list */ +#line 486 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b100;} +#line 2868 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 122: /* par: par_dimen empty_param_list non_empty_param_list list */ +#line 487 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b110;} +#line 2874 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 123: /* par: par_dimen empty_param_list list */ +#line 488 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b110;} +#line 2880 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 124: /* content_node: start "par" par ">" */ +#line 490 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-3].u),TAG(par_kind,(yyvsp[-1].info)));} +#line 2886 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 125: /* math: param_ref list */ +#line 493 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b000;} +#line 2892 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 126: /* math: param_ref list hbox_node */ +#line 494 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b001;} +#line 2898 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 127: /* math: param_ref hbox_node list */ +#line 495 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b010;} +#line 2904 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 128: /* math: empty_param_list list */ +#line 496 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b100;} +#line 2910 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 129: /* math: empty_param_list list hbox_node */ +#line 497 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b101;} +#line 2916 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 130: /* math: empty_param_list hbox_node list */ +#line 498 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b110;} +#line 2922 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 131: /* math: empty_param_list non_empty_param_list list */ +#line 499 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b100;} +#line 2928 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 132: /* math: empty_param_list non_empty_param_list list hbox_node */ +#line 500 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b101;} +#line 2934 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 133: /* math: empty_param_list non_empty_param_list hbox_node list */ +#line 501 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b110;} +#line 2940 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 134: /* content_node: start "math" math ">" */ +#line 503 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-3].u),TAG(math_kind,(yyvsp[-1].info)));} +#line 2946 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 135: /* on_off: "on" */ +#line 506 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.i)= 1;} +#line 2952 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 136: /* on_off: "off" */ +#line 506 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.i)= 0;} +#line 2958 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 137: /* math: on_off */ +#line 507 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b011|((yyvsp[0].i)<<2);} +#line 2964 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 138: /* content_node: start "adjust" list ">" */ +#line 510 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-3].u),TAG(adjust_kind,1));} +#line 2970 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 139: /* span_count: UNSIGNED */ +#line 513 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= hput_span_count((yyvsp[0].u));} +#line 2976 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 140: /* content_node: start "item" content_node ">" */ +#line 514 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-3].u),TAG(item_kind,1));} +#line 2982 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 141: /* content_node: start "item" span_count content_node ">" */ +#line 515 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-4].u),TAG(item_kind,(yyvsp[-2].info)));} +#line 2988 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 142: /* content_node: start "item" list ">" */ +#line 516 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-3].u),TAG(item_kind,b000));} +#line 2994 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 143: /* table: "h" box_goal list list */ +#line 518 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= (yyvsp[-2].info);} +#line 3000 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 144: /* table: "v" box_goal list list */ +#line 519 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= (yyvsp[-2].info)|b010;} +#line 3006 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 145: /* content_node: start "table" table ">" */ +#line 521 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-3].u),TAG(table_kind,(yyvsp[-1].info)));} +#line 3012 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 146: /* image_dimen: dimension dimension */ +#line 524 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.x).w= (yyvsp[-1].d);(yyval.x).h= (yyvsp[0].d);} +#line 3018 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 147: /* image_dimen: %empty */ +#line 524 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.x).w= (yyval.x).h= 0;} +#line 3024 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 148: /* image: UNSIGNED image_dimen plus minus */ +#line 525 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.x).w= (yyvsp[-2].x).w;(yyval.x).h= (yyvsp[-2].x).h;(yyval.x).p= (yyvsp[-1].st);(yyval.x).m= (yyvsp[0].st);RNG("Section number",(yyvsp[-3].u),3,max_section_no);(yyval.x).n= (yyvsp[-3].u);} +#line 3030 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 149: /* content_node: start "image" image ">" */ +#line 526 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-3].u),hput_image(&((yyvsp[-1].x))));} +#line 3036 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 150: /* max_value: "outline" UNSIGNED */ +#line 529 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {max_outline= (yyvsp[0].u); +RNG("max outline",max_outline,0,0xFFFF); +DBG(DBGDEF|DBGLABEL,"Setting max outline to %d\n",max_outline); +} +#line 3045 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 151: /* placement: "top" */ +#line 535 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.i)= LABEL_TOP;} +#line 3051 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 152: /* placement: "bot" */ +#line 535 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.i)= LABEL_BOT;} +#line 3057 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 153: /* placement: "mid" */ +#line 535 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.i)= LABEL_MID;} +#line 3063 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 154: /* placement: %empty */ +#line 535 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.i)= LABEL_MID;} +#line 3069 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 155: /* content_node: "<" "label" REFERENCE placement ">" */ +#line 537 "../../../texk/web2c/hitexdir/hishrink-parser.y" +{hset_label((yyvsp[-2].u),(yyvsp[-1].i));} +#line 3075 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 156: /* content_node: start "link" REFERENCE on_off ">" */ +#line 541 "../../../texk/web2c/hitexdir/hishrink-parser.y" +{hput_tags((yyvsp[-4].u),hput_link((yyvsp[-2].u),(yyvsp[-1].i)));} +#line 3081 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 157: /* def_node: "<" "outline" REFERENCE integer position list ">" */ +#line 544 "../../../texk/web2c/hitexdir/hishrink-parser.y" + { +static int outline_no= -1; +(yyval.rf).k= outline_kind;(yyval.rf).n= (yyvsp[-4].u); +if((yyvsp[-1].l).s==0)QUIT("Outline with empty title in line %d",yylineno); +outline_no++; +hset_outline(outline_no,(yyvsp[-4].u),(yyvsp[-3].i),(yyvsp[-2].u)); +} +#line 3093 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 158: /* stream_link: ref */ +#line 553 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {REF_RNG(stream_kind,(yyvsp[0].u));} +#line 3099 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 159: /* stream_link: "*" */ +#line 553 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {HPUT8(255);} +#line 3105 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 160: /* stream_split: stream_link stream_link UNSIGNED */ +#line 554 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {RNG("split ratio",(yyvsp[0].u),0,1000);HPUT16((yyvsp[0].u));} +#line 3111 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 161: /* $@7: %empty */ +#line 555 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {RNG("magnification factor",(yyvsp[0].u),0,1000);HPUT16((yyvsp[0].u));} +#line 3117 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 163: /* stream_type: stream_info */ +#line 557 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= 0;} +#line 3123 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 164: /* stream_type: "first" */ +#line 557 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= 1;} +#line 3129 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 165: /* stream_type: "last" */ +#line 557 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= 2;} +#line 3135 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 166: /* stream_type: "top" */ +#line 557 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= 3;} +#line 3141 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 167: /* stream_def_node: start "stream (definition)" ref stream_type list xdimen_node glue_node list glue_node ">" */ +#line 561 "../../../texk/web2c/hitexdir/hishrink-parser.y" +{DEF((yyval.rf),stream_kind,(yyvsp[-7].u));hput_tags((yyvsp[-9].u),TAG(stream_kind,(yyvsp[-6].info)|b100));} +#line 3147 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 168: /* stream_ins_node: start "stream (definition)" ref ">" */ +#line 564 "../../../texk/web2c/hitexdir/hishrink-parser.y" +{RNG("Stream insertion",(yyvsp[-1].u),0,max_ref[stream_kind]);hput_tags((yyvsp[-3].u),TAG(stream_kind,b100));} +#line 3153 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 171: /* stream: empty_param_list list */ +#line 569 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b010;} +#line 3159 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 172: /* stream: empty_param_list non_empty_param_list list */ +#line 570 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b010;} +#line 3165 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 173: /* stream: param_ref list */ +#line 571 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.info)= b000;} +#line 3171 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 174: /* content_node: start "stream" stream_ref stream ">" */ +#line 573 "../../../texk/web2c/hitexdir/hishrink-parser.y" +{hput_tags((yyvsp[-4].u),TAG(stream_kind,(yyvsp[-1].info)));} +#line 3177 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 175: /* page_priority: %empty */ +#line 576 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {HPUT8(1);} +#line 3183 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 176: /* page_priority: UNSIGNED */ +#line 577 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {RNG("page priority",(yyvsp[0].u),0,255);HPUT8((yyvsp[0].u));} +#line 3189 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 179: /* $@8: %empty */ +#line 581 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_string((yyvsp[0].s));} +#line 3195 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 180: /* $@9: %empty */ +#line 581 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {HPUT32((yyvsp[0].d));} +#line 3201 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 182: /* content_node: "<" "range" REFERENCE "on" ">" */ +#line 587 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {REF(page_kind,(yyvsp[-2].u));hput_range((yyvsp[-2].u),true);} +#line 3207 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 183: /* content_node: "<" "range" REFERENCE "off" ">" */ +#line 588 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {REF(page_kind,(yyvsp[-2].u));hput_range((yyvsp[-2].u),false);} +#line 3213 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 185: /* $@10: %empty */ +#line 594 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {new_directory((yyvsp[0].u)+1);new_output_buffers();} +#line 3219 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 189: /* entry: "<" "entry" UNSIGNED string ">" */ +#line 597 "../../../texk/web2c/hitexdir/hishrink-parser.y" +{RNG("Section number",(yyvsp[-2].u),3,max_section_no);hset_entry(&(dir[(yyvsp[-2].u)]),(yyvsp[-2].u),0,0,(yyvsp[-1].s));} +#line 3225 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 190: /* $@11: %empty */ +#line 600 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_definitions_start();} +#line 3231 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 191: /* definition_section: "<" "definitions" $@11 max_definitions definition_list ">" */ +#line 602 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_definitions_end();} +#line 3237 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 194: /* max_definitions: "<" "max" max_list ">" */ +#line 607 "../../../texk/web2c/hitexdir/hishrink-parser.y" +{/*245:*/ + +if(max_ref[label_kind]>=0) +ALLOCATE(labels,max_ref[label_kind]+1,label_t); +/*:245*//*266:*/ + +if(max_outline>=0) +ALLOCATE(outlines,max_outline+1,outline_t); +/*:266*//*293:*/ + +ALLOCATE(page_on,max_ref[page_kind]+1,int); +ALLOCATE(range_pos,2*(max_ref[range_kind]+1),range_pos_t); +/*:293*//*357:*/ + +definition_bits[0][int_kind]= (1<<(MAX_INT_DEFAULT+1))-1; +definition_bits[0][dimen_kind]= (1<<(MAX_DIMEN_DEFAULT+1))-1; +definition_bits[0][xdimen_kind]= (1<<(MAX_XDIMEN_DEFAULT+1))-1; +definition_bits[0][glue_kind]= (1<<(MAX_GLUE_DEFAULT+1))-1; +definition_bits[0][baseline_kind]= (1<<(MAX_BASELINE_DEFAULT+1))-1; +definition_bits[0][page_kind]= (1<<(MAX_PAGE_DEFAULT+1))-1; +definition_bits[0][stream_kind]= (1<<(MAX_STREAM_DEFAULT+1))-1; +definition_bits[0][range_kind]= (1<<(MAX_RANGE_DEFAULT+1))-1; +/*:357*//*372:*/ + +ALLOCATE(hfont_name,max_ref[font_kind]+1,char*); +/*:372*/ +hput_max_definitions();} +#line 3269 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 197: /* max_value: "font" UNSIGNED */ +#line 637 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hset_max(font_kind,(yyvsp[0].u));} +#line 3275 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 198: /* max_value: "int" UNSIGNED */ +#line 638 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hset_max(int_kind,(yyvsp[0].u));} +#line 3281 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 199: /* max_value: "dimen" UNSIGNED */ +#line 639 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hset_max(dimen_kind,(yyvsp[0].u));} +#line 3287 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 200: /* max_value: "ligature" UNSIGNED */ +#line 640 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hset_max(ligature_kind,(yyvsp[0].u));} +#line 3293 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 201: /* max_value: "disc" UNSIGNED */ +#line 641 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hset_max(disc_kind,(yyvsp[0].u));} +#line 3299 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 202: /* max_value: "glue" UNSIGNED */ +#line 642 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hset_max(glue_kind,(yyvsp[0].u));} +#line 3305 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 203: /* max_value: "language" UNSIGNED */ +#line 643 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hset_max(language_kind,(yyvsp[0].u));} +#line 3311 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 204: /* max_value: "rule" UNSIGNED */ +#line 644 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hset_max(rule_kind,(yyvsp[0].u));} +#line 3317 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 205: /* max_value: "image" UNSIGNED */ +#line 645 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hset_max(image_kind,(yyvsp[0].u));} +#line 3323 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 206: /* max_value: "leaders" UNSIGNED */ +#line 646 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hset_max(leaders_kind,(yyvsp[0].u));} +#line 3329 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 207: /* max_value: "baseline" UNSIGNED */ +#line 647 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hset_max(baseline_kind,(yyvsp[0].u));} +#line 3335 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 208: /* max_value: "xdimen" UNSIGNED */ +#line 648 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hset_max(xdimen_kind,(yyvsp[0].u));} +#line 3341 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 209: /* max_value: "param" UNSIGNED */ +#line 649 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hset_max(param_kind,(yyvsp[0].u));} +#line 3347 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 210: /* max_value: "stream (definition)" UNSIGNED */ +#line 650 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hset_max(stream_kind,(yyvsp[0].u));} +#line 3353 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 211: /* max_value: "page" UNSIGNED */ +#line 651 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hset_max(page_kind,(yyvsp[0].u));} +#line 3359 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 212: /* max_value: "range" UNSIGNED */ +#line 652 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hset_max(range_kind,(yyvsp[0].u));} +#line 3365 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 213: /* max_value: "label" UNSIGNED */ +#line 653 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hset_max(label_kind,(yyvsp[0].u));} +#line 3371 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 214: /* def_node: start "font" ref font ">" */ +#line 658 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {DEF((yyval.rf),font_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),(yyvsp[-1].info));} +#line 3377 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 215: /* def_node: start "int" ref integer ">" */ +#line 659 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {DEF((yyval.rf),int_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),hput_int((yyvsp[-1].i)));} +#line 3383 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 216: /* def_node: start "dimen" ref dimension ">" */ +#line 660 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {DEF((yyval.rf),dimen_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),hput_dimen((yyvsp[-1].d)));} +#line 3389 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 217: /* def_node: start "language" ref string ">" */ +#line 661 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {DEF((yyval.rf),language_kind,(yyvsp[-2].u));hput_string((yyvsp[-1].s));hput_tags((yyvsp[-4].u),TAG(language_kind,0));} +#line 3395 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 218: /* def_node: start "glue" ref glue ">" */ +#line 662 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {DEF((yyval.rf),glue_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),hput_glue(&((yyvsp[-1].g))));} +#line 3401 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 219: /* def_node: start "xdimen" ref xdimen ">" */ +#line 663 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {DEF((yyval.rf),xdimen_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),hput_xdimen(&((yyvsp[-1].xd))));} +#line 3407 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 220: /* def_node: start "rule" ref rule ">" */ +#line 664 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {DEF((yyval.rf),rule_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),hput_rule(&((yyvsp[-1].r))));} +#line 3413 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 221: /* def_node: start "leaders" ref leaders ">" */ +#line 665 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {DEF((yyval.rf),leaders_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),TAG(leaders_kind,(yyvsp[-1].info)));} +#line 3419 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 222: /* def_node: start "baseline" ref baseline ">" */ +#line 666 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {DEF((yyval.rf),baseline_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),TAG(baseline_kind,(yyvsp[-1].info)));} +#line 3425 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 223: /* def_node: start "ligature" ref ligature ">" */ +#line 667 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {DEF((yyval.rf),ligature_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),hput_ligature(&((yyvsp[-1].lg))));} +#line 3431 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 224: /* def_node: start "disc" ref disc ">" */ +#line 668 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {DEF((yyval.rf),disc_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),hput_disc(&((yyvsp[-1].dc))));} +#line 3437 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 225: /* def_node: start "image" ref image ">" */ +#line 669 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {DEF((yyval.rf),image_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),hput_image(&((yyvsp[-1].x))));} +#line 3443 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 226: /* def_node: start "param" ref parameters ">" */ +#line 670 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {DEF((yyval.rf),param_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),hput_list((yyvsp[-4].u)+2,&((yyvsp[-1].l))));} +#line 3449 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 227: /* def_node: start "page" ref page ">" */ +#line 671 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {DEF((yyval.rf),page_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),TAG(page_kind,0));} +#line 3455 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 228: /* def_node: start "int" ref ref ">" */ +#line 675 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {DEF_REF((yyval.rf),int_kind,(yyvsp[-2].u),(yyvsp[-1].u));hput_tags((yyvsp[-4].u),TAG(int_kind,0));} +#line 3461 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 229: /* def_node: start "dimen" ref ref ">" */ +#line 676 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {DEF_REF((yyval.rf),dimen_kind,(yyvsp[-2].u),(yyvsp[-1].u));hput_tags((yyvsp[-4].u),TAG(dimen_kind,0));} +#line 3467 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 230: /* def_node: start "glue" ref ref ">" */ +#line 677 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {DEF_REF((yyval.rf),glue_kind,(yyvsp[-2].u),(yyvsp[-1].u));hput_tags((yyvsp[-4].u),TAG(glue_kind,0));} +#line 3473 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 232: /* def_list: def_list def_node */ +#line 681 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {check_param_def(&((yyvsp[0].rf)));} +#line 3479 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 233: /* parameters: estimate def_list */ +#line 682 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {(yyval.l).p= (yyvsp[0].u);(yyval.l).k= param_kind;(yyval.l).s= (hpos-hstart)-(yyvsp[0].u);} +#line 3485 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 234: /* empty_param_list: position */ +#line 685 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {HPUTX(2);hpos++;hput_tags((yyvsp[0].u),TAG(param_kind,1));} +#line 3491 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 235: /* $@12: %empty */ +#line 686 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hpos= hpos-2;} +#line 3497 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 236: /* non_empty_param_list: start "param" $@12 parameters ">" */ +#line 687 "../../../texk/web2c/hitexdir/hishrink-parser.y" +{hput_tags((yyvsp[-4].u)-2,hput_list((yyvsp[-4].u)-1,&((yyvsp[-1].l))));} +#line 3503 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 238: /* font_head: string dimension UNSIGNED UNSIGNED */ +#line 694 "../../../texk/web2c/hitexdir/hishrink-parser.y" +{uint8_t f= (yyvsp[-4].u);SET_DBIT(f,font_kind);hfont_name[f]= strdup((yyvsp[-3].s));(yyval.info)= hput_font_head(f,hfont_name[f],(yyvsp[-2].d),(yyvsp[-1].u),(yyvsp[0].u));} +#line 3509 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 241: /* font_param: start "penalty" fref penalty ">" */ +#line 699 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-4].u),hput_int((yyvsp[-1].i)));} +#line 3515 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 242: /* font_param: start "kern" fref kern ">" */ +#line 700 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-4].u),hput_kern(&((yyvsp[-1].kt))));} +#line 3521 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 243: /* font_param: start "ligature" fref ligature ">" */ +#line 701 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-4].u),hput_ligature(&((yyvsp[-1].lg))));} +#line 3527 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 244: /* font_param: start "disc" fref disc ">" */ +#line 702 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-4].u),hput_disc(&((yyvsp[-1].dc))));} +#line 3533 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 245: /* font_param: start "glue" fref glue ">" */ +#line 703 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-4].u),hput_glue(&((yyvsp[-1].g))));} +#line 3539 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 246: /* font_param: start "language" fref string ">" */ +#line 704 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_string((yyvsp[-1].s));hput_tags((yyvsp[-4].u),TAG(language_kind,0));} +#line 3545 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 247: /* font_param: start "rule" fref rule ">" */ +#line 705 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-4].u),hput_rule(&((yyvsp[-1].r))));} +#line 3551 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 248: /* font_param: start "image" fref image ">" */ +#line 706 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_tags((yyvsp[-4].u),hput_image(&((yyvsp[-1].x))));} +#line 3557 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 249: /* fref: ref */ +#line 708 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {RNG("Font parameter",(yyvsp[0].u),0,MAX_FONT_PARAMS);} +#line 3563 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 250: /* xdimen_ref: ref */ +#line 711 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {REF(xdimen_kind,(yyvsp[0].u));} +#line 3569 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 251: /* param_ref: ref */ +#line 712 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {REF(param_kind,(yyvsp[0].u));} +#line 3575 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 252: /* stream_ref: ref */ +#line 713 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {REF_RNG(stream_kind,(yyvsp[0].u));} +#line 3581 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 253: /* content_node: start "penalty" ref ">" */ +#line 717 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {REF(penalty_kind,(yyvsp[-1].u));hput_tags((yyvsp[-3].u),TAG(penalty_kind,0));} +#line 3587 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 254: /* content_node: start "kern" explicit ref ">" */ +#line 719 "../../../texk/web2c/hitexdir/hishrink-parser.y" +{REF(dimen_kind,(yyvsp[-1].u));hput_tags((yyvsp[-4].u),TAG(kern_kind,((yyvsp[-2].b))?b100:b000));} +#line 3593 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 255: /* content_node: start "kern" explicit "xdimen" ref ">" */ +#line 721 "../../../texk/web2c/hitexdir/hishrink-parser.y" +{REF(xdimen_kind,(yyvsp[-1].u));hput_tags((yyvsp[-5].u),TAG(kern_kind,((yyvsp[-3].b))?b101:b001));} +#line 3599 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 256: /* content_node: start "glue" ref ">" */ +#line 722 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {REF(glue_kind,(yyvsp[-1].u));hput_tags((yyvsp[-3].u),TAG(glue_kind,0));} +#line 3605 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 257: /* content_node: start "ligature" ref ">" */ +#line 723 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {REF(ligature_kind,(yyvsp[-1].u));hput_tags((yyvsp[-3].u),TAG(ligature_kind,0));} +#line 3611 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 258: /* content_node: start "disc" ref ">" */ +#line 724 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {REF(disc_kind,(yyvsp[-1].u));hput_tags((yyvsp[-3].u),TAG(disc_kind,0));} +#line 3617 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 259: /* content_node: start "rule" ref ">" */ +#line 725 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {REF(rule_kind,(yyvsp[-1].u));hput_tags((yyvsp[-3].u),TAG(rule_kind,0));} +#line 3623 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 260: /* content_node: start "image" ref ">" */ +#line 726 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {REF(image_kind,(yyvsp[-1].u));hput_tags((yyvsp[-3].u),TAG(image_kind,0));} +#line 3629 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 261: /* content_node: start "leaders" ref ">" */ +#line 727 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {REF(leaders_kind,(yyvsp[-1].u));hput_tags((yyvsp[-3].u),TAG(leaders_kind,0));} +#line 3635 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 262: /* content_node: start "baseline" ref ">" */ +#line 728 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {REF(baseline_kind,(yyvsp[-1].u));hput_tags((yyvsp[-3].u),TAG(baseline_kind,0));} +#line 3641 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 263: /* content_node: start "language" REFERENCE ">" */ +#line 729 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {REF(language_kind,(yyvsp[-1].u));hput_tags((yyvsp[-3].u),hput_language((yyvsp[-1].u)));} +#line 3647 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 264: /* glue_node: start "glue" ref ">" */ +#line 731 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {REF(glue_kind,(yyvsp[-1].u)); +if((yyvsp[-1].u)==zero_skip_no){hpos= hpos-2;(yyval.b)= false;} +else{hput_tags((yyvsp[-3].u),TAG(glue_kind,0));(yyval.b)= true;}} +#line 3655 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 265: /* $@13: %empty */ +#line 737 "../../../texk/web2c/hitexdir/hishrink-parser.y" + {hput_content_start();} +#line 3661 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + case 266: /* content_section: "<" "content" $@13 content_list ">" */ +#line 738 "../../../texk/web2c/hitexdir/hishrink-parser.y" +{hput_content_end();hput_range_defs();hput_label_defs();} +#line 3667 "../../../texk/web2c/hitexdir/hishrink-parser.c" + break; + + +#line 3671 "../../../texk/web2c/hitexdir/hishrink-parser.c" + + default: break; + } + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ + YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); + + YYPOPSTACK (yylen); + yylen = 0; + + *++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. */ + { + const int yylhs = yyr1[yyn] - YYNTOKENS; + const int yyi = yypgoto[yylhs] + *yyssp; + yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp + ? yytable[yyi] + : yydefgoto[yylhs]); + } + + goto yynewstate; + + +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ +yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; + { + yypcontext_t yyctx + = {yyssp, yytoken}; + char const *yymsgp = YY_("syntax error"); + int yysyntax_error_status; + yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx); + if (yysyntax_error_status == 0) + yymsgp = yymsg; + else if (yysyntax_error_status == -1) + { + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = YY_CAST (char *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc))); + if (yymsg) + { + yysyntax_error_status + = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx); + yymsgp = yymsg; + } + else + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + yysyntax_error_status = YYENOMEM; + } + } + yyerror (yymsgp); + if (yysyntax_error_status == YYENOMEM) + YYNOMEM; + } + } + + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse lookahead 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 lookahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + /* Pacify compilers when the user code never invokes YYERROR and the + label yyerrorlab therefore never appears in user code. */ + if (0) + YYERROR; + ++yynerrs; + + /* Do not reclaim the symbols of the rule whose 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. */ + + /* Pop stack until we find a state that shifts the error token. */ + for (;;) + { + yyn = yypact[yystate]; + if (!yypact_value_is_default (yyn)) + { + yyn += YYSYMBOL_YYerror; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) + { + 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", + YY_ACCESSING_SYMBOL (yystate), yyvsp); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturnlab; + + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturnlab; + + +/*-----------------------------------------------------------. +| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. | +`-----------------------------------------------------------*/ +yyexhaustedlab: + yyerror (YY_("memory exhausted")); + yyresult = 2; + goto yyreturnlab; + + +/*----------------------------------------------------------. +| yyreturnlab -- parsing is finished, clean up and return. | +`----------------------------------------------------------*/ +yyreturnlab: + if (yychar != YYEMPTY) + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + } + /* Do not reclaim the symbols of the rule whose action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + YY_ACCESSING_SYMBOL (+*yyssp), yyvsp); + YYPOPSTACK (1); + } +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + return yyresult; +} + +#line 741 "../../../texk/web2c/hitexdir/hishrink-parser.y" + +/*:510*/ diff --git a/Build/source/texk/web2c/hitexdir/hishrink-parser.h b/Build/source/texk/web2c/hitexdir/hishrink-parser.h new file mode 100644 index 00000000000..c6b0ea3d8e2 --- /dev/null +++ b/Build/source/texk/web2c/hitexdir/hishrink-parser.h @@ -0,0 +1,258 @@ +/* A Bison parser, made by GNU Bison 3.8.2. */ + +/* Bison interface for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 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 3 of the License, 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, see <https://www.gnu.org/licenses/>. */ + +/* 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. */ + +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + +#ifndef YY_YY__TEXK_WEB_C_HITEXDIR_HISHRINK_PARSER_H_INCLUDED +# define YY_YY__TEXK_WEB_C_HITEXDIR_HISHRINK_PARSER_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int yydebug; +#endif + +/* Token kinds. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + START = 258, /* "<" */ + END = 259, /* ">" */ + GLYPH = 260, /* "glyph" */ + UNSIGNED = 261, /* UNSIGNED */ + REFERENCE = 262, /* REFERENCE */ + SIGNED = 263, /* SIGNED */ + STRING = 264, /* STRING */ + CHARCODE = 265, /* CHARCODE */ + FPNUM = 266, /* FPNUM */ + DIMEN = 267, /* "dimen" */ + PT = 268, /* "pt" */ + MM = 269, /* "mm" */ + INCH = 270, /* "in" */ + XDIMEN = 271, /* "xdimen" */ + H = 272, /* "h" */ + V = 273, /* "v" */ + FIL = 274, /* "fil" */ + FILL = 275, /* "fill" */ + FILLL = 276, /* "filll" */ + PENALTY = 277, /* "penalty" */ + INTEGER = 278, /* "int" */ + LANGUAGE = 279, /* "language" */ + RULE = 280, /* "rule" */ + RUNNING = 281, /* "|" */ + KERN = 282, /* "kern" */ + EXPLICIT = 283, /* "!" */ + GLUE = 284, /* "glue" */ + PLUS = 285, /* "plus" */ + MINUS = 286, /* "minus" */ + TXT_START = 287, /* TXT_START */ + TXT_END = 288, /* TXT_END */ + TXT_IGNORE = 289, /* TXT_IGNORE */ + TXT_FONT_GLUE = 290, /* TXT_FONT_GLUE */ + TXT_FONT_HYPHEN = 291, /* TXT_FONT_HYPHEN */ + TXT_FONT = 292, /* TXT_FONT */ + TXT_LOCAL = 293, /* TXT_LOCAL */ + TXT_GLOBAL = 294, /* TXT_GLOBAL */ + TXT_CC = 295, /* TXT_CC */ + HBOX = 296, /* "hbox" */ + VBOX = 297, /* "vbox" */ + SHIFTED = 298, /* "shifted" */ + HPACK = 299, /* "hpack" */ + HSET = 300, /* "hset" */ + VPACK = 301, /* "vpack" */ + VSET = 302, /* "vset" */ + DEPTH = 303, /* "depth" */ + ADD = 304, /* "add" */ + TO = 305, /* "to" */ + LEADERS = 306, /* "leaders" */ + ALIGN = 307, /* "align" */ + CENTER = 308, /* "center" */ + EXPAND = 309, /* "expand" */ + BASELINE = 310, /* "baseline" */ + LIGATURE = 311, /* "ligature" */ + DISC = 312, /* "disc" */ + PAR = 313, /* "par" */ + MATH = 314, /* "math" */ + ON = 315, /* "on" */ + OFF = 316, /* "off" */ + ADJUST = 317, /* "adjust" */ + TABLE = 318, /* "table" */ + ITEM = 319, /* "item" */ + IMAGE = 320, /* "image" */ + LABEL = 321, /* "label" */ + BOT = 322, /* "bot" */ + MID = 323, /* "mid" */ + LINK = 324, /* "link" */ + OUTLINE = 325, /* "outline" */ + STREAM = 326, /* "stream" */ + STREAMDEF = 327, /* "stream (definition)" */ + FIRST = 328, /* "first" */ + LAST = 329, /* "last" */ + TOP = 330, /* "top" */ + NOREFERENCE = 331, /* "*" */ + PAGE = 332, /* "page" */ + RANGE = 333, /* "range" */ + DIRECTORY = 334, /* "directory" */ + SECTION = 335, /* "entry" */ + DEFINITIONS = 336, /* "definitions" */ + MAX = 337, /* "max" */ + PARAM = 338, /* "param" */ + FONT = 339, /* "font" */ + CONTENT = 340 /* "content" */ + }; + typedef enum yytokentype yytoken_kind_t; +#endif +/* Token kinds. */ +#define YYEMPTY -2 +#define YYEOF 0 +#define YYerror 256 +#define YYUNDEF 257 +#define START 258 +#define END 259 +#define GLYPH 260 +#define UNSIGNED 261 +#define REFERENCE 262 +#define SIGNED 263 +#define STRING 264 +#define CHARCODE 265 +#define FPNUM 266 +#define DIMEN 267 +#define PT 268 +#define MM 269 +#define INCH 270 +#define XDIMEN 271 +#define H 272 +#define V 273 +#define FIL 274 +#define FILL 275 +#define FILLL 276 +#define PENALTY 277 +#define INTEGER 278 +#define LANGUAGE 279 +#define RULE 280 +#define RUNNING 281 +#define KERN 282 +#define EXPLICIT 283 +#define GLUE 284 +#define PLUS 285 +#define MINUS 286 +#define TXT_START 287 +#define TXT_END 288 +#define TXT_IGNORE 289 +#define TXT_FONT_GLUE 290 +#define TXT_FONT_HYPHEN 291 +#define TXT_FONT 292 +#define TXT_LOCAL 293 +#define TXT_GLOBAL 294 +#define TXT_CC 295 +#define HBOX 296 +#define VBOX 297 +#define SHIFTED 298 +#define HPACK 299 +#define HSET 300 +#define VPACK 301 +#define VSET 302 +#define DEPTH 303 +#define ADD 304 +#define TO 305 +#define LEADERS 306 +#define ALIGN 307 +#define CENTER 308 +#define EXPAND 309 +#define BASELINE 310 +#define LIGATURE 311 +#define DISC 312 +#define PAR 313 +#define MATH 314 +#define ON 315 +#define OFF 316 +#define ADJUST 317 +#define TABLE 318 +#define ITEM 319 +#define IMAGE 320 +#define LABEL 321 +#define BOT 322 +#define MID 323 +#define LINK 324 +#define OUTLINE 325 +#define STREAM 326 +#define STREAMDEF 327 +#define FIRST 328 +#define LAST 329 +#define TOP 330 +#define NOREFERENCE 331 +#define PAGE 332 +#define RANGE 333 +#define DIRECTORY 334 +#define SECTION 335 +#define DEFINITIONS 336 +#define MAX 337 +#define PARAM 338 +#define FONT 339 +#define CONTENT 340 + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +union YYSTYPE +{ +#line 78 "../../../texk/web2c/hitexdir/hishrink-parser.y" +uint32_t u;int32_t i;char*s;float64_t f;glyph_t c; +dimen_t d;stretch_t st;xdimen_t xd;kern_t kt; +rule_t r;glue_t g;image_t x; +list_t l;box_t h;disc_t dc;lig_t lg; +ref_t rf;info_t info;order_t o;bool b; + +#line 244 "../../../texk/web2c/hitexdir/hishrink-parser.h" + +}; +typedef union YYSTYPE YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif + + +extern YYSTYPE yylval; + + +int yyparse (void); + + +#endif /* !YY_YY__TEXK_WEB_C_HITEXDIR_HISHRINK_PARSER_H_INCLUDED */ diff --git a/Build/source/texk/web2c/hitexdir/hishrink-parser.y b/Build/source/texk/web2c/hitexdir/hishrink-parser.y new file mode 100644 index 00000000000..57f4834902f --- /dev/null +++ b/Build/source/texk/web2c/hitexdir/hishrink-parser.y @@ -0,0 +1,742 @@ +/*510:*/ + +%{ +#include "basetypes.h" +#include <string.h> +#include <math.h> +#include "error.h" +#include "hformat.h" +#include "hput.h" +extern char**hfont_name; + +/*356:*/ + +uint32_t definition_bits[0x100/32][32]= {{0}}; + +#define SET_DBIT(N,K) ((N)> 0xFF?1:(definition_bits[N/32][K]|= (1<<((N)&(32-1))))) +#define GET_DBIT(N,K) ((N)> 0xFF?1:((definition_bits[N/32][K]>>((N)&(32-1)))&1)) +#define DEF(D,K,N) (D).k= K; (D).n= (N);SET_DBIT((D).n,(D).k);\ + DBG(DBGDEF,"Defining %s %d\n",definition_name[(D).k],(D).n);\ + RNG("Definition",(D).n,max_fixed[(D).k]+1,max_ref[(D).k]); +#define REF(K,N) REF_RNG(K,N);if(!GET_DBIT(N,K)) \ + QUIT("Reference %d to %s before definition",(N),definition_name[K]) +/*:356*//*360:*/ + +#define DEF_REF(D,K,M,N) DEF(D,K,M);\ +if ((M)> max_default[K]) QUIT("Defining non default reference %d for %s",M,definition_name[K]); \ +if ((N)> max_fixed[K]) QUIT("Defining reference %d for %s by non fixed reference %d",M,definition_name[K],N); +/*:360*/ + + +extern void hset_entry(entry_t*e,uint16_t i,uint32_t size, +uint32_t xsize,char*file_name); + +/*423:*/ + +#ifdef DEBUG +#define YYDEBUG 1 +extern int yydebug; +#else +#define YYDEBUG 0 +#endif +/*:423*/ + +extern int yylex(void); + +/*352:*/ + +void hset_max(kind_t k,int n) +{DBG(DBGDEF,"Setting max %s to %d\n",definition_name[k],n); +RNG("Maximum",n,max_fixed[k]+1,MAX_REF(k)); +if(n> max_ref[k]) +max_ref[k]= n; +} +/*:352*//*363:*/ + +void check_param_def(ref_t*df) +{if(df->k!=int_kind&&df->k!=dimen_kind&&df->k!=glue_kind) +QUIT("Kind %s not allowed in parameter list",definition_name[df->k]); +if(df->n<=max_fixed[df->k]||max_default[df->k]<df->n) +QUIT("Parameter %d for %s not allowed in parameter list",df->n,definition_name[df->k]); +} +/*:363*//*422:*/ + +extern int yylineno; +int yyerror(const char*msg) +{QUIT(" in line %d %s",yylineno,msg); +return 0; +} +/*:422*/ + + +%} + + + + + +%union{uint32_t u;int32_t i;char*s;float64_t f;glyph_t c; +dimen_t d;stretch_t st;xdimen_t xd;kern_t kt; +rule_t r;glue_t g;image_t x; +list_t l;box_t h;disc_t dc;lig_t lg; +ref_t rf;info_t info;order_t o;bool b; +} + + + +%error_verbose +%start hint + +/*2:*/ + +%token START"<" +%token END">" +%token GLYPH"glyph" +%token<u> UNSIGNED +%token<u> REFERENCE +/*:2*//*4:*/ + +%type<u> start +%type<c> glyph +/*:4*//*26:*/ + +%token<i> SIGNED +%type<i> integer +/*:26*//*33:*/ + +%token<s> STRING +/*:33*//*47:*/ + +%token<u> CHARCODE +/*:47*//*49:*/ + +%type<s> string +/*:49*//*54:*/ + +%token<f> FPNUM +%type<f> number +/*:54*//*79:*/ + +%token DIMEN"dimen" +%token PT"pt" +%token MM"mm" +%token INCH"in" +%type<d> dimension +/*:79*//*87:*/ + +%token XDIMEN"xdimen" +%token H"h" +%token V"v" +%type<xd> xdimen +/*:87*//*98:*/ + +%token FIL"fil" +%token FILL"fill" +%token FILLL"filll" +%type<st> stretch +%type<o> order +/*:98*//*102:*/ + +%token PENALTY"penalty" +%token INTEGER"int" +%type<i> penalty +/*:102*//*108:*/ + +%token LANGUAGE"language" +/*:108*//*114:*/ + +%token RULE"rule" +%token RUNNING"|" +%type<d> rule_dimension +%type<r> rule +/*:114*//*123:*/ + +%token KERN"kern" +%token EXPLICIT"!" +%type<b> explicit +%type<kt> kern +/*:123*//*132:*/ + +%token GLUE"glue" +%token PLUS"plus" +%token MINUS"minus" +%type<g> glue +%type<b> glue_node +%type<st> plus minus +/*:132*//*141:*/ + +%type<l> list +%type<u> position content_list +/*:141*//*150:*/ + +%token TXT_START TXT_END TXT_IGNORE +%token TXT_FONT_GLUE TXT_FONT_HYPHEN +%token<u> TXT_FONT TXT_LOCAL +%token<rf> TXT_GLOBAL +%token<u> TXT_CC +%type<u> text +/*:150*//*161:*/ + +%token HBOX"hbox" +%token VBOX"vbox" +%token SHIFTED"shifted" +%type<info> box box_dimen box_shift box_glue_set + +/*:161*//*169:*/ + +%token HPACK"hpack" +%token HSET"hset" +%token VPACK"vpack" +%token VSET"vset" +%token DEPTH"depth" +%token ADD"add" +%token TO"to" +%type<info> xbox box_goal hpack vpack +/*:169*//*174:*/ + +%token LEADERS"leaders" +%token ALIGN"align" +%token CENTER"center" +%token EXPAND"expand" +%type<info> leaders +%type<info> ltype +/*:174*//*181:*/ + +%token BASELINE"baseline" +%type<info> baseline +/*:181*//*188:*/ + +%token LIGATURE"ligature" +%type<u> lig_cc +%type<lg> ligature +%type<u> ref +/*:188*//*196:*/ + +%token DISC"disc" +%type<dc> disc +%type<u> replace_count +/*:196*//*204:*/ + +%token PAR"par" +%type<info> par +/*:204*//*209:*/ + +%token MATH"math" +%type<info> math +/*:209*//*214:*/ + +%token ON"on" +%token OFF"off" +%type<i> on_off +/*:214*//*218:*/ + +%token ADJUST"adjust" +/*:218*//*222:*/ + +%token TABLE"table" +%token ITEM"item" +%type<info> table span_count +/*:222*//*229:*/ + +%token IMAGE"image" +%type<x> image image_dimen +/*:229*//*246:*/ + +%token LABEL"label" +%token BOT"bot" +%token MID"mid" +%type<i> placement +/*:246*//*260:*/ + +%token LINK"link" +/*:260*//*270:*/ + +%token OUTLINE"outline" +/*:270*//*277:*/ + +%token STREAM"stream" +%token STREAMDEF"stream (definition)" +%token FIRST"first" +%token LAST"last" +%token TOP"top" +%token NOREFERENCE"*" +%type<info> stream_type +%type<u> stream_ref +%type<rf> stream_def_node +/*:277*//*283:*/ + +%type<info> stream +/*:283*//*287:*/ + +%token PAGE"page" +/*:287*//*295:*/ + +%token RANGE"range" +/*:295*//*322:*/ + +%token DIRECTORY"directory" +%token SECTION"entry" +/*:322*//*341:*/ + +%token DEFINITIONS"definitions" +/*:341*//*349:*/ + +%token MAX"max" +/*:349*//*358:*/ + + +%type<rf> def_node +/*:358*//*364:*/ + +%token PARAM"param" +%type<u> def_list +%type<l> parameters +/*:364*//*373:*/ + +%token FONT"font" +%type<info> font font_head +/*:373*//*401:*/ + +%token CONTENT"content" +/*:401*/ + +%% +/*5:*/ + +glyph:UNSIGNED REFERENCE{$$.c= $1;REF(font_kind,$2);$$.f= $2;}; +content_node:start GLYPH glyph END{hput_tags($1,hput_glyph(&($3)));}; +start:START{HPUTNODE;$$= (uint32_t)(hpos++-hstart);} +/*:5*//*29:*/ + +integer:SIGNED|UNSIGNED{RNG("number",$1,0,INT32_MAX);}; +/*:29*//*38:*/ + +glyph:CHARCODE REFERENCE{$$.c= $1;REF(font_kind,$2);$$.f= $2;}; +/*:38*//*50:*/ + +string:STRING|CHARCODE{static char s[2]; +RNG("String element",$1,0x20,0x7E); +s[0]= $1;s[1]= 0;$$= s;}; +/*:50*//*58:*/ + +number:UNSIGNED{$$= (float64_t)$1;}|SIGNED{$$= (float64_t)$1;}|FPNUM; +/*:58*//*82:*/ + +dimension:number PT{$$= ROUND($1*ONE);RNG("Dimension",$$,-MAX_DIMEN,MAX_DIMEN);} +|number INCH{$$= ROUND($1*ONE*72.27);RNG("Dimension",$$,-MAX_DIMEN,MAX_DIMEN);} +|number MM{$$= ROUND($1*ONE*(72.27/25.4));RNG("Dimension",$$,-MAX_DIMEN,MAX_DIMEN);}; +/*:82*//*89:*/ + +xdimen:dimension number H number V{$$.w= $1;$$.h= $2;$$.v= $4;} +|dimension number H{$$.w= $1;$$.h= $2;$$.v= 0.0;} +|dimension number V{$$.w= $1;$$.h= 0.0;$$.v= $2;} +|dimension{$$.w= $1;$$.h= 0.0;$$.v= 0.0;}; + + + +xdimen_node:start XDIMEN xdimen END{hput_tags($1,hput_xdimen(&($3)));}; +/*:89*//*100:*/ + + +order:PT{$$= normal_o;}|FIL{$$= fil_o;}|FILL{$$= fill_o;}|FILLL{$$= filll_o;}; + +stretch:number order{$$.f= $1;$$.o= $2;}; +/*:100*//*104:*/ + +penalty:integer{RNG("Penalty",$1,-20000,+20000);$$= $1;}; +content_node:start PENALTY penalty END{hput_tags($1,hput_int($3));}; +/*:104*//*116:*/ + +rule_dimension:dimension|RUNNING{$$= RUNNING_DIMEN;}; +rule:rule_dimension rule_dimension rule_dimension +{$$.h= $1;$$.d= $2;$$.w= $3; +if($3==RUNNING_DIMEN&&($1==RUNNING_DIMEN||$2==RUNNING_DIMEN)) +QUIT("Incompatible running dimensions 0x%x 0x%x 0x%x",$1,$2,$3);}; +rule_node:start RULE rule END{hput_tags($1,hput_rule(&($3)));}; +content_node:rule_node; +/*:116*//*125:*/ + +explicit:{$$= false;}|EXPLICIT{$$= true;}; +kern:explicit xdimen{$$.x= $1;$$.d= $2;}; +content_node:start KERN kern END{hput_tags($1,hput_kern(&($3)));} +/*:125*//*134:*/ + +plus:{$$.f= 0.0;$$.o= 0;}|PLUS stretch{$$= $2;}; +minus:{$$.f= 0.0;$$.o= 0;}|MINUS stretch{$$= $2;}; +glue:xdimen plus minus{$$.w= $1;$$.p= $2;$$.m= $3;}; +content_node:start GLUE glue END{if(ZERO_GLUE($3)){HPUT8(zero_skip_no); +hput_tags($1,TAG(glue_kind,0));}else hput_tags($1,hput_glue(&($3)));}; +glue_node:start GLUE glue END +{if(ZERO_GLUE($3)){hpos--;$$= false;} +else{hput_tags($1,hput_glue(&($3)));$$= true;}}; +/*:134*//*142:*/ + +position:{$$= hpos-hstart;}; +content_list:position +|content_list content_node; +estimate:{hpos+= 2;} +|UNSIGNED{hpos+= hsize_bytes($1)+1;}; +list:start estimate content_list END +{$$.k= list_kind;$$.p= $3;$$.s= (hpos-hstart)-$3; +hput_tags($1,hput_list($1+1,&($$)));}; +/*:142*//*153:*/ + +list:TXT_START position +{hpos+= 4;} +text TXT_END +{$$.k= text_kind;$$.p= $4;$$.s= (hpos-hstart)-$4; +hput_tags($2,hput_list($2+1,&($$)));}; +text:position|text txt; + +txt:TXT_CC{hput_txt_cc($1);} +|TXT_FONT{REF(font_kind,$1);hput_txt_font($1);} +|TXT_GLOBAL{REF($1.k,$1.n);hput_txt_global(&($1));} +|TXT_LOCAL{RNG("Font parameter",$1,0,11);hput_txt_local($1);} +|TXT_FONT_GLUE{HPUTX(1);HPUT8(txt_glue);} +|TXT_FONT_HYPHEN{HPUTX(1);HPUT8(txt_hyphen);} +|TXT_IGNORE{HPUTX(1);HPUT8(txt_ignore);} +|{HPUTX(1);HPUT8(txt_node);}content_node; +/*:153*//*163:*/ + + +box_dimen:dimension dimension dimension +{$$= hput_box_dimen($1,$2,$3);}; +box_shift:{$$= b000;} +|SHIFTED dimension{$$= hput_box_shift($2);}; + +box_glue_set:{$$= b000;} +|PLUS stretch{$$= hput_box_glue_set(+1,$2.f,$2.o);} +|MINUS stretch{$$= hput_box_glue_set(-1,$2.f,$2.o);}; + + +box:box_dimen box_shift box_glue_set list{$$= $1|$2|$3;}; + +hbox_node:start HBOX box END{hput_tags($1,TAG(hbox_kind,$3));}; +vbox_node:start VBOX box END{hput_tags($1,TAG(vbox_kind,$3));}; +content_node:hbox_node|vbox_node; +/*:163*//*171:*/ + +box_flex:plus minus{hput_stretch(&($1));hput_stretch(&($2));}; +xbox:box_dimen box_shift box_flex xdimen_ref list{$$= $1|$2;} +|box_dimen box_shift box_flex xdimen_node list{$$= $1|$2|b100;}; + +box_goal:TO xdimen_ref{$$= b000;} +|ADD xdimen_ref{$$= b001;} +|TO xdimen_node{$$= b100;} +|ADD xdimen_node{$$= b101;}; + +hpack:box_shift box_goal list{$$= $2;}; +vpack:box_shift MAX DEPTH dimension{HPUT32($4);}box_goal list{$$= $1|$6;}; + +vxbox_node:start VSET xbox END{hput_tags($1,TAG(vset_kind,$3));} +|start VPACK vpack END{hput_tags($1,TAG(vpack_kind,$3));}; + + +hxbox_node:start HSET xbox END{hput_tags($1,TAG(hset_kind,$3));} +|start HPACK hpack END{hput_tags($1,TAG(hpack_kind,$3));}; + +content_node:vxbox_node|hxbox_node; +/*:171*//*176:*/ + +ltype:{$$= 1;}|ALIGN{$$= 1;}|CENTER{$$= 2;}|EXPAND{$$= 3;}; +leaders:glue_node ltype rule_node{if($1)$$= $2|b100;else $$= $2;} +|glue_node ltype hbox_node{if($1)$$= $2|b100;else $$= $2;} +|glue_node ltype vbox_node{if($1)$$= $2|b100;else $$= $2;}; +content_node:start LEADERS leaders END{hput_tags($1,TAG(leaders_kind,$3));} +/*:176*//*183:*/ + +baseline:dimension{if($1!=0)HPUT32($1);} +glue_node glue_node{$$= b000;if($1!=0)$$|= b001; +if($3)$$|= b100; +if($4)$$|= b010; +}; +content_node:start BASELINE baseline END +{if($3==b000)HPUT8(0);hput_tags($1,TAG(baseline_kind,$3));}; +/*:183*//*190:*/ + +cc_list:|cc_list TXT_CC{hput_utf8($2);}; +lig_cc:UNSIGNED{RNG("UTF-8 code",$1,0,0x1FFFFF);$$= hpos-hstart;hput_utf8($1);}; +lig_cc:CHARCODE{$$= hpos-hstart;hput_utf8($1);}; +ref:REFERENCE{HPUT8($1);$$= $1;}; +ligature:ref{REF(font_kind,$1);}lig_cc TXT_START cc_list TXT_END +{$$.f= $1;$$.l.p= $3;$$.l.s= (hpos-hstart)-$3; +RNG("Ligature size",$$.l.s,0,255);}; +content_node:start LIGATURE ligature END{hput_tags($1,hput_ligature(&($3)));}; +/*:190*//*198:*/ + +replace_count:explicit{if($1){$$= 0x80;HPUT8(0x80);}else $$= 0x00;} +|explicit UNSIGNED{RNG("Replace count",$2,0,31); +$$= ($2)|(($1)?0x80:0x00);if($$!=0)HPUT8($$);}; +disc:replace_count list list{$$.r= $1;$$.p= $2;$$.q= $3; +if($3.s==0){hpos= hpos-2;if($2.s==0)hpos= hpos-2;}} +|replace_count list{$$.r= $1;$$.p= $2;if($2.s==0)hpos= hpos-2;$$.q.s= 0;} +|replace_count{$$.r= $1;$$.p.s= 0;$$.q.s= 0;}; + + +disc_node:start DISC disc END +{hput_tags($1,hput_disc(&($3)));}; + +content_node:disc_node; +/*:198*//*206:*/ + +par_dimen:xdimen{hput_xdimen_node(&($1));}; +par:xdimen_ref param_ref list{$$= b000;} +|xdimen_ref empty_param_list non_empty_param_list list{$$= b010;} +|xdimen_ref empty_param_list list{$$= b010;} +|xdimen param_ref{hput_xdimen_node(&($1));}list{$$= b100;} +|par_dimen empty_param_list non_empty_param_list list{$$= b110;} +|par_dimen empty_param_list list{$$= b110;}; + +content_node:start PAR par END{hput_tags($1,TAG(par_kind,$3));}; +/*:206*//*211:*/ + +math:param_ref list{$$= b000;} +|param_ref list hbox_node{$$= b001;} +|param_ref hbox_node list{$$= b010;} +|empty_param_list list{$$= b100;} +|empty_param_list list hbox_node{$$= b101;} +|empty_param_list hbox_node list{$$= b110;} +|empty_param_list non_empty_param_list list{$$= b100;} +|empty_param_list non_empty_param_list list hbox_node{$$= b101;} +|empty_param_list non_empty_param_list hbox_node list{$$= b110;}; + +content_node:start MATH math END{hput_tags($1,TAG(math_kind,$3));}; +/*:211*//*216:*/ + +on_off:ON{$$= 1;}|OFF{$$= 0;}; +math:on_off{$$= b011|($1<<2);}; +/*:216*//*220:*/ + +content_node:start ADJUST list END{hput_tags($1,TAG(adjust_kind,1));}; +/*:220*//*224:*/ + +span_count:UNSIGNED{$$= hput_span_count($1);}; +content_node:start ITEM content_node END{hput_tags($1,TAG(item_kind,1));}; +content_node:start ITEM span_count content_node END{hput_tags($1,TAG(item_kind,$3));}; +content_node:start ITEM list END{hput_tags($1,TAG(item_kind,b000));}; + +table:H box_goal list list{$$= $2;}; +table:V box_goal list list{$$= $2|b010;}; + +content_node:start TABLE table END{hput_tags($1,TAG(table_kind,$3));}; +/*:224*//*231:*/ + +image_dimen:dimension dimension{$$.w= $1;$$.h= $2;}|{$$.w= $$.h= 0;}; +image:UNSIGNED image_dimen plus minus{$$.w= $2.w;$$.h= $2.h;$$.p= $3;$$.m= $4;RNG("Section number",$1,3,max_section_no);$$.n= $1;}; +content_node:start IMAGE image END{hput_tags($1,hput_image(&($3)));} +/*:231*//*241:*/ + +max_value:OUTLINE UNSIGNED{max_outline= $2; +RNG("max outline",max_outline,0,0xFFFF); +DBG(DBGDEF|DBGLABEL,"Setting max outline to %d\n",max_outline); +}; +/*:241*//*248:*/ + +placement:TOP{$$= LABEL_TOP;}|BOT{$$= LABEL_BOT;}|MID{$$= LABEL_MID;}|{$$= LABEL_MID;}; +content_node:START LABEL REFERENCE placement END +{hset_label($3,$4);} +/*:248*//*262:*/ + +content_node:start LINK REFERENCE on_off END +{hput_tags($1,hput_link($3,$4));}; +/*:262*//*272:*/ + +def_node:START OUTLINE REFERENCE integer position list END{ +static int outline_no= -1; +$$.k= outline_kind;$$.n= $3; +if($6.s==0)QUIT("Outline with empty title in line %d",yylineno); +outline_no++; +hset_outline(outline_no,$3,$4,$5); +}; +/*:272*//*279:*/ + +stream_link:ref{REF_RNG(stream_kind,$1);}|NOREFERENCE{HPUT8(255);}; +stream_split:stream_link stream_link UNSIGNED{RNG("split ratio",$3,0,1000);HPUT16($3);}; +stream_info:xdimen_node UNSIGNED{RNG("magnification factor",$2,0,1000);HPUT16($2);}stream_split; + +stream_type:stream_info{$$= 0;}|FIRST{$$= 1;}|LAST{$$= 2;}|TOP{$$= 3;}; + +stream_def_node:start STREAMDEF ref stream_type +list xdimen_node glue_node list glue_node END +{DEF($$,stream_kind,$3);hput_tags($1,TAG(stream_kind,$4|b100));}; + +stream_ins_node:start STREAMDEF ref END +{RNG("Stream insertion",$3,0,max_ref[stream_kind]);hput_tags($1,TAG(stream_kind,b100));}; + +content_node:stream_def_node|stream_ins_node; +/*:279*//*284:*/ + +stream:empty_param_list list{$$= b010;} +|empty_param_list non_empty_param_list list{$$= b010;} +|param_ref list{$$= b000;}; +content_node:start STREAM stream_ref stream END +{hput_tags($1,TAG(stream_kind,$4));}; +/*:284*//*289:*/ + +page_priority:{HPUT8(1);} +|UNSIGNED{RNG("page priority",$1,0,255);HPUT8($1);}; + +stream_def_list:|stream_def_list stream_def_node; + +page:string{hput_string($1);}page_priority glue_node dimension{HPUT32($5);} +xdimen_node xdimen_node +list stream_def_list; +/*:289*//*297:*/ + + +content_node:START RANGE REFERENCE ON END{REF(page_kind,$3);hput_range($3,true);} +|START RANGE REFERENCE OFF END{REF(page_kind,$3);hput_range($3,false);}; +/*:297*//*308:*/ + +hint:directory_section definition_section content_section; +/*:308*//*324:*/ + +directory_section:START DIRECTORY UNSIGNED{new_directory($3+1);new_output_buffers();}entry_list END; +entry_list:|entry_list entry; +entry:START SECTION UNSIGNED string END +{RNG("Section number",$3,3,max_section_no);hset_entry(&(dir[$3]),$3,0,0,$4);}; +/*:324*//*343:*/ + +definition_section:START DEFINITIONS{hput_definitions_start();} +max_definitions definition_list +END{hput_definitions_end();}; +definition_list:|definition_list def_node; +/*:343*//*351:*/ + +max_definitions:START MAX max_list END +{/*245:*/ + +if(max_ref[label_kind]>=0) +ALLOCATE(labels,max_ref[label_kind]+1,label_t); +/*:245*//*266:*/ + +if(max_outline>=0) +ALLOCATE(outlines,max_outline+1,outline_t); +/*:266*//*293:*/ + +ALLOCATE(page_on,max_ref[page_kind]+1,int); +ALLOCATE(range_pos,2*(max_ref[range_kind]+1),range_pos_t); +/*:293*//*357:*/ + +definition_bits[0][int_kind]= (1<<(MAX_INT_DEFAULT+1))-1; +definition_bits[0][dimen_kind]= (1<<(MAX_DIMEN_DEFAULT+1))-1; +definition_bits[0][xdimen_kind]= (1<<(MAX_XDIMEN_DEFAULT+1))-1; +definition_bits[0][glue_kind]= (1<<(MAX_GLUE_DEFAULT+1))-1; +definition_bits[0][baseline_kind]= (1<<(MAX_BASELINE_DEFAULT+1))-1; +definition_bits[0][page_kind]= (1<<(MAX_PAGE_DEFAULT+1))-1; +definition_bits[0][stream_kind]= (1<<(MAX_STREAM_DEFAULT+1))-1; +definition_bits[0][range_kind]= (1<<(MAX_RANGE_DEFAULT+1))-1; +/*:357*//*372:*/ + +ALLOCATE(hfont_name,max_ref[font_kind]+1,char*); +/*:372*/ +hput_max_definitions();}; + +max_list:|max_list START max_value END; + +max_value:FONT UNSIGNED{hset_max(font_kind,$2);} +|INTEGER UNSIGNED{hset_max(int_kind,$2);} +|DIMEN UNSIGNED{hset_max(dimen_kind,$2);} +|LIGATURE UNSIGNED{hset_max(ligature_kind,$2);} +|DISC UNSIGNED{hset_max(disc_kind,$2);} +|GLUE UNSIGNED{hset_max(glue_kind,$2);} +|LANGUAGE UNSIGNED{hset_max(language_kind,$2);} +|RULE UNSIGNED{hset_max(rule_kind,$2);} +|IMAGE UNSIGNED{hset_max(image_kind,$2);} +|LEADERS UNSIGNED{hset_max(leaders_kind,$2);} +|BASELINE UNSIGNED{hset_max(baseline_kind,$2);} +|XDIMEN UNSIGNED{hset_max(xdimen_kind,$2);} +|PARAM UNSIGNED{hset_max(param_kind,$2);} +|STREAMDEF UNSIGNED{hset_max(stream_kind,$2);} +|PAGE UNSIGNED{hset_max(page_kind,$2);} +|RANGE UNSIGNED{hset_max(range_kind,$2);} +|LABEL UNSIGNED{hset_max(label_kind,$2);}; + +/*:351*//*359:*/ + +def_node: +start FONT ref font END{DEF($$,font_kind,$3);hput_tags($1,$4);} +|start INTEGER ref integer END{DEF($$,int_kind,$3);hput_tags($1,hput_int($4));} +|start DIMEN ref dimension END{DEF($$,dimen_kind,$3);hput_tags($1,hput_dimen($4));} +|start LANGUAGE ref string END{DEF($$,language_kind,$3);hput_string($4);hput_tags($1,TAG(language_kind,0));} +|start GLUE ref glue END{DEF($$,glue_kind,$3);hput_tags($1,hput_glue(&($4)));} +|start XDIMEN ref xdimen END{DEF($$,xdimen_kind,$3);hput_tags($1,hput_xdimen(&($4)));} +|start RULE ref rule END{DEF($$,rule_kind,$3);hput_tags($1,hput_rule(&($4)));} +|start LEADERS ref leaders END{DEF($$,leaders_kind,$3);hput_tags($1,TAG(leaders_kind,$4));} +|start BASELINE ref baseline END{DEF($$,baseline_kind,$3);hput_tags($1,TAG(baseline_kind,$4));} +|start LIGATURE ref ligature END{DEF($$,ligature_kind,$3);hput_tags($1,hput_ligature(&($4)));} +|start DISC ref disc END{DEF($$,disc_kind,$3);hput_tags($1,hput_disc(&($4)));} +|start IMAGE ref image END{DEF($$,image_kind,$3);hput_tags($1,hput_image(&($4)));} +|start PARAM ref parameters END{DEF($$,param_kind,$3);hput_tags($1,hput_list($1+2,&($4)));} +|start PAGE ref page END{DEF($$,page_kind,$3);hput_tags($1,TAG(page_kind,0));}; +/*:359*//*361:*/ + +def_node: +start INTEGER ref ref END{DEF_REF($$,int_kind,$3,$4);hput_tags($1,TAG(int_kind,0));} +|start DIMEN ref ref END{DEF_REF($$,dimen_kind,$3,$4);hput_tags($1,TAG(dimen_kind,0));} +|start GLUE ref ref END{DEF_REF($$,glue_kind,$3,$4);hput_tags($1,TAG(glue_kind,0));}; +/*:361*//*366:*/ + +def_list:position +|def_list def_node{check_param_def(&($2));}; +parameters:estimate def_list{$$.p= $2;$$.k= param_kind;$$.s= (hpos-hstart)-$2;}; +/*:366*//*367:*/ + +empty_param_list:position{HPUTX(2);hpos++;hput_tags($1,TAG(param_kind,1));}; +non_empty_param_list:start PARAM{hpos= hpos-2;}parameters END +{hput_tags($1-2,hput_list($1-1,&($4)));}; +/*:367*//*375:*/ + + +font:font_head font_param_list; + +font_head:string dimension UNSIGNED UNSIGNED +{uint8_t f= $<u>0;SET_DBIT(f,font_kind);hfont_name[f]= strdup($1);$$= hput_font_head(f,hfont_name[f],$2,$3,$4);}; + +font_param_list:glue_node disc_node|font_param_list font_param; + +font_param: +start PENALTY fref penalty END{hput_tags($1,hput_int($4));} +|start KERN fref kern END{hput_tags($1,hput_kern(&($4)));} +|start LIGATURE fref ligature END{hput_tags($1,hput_ligature(&($4)));} +|start DISC fref disc END{hput_tags($1,hput_disc(&($4)));} +|start GLUE fref glue END{hput_tags($1,hput_glue(&($4)));} +|start LANGUAGE fref string END{hput_string($4);hput_tags($1,TAG(language_kind,0));} +|start RULE fref rule END{hput_tags($1,hput_rule(&($4)));} +|start IMAGE fref image END{hput_tags($1,hput_image(&($4)));}; + +fref:ref{RNG("Font parameter",$1,0,MAX_FONT_PARAMS);}; +/*:375*//*378:*/ + +xdimen_ref:ref{REF(xdimen_kind,$1);}; +param_ref:ref{REF(param_kind,$1);}; +stream_ref:ref{REF_RNG(stream_kind,$1);}; + + +content_node: +start PENALTY ref END{REF(penalty_kind,$3);hput_tags($1,TAG(penalty_kind,0));} +|start KERN explicit ref END +{REF(dimen_kind,$4);hput_tags($1,TAG(kern_kind,($3)?b100:b000));} +|start KERN explicit XDIMEN ref END +{REF(xdimen_kind,$5);hput_tags($1,TAG(kern_kind,($3)?b101:b001));} +|start GLUE ref END{REF(glue_kind,$3);hput_tags($1,TAG(glue_kind,0));} +|start LIGATURE ref END{REF(ligature_kind,$3);hput_tags($1,TAG(ligature_kind,0));} +|start DISC ref END{REF(disc_kind,$3);hput_tags($1,TAG(disc_kind,0));} +|start RULE ref END{REF(rule_kind,$3);hput_tags($1,TAG(rule_kind,0));} +|start IMAGE ref END{REF(image_kind,$3);hput_tags($1,TAG(image_kind,0));} +|start LEADERS ref END{REF(leaders_kind,$3);hput_tags($1,TAG(leaders_kind,0));} +|start BASELINE ref END{REF(baseline_kind,$3);hput_tags($1,TAG(baseline_kind,0));} +|start LANGUAGE REFERENCE END{REF(language_kind,$3);hput_tags($1,hput_language($3));}; + +glue_node:start GLUE ref END{REF(glue_kind,$3); +if($3==zero_skip_no){hpos= hpos-2;$$= false;} +else{hput_tags($1,TAG(glue_kind,0));$$= true;}}; + +/*:378*//*403:*/ + +content_section:START CONTENT{hput_content_start();}content_list END +{hput_content_end();hput_range_defs();hput_label_defs();}; +/*:403*/ + +%% +/*:510*/ diff --git a/Build/source/texk/web2c/hitexdir/parser.c b/Build/source/texk/web2c/hitexdir/parser.c deleted file mode 100644 index f3d232d42c8..00000000000 --- a/Build/source/texk/web2c/hitexdir/parser.c +++ /dev/null @@ -1,4175 +0,0 @@ -/* A Bison parser, made by GNU Bison 2.7. */ - -/* Bison implementation for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2012 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 3 of the License, 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, see <http://www.gnu.org/licenses/>. */ - -/* 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.7" - -/* Skeleton name. */ -#define YYSKELETON_NAME "yacc.c" - -/* Pure parsers. */ -#define YYPURE 0 - -/* Push parsers. */ -#define YYPUSH 0 - -/* Pull parsers. */ -#define YYPULL 1 - - - - -/* Copy the first part of user declarations. */ -/* Line 371 of yacc.c */ -#line 2 "shrink.y" - - #line 10216 "format.w" - -#include "basetypes.h" -#include <string.h> -#include <math.h> -#include "error.h" -#include "hformat.h" -#include "hput.h" -extern char**hfont_name; - - /*356:*/ -uint32_t definition_bits[0x100/32][32]= { - #line 7578 "format.w" - {0}}; - -#define SET_DBIT(N,K) ((N)>0xFF?1:(definition_bits[N/32][K] |= (1<<((N)&(32-1))))) -#define GET_DBIT(N,K) ((N)>0xFF?1:((definition_bits[N/32][K]>>((N)&(32-1)))&1)) -#define DEF(D,K,N) (D).k= K; (D).n= (N);SET_DBIT((D).n,(D).k);\ - DBG(DBGDEF,"Defining %s %d\n",definition_name[(D).k],(D).n);\ - RNG("Definition",(D).n,max_fixed[(D).k]+1,max_ref[(D).k]); -#define REF(K,N) REF_RNG(K,N);if(!GET_DBIT(N,K)) \ - QUIT("Reference %d to %s before definition",(N),definition_name[K]) - /*:356*/ /*360:*/ -#define DEF_REF(D,K,M,N) DEF(D,K,M);\ -if ((M)>max_default[K]) QUIT("Defining non default reference %d for %s",M,definition_name[K]); \ -if ((N)>max_fixed[K]) QUIT("Defining reference %d for %s by non fixed reference %d",M,definition_name[K],N); - /*:360*/ - -extern void hset_entry(entry_t*e,uint16_t i,uint32_t size, -uint32_t xsize,char*file_name); - - /*423:*/ -#ifdef DEBUG -#define YYDEBUG 1 -extern int yydebug; -#else -#define YYDEBUG 0 -#endif - /*:423*/ -extern int yylex(void); - - /*352:*/ -void hset_max(kind_t k,int n) -{ - #line 7421 "format.w" - DBG(DBGDEF,"Setting max %s to %d\n",definition_name[k],n); - RNG("Maximum",n,max_fixed[k]+1,MAX_REF(k)); - if(n>max_ref[k]) - max_ref[k]= n; - } - /*:352*/ /*363:*/ -void check_param_def(ref_t*df) -{ - #line 7727 "format.w" - if(df->k!=int_kind&&df->k!=dimen_kind&&df->k!=glue_kind) - QUIT("Kind %s not allowed in parameter list",definition_name[df->k]); - if(df->n<=max_fixed[df->k]||max_default[df->k]<df->n) - QUIT("Parameter %d for %s not allowed in parameter list",df->n,definition_name[df->k]); - } - /*:363*/ /*422:*/ -extern int yylineno; -int yyerror(const char*msg) -{ - #line 8802 "format.w" - QUIT(" in line %d %s",yylineno,msg); - return 0; - } - /*:422*/ - - - -/* Line 371 of yacc.c */ -#line 141 "shrink.tab.c" - -# ifndef YY_NULL -# if defined __cplusplus && 201103L <= __cplusplus -# define YY_NULL nullptr -# else -# define YY_NULL 0 -# endif -# endif - -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 1 -#endif - -/* In a future release of Bison, this section will be replaced - by #include "shrink.tab.h". */ -#ifndef YY_YY_SHRINK_TAB_H_INCLUDED -# define YY_YY_SHRINK_TAB_H_INCLUDED -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int yydebug; -#endif - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - START = 258, - END = 259, - GLYPH = 260, - UNSIGNED = 261, - REFERENCE = 262, - SIGNED = 263, - STRING = 264, - CHARCODE = 265, - FPNUM = 266, - DIMEN = 267, - PT = 268, - MM = 269, - INCH = 270, - XDIMEN = 271, - H = 272, - V = 273, - FIL = 274, - FILL = 275, - FILLL = 276, - PENALTY = 277, - INTEGER = 278, - LANGUAGE = 279, - RULE = 280, - RUNNING = 281, - KERN = 282, - EXPLICIT = 283, - GLUE = 284, - PLUS = 285, - MINUS = 286, - TXT_START = 287, - TXT_END = 288, - TXT_IGNORE = 289, - TXT_FONT_GLUE = 290, - TXT_FONT_HYPHEN = 291, - TXT_FONT = 292, - TXT_LOCAL = 293, - TXT_GLOBAL = 294, - TXT_CC = 295, - HBOX = 296, - VBOX = 297, - SHIFTED = 298, - HPACK = 299, - HSET = 300, - VPACK = 301, - VSET = 302, - DEPTH = 303, - ADD = 304, - TO = 305, - LEADERS = 306, - ALIGN = 307, - CENTER = 308, - EXPAND = 309, - BASELINE = 310, - LIGATURE = 311, - DISC = 312, - PAR = 313, - MATH = 314, - ON = 315, - OFF = 316, - ADJUST = 317, - TABLE = 318, - ITEM = 319, - IMAGE = 320, - LABEL = 321, - BOT = 322, - MID = 323, - LINK = 324, - OUTLINE = 325, - STREAM = 326, - STREAMDEF = 327, - FIRST = 328, - LAST = 329, - TOP = 330, - NOREFERENCE = 331, - PAGE = 332, - RANGE = 333, - DIRECTORY = 334, - SECTION = 335, - DEFINITIONS = 336, - MAX = 337, - PARAM = 338, - FONT = 339, - CONTENT = 340 - }; -#endif - - -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE -{ -/* Line 387 of yacc.c */ -#line 79 "shrink.y" - - #line 10241 "format.w" - uint32_t u; int32_t i; char *s; float64_t f; glyph_t c; - dimen_t d;stretch_t st;xdimen_t xd;kern_t kt; - rule_t r;glue_t g;image_t x; - list_t l;box_t h;disc_t dc;lig_t lg; - ref_t rf;info_t info;order_t o;bool b; - - -/* Line 387 of yacc.c */ -#line 279 "shrink.tab.c" -} YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -#endif - -extern YYSTYPE yylval; - -#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 */ - -#endif /* !YY_YY_SHRINK_TAB_H_INCLUDED */ - -/* Copy the second part of user declarations. */ - -/* Line 390 of yacc.c */ -#line 307 "shrink.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 defined YYENABLE_NLS && 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 yyi) -#else -static int -YYID (yyi) - int yyi; -#endif -{ - return yyi; -} -#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 EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ - /* Use EXIT_SUCCESS as a witness for stdlib.h. */ -# ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -# 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 EXIT_SUCCESS \ - && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) -# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ -# ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -# endif -# endif -# ifndef YYMALLOC -# define YYMALLOC malloc -# if ! defined malloc && ! defined EXIT_SUCCESS && (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 EXIT_SUCCESS && (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_alloc; - YYSTYPE yyvs_alloc; -}; - -/* 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) - -# define YYCOPY_NEEDED 1 - -/* 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_alloc, Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) - -#endif - -#if defined YYCOPY_NEEDED && YYCOPY_NEEDED -/* Copy COUNT objects from SRC to DST. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) -# else -# define YYCOPY(Dst, Src, Count) \ - do \ - { \ - YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (Dst)[yyi] = (Src)[yyi]; \ - } \ - while (YYID (0)) -# endif -# endif -#endif /* !YYCOPY_NEEDED */ - -/* YYFINAL -- State number of the termination state. */ -#define YYFINAL 5 -/* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 657 - -/* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 86 -/* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 106 -/* YYNRULES -- Number of rules. */ -#define YYNRULES 266 -/* YYNRULES -- Number of states. */ -#define YYNSTATES 566 - -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ -#define YYUNDEFTOK 2 -#define YYMAXUTOK 340 - -#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, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85 -}; - -#if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const yytype_uint16 yyprhs[] = -{ - 0, 0, 3, 6, 11, 13, 15, 17, 20, 22, - 24, 26, 28, 30, 33, 36, 39, 45, 49, 53, - 55, 60, 62, 64, 66, 68, 71, 73, 78, 80, - 82, 86, 91, 93, 94, 96, 99, 104, 105, 108, - 109, 112, 116, 121, 126, 127, 129, 132, 133, 135, - 140, 141, 147, 149, 152, 154, 156, 158, 160, 162, - 164, 166, 167, 170, 174, 175, 178, 179, 182, 185, - 190, 195, 200, 202, 204, 207, 213, 219, 222, 225, - 228, 231, 235, 236, 244, 249, 254, 259, 264, 266, - 268, 269, 271, 273, 275, 279, 283, 287, 292, 293, - 298, 303, 304, 307, 309, 311, 313, 314, 321, 326, - 328, 331, 335, 338, 340, 345, 347, 349, 353, 358, - 362, 363, 368, 373, 377, 382, 385, 389, 393, 396, - 400, 404, 408, 413, 418, 423, 425, 427, 429, 434, - 436, 441, 447, 452, 457, 462, 467, 470, 471, 476, - 481, 484, 486, 488, 490, 491, 497, 503, 511, 513, - 515, 519, 520, 525, 527, 529, 531, 533, 544, 549, - 551, 553, 556, 560, 563, 569, 570, 572, 573, 576, - 577, 578, 589, 595, 601, 605, 606, 613, 614, 617, - 623, 624, 631, 632, 635, 640, 641, 646, 649, 652, - 655, 658, 661, 664, 667, 670, 673, 676, 679, 682, - 685, 688, 691, 694, 697, 703, 709, 715, 721, 727, - 733, 739, 745, 751, 757, 763, 769, 775, 781, 787, - 793, 799, 801, 804, 807, 809, 810, 816, 819, 824, - 827, 830, 836, 842, 848, 854, 860, 866, 872, 878, - 880, 882, 884, 886, 891, 897, 904, 909, 914, 919, - 924, 929, 934, 939, 944, 949, 950 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int16 yyrhs[] = -{ - 167, 0, -1, 6, 7, -1, 89, 5, 87, 4, - -1, 3, -1, 8, -1, 6, -1, 10, 7, -1, - 9, -1, 10, -1, 6, -1, 8, -1, 11, -1, - 92, 13, -1, 92, 15, -1, 92, 14, -1, 93, - 92, 17, 92, 18, -1, 93, 92, 17, -1, 93, - 92, 18, -1, 93, -1, 89, 16, 94, 4, -1, - 13, -1, 19, -1, 20, -1, 21, -1, 92, 96, - -1, 90, -1, 89, 22, 98, 4, -1, 93, -1, - 26, -1, 99, 99, 99, -1, 89, 25, 100, 4, - -1, 101, -1, -1, 28, -1, 102, 94, -1, 89, - 27, 103, 4, -1, -1, 30, 97, -1, -1, 31, - 97, -1, 94, 104, 105, -1, 89, 29, 106, 4, - -1, 89, 29, 106, 4, -1, -1, 108, -1, 109, - 88, -1, -1, 6, -1, 89, 110, 109, 4, -1, - -1, 32, 108, 112, 113, 33, -1, 108, -1, 113, - 114, -1, 40, -1, 37, -1, 39, -1, 38, -1, - 35, -1, 36, -1, 34, -1, -1, 115, 88, -1, - 93, 93, 93, -1, -1, 43, 93, -1, -1, 30, - 97, -1, 31, 97, -1, 116, 117, 118, 111, -1, - 89, 41, 119, 4, -1, 89, 42, 119, 4, -1, - 120, -1, 121, -1, 104, 105, -1, 116, 117, 122, - 187, 111, -1, 116, 117, 122, 95, 111, -1, 50, - 187, -1, 49, 187, -1, 50, 95, -1, 49, 95, - -1, 117, 124, 111, -1, -1, 117, 82, 48, 93, - 127, 124, 111, -1, 89, 47, 123, 4, -1, 89, - 46, 126, 4, -1, 89, 45, 123, 4, -1, 89, - 44, 125, 4, -1, 128, -1, 129, -1, -1, 52, - -1, 53, -1, 54, -1, 107, 130, 101, -1, 107, - 130, 120, -1, 107, 130, 121, -1, 89, 51, 131, - 4, -1, -1, 93, 133, 107, 107, -1, 89, 55, - 132, 4, -1, -1, 134, 40, -1, 6, -1, 10, - -1, 7, -1, -1, 136, 138, 135, 32, 134, 33, - -1, 89, 56, 137, 4, -1, 102, -1, 102, 6, - -1, 139, 111, 111, -1, 139, 111, -1, 139, -1, - 89, 57, 140, 4, -1, 141, -1, 94, -1, 187, - 188, 111, -1, 187, 179, 180, 111, -1, 187, 179, - 111, -1, -1, 94, 188, 144, 111, -1, 142, 179, - 180, 111, -1, 142, 179, 111, -1, 89, 58, 143, - 4, -1, 188, 111, -1, 188, 111, 120, -1, 188, - 120, 111, -1, 179, 111, -1, 179, 111, 120, -1, - 179, 120, 111, -1, 179, 180, 111, -1, 179, 180, - 111, 120, -1, 179, 180, 120, 111, -1, 89, 59, - 145, 4, -1, 60, -1, 61, -1, 146, -1, 89, - 62, 111, 4, -1, 6, -1, 89, 64, 88, 4, - -1, 89, 64, 147, 88, 4, -1, 89, 64, 111, - 4, -1, 17, 124, 111, 111, -1, 18, 124, 111, - 111, -1, 89, 63, 148, 4, -1, 93, 93, -1, - -1, 6, 149, 104, 105, -1, 89, 65, 150, 4, - -1, 70, 6, -1, 75, -1, 67, -1, 68, -1, - -1, 3, 66, 7, 152, 4, -1, 89, 69, 7, - 146, 4, -1, 3, 70, 7, 90, 108, 111, 4, - -1, 136, -1, 76, -1, 154, 154, 6, -1, -1, - 95, 6, 157, 155, -1, 156, -1, 73, -1, 74, - -1, 75, -1, 89, 72, 136, 158, 111, 95, 107, - 111, 107, 4, -1, 89, 72, 136, 4, -1, 159, - -1, 160, -1, 179, 111, -1, 179, 180, 111, -1, - 188, 111, -1, 89, 71, 189, 161, 4, -1, -1, - 6, -1, -1, 163, 159, -1, -1, -1, 91, 165, - 162, 107, 93, 166, 95, 95, 111, 163, -1, 3, - 78, 7, 60, 4, -1, 3, 78, 7, 61, 4, - -1, 168, 172, 190, -1, -1, 3, 79, 6, 169, - 170, 4, -1, -1, 170, 171, -1, 3, 80, 6, - 91, 4, -1, -1, 3, 81, 173, 175, 174, 4, - -1, -1, 174, 153, -1, 3, 82, 176, 4, -1, - -1, 176, 3, 151, 4, -1, 84, 6, -1, 23, - 6, -1, 12, 6, -1, 56, 6, -1, 57, 6, - -1, 29, 6, -1, 24, 6, -1, 25, 6, -1, - 65, 6, -1, 51, 6, -1, 55, 6, -1, 16, - 6, -1, 83, 6, -1, 72, 6, -1, 77, 6, - -1, 78, 6, -1, 66, 6, -1, 89, 84, 136, - 182, 4, -1, 89, 23, 136, 90, 4, -1, 89, - 12, 136, 93, 4, -1, 89, 24, 136, 91, 4, - -1, 89, 29, 136, 106, 4, -1, 89, 16, 136, - 94, 4, -1, 89, 25, 136, 100, 4, -1, 89, - 51, 136, 131, 4, -1, 89, 55, 136, 132, 4, - -1, 89, 56, 136, 137, 4, -1, 89, 57, 136, - 140, 4, -1, 89, 65, 136, 150, 4, -1, 89, - 83, 136, 178, 4, -1, 89, 77, 136, 164, 4, - -1, 89, 23, 136, 136, 4, -1, 89, 12, 136, - 136, 4, -1, 89, 29, 136, 136, 4, -1, 108, - -1, 177, 153, -1, 110, 177, -1, 108, -1, -1, - 89, 83, 181, 178, 4, -1, 183, 184, -1, 91, - 93, 6, 6, -1, 107, 141, -1, 184, 185, -1, - 89, 22, 186, 98, 4, -1, 89, 27, 186, 103, - 4, -1, 89, 56, 186, 137, 4, -1, 89, 57, - 186, 140, 4, -1, 89, 29, 186, 106, 4, -1, - 89, 24, 186, 91, 4, -1, 89, 25, 186, 100, - 4, -1, 89, 65, 186, 150, 4, -1, 136, -1, - 136, -1, 136, -1, 136, -1, 89, 22, 136, 4, - -1, 89, 27, 102, 136, 4, -1, 89, 27, 102, - 16, 136, 4, -1, 89, 29, 136, 4, -1, 89, - 56, 136, 4, -1, 89, 57, 136, 4, -1, 89, - 25, 136, 4, -1, 89, 65, 136, 4, -1, 89, - 51, 136, 4, -1, 89, 55, 136, 4, -1, 89, - 24, 7, 4, -1, 89, 29, 136, 4, -1, -1, - 3, 85, 191, 109, 4, -1 -}; - -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = -{ - 0, 264, 264, 267, 270, 274, 274, 278, 282, 282, - 288, 290, 292, 294, 297, 300, 304, 307, 310, 313, - 319, 324, 326, 328, 330, 334, 338, 341, 345, 345, - 348, 354, 357, 359, 361, 364, 367, 371, 373, 376, - 378, 381, 384, 388, 394, 397, 398, 399, 402, 405, - 412, 411, 420, 420, 422, 425, 428, 431, 434, 437, - 440, 443, 443, 448, 452, 455, 459, 462, 465, 470, - 474, 477, 480, 480, 482, 485, 488, 492, 495, 498, - 501, 505, 508, 508, 514, 517, 522, 525, 529, 529, - 531, 533, 535, 537, 540, 543, 546, 549, 553, 553, - 562, 567, 567, 570, 573, 576, 579, 579, 586, 590, - 593, 597, 601, 604, 609, 614, 616, 619, 622, 625, - 628, 628, 633, 636, 640, 644, 647, 650, 653, 656, - 659, 662, 665, 668, 672, 676, 678, 681, 685, 689, - 692, 695, 698, 702, 705, 709, 713, 715, 718, 721, - 725, 732, 734, 736, 738, 741, 746, 751, 761, 763, - 766, 769, 769, 773, 775, 777, 779, 783, 789, 794, - 794, 796, 799, 802, 805, 810, 813, 817, 817, 819, - 821, 819, 828, 831, 835, 837, 837, 840, 840, 841, - 846, 846, 853, 853, 855, 880, 880, 882, 885, 888, - 891, 894, 897, 900, 903, 906, 909, 912, 915, 918, - 921, 924, 927, 930, 936, 939, 942, 945, 948, 951, - 954, 957, 960, 963, 966, 969, 972, 975, 980, 983, - 986, 990, 991, 994, 998, 1001, 1001, 1009, 1011, 1016, - 1016, 1019, 1022, 1025, 1028, 1031, 1034, 1037, 1040, 1044, - 1048, 1051, 1054, 1060, 1063, 1067, 1071, 1074, 1077, 1080, - 1083, 1086, 1089, 1092, 1096, 1103, 1103 -}; -#endif - -#if YYDEBUG || YYERROR_VERBOSE || 1 -/* 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", "\"<\"", "\">\"", "\"glyph\"", - "UNSIGNED", "REFERENCE", "SIGNED", "STRING", "CHARCODE", "FPNUM", - "\"dimen\"", "\"pt\"", "\"mm\"", "\"in\"", "\"xdimen\"", "\"h\"", - "\"v\"", "\"fil\"", "\"fill\"", "\"filll\"", "\"penalty\"", "\"int\"", - "\"language\"", "\"rule\"", "\"|\"", "\"kern\"", "\"!\"", "\"glue\"", - "\"plus\"", "\"minus\"", "TXT_START", "TXT_END", "TXT_IGNORE", - "TXT_FONT_GLUE", "TXT_FONT_HYPHEN", "TXT_FONT", "TXT_LOCAL", - "TXT_GLOBAL", "TXT_CC", "\"hbox\"", "\"vbox\"", "\"shifted\"", - "\"hpack\"", "\"hset\"", "\"vpack\"", "\"vset\"", "\"depth\"", "\"add\"", - "\"to\"", "\"leaders\"", "\"align\"", "\"center\"", "\"expand\"", - "\"baseline\"", "\"ligature\"", "\"disc\"", "\"par\"", "\"math\"", - "\"on\"", "\"off\"", "\"adjust\"", "\"table\"", "\"item\"", "\"image\"", - "\"label\"", "\"bot\"", "\"mid\"", "\"link\"", "\"outline\"", - "\"stream\"", "\"stream (definition)\"", "\"first\"", "\"last\"", - "\"top\"", "\"*\"", "\"page\"", "\"range\"", "\"directory\"", - "\"entry\"", "\"definitions\"", "\"max\"", "\"param\"", "\"font\"", - "\"content\"", "$accept", "glyph", "content_node", "start", "integer", - "string", "number", "dimension", "xdimen", "xdimen_node", "order", - "stretch", "penalty", "rule_dimension", "rule", "rule_node", "explicit", - "kern", "plus", "minus", "glue", "glue_node", "position", "content_list", - "estimate", "list", "$@1", "text", "txt", "$@2", "box_dimen", - "box_shift", "box_glue_set", "box", "hbox_node", "vbox_node", "box_flex", - "xbox", "box_goal", "hpack", "vpack", "$@3", "vxbox_node", "hxbox_node", - "ltype", "leaders", "baseline", "$@4", "cc_list", "lig_cc", "ref", - "ligature", "$@5", "replace_count", "disc", "disc_node", "par_dimen", - "par", "$@6", "math", "on_off", "span_count", "table", "image_dimen", - "image", "max_value", "placement", "def_node", "stream_link", - "stream_split", "stream_info", "$@7", "stream_type", "stream_def_node", - "stream_ins_node", "stream", "page_priority", "stream_def_list", "page", - "$@8", "$@9", "hint", "directory_section", "$@10", "entry_list", "entry", - "definition_section", "$@11", "definition_list", "max_definitions", - "max_list", "def_list", "parameters", "empty_param_list", - "non_empty_param_list", "$@12", "font", "font_head", "font_param_list", - "font_param", "fref", "xdimen_ref", "param_ref", "stream_ref", - "content_section", "$@13", YY_NULL -}; -#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, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340 -}; -# endif - -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = -{ - 0, 86, 87, 88, 89, 90, 90, 87, 91, 91, - 92, 92, 92, 93, 93, 93, 94, 94, 94, 94, - 95, 96, 96, 96, 96, 97, 98, 88, 99, 99, - 100, 101, 88, 102, 102, 103, 88, 104, 104, 105, - 105, 106, 88, 107, 108, 109, 109, 110, 110, 111, - 112, 111, 113, 113, 114, 114, 114, 114, 114, 114, - 114, 115, 114, 116, 117, 117, 118, 118, 118, 119, - 120, 121, 88, 88, 122, 123, 123, 124, 124, 124, - 124, 125, 127, 126, 128, 128, 129, 129, 88, 88, - 130, 130, 130, 130, 131, 131, 131, 88, 133, 132, - 88, 134, 134, 135, 135, 136, 138, 137, 88, 139, - 139, 140, 140, 140, 141, 88, 142, 143, 143, 143, - 144, 143, 143, 143, 88, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 88, 146, 146, 145, 88, 147, - 88, 88, 88, 148, 148, 88, 149, 149, 150, 88, - 151, 152, 152, 152, 152, 88, 88, 153, 154, 154, - 155, 157, 156, 158, 158, 158, 158, 159, 160, 88, - 88, 161, 161, 161, 88, 162, 162, 163, 163, 165, - 166, 164, 88, 88, 167, 169, 168, 170, 170, 171, - 173, 172, 174, 174, 175, 176, 176, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 177, 177, 178, 179, 181, 180, 182, 183, 184, - 184, 185, 185, 185, 185, 185, 185, 185, 185, 186, - 187, 188, 189, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 107, 191, 190 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = -{ - 0, 2, 2, 4, 1, 1, 1, 2, 1, 1, - 1, 1, 1, 2, 2, 2, 5, 3, 3, 1, - 4, 1, 1, 1, 1, 2, 1, 4, 1, 1, - 3, 4, 1, 0, 1, 2, 4, 0, 2, 0, - 2, 3, 4, 4, 0, 1, 2, 0, 1, 4, - 0, 5, 1, 2, 1, 1, 1, 1, 1, 1, - 1, 0, 2, 3, 0, 2, 0, 2, 2, 4, - 4, 4, 1, 1, 2, 5, 5, 2, 2, 2, - 2, 3, 0, 7, 4, 4, 4, 4, 1, 1, - 0, 1, 1, 1, 3, 3, 3, 4, 0, 4, - 4, 0, 2, 1, 1, 1, 0, 6, 4, 1, - 2, 3, 2, 1, 4, 1, 1, 3, 4, 3, - 0, 4, 4, 3, 4, 2, 3, 3, 2, 3, - 3, 3, 4, 4, 4, 1, 1, 1, 4, 1, - 4, 5, 4, 4, 4, 4, 2, 0, 4, 4, - 2, 1, 1, 1, 0, 5, 5, 7, 1, 1, - 3, 0, 4, 1, 1, 1, 1, 10, 4, 1, - 1, 2, 3, 2, 5, 0, 1, 0, 2, 0, - 0, 10, 5, 5, 3, 0, 6, 0, 2, 5, - 0, 6, 0, 2, 4, 0, 4, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 1, 2, 2, 1, 0, 5, 2, 4, 2, - 2, 5, 5, 5, 5, 5, 5, 5, 5, 1, - 1, 1, 1, 4, 5, 6, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 0, 5 -}; - -/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE doesn't specify something else to do. Zero - means the default is an error. */ -static const yytype_uint16 yydefact[] = -{ - 0, 0, 0, 0, 0, 1, 0, 0, 185, 190, - 0, 184, 187, 0, 265, 0, 0, 192, 44, 0, - 186, 188, 195, 0, 45, 0, 0, 0, 4, 191, - 0, 193, 4, 266, 46, 0, 32, 72, 73, 88, - 89, 115, 169, 170, 0, 0, 194, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, - 0, 0, 64, 0, 64, 0, 0, 0, 0, 33, - 0, 44, 0, 0, 0, 0, 0, 0, 0, 8, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 33, 0, 0, 47, 0, 154, 0, 0, - 0, 0, 6, 5, 26, 0, 0, 0, 10, 11, - 12, 29, 0, 28, 0, 0, 0, 34, 0, 0, - 19, 37, 0, 0, 0, 64, 0, 0, 0, 0, - 0, 64, 0, 0, 0, 0, 4, 0, 90, 0, - 0, 98, 0, 0, 106, 0, 109, 0, 113, 0, - 116, 250, 44, 0, 44, 135, 136, 234, 251, 0, - 137, 0, 0, 44, 47, 0, 0, 0, 0, 139, - 0, 47, 0, 0, 147, 0, 0, 0, 252, 44, - 0, 189, 199, 208, 198, 203, 204, 202, 206, 207, - 200, 201, 205, 213, 150, 210, 211, 212, 209, 197, - 196, 44, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 106, 0, 0, 0, 179, 0, 48, - 44, 0, 0, 0, 0, 152, 153, 151, 0, 0, - 0, 2, 7, 3, 27, 253, 263, 13, 15, 14, - 0, 31, 259, 0, 35, 0, 36, 0, 0, 39, - 42, 256, 0, 66, 70, 71, 65, 0, 0, 0, - 87, 37, 86, 0, 85, 84, 0, 91, 92, 93, - 0, 97, 261, 0, 100, 262, 257, 0, 108, 110, - 258, 112, 114, 120, 0, 124, 0, 0, 134, 47, - 128, 0, 0, 47, 125, 0, 50, 44, 138, 0, - 0, 145, 140, 142, 0, 0, 37, 260, 149, 0, - 0, 0, 0, 168, 164, 165, 166, 0, 0, 163, - 0, 0, 216, 229, 219, 215, 228, 217, 220, 218, - 230, 221, 222, 223, 224, 225, 175, 227, 231, 233, - 226, 0, 214, 0, 237, 155, 182, 183, 30, 0, - 254, 17, 18, 0, 38, 0, 41, 63, 0, 0, - 0, 80, 78, 79, 77, 81, 39, 0, 0, 0, - 0, 0, 94, 95, 96, 0, 103, 104, 0, 111, - 0, 47, 123, 0, 119, 0, 117, 235, 0, 129, - 130, 131, 0, 126, 127, 44, 0, 0, 0, 141, - 146, 39, 156, 174, 171, 0, 173, 0, 161, 0, - 0, 176, 0, 232, 0, 0, 239, 0, 240, 255, - 0, 21, 22, 23, 24, 25, 40, 67, 68, 69, - 74, 0, 0, 82, 43, 264, 0, 99, 101, 121, - 122, 118, 47, 132, 133, 52, 61, 49, 143, 144, - 148, 172, 0, 0, 0, 157, 0, 238, 33, 0, - 0, 0, 0, 0, 0, 0, 0, 16, 76, 75, - 0, 0, 0, 51, 60, 58, 59, 55, 57, 56, - 54, 53, 0, 20, 159, 158, 0, 162, 0, 180, - 249, 0, 0, 0, 33, 0, 0, 33, 0, 0, - 107, 102, 236, 62, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 83, 160, 0, 0, - 241, 246, 247, 242, 245, 243, 244, 248, 167, 0, - 177, 181, 0, 178, 0, 0 -}; - -/* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = -{ - -1, 131, 34, 194, 134, 91, 142, 150, 151, 348, - 455, 384, 135, 144, 145, 36, 176, 149, 279, 386, - 152, 168, 187, 25, 327, 195, 425, 476, 511, 512, - 155, 159, 390, 156, 37, 38, 397, 162, 289, 160, - 164, 500, 39, 40, 300, 169, 172, 303, 501, 408, - 520, 175, 307, 178, 179, 41, 182, 183, 410, 189, - 190, 203, 198, 336, 206, 110, 258, 31, 516, 517, - 349, 483, 350, 42, 43, 340, 442, 561, 248, 366, - 536, 2, 3, 12, 15, 21, 7, 13, 23, 17, - 27, 369, 251, 191, 322, 472, 253, 254, 374, 448, - 521, 184, 192, 209, 11, 18 -}; - -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -#define YYPACT_NINF -326 -static const yytype_int16 yypact[] = -{ - 48, -4, 110, 113, 107, -326, 52, 137, -326, -326, - 74, -326, -326, 153, -326, 211, 85, -326, -326, 94, - -326, -326, -326, 275, -326, 278, 190, 280, 159, -326, - 313, -326, 31, -326, -326, 585, -326, -326, -326, -326, - -326, -326, -326, -326, 223, 467, -326, 203, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 240, 248, 116, 219, 253, 140, 210, 229, - 182, 182, 220, 182, 220, 182, 121, 229, 234, 71, - 229, 41, 66, 271, 79, 301, 261, 234, 234, -326, - -326, 268, 270, 279, 284, 286, 288, 294, 297, 315, - 325, 326, 327, 328, 333, 334, 335, 337, 338, 339, - 343, 242, -326, 229, 182, 219, 223, 152, 229, 345, - 182, 234, 210, 348, 223, 350, 223, 82, 251, 323, - 342, 353, -326, -326, -326, 355, 357, 358, -326, -326, - -326, -326, 231, -326, 152, 359, 361, -326, 165, 362, - 182, 341, 372, 373, 182, 220, 375, 377, 182, 264, - 379, 220, 380, 305, 384, 385, -326, 363, 200, 387, - 389, -326, 390, 391, 395, 396, 398, 397, 66, 401, - 234, -326, -326, 404, 234, -326, -326, -326, -326, 405, - -326, 66, 66, -326, 350, 406, 264, 264, 407, -326, - 408, 530, 409, 399, 182, 410, 411, 255, -326, 234, - 80, -326, -326, -326, -326, -326, -326, -326, -326, -326, - -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, - -326, -326, 413, 414, 416, 417, 418, 419, 421, 422, - 423, 427, 429, -326, 430, 432, 433, -326, 435, -326, - -326, 436, 182, 437, 345, -326, -326, -326, 438, 440, - 441, -326, -326, -326, -326, -326, -326, -326, -326, -326, - 152, -326, -326, 234, -326, 442, -326, 302, 182, 420, - -326, -326, 182, 293, -326, -326, -326, 121, 121, 66, - -326, 341, -326, 400, -326, -326, 229, -326, -326, -326, - 345, -326, -326, 345, -326, -326, -326, 176, -326, -326, - -326, 66, -326, -326, 66, -326, 66, 66, -326, 38, - 345, 66, 66, 53, 345, 66, -326, -326, -326, 66, - 66, -326, -326, -326, 445, 182, 341, -326, -326, 446, - 448, 66, 66, -326, -326, -326, -326, 439, 450, -326, - 66, 66, -326, -326, -326, -326, -326, -326, -326, -326, - -326, -326, -326, -326, -326, -326, 452, -326, -326, 451, - -326, 453, -326, 345, 345, -326, -326, -326, -326, 456, - -326, 182, -326, 164, -326, 182, -326, -326, 182, 182, - 66, -326, -326, -326, -326, -326, 420, 121, 182, 458, - 460, 49, -326, -326, -326, 345, -326, -326, 434, -326, - 66, 35, -326, 66, -326, 66, -326, -326, 424, -326, - -326, 345, 66, -326, -326, -326, 324, 66, 66, -326, - -326, 420, -326, -326, -326, 66, -326, 182, -326, 345, - 463, -326, 345, -326, 462, 412, -326, 105, -326, -326, - 454, -326, -326, -326, -326, -326, -326, -326, -326, -326, - -326, 66, 66, -326, -326, -326, 152, -326, -326, -326, - -326, -326, 350, -326, -326, -326, 184, -326, -326, -326, - -326, -326, 466, 39, 345, -326, 182, -326, 210, 234, - 234, 234, 234, 234, 234, 234, 234, -326, -326, -326, - 264, 72, 471, -326, -326, -326, -326, -326, -326, -326, - -326, -326, 399, -326, -326, -326, 39, -326, 66, -326, - -326, 242, 223, 152, 210, 182, 234, 210, 348, 66, - -326, -326, -326, -326, 470, 345, 345, 473, 476, 478, - 182, 480, 481, 482, 483, 484, -326, -326, 489, 345, - -326, -326, -326, -326, -326, -326, -326, -326, -326, 66, - -326, 345, 425, -326, 234, 69 -}; - -/* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = -{ - -326, -326, -65, -23, 97, -79, -83, -13, -62, -232, - -326, -191, -27, -118, -94, 195, -67, -26, -228, -325, - -97, -226, -1, 172, -86, -55, -326, -326, -326, -326, - 198, -36, -326, 431, -111, 201, -326, 428, -147, -326, - -326, -326, -326, -326, -326, 381, 386, -326, -326, -326, - -45, -96, -326, -326, -95, 132, -326, -326, -326, -326, - 300, -326, -326, -326, -93, -326, -326, 139, -7, -326, - -326, -326, -326, -50, -326, -326, -326, -326, -326, -326, - -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, - -326, -326, 42, -89, -227, -326, -326, -326, -326, -326, - -290, -222, -92, -326, -326, -326 -}; - -/* 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 YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -1 -static const yytype_uint16 yytable[] = -{ - 30, 148, 35, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 24, 180, 200, - 136, 239, 146, 238, 153, 244, 270, 245, 373, 202, - 246, 170, 173, 174, 177, 181, 188, 237, 163, 250, - 205, 249, 208, 210, 249, 247, 112, 252, 112, 329, - 330, 1, 234, 167, 143, 391, 393, 154, 154, 249, - 154, 201, 154, 396, 171, 392, 394, 277, 233, 166, - 236, 460, 166, 240, 466, 4, 243, 405, 112, 70, - 321, 325, 32, 166, 343, 199, 274, 413, 313, 415, - 70, 71, 317, 314, 70, 316, 167, 62, 193, 147, - 232, 185, 186, 275, 143, 530, 480, 171, 431, 63, - 5, 193, 531, 8, 435, 514, 6, 342, 417, 283, - 341, 417, 129, 311, 166, 291, 130, 489, 112, 490, - 491, 143, 492, 9, 493, 188, 320, 324, 334, 188, - 10, 282, 344, 345, 346, 286, 138, 112, 139, 255, - 256, 140, 378, 344, 345, 346, 16, 257, 138, 14, - 139, 494, 495, 140, 188, 461, 141, 22, 319, 323, - 496, 138, 112, 139, 26, 462, 140, 451, 141, 467, - 35, 273, 406, 452, 453, 454, 407, 347, 138, 403, - 139, 335, 326, 140, 456, 383, 44, 457, 458, 399, - 522, 523, 524, 525, 526, 527, 528, 484, 231, 419, - 111, 422, 235, 423, 19, 20, 486, 503, 504, 505, - 506, 507, 508, 509, 510, 132, 112, 133, 379, 47, - 351, 167, 89, 90, 395, 138, 112, 139, 147, 371, - 140, 112, 181, 181, 267, 268, 269, 127, 132, 368, - 133, 400, 297, 298, 299, 128, 409, 143, 518, 412, - 137, 414, 416, 158, 347, 347, 420, 421, 207, 387, - 424, 161, 211, 161, 427, 428, 212, 401, 28, 29, - 167, 32, 33, 45, 46, 213, 434, 436, 196, 197, - 214, 411, 215, 411, 216, 439, 440, 418, 450, 323, - 217, 418, 383, 218, 549, 383, 383, 204, 112, 548, - 473, 259, 260, 287, 288, 185, 186, 559, 411, 381, - 382, 219, 430, 388, 389, 48, 24, 32, 477, 49, - 261, 220, 221, 222, 223, 459, 50, 51, 52, 224, - 225, 226, 53, 227, 228, 229, 30, 230, 166, 262, - 445, 447, 181, 529, 204, 469, 249, 263, 470, 264, - 471, 265, 266, 271, 54, 272, 276, 474, 55, 56, - 57, 278, 478, 479, 347, 482, 280, 281, 58, 284, - 481, 285, 167, 290, 292, 463, 250, 293, 294, 295, - 59, 301, 296, 302, 304, 305, 60, 61, 418, 306, - 308, 310, 32, 35, 309, 312, 498, 499, 315, 318, - 328, 331, 332, 333, 337, 338, 347, 352, 353, 167, - 354, 355, 356, 357, 475, 358, 359, 360, 542, 539, - 543, 361, 544, 362, 363, 545, 364, 365, 515, 367, - 370, 372, 375, 538, 376, 377, 380, 533, 398, 429, - 432, 385, 433, 143, 28, 437, 438, 540, 441, 444, - 449, 167, 464, 535, 465, 70, 468, 485, 487, 488, - 513, 515, 497, 519, 546, 532, 547, 550, 274, 92, - 551, 243, 552, 93, 553, 554, 555, 556, 557, 35, - 94, 95, 96, 558, 537, 402, 97, 564, 541, 426, - 241, 404, 157, 165, 560, 446, 242, 339, 443, 534, - 143, 563, 167, 347, 502, 0, 0, 0, 98, 565, - 0, 0, 99, 100, 101, 0, 347, 0, 0, 0, - 0, 0, 102, 103, 0, 64, 249, 104, 562, 105, - 0, 0, 347, 0, 106, 107, 0, 0, 0, 0, - 108, 109, 65, 0, 66, 67, 0, 68, 0, 69, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 70, 71, 0, 72, 73, 74, 75, 0, 0, - 0, 76, 0, 0, 0, 77, 78, 79, 80, 81, - 64, 0, 82, 83, 84, 85, 0, 0, 0, 86, - 0, 87, 88, 0, 0, 0, 0, 65, 0, 66, - 67, 0, 68, 0, 69, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 70, 71, 0, 72, - 73, 74, 75, 0, 0, 0, 76, 0, 0, 0, - 77, 78, 79, 80, 81, 0, 0, 82, 83, 84, - 85, 0, 0, 0, 86, 0, 87, 88 -}; - -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-326))) - -#define yytable_value_is_error(Yytable_value) \ - YYID (0) - -static const yytype_int16 yycheck[] = -{ - 23, 68, 25, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 18, 80, 84, - 65, 118, 67, 117, 69, 121, 144, 122, 254, 84, - 123, 76, 77, 78, 79, 80, 81, 116, 74, 125, - 85, 6, 87, 88, 6, 124, 7, 126, 7, 196, - 197, 3, 114, 76, 67, 287, 288, 70, 71, 6, - 73, 84, 75, 291, 77, 287, 288, 150, 113, 3, - 115, 396, 3, 118, 25, 79, 121, 303, 7, 41, - 191, 192, 3, 3, 4, 6, 148, 314, 180, 316, - 41, 42, 184, 182, 41, 184, 119, 66, 32, 28, - 113, 60, 61, 148, 117, 33, 431, 120, 336, 78, - 0, 32, 40, 6, 341, 76, 3, 209, 83, 155, - 209, 83, 6, 178, 3, 161, 10, 22, 7, 24, - 25, 144, 27, 81, 29, 180, 191, 192, 203, 184, - 3, 154, 73, 74, 75, 158, 6, 7, 8, 67, - 68, 11, 270, 73, 74, 75, 3, 75, 6, 85, - 8, 56, 57, 11, 209, 397, 26, 82, 191, 192, - 65, 6, 7, 8, 80, 397, 11, 13, 26, 405, - 203, 16, 6, 19, 20, 21, 10, 210, 6, 300, - 8, 204, 193, 11, 385, 278, 6, 388, 389, 296, - 490, 491, 492, 493, 494, 495, 496, 439, 111, 320, - 7, 322, 115, 324, 3, 4, 442, 33, 34, 35, - 36, 37, 38, 39, 40, 6, 7, 8, 273, 70, - 231, 254, 9, 10, 289, 6, 7, 8, 28, 252, - 11, 7, 287, 288, 13, 14, 15, 7, 6, 250, - 8, 296, 52, 53, 54, 7, 311, 270, 484, 314, - 7, 316, 317, 43, 287, 288, 321, 322, 7, 282, - 325, 73, 4, 75, 329, 330, 6, 300, 3, 4, - 303, 3, 4, 3, 4, 6, 341, 342, 17, 18, - 6, 314, 6, 316, 6, 350, 351, 320, 381, 322, - 6, 324, 385, 6, 536, 388, 389, 6, 7, 535, - 421, 60, 61, 49, 50, 60, 61, 549, 341, 17, - 18, 6, 335, 30, 31, 12, 327, 3, 4, 16, - 7, 6, 6, 6, 6, 390, 23, 24, 25, 6, - 6, 6, 29, 6, 6, 6, 369, 4, 3, 7, - 373, 374, 397, 500, 6, 410, 6, 4, 413, 4, - 415, 4, 4, 4, 51, 4, 4, 422, 55, 56, - 57, 30, 427, 428, 397, 437, 4, 4, 65, 4, - 435, 4, 405, 4, 4, 398, 472, 82, 4, 4, - 77, 4, 29, 4, 4, 4, 83, 84, 421, 4, - 4, 4, 3, 426, 6, 4, 461, 462, 4, 4, - 4, 4, 4, 4, 4, 4, 439, 4, 4, 442, - 4, 4, 4, 4, 425, 4, 4, 4, 525, 523, - 526, 4, 527, 4, 4, 528, 4, 4, 483, 4, - 4, 4, 4, 522, 4, 4, 4, 512, 48, 4, - 4, 31, 4, 466, 3, 16, 6, 524, 6, 6, - 4, 484, 4, 518, 4, 41, 32, 4, 6, 57, - 4, 516, 18, 486, 529, 4, 6, 4, 540, 12, - 4, 526, 4, 16, 4, 4, 4, 4, 4, 512, - 23, 24, 25, 4, 521, 300, 29, 72, 524, 327, - 119, 300, 71, 75, 559, 373, 120, 207, 369, 516, - 523, 561, 535, 536, 472, -1, -1, -1, 51, 564, - -1, -1, 55, 56, 57, -1, 549, -1, -1, -1, - -1, -1, 65, 66, -1, 5, 6, 70, 561, 72, - -1, -1, 565, -1, 77, 78, -1, -1, -1, -1, - 83, 84, 22, -1, 24, 25, -1, 27, -1, 29, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 41, 42, -1, 44, 45, 46, 47, -1, -1, - -1, 51, -1, -1, -1, 55, 56, 57, 58, 59, - 5, -1, 62, 63, 64, 65, -1, -1, -1, 69, - -1, 71, 72, -1, -1, -1, -1, 22, -1, 24, - 25, -1, 27, -1, 29, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 41, 42, -1, 44, - 45, 46, 47, -1, -1, -1, 51, -1, -1, -1, - 55, 56, 57, 58, 59, -1, -1, 62, 63, 64, - 65, -1, -1, -1, 69, -1, 71, 72 -}; - -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_uint8 yystos[] = -{ - 0, 3, 167, 168, 79, 0, 3, 172, 6, 81, - 3, 190, 169, 173, 85, 170, 3, 175, 191, 3, - 4, 171, 82, 174, 108, 109, 80, 176, 3, 4, - 89, 153, 3, 4, 88, 89, 101, 120, 121, 128, - 129, 141, 159, 160, 6, 3, 4, 70, 12, 16, - 23, 24, 25, 29, 51, 55, 56, 57, 65, 77, - 83, 84, 66, 78, 5, 22, 24, 25, 27, 29, - 41, 42, 44, 45, 46, 47, 51, 55, 56, 57, - 58, 59, 62, 63, 64, 65, 69, 71, 72, 9, - 10, 91, 12, 16, 23, 24, 25, 29, 51, 55, - 56, 57, 65, 66, 70, 72, 77, 78, 83, 84, - 151, 7, 7, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 7, 7, 6, - 10, 87, 6, 8, 90, 98, 136, 7, 6, 8, - 11, 26, 92, 93, 99, 100, 136, 28, 102, 103, - 93, 94, 106, 136, 93, 116, 119, 119, 43, 117, - 125, 116, 123, 117, 126, 123, 3, 89, 107, 131, - 136, 93, 132, 136, 136, 137, 102, 136, 139, 140, - 94, 136, 142, 143, 187, 60, 61, 108, 136, 145, - 146, 179, 188, 32, 89, 111, 17, 18, 148, 6, - 88, 89, 111, 147, 6, 136, 150, 7, 136, 189, - 136, 4, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 4, 90, 93, 136, 94, 90, 136, 91, 100, 106, - 136, 131, 132, 136, 137, 140, 150, 91, 164, 6, - 110, 178, 91, 182, 183, 67, 68, 75, 152, 60, - 61, 7, 7, 4, 4, 4, 4, 13, 14, 15, - 99, 4, 4, 16, 94, 136, 4, 92, 30, 104, - 4, 4, 93, 117, 4, 4, 93, 49, 50, 124, - 4, 117, 4, 82, 4, 4, 29, 52, 53, 54, - 130, 4, 4, 133, 4, 4, 4, 138, 4, 6, - 4, 111, 4, 188, 179, 4, 179, 188, 4, 89, - 111, 120, 180, 89, 111, 120, 108, 110, 4, 124, - 124, 4, 4, 4, 88, 93, 149, 4, 4, 146, - 161, 179, 188, 4, 73, 74, 75, 89, 95, 156, - 158, 108, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 165, 4, 108, 177, - 4, 93, 4, 107, 184, 4, 4, 4, 99, 136, - 4, 17, 18, 92, 97, 31, 105, 93, 30, 31, - 118, 95, 187, 95, 187, 111, 104, 122, 48, 106, - 136, 89, 101, 120, 121, 107, 6, 10, 135, 111, - 144, 89, 111, 180, 111, 180, 111, 83, 89, 120, - 111, 111, 120, 120, 111, 112, 109, 111, 111, 4, - 93, 104, 4, 4, 111, 180, 111, 16, 6, 111, - 111, 6, 162, 153, 6, 89, 141, 89, 185, 4, - 92, 13, 19, 20, 21, 96, 97, 97, 97, 111, - 105, 95, 187, 93, 4, 4, 25, 107, 32, 111, - 111, 111, 181, 120, 111, 108, 113, 4, 111, 111, - 105, 111, 94, 157, 95, 4, 107, 6, 57, 22, - 24, 25, 27, 29, 56, 57, 65, 18, 111, 111, - 127, 134, 178, 33, 34, 35, 36, 37, 38, 39, - 40, 114, 115, 4, 76, 136, 154, 155, 107, 93, - 136, 186, 186, 186, 186, 186, 186, 186, 186, 124, - 33, 40, 4, 88, 154, 111, 166, 98, 91, 100, - 102, 103, 106, 137, 140, 150, 111, 6, 107, 95, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 95, - 111, 163, 89, 159, 72, 136 -}; - -#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. However, - YYFAIL appears to be in use. Nevertheless, it is formally deprecated - in Bison 2.4.2's NEWS entry, where a plan to phase it out is - discussed. */ - -#define YYFAIL goto yyerrlab -#if defined YYFAIL - /* This is here to suppress warnings from the GCC cpp's - -Wunused-macros. Normally we don't worry about that warning, but - some users do, and we want to make it easy for users to remove - YYFAIL uses, which will produce warnings from Bison 2.5. */ -#endif - -#define YYRECOVERING() (!!yyerrstatus) - -#define YYBACKUP(Token, Value) \ -do \ - if (yychar == YYEMPTY) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - YYPOPSTACK (yylen); \ - yystate = *yyssp; \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (YYID (0)) - -/* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 - - -/* This macro is provided for backward compatibility. */ -#ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -#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 -{ - FILE *yyo = yyoutput; - YYUSE (yyo); - 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 *yybottom, yytype_int16 *yytop) -#else -static void -yy_stack_print (yybottom, yytop) - yytype_int16 *yybottom; - yytype_int16 *yytop; -#endif -{ - YYFPRINTF (stderr, "Stack now"); - for (; yybottom <= yytop; yybottom++) - { - int yybot = *yybottom; - YYFPRINTF (stderr, " %d", yybot); - } - 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++) - { - YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], - &(yyvsp[(yyi + 1) - (yynrhs)]) - ); - YYFPRINTF (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 *YYMSG, which is of size *YYMSG_ALLOC, an error message - about the unexpected token YYTOKEN for the state stack whose top is - YYSSP. - - Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is - not large enough to hold the message. In that case, also set - *YYMSG_ALLOC to the required number of bytes. Return 2 if the - required number of bytes is too large to store. */ -static int -yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, - yytype_int16 *yyssp, int yytoken) -{ - YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); - YYSIZE_T yysize = yysize0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - /* Internationalized format string. */ - const char *yyformat = YY_NULL; - /* Arguments of yyformat. */ - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Number of reported tokens (one for the "unexpected", one per - "expected"). */ - int yycount = 0; - - /* There are many possibilities here to consider: - - Assume YYFAIL is not used. It's too flawed to consider. See - <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html> - for details. YYERROR is fine as it does not invoke this - function. - - If this state is a consistent state with a default action, then - the only way this function was invoked is if the default action - is an error action. In that case, don't check for expected - tokens because there are none. - - The only way there can be no lookahead present (in yychar) is if - this state is a consistent state with a default action. Thus, - detecting the absence of a lookahead is sufficient to determine - that there is no unexpected or expected token to report. In that - case, just report a simple "syntax error". - - Don't assume there isn't a lookahead just because this state is a - consistent state with a default action. There might have been a - previous inconsistent state, consistent state with a non-default - action, or user semantic action that manipulated yychar. - - Of course, the expected token list depends on states to have - correct lookahead information, and it depends on the parser not - to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state merging - (from LALR or IELR) and default reductions corrupt the expected - token list. However, the list is correct for canonical LR with - one exception: it will still contain any token that will not be - accepted due to an error action in a later state. - */ - if (yytoken != YYEMPTY) - { - int yyn = yypact[*yyssp]; - yyarg[yycount++] = yytname[yytoken]; - if (!yypact_value_is_default (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - 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 yyx; - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR - && !yytable_value_is_error (yytable[yyx + yyn])) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - break; - } - yyarg[yycount++] = yytname[yyx]; - { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); - if (! (yysize <= yysize1 - && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) - return 2; - yysize = yysize1; - } - } - } - } - - switch (yycount) - { -# define YYCASE_(N, S) \ - case N: \ - yyformat = S; \ - break - YYCASE_(0, YY_("syntax error")); - YYCASE_(1, YY_("syntax error, unexpected %s")); - YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); - YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -# undef YYCASE_ - } - - { - YYSIZE_T yysize1 = yysize + yystrlen (yyformat); - if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) - return 2; - yysize = yysize1; - } - - if (*yymsg_alloc < yysize) - { - *yymsg_alloc = 2 * yysize; - if (! (yysize <= *yymsg_alloc - && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) - *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; - return 1; - } - - /* 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 = *yymsg; - int yyi = 0; - while ((*yyp = *yyformat) != '\0') - if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyformat += 2; - } - else - { - yyp++; - yyformat++; - } - } - return 0; -} -#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; - } -} - - - - -/* The lookahead symbol. */ -int yychar; - - -#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_END -#endif -#ifndef YY_INITIAL_VALUE -# define YY_INITIAL_VALUE(Value) /* Nothing. */ -#endif - -/* The semantic value of the lookahead symbol. */ -YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); - -/* 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; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - - /* The stacks and their tools: - `yyss': related to states. - `yyvs': related to semantic values. - - Refer to the stacks through separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss; - yytype_int16 *yyssp; - - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; - - YYSIZE_T yystacksize; - - int yyn; - int yyresult; - /* Lookahead token as an internal (translated) token number. */ - int yytoken = 0; - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; - -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif - -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - - /* The number of symbols on the RHS of the reduced rule. - Keep to zero when no symbol should be popped. */ - int yylen = 0; - - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - yystacksize = YYINITDEPTH; - - YYDPRINTF ((stderr, "Starting parse\n")); - - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ - 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_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, 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)); - - if (yystate == YYFINAL) - YYACCEPT; - - goto yybackup; - -/*-----------. -| yybackup. | -`-----------*/ -yybackup: - - /* Do appropriate processing given the current state. Read a - lookahead token if we need one and don't already have one. */ - - /* First try to decide what to do without reference to lookahead token. */ - yyn = yypact[yystate]; - if (yypact_value_is_default (yyn)) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead 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 (yytable_value_is_error (yyn)) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - - /* Count tokens shifted since error; after three, turn off error - status. */ - if (yyerrstatus) - yyerrstatus--; - - /* Shift the lookahead token. */ - YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token. */ - yychar = YYEMPTY; - - yystate = yyn; - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - *++yyvsp = yylval; - YY_IGNORE_MAYBE_UNINITIALIZED_END - - 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 1792 of yacc.c */ -#line 264 "shrink.y" - { - #line 418 "format.w" - (yyval.c).c= (yyvsp[(1) - (2)].u);REF(font_kind,(yyvsp[(2) - (2)].u));(yyval.c).f= (yyvsp[(2) - (2)].u);} - break; - - case 3: -/* Line 1792 of yacc.c */ -#line 267 "shrink.y" - { - #line 419 "format.w" - hput_tags((yyvsp[(1) - (4)].u),hput_glyph(&((yyvsp[(3) - (4)].c))));} - break; - - case 4: -/* Line 1792 of yacc.c */ -#line 270 "shrink.y" - { - #line 420 "format.w" - HPUTNODE;(yyval.u)= (uint32_t)(hpos++-hstart);} - break; - - case 6: -/* Line 1792 of yacc.c */ -#line 274 "shrink.y" - { - #line 941 "format.w" - RNG("number",(yyvsp[(1) - (1)].u),0,INT32_MAX);} - break; - - case 7: -/* Line 1792 of yacc.c */ -#line 278 "shrink.y" - { - #line 1082 "format.w" - (yyval.c).c= (yyvsp[(1) - (2)].u);REF(font_kind,(yyvsp[(2) - (2)].u));(yyval.c).f= (yyvsp[(2) - (2)].u);} - break; - - case 9: -/* Line 1792 of yacc.c */ -#line 282 "shrink.y" - { - #line 1187 "format.w" - static char s[2]; - RNG("String element",(yyvsp[(1) - (1)].u),0x20,0x7E); - s[0]= (yyvsp[(1) - (1)].u);s[1]= 0;(yyval.s)= s;} - break; - - case 10: -/* Line 1792 of yacc.c */ -#line 288 "shrink.y" - { - #line 1339 "format.w" - (yyval.f)= (float64_t)(yyvsp[(1) - (1)].u);} - break; - - case 11: -/* Line 1792 of yacc.c */ -#line 290 "shrink.y" - { - #line 1339 "format.w" - (yyval.f)= (float64_t)(yyvsp[(1) - (1)].i);} - break; - - case 13: -/* Line 1792 of yacc.c */ -#line 294 "shrink.y" - { - #line 1682 "format.w" - (yyval.d)= ROUND((yyvsp[(1) - (2)].f)*ONE);RNG("Dimension",(yyval.d),-MAX_DIMEN,MAX_DIMEN);} - break; - - case 14: -/* Line 1792 of yacc.c */ -#line 297 "shrink.y" - { - #line 1683 "format.w" - (yyval.d)= ROUND((yyvsp[(1) - (2)].f)*ONE*72.27);RNG("Dimension",(yyval.d),-MAX_DIMEN,MAX_DIMEN);} - break; - - case 15: -/* Line 1792 of yacc.c */ -#line 300 "shrink.y" - { - #line 1684 "format.w" - (yyval.d)= ROUND((yyvsp[(1) - (2)].f)*ONE*(72.27/25.4));RNG("Dimension",(yyval.d),-MAX_DIMEN,MAX_DIMEN);} - break; - - case 16: -/* Line 1792 of yacc.c */ -#line 304 "shrink.y" - { - #line 1762 "format.w" - (yyval.xd).w= (yyvsp[(1) - (5)].d);(yyval.xd).h= (yyvsp[(2) - (5)].f);(yyval.xd).v= (yyvsp[(4) - (5)].f);} - break; - - case 17: -/* Line 1792 of yacc.c */ -#line 307 "shrink.y" - { - #line 1763 "format.w" - (yyval.xd).w= (yyvsp[(1) - (3)].d);(yyval.xd).h= (yyvsp[(2) - (3)].f);(yyval.xd).v= 0.0;} - break; - - case 18: -/* Line 1792 of yacc.c */ -#line 310 "shrink.y" - { - #line 1764 "format.w" - (yyval.xd).w= (yyvsp[(1) - (3)].d);(yyval.xd).h= 0.0;(yyval.xd).v= (yyvsp[(2) - (3)].f);} - break; - - case 19: -/* Line 1792 of yacc.c */ -#line 313 "shrink.y" - { - #line 1765 "format.w" - (yyval.xd).w= (yyvsp[(1) - (1)].d);(yyval.xd).h= 0.0;(yyval.xd).v= 0.0;} - break; - - case 20: -/* Line 1792 of yacc.c */ -#line 319 "shrink.y" - { - #line 1769 "format.w" - hput_tags((yyvsp[(1) - (4)].u),hput_xdimen(&((yyvsp[(3) - (4)].xd))));} - break; - - case 21: -/* Line 1792 of yacc.c */ -#line 324 "shrink.y" - { - #line 1947 "format.w" - (yyval.o)= normal_o;} - break; - - case 22: -/* Line 1792 of yacc.c */ -#line 326 "shrink.y" - { - #line 1947 "format.w" - (yyval.o)= fil_o;} - break; - - case 23: -/* Line 1792 of yacc.c */ -#line 328 "shrink.y" - { - #line 1947 "format.w" - (yyval.o)= fill_o;} - break; - - case 24: -/* Line 1792 of yacc.c */ -#line 330 "shrink.y" - { - #line 1947 "format.w" - (yyval.o)= filll_o;} - break; - - case 25: -/* Line 1792 of yacc.c */ -#line 334 "shrink.y" - { - #line 1949 "format.w" - (yyval.st).f= (yyvsp[(1) - (2)].f);(yyval.st).o= (yyvsp[(2) - (2)].o);} - break; - - case 26: -/* Line 1792 of yacc.c */ -#line 338 "shrink.y" - { - #line 2003 "format.w" - RNG("Penalty",(yyvsp[(1) - (1)].i),-20000,+20000);(yyval.i)= (yyvsp[(1) - (1)].i);} - break; - - case 27: -/* Line 1792 of yacc.c */ -#line 341 "shrink.y" - { - #line 2004 "format.w" - hput_tags((yyvsp[(1) - (4)].u),hput_int((yyvsp[(3) - (4)].i)));} - break; - - case 29: -/* Line 1792 of yacc.c */ -#line 345 "shrink.y" - { - #line 2179 "format.w" - (yyval.d)= RUNNING_DIMEN;} - break; - - case 30: -/* Line 1792 of yacc.c */ -#line 349 "shrink.y" - { - #line 2181 "format.w" - (yyval.r).h= (yyvsp[(1) - (3)].d);(yyval.r).d= (yyvsp[(2) - (3)].d);(yyval.r).w= (yyvsp[(3) - (3)].d); - if((yyvsp[(3) - (3)].d)==RUNNING_DIMEN&&((yyvsp[(1) - (3)].d)==RUNNING_DIMEN||(yyvsp[(2) - (3)].d)==RUNNING_DIMEN)) - QUIT("Incompatible running dimensions 0x%x 0x%x 0x%x",(yyvsp[(1) - (3)].d),(yyvsp[(2) - (3)].d),(yyvsp[(3) - (3)].d));} - break; - - case 31: -/* Line 1792 of yacc.c */ -#line 354 "shrink.y" - { - #line 2184 "format.w" - hput_tags((yyvsp[(1) - (4)].u),hput_rule(&((yyvsp[(3) - (4)].r))));} - break; - - case 33: -/* Line 1792 of yacc.c */ -#line 359 "shrink.y" - { - #line 2292 "format.w" - (yyval.b)= false;} - break; - - case 34: -/* Line 1792 of yacc.c */ -#line 361 "shrink.y" - { - #line 2292 "format.w" - (yyval.b)= true;} - break; - - case 35: -/* Line 1792 of yacc.c */ -#line 364 "shrink.y" - { - #line 2293 "format.w" - (yyval.kt).x= (yyvsp[(1) - (2)].b);(yyval.kt).d= (yyvsp[(2) - (2)].xd);} - break; - - case 36: -/* Line 1792 of yacc.c */ -#line 367 "shrink.y" - { - #line 2294 "format.w" - hput_tags((yyvsp[(1) - (4)].u),hput_kern(&((yyvsp[(3) - (4)].kt))));} - break; - - case 37: -/* Line 1792 of yacc.c */ -#line 371 "shrink.y" - { - #line 2504 "format.w" - (yyval.st).f= 0.0;(yyval.st).o= 0;} - break; - - case 38: -/* Line 1792 of yacc.c */ -#line 373 "shrink.y" - { - #line 2504 "format.w" - (yyval.st)= (yyvsp[(2) - (2)].st);} - break; - - case 39: -/* Line 1792 of yacc.c */ -#line 376 "shrink.y" - { - #line 2505 "format.w" - (yyval.st).f= 0.0;(yyval.st).o= 0;} - break; - - case 40: -/* Line 1792 of yacc.c */ -#line 378 "shrink.y" - { - #line 2505 "format.w" - (yyval.st)= (yyvsp[(2) - (2)].st);} - break; - - case 41: -/* Line 1792 of yacc.c */ -#line 381 "shrink.y" - { - #line 2506 "format.w" - (yyval.g).w= (yyvsp[(1) - (3)].xd);(yyval.g).p= (yyvsp[(2) - (3)].st);(yyval.g).m= (yyvsp[(3) - (3)].st);} - break; - - case 42: -/* Line 1792 of yacc.c */ -#line 384 "shrink.y" - { - #line 2507 "format.w" - if(ZERO_GLUE((yyvsp[(3) - (4)].g))){HPUT8(zero_skip_no); - hput_tags((yyvsp[(1) - (4)].u),TAG(glue_kind,0));}else hput_tags((yyvsp[(1) - (4)].u),hput_glue(&((yyvsp[(3) - (4)].g))));} - break; - - case 43: -/* Line 1792 of yacc.c */ -#line 389 "shrink.y" - { - #line 2510 "format.w" - if(ZERO_GLUE((yyvsp[(3) - (4)].g))){hpos--;(yyval.b)= false;} - else{hput_tags((yyvsp[(1) - (4)].u),hput_glue(&((yyvsp[(3) - (4)].g))));(yyval.b)= true;}} - break; - - case 44: -/* Line 1792 of yacc.c */ -#line 394 "shrink.y" - { - #line 2786 "format.w" - (yyval.u)= hpos-hstart;} - break; - - case 47: -/* Line 1792 of yacc.c */ -#line 399 "shrink.y" - { - #line 2789 "format.w" - hpos+= 2;} - break; - - case 48: -/* Line 1792 of yacc.c */ -#line 402 "shrink.y" - { - #line 2790 "format.w" - hpos+= hsize_bytes((yyvsp[(1) - (1)].u))+1;} - break; - - case 49: -/* Line 1792 of yacc.c */ -#line 406 "shrink.y" - { - #line 2792 "format.w" - (yyval.l).k= list_kind;(yyval.l).p= (yyvsp[(3) - (4)].u);(yyval.l).s= (hpos-hstart)-(yyvsp[(3) - (4)].u); - hput_tags((yyvsp[(1) - (4)].u),hput_list((yyvsp[(1) - (4)].u)+1,&((yyval.l))));} - break; - - case 50: -/* Line 1792 of yacc.c */ -#line 412 "shrink.y" - { - #line 3199 "format.w" - hpos+= 4;} - break; - - case 51: -/* Line 1792 of yacc.c */ -#line 416 "shrink.y" - { - #line 3201 "format.w" - (yyval.l).k= text_kind;(yyval.l).p= (yyvsp[(4) - (5)].u);(yyval.l).s= (hpos-hstart)-(yyvsp[(4) - (5)].u); - hput_tags((yyvsp[(2) - (5)].u),hput_list((yyvsp[(2) - (5)].u)+1,&((yyval.l))));} - break; - - case 54: -/* Line 1792 of yacc.c */ -#line 422 "shrink.y" - { - #line 3205 "format.w" - hput_txt_cc((yyvsp[(1) - (1)].u));} - break; - - case 55: -/* Line 1792 of yacc.c */ -#line 425 "shrink.y" - { - #line 3206 "format.w" - REF(font_kind,(yyvsp[(1) - (1)].u));hput_txt_font((yyvsp[(1) - (1)].u));} - break; - - case 56: -/* Line 1792 of yacc.c */ -#line 428 "shrink.y" - { - #line 3207 "format.w" - REF((yyvsp[(1) - (1)].rf).k,(yyvsp[(1) - (1)].rf).n);hput_txt_global(&((yyvsp[(1) - (1)].rf)));} - break; - - case 57: -/* Line 1792 of yacc.c */ -#line 431 "shrink.y" - { - #line 3208 "format.w" - RNG("Font parameter",(yyvsp[(1) - (1)].u),0,11);hput_txt_local((yyvsp[(1) - (1)].u));} - break; - - case 58: -/* Line 1792 of yacc.c */ -#line 434 "shrink.y" - { - #line 3209 "format.w" - HPUTX(1);HPUT8(txt_glue);} - break; - - case 59: -/* Line 1792 of yacc.c */ -#line 437 "shrink.y" - { - #line 3210 "format.w" - HPUTX(1);HPUT8(txt_hyphen);} - break; - - case 60: -/* Line 1792 of yacc.c */ -#line 440 "shrink.y" - { - #line 3211 "format.w" - HPUTX(1);HPUT8(txt_ignore);} - break; - - case 61: -/* Line 1792 of yacc.c */ -#line 443 "shrink.y" - { - #line 3212 "format.w" - HPUTX(1);HPUT8(txt_node);} - break; - - case 63: -/* Line 1792 of yacc.c */ -#line 449 "shrink.y" - { - #line 3470 "format.w" - (yyval.info)= hput_box_dimen((yyvsp[(1) - (3)].d),(yyvsp[(2) - (3)].d),(yyvsp[(3) - (3)].d));} - break; - - case 64: -/* Line 1792 of yacc.c */ -#line 452 "shrink.y" - { - #line 3471 "format.w" - (yyval.info)= b000;} - break; - - case 65: -/* Line 1792 of yacc.c */ -#line 455 "shrink.y" - { - #line 3472 "format.w" - (yyval.info)= hput_box_shift((yyvsp[(2) - (2)].d));} - break; - - case 66: -/* Line 1792 of yacc.c */ -#line 459 "shrink.y" - { - #line 3474 "format.w" - (yyval.info)= b000;} - break; - - case 67: -/* Line 1792 of yacc.c */ -#line 462 "shrink.y" - { - #line 3475 "format.w" - (yyval.info)= hput_box_glue_set(+1,(yyvsp[(2) - (2)].st).f,(yyvsp[(2) - (2)].st).o);} - break; - - case 68: -/* Line 1792 of yacc.c */ -#line 465 "shrink.y" - { - #line 3476 "format.w" - (yyval.info)= hput_box_glue_set(-1,(yyvsp[(2) - (2)].st).f,(yyvsp[(2) - (2)].st).o);} - break; - - case 69: -/* Line 1792 of yacc.c */ -#line 470 "shrink.y" - { - #line 3479 "format.w" - (yyval.info)= (yyvsp[(1) - (4)].info) |(yyvsp[(2) - (4)].info) |(yyvsp[(3) - (4)].info);} - break; - - case 70: -/* Line 1792 of yacc.c */ -#line 474 "shrink.y" - { - #line 3481 "format.w" - hput_tags((yyvsp[(1) - (4)].u),TAG(hbox_kind,(yyvsp[(3) - (4)].info)));} - break; - - case 71: -/* Line 1792 of yacc.c */ -#line 477 "shrink.y" - { - #line 3482 "format.w" - hput_tags((yyvsp[(1) - (4)].u),TAG(vbox_kind,(yyvsp[(3) - (4)].info)));} - break; - - case 74: -/* Line 1792 of yacc.c */ -#line 482 "shrink.y" - { - #line 3663 "format.w" - hput_stretch(&((yyvsp[(1) - (2)].st)));hput_stretch(&((yyvsp[(2) - (2)].st)));} - break; - - case 75: -/* Line 1792 of yacc.c */ -#line 485 "shrink.y" - { - #line 3664 "format.w" - (yyval.info)= (yyvsp[(1) - (5)].info) |(yyvsp[(2) - (5)].info);} - break; - - case 76: -/* Line 1792 of yacc.c */ -#line 488 "shrink.y" - { - #line 3665 "format.w" - (yyval.info)= (yyvsp[(1) - (5)].info) |(yyvsp[(2) - (5)].info) |b100;} - break; - - case 77: -/* Line 1792 of yacc.c */ -#line 492 "shrink.y" - { - #line 3667 "format.w" - (yyval.info)= b000;} - break; - - case 78: -/* Line 1792 of yacc.c */ -#line 495 "shrink.y" - { - #line 3668 "format.w" - (yyval.info)= b001;} - break; - - case 79: -/* Line 1792 of yacc.c */ -#line 498 "shrink.y" - { - #line 3669 "format.w" - (yyval.info)= b100;} - break; - - case 80: -/* Line 1792 of yacc.c */ -#line 501 "shrink.y" - { - #line 3670 "format.w" - (yyval.info)= b101;} - break; - - case 81: -/* Line 1792 of yacc.c */ -#line 505 "shrink.y" - { - #line 3672 "format.w" - (yyval.info)= (yyvsp[(2) - (3)].info);} - break; - - case 82: -/* Line 1792 of yacc.c */ -#line 508 "shrink.y" - { - #line 3673 "format.w" - HPUT32((yyvsp[(4) - (4)].d));} - break; - - case 83: -/* Line 1792 of yacc.c */ -#line 510 "shrink.y" - { - #line 3673 "format.w" - (yyval.info)= (yyvsp[(1) - (7)].info) |(yyvsp[(6) - (7)].info);} - break; - - case 84: -/* Line 1792 of yacc.c */ -#line 514 "shrink.y" - { - #line 3675 "format.w" - hput_tags((yyvsp[(1) - (4)].u),TAG(vset_kind,(yyvsp[(3) - (4)].info)));} - break; - - case 85: -/* Line 1792 of yacc.c */ -#line 517 "shrink.y" - { - #line 3676 "format.w" - hput_tags((yyvsp[(1) - (4)].u),TAG(vpack_kind,(yyvsp[(3) - (4)].info)));} - break; - - case 86: -/* Line 1792 of yacc.c */ -#line 522 "shrink.y" - { - #line 3679 "format.w" - hput_tags((yyvsp[(1) - (4)].u),TAG(hset_kind,(yyvsp[(3) - (4)].info)));} - break; - - case 87: -/* Line 1792 of yacc.c */ -#line 525 "shrink.y" - { - #line 3680 "format.w" - hput_tags((yyvsp[(1) - (4)].u),TAG(hpack_kind,(yyvsp[(3) - (4)].info)));} - break; - - case 90: -/* Line 1792 of yacc.c */ -#line 531 "shrink.y" - { - #line 3790 "format.w" - (yyval.info)= 1;} - break; - - case 91: -/* Line 1792 of yacc.c */ -#line 533 "shrink.y" - { - #line 3790 "format.w" - (yyval.info)= 1;} - break; - - case 92: -/* Line 1792 of yacc.c */ -#line 535 "shrink.y" - { - #line 3790 "format.w" - (yyval.info)= 2;} - break; - - case 93: -/* Line 1792 of yacc.c */ -#line 537 "shrink.y" - { - #line 3790 "format.w" - (yyval.info)= 3;} - break; - - case 94: -/* Line 1792 of yacc.c */ -#line 540 "shrink.y" - { - #line 3791 "format.w" - if((yyvsp[(1) - (3)].b))(yyval.info)= (yyvsp[(2) - (3)].info) |b100;else (yyval.info)= (yyvsp[(2) - (3)].info);} - break; - - case 95: -/* Line 1792 of yacc.c */ -#line 543 "shrink.y" - { - #line 3792 "format.w" - if((yyvsp[(1) - (3)].b))(yyval.info)= (yyvsp[(2) - (3)].info) |b100;else (yyval.info)= (yyvsp[(2) - (3)].info);} - break; - - case 96: -/* Line 1792 of yacc.c */ -#line 546 "shrink.y" - { - #line 3793 "format.w" - if((yyvsp[(1) - (3)].b))(yyval.info)= (yyvsp[(2) - (3)].info) |b100;else (yyval.info)= (yyvsp[(2) - (3)].info);} - break; - - case 97: -/* Line 1792 of yacc.c */ -#line 549 "shrink.y" - { - #line 3794 "format.w" - hput_tags((yyvsp[(1) - (4)].u),TAG(leaders_kind,(yyvsp[(3) - (4)].info)));} - break; - - case 98: -/* Line 1792 of yacc.c */ -#line 553 "shrink.y" - { - #line 3900 "format.w" - if((yyvsp[(1) - (1)].d)!=0)HPUT32((yyvsp[(1) - (1)].d));} - break; - - case 99: -/* Line 1792 of yacc.c */ -#line 556 "shrink.y" - { - #line 3901 "format.w" - (yyval.info)= b000;if((yyvsp[(1) - (4)].d)!=0)(yyval.info) |= b001; - if((yyvsp[(3) - (4)].b))(yyval.info) |= b100; - if((yyvsp[(4) - (4)].b))(yyval.info) |= b010; - } - break; - - case 100: -/* Line 1792 of yacc.c */ -#line 563 "shrink.y" - { - #line 3906 "format.w" - if((yyvsp[(3) - (4)].info)==b000)HPUT8(0);hput_tags((yyvsp[(1) - (4)].u),TAG(baseline_kind,(yyvsp[(3) - (4)].info)));} - break; - - case 102: -/* Line 1792 of yacc.c */ -#line 567 "shrink.y" - { - #line 3989 "format.w" - hput_utf8((yyvsp[(2) - (2)].u));} - break; - - case 103: -/* Line 1792 of yacc.c */ -#line 570 "shrink.y" - { - #line 3990 "format.w" - RNG("UTF-8 code",(yyvsp[(1) - (1)].u),0,0x1FFFFF);(yyval.u)= hpos-hstart;hput_utf8((yyvsp[(1) - (1)].u));} - break; - - case 104: -/* Line 1792 of yacc.c */ -#line 573 "shrink.y" - { - #line 3991 "format.w" - (yyval.u)= hpos-hstart;hput_utf8((yyvsp[(1) - (1)].u));} - break; - - case 105: -/* Line 1792 of yacc.c */ -#line 576 "shrink.y" - { - #line 3992 "format.w" - HPUT8((yyvsp[(1) - (1)].u));(yyval.u)= (yyvsp[(1) - (1)].u);} - break; - - case 106: -/* Line 1792 of yacc.c */ -#line 579 "shrink.y" - { - #line 3993 "format.w" - REF(font_kind,(yyvsp[(1) - (1)].u));} - break; - - case 107: -/* Line 1792 of yacc.c */ -#line 582 "shrink.y" - { - #line 3994 "format.w" - (yyval.lg).f= (yyvsp[(1) - (6)].u);(yyval.lg).l.p= (yyvsp[(3) - (6)].u);(yyval.lg).l.s= (hpos-hstart)-(yyvsp[(3) - (6)].u); - RNG("Ligature size",(yyval.lg).l.s,0,255);} - break; - - case 108: -/* Line 1792 of yacc.c */ -#line 586 "shrink.y" - { - #line 3996 "format.w" - hput_tags((yyvsp[(1) - (4)].u),hput_ligature(&((yyvsp[(3) - (4)].lg))));} - break; - - case 109: -/* Line 1792 of yacc.c */ -#line 590 "shrink.y" - { - #line 4106 "format.w" - if((yyvsp[(1) - (1)].b)){(yyval.u)= 0x80;HPUT8(0x80);}else (yyval.u)= 0x00;} - break; - - case 110: -/* Line 1792 of yacc.c */ -#line 593 "shrink.y" - { - #line 4107 "format.w" - RNG("Replace count",(yyvsp[(2) - (2)].u),0,31); - (yyval.u)= ((yyvsp[(2) - (2)].u)) |(((yyvsp[(1) - (2)].b))?0x80:0x00);if((yyval.u)!=0)HPUT8((yyval.u));} - break; - - case 111: -/* Line 1792 of yacc.c */ -#line 597 "shrink.y" - { - #line 4109 "format.w" - (yyval.dc).r= (yyvsp[(1) - (3)].u);(yyval.dc).p= (yyvsp[(2) - (3)].l);(yyval.dc).q= (yyvsp[(3) - (3)].l); - if((yyvsp[(3) - (3)].l).s==0){hpos= hpos-2;if((yyvsp[(2) - (3)].l).s==0)hpos= hpos-2;}} - break; - - case 112: -/* Line 1792 of yacc.c */ -#line 601 "shrink.y" - { - #line 4111 "format.w" - (yyval.dc).r= (yyvsp[(1) - (2)].u);(yyval.dc).p= (yyvsp[(2) - (2)].l);if((yyvsp[(2) - (2)].l).s==0)hpos= hpos-2;(yyval.dc).q.s= 0;} - break; - - case 113: -/* Line 1792 of yacc.c */ -#line 604 "shrink.y" - { - #line 4112 "format.w" - (yyval.dc).r= (yyvsp[(1) - (1)].u);(yyval.dc).p.s= 0;(yyval.dc).q.s= 0;} - break; - - case 114: -/* Line 1792 of yacc.c */ -#line 610 "shrink.y" - { - #line 4116 "format.w" - hput_tags((yyvsp[(1) - (4)].u),hput_disc(&((yyvsp[(3) - (4)].dc))));} - break; - - case 116: -/* Line 1792 of yacc.c */ -#line 616 "shrink.y" - { - #line 4268 "format.w" - hput_xdimen_node(&((yyvsp[(1) - (1)].xd)));} - break; - - case 117: -/* Line 1792 of yacc.c */ -#line 619 "shrink.y" - { - #line 4269 "format.w" - (yyval.info)= b000;} - break; - - case 118: -/* Line 1792 of yacc.c */ -#line 622 "shrink.y" - { - #line 4270 "format.w" - (yyval.info)= b010;} - break; - - case 119: -/* Line 1792 of yacc.c */ -#line 625 "shrink.y" - { - #line 4271 "format.w" - (yyval.info)= b010;} - break; - - case 120: -/* Line 1792 of yacc.c */ -#line 628 "shrink.y" - { - #line 4272 "format.w" - hput_xdimen_node(&((yyvsp[(1) - (2)].xd)));} - break; - - case 121: -/* Line 1792 of yacc.c */ -#line 630 "shrink.y" - { - #line 4272 "format.w" - (yyval.info)= b100;} - break; - - case 122: -/* Line 1792 of yacc.c */ -#line 633 "shrink.y" - { - #line 4273 "format.w" - (yyval.info)= b110;} - break; - - case 123: -/* Line 1792 of yacc.c */ -#line 636 "shrink.y" - { - #line 4274 "format.w" - (yyval.info)= b110;} - break; - - case 124: -/* Line 1792 of yacc.c */ -#line 640 "shrink.y" - { - #line 4276 "format.w" - hput_tags((yyvsp[(1) - (4)].u),TAG(par_kind,(yyvsp[(3) - (4)].info)));} - break; - - case 125: -/* Line 1792 of yacc.c */ -#line 644 "shrink.y" - { - #line 4342 "format.w" - (yyval.info)= b000;} - break; - - case 126: -/* Line 1792 of yacc.c */ -#line 647 "shrink.y" - { - #line 4343 "format.w" - (yyval.info)= b001;} - break; - - case 127: -/* Line 1792 of yacc.c */ -#line 650 "shrink.y" - { - #line 4344 "format.w" - (yyval.info)= b010;} - break; - - case 128: -/* Line 1792 of yacc.c */ -#line 653 "shrink.y" - { - #line 4345 "format.w" - (yyval.info)= b100;} - break; - - case 129: -/* Line 1792 of yacc.c */ -#line 656 "shrink.y" - { - #line 4346 "format.w" - (yyval.info)= b101;} - break; - - case 130: -/* Line 1792 of yacc.c */ -#line 659 "shrink.y" - { - #line 4347 "format.w" - (yyval.info)= b110;} - break; - - case 131: -/* Line 1792 of yacc.c */ -#line 662 "shrink.y" - { - #line 4348 "format.w" - (yyval.info)= b100;} - break; - - case 132: -/* Line 1792 of yacc.c */ -#line 665 "shrink.y" - { - #line 4349 "format.w" - (yyval.info)= b101;} - break; - - case 133: -/* Line 1792 of yacc.c */ -#line 668 "shrink.y" - { - #line 4350 "format.w" - (yyval.info)= b110;} - break; - - case 134: -/* Line 1792 of yacc.c */ -#line 672 "shrink.y" - { - #line 4352 "format.w" - hput_tags((yyvsp[(1) - (4)].u),TAG(math_kind,(yyvsp[(3) - (4)].info)));} - break; - - case 135: -/* Line 1792 of yacc.c */ -#line 676 "shrink.y" - { - #line 4402 "format.w" - (yyval.i)= 1;} - break; - - case 136: -/* Line 1792 of yacc.c */ -#line 678 "shrink.y" - { - #line 4402 "format.w" - (yyval.i)= 0;} - break; - - case 137: -/* Line 1792 of yacc.c */ -#line 681 "shrink.y" - { - #line 4403 "format.w" - (yyval.info)= b011 |((yyvsp[(1) - (1)].i)<<2);} - break; - - case 138: -/* Line 1792 of yacc.c */ -#line 685 "shrink.y" - { - #line 4434 "format.w" - hput_tags((yyvsp[(1) - (4)].u),TAG(adjust_kind,1));} - break; - - case 139: -/* Line 1792 of yacc.c */ -#line 689 "shrink.y" - { - #line 4533 "format.w" - (yyval.info)= hput_span_count((yyvsp[(1) - (1)].u));} - break; - - case 140: -/* Line 1792 of yacc.c */ -#line 692 "shrink.y" - { - #line 4534 "format.w" - hput_tags((yyvsp[(1) - (4)].u),TAG(item_kind,1));} - break; - - case 141: -/* Line 1792 of yacc.c */ -#line 695 "shrink.y" - { - #line 4535 "format.w" - hput_tags((yyvsp[(1) - (5)].u),TAG(item_kind,(yyvsp[(3) - (5)].info)));} - break; - - case 142: -/* Line 1792 of yacc.c */ -#line 698 "shrink.y" - { - #line 4536 "format.w" - hput_tags((yyvsp[(1) - (4)].u),TAG(item_kind,b000));} - break; - - case 143: -/* Line 1792 of yacc.c */ -#line 702 "shrink.y" - { - #line 4538 "format.w" - (yyval.info)= (yyvsp[(2) - (4)].info);} - break; - - case 144: -/* Line 1792 of yacc.c */ -#line 705 "shrink.y" - { - #line 4539 "format.w" - (yyval.info)= (yyvsp[(2) - (4)].info) |b010;} - break; - - case 145: -/* Line 1792 of yacc.c */ -#line 709 "shrink.y" - { - #line 4541 "format.w" - hput_tags((yyvsp[(1) - (4)].u),TAG(table_kind,(yyvsp[(3) - (4)].info)));} - break; - - case 146: -/* Line 1792 of yacc.c */ -#line 713 "shrink.y" - { - #line 4629 "format.w" - (yyval.x).w= (yyvsp[(1) - (2)].d);(yyval.x).h= (yyvsp[(2) - (2)].d);} - break; - - case 147: -/* Line 1792 of yacc.c */ -#line 715 "shrink.y" - { - #line 4629 "format.w" - (yyval.x).w= (yyval.x).h= 0;} - break; - - case 148: -/* Line 1792 of yacc.c */ -#line 718 "shrink.y" - { - #line 4630 "format.w" - (yyval.x).w= (yyvsp[(2) - (4)].x).w;(yyval.x).h= (yyvsp[(2) - (4)].x).h;(yyval.x).p= (yyvsp[(3) - (4)].st);(yyval.x).m= (yyvsp[(4) - (4)].st);RNG("Section number",(yyvsp[(1) - (4)].u),3,max_section_no);(yyval.x).n= (yyvsp[(1) - (4)].u);} - break; - - case 149: -/* Line 1792 of yacc.c */ -#line 721 "shrink.y" - { - #line 4631 "format.w" - hput_tags((yyvsp[(1) - (4)].u),hput_image(&((yyvsp[(3) - (4)].x))));} - break; - - case 150: -/* Line 1792 of yacc.c */ -#line 725 "shrink.y" - { - #line 4868 "format.w" - max_outline= (yyvsp[(2) - (2)].u); - RNG("max outline",max_outline,0,0xFFFF); - DBG(DBGDEF |DBGLABEL,"Setting max outline to %d\n",max_outline); - } - break; - - case 151: -/* Line 1792 of yacc.c */ -#line 732 "shrink.y" - { - #line 4960 "format.w" - (yyval.i)= LABEL_TOP;} - break; - - case 152: -/* Line 1792 of yacc.c */ -#line 734 "shrink.y" - { - #line 4960 "format.w" - (yyval.i)= LABEL_BOT;} - break; - - case 153: -/* Line 1792 of yacc.c */ -#line 736 "shrink.y" - { - #line 4960 "format.w" - (yyval.i)= LABEL_MID;} - break; - - case 154: -/* Line 1792 of yacc.c */ -#line 738 "shrink.y" - { - #line 4960 "format.w" - (yyval.i)= LABEL_MID;} - break; - - case 155: -/* Line 1792 of yacc.c */ -#line 742 "shrink.y" - { - #line 4962 "format.w" - hset_label((yyvsp[(3) - (5)].u),(yyvsp[(4) - (5)].i));} - break; - - case 156: -/* Line 1792 of yacc.c */ -#line 747 "shrink.y" - { - #line 5220 "format.w" - hput_tags((yyvsp[(1) - (5)].u),hput_link((yyvsp[(3) - (5)].u),(yyvsp[(4) - (5)].i)));} - break; - - case 157: -/* Line 1792 of yacc.c */ -#line 751 "shrink.y" - { - #line 5350 "format.w" - - static int outline_no= -1; - (yyval.rf).k= outline_kind;(yyval.rf).n= (yyvsp[(3) - (7)].u); - if((yyvsp[(6) - (7)].l).s==0)QUIT("Outline with empty title in line %d",yylineno); - outline_no++; - hset_outline(outline_no,(yyvsp[(3) - (7)].u),(yyvsp[(4) - (7)].i),(yyvsp[(5) - (7)].u)); - } - break; - - case 158: -/* Line 1792 of yacc.c */ -#line 761 "shrink.y" - { - #line 5765 "format.w" - REF_RNG(stream_kind,(yyvsp[(1) - (1)].u));} - break; - - case 159: -/* Line 1792 of yacc.c */ -#line 763 "shrink.y" - { - #line 5765 "format.w" - HPUT8(255);} - break; - - case 160: -/* Line 1792 of yacc.c */ -#line 766 "shrink.y" - { - #line 5766 "format.w" - RNG("split ratio",(yyvsp[(3) - (3)].u),0,1000);HPUT16((yyvsp[(3) - (3)].u));} - break; - - case 161: -/* Line 1792 of yacc.c */ -#line 769 "shrink.y" - { - #line 5767 "format.w" - RNG("magnification factor",(yyvsp[(2) - (2)].u),0,1000);HPUT16((yyvsp[(2) - (2)].u));} - break; - - case 163: -/* Line 1792 of yacc.c */ -#line 773 "shrink.y" - { - #line 5769 "format.w" - (yyval.info)= 0;} - break; - - case 164: -/* Line 1792 of yacc.c */ -#line 775 "shrink.y" - { - #line 5769 "format.w" - (yyval.info)= 1;} - break; - - case 165: -/* Line 1792 of yacc.c */ -#line 777 "shrink.y" - { - #line 5769 "format.w" - (yyval.info)= 2;} - break; - - case 166: -/* Line 1792 of yacc.c */ -#line 779 "shrink.y" - { - #line 5769 "format.w" - (yyval.info)= 3;} - break; - - case 167: -/* Line 1792 of yacc.c */ -#line 785 "shrink.y" - { - #line 5773 "format.w" - DEF((yyval.rf),stream_kind,(yyvsp[(3) - (10)].u));hput_tags((yyvsp[(1) - (10)].u),TAG(stream_kind,(yyvsp[(4) - (10)].info) |b100));} - break; - - case 168: -/* Line 1792 of yacc.c */ -#line 790 "shrink.y" - { - #line 5776 "format.w" - RNG("Stream insertion",(yyvsp[(3) - (4)].u),0,max_ref[stream_kind]);hput_tags((yyvsp[(1) - (4)].u),TAG(stream_kind,b100));} - break; - - case 171: -/* Line 1792 of yacc.c */ -#line 796 "shrink.y" - { - #line 5871 "format.w" - (yyval.info)= b010;} - break; - - case 172: -/* Line 1792 of yacc.c */ -#line 799 "shrink.y" - { - #line 5872 "format.w" - (yyval.info)= b010;} - break; - - case 173: -/* Line 1792 of yacc.c */ -#line 802 "shrink.y" - { - #line 5873 "format.w" - (yyval.info)= b000;} - break; - - case 174: -/* Line 1792 of yacc.c */ -#line 806 "shrink.y" - { - #line 5875 "format.w" - hput_tags((yyvsp[(1) - (5)].u),TAG(stream_kind,(yyvsp[(4) - (5)].info)));} - break; - - case 175: -/* Line 1792 of yacc.c */ -#line 810 "shrink.y" - { - #line 5978 "format.w" - HPUT8(1);} - break; - - case 176: -/* Line 1792 of yacc.c */ -#line 813 "shrink.y" - { - #line 5979 "format.w" - RNG("page priority",(yyvsp[(1) - (1)].u),0,255);HPUT8((yyvsp[(1) - (1)].u));} - break; - - case 179: -/* Line 1792 of yacc.c */ -#line 819 "shrink.y" - { - #line 5983 "format.w" - hput_string((yyvsp[(1) - (1)].s));} - break; - - case 180: -/* Line 1792 of yacc.c */ -#line 821 "shrink.y" - { - #line 5983 "format.w" - HPUT32((yyvsp[(5) - (5)].d));} - break; - - case 182: -/* Line 1792 of yacc.c */ -#line 828 "shrink.y" - { - #line 6095 "format.w" - REF(page_kind,(yyvsp[(3) - (5)].u));hput_range((yyvsp[(3) - (5)].u),true);} - break; - - case 183: -/* Line 1792 of yacc.c */ -#line 831 "shrink.y" - { - #line 6096 "format.w" - REF(page_kind,(yyvsp[(3) - (5)].u));hput_range((yyvsp[(3) - (5)].u),false);} - break; - - case 185: -/* Line 1792 of yacc.c */ -#line 837 "shrink.y" - { - #line 6786 "format.w" - new_directory((yyvsp[(3) - (3)].u)+1);new_output_buffers();} - break; - - case 189: -/* Line 1792 of yacc.c */ -#line 842 "shrink.y" - { - #line 6789 "format.w" - RNG("Section number",(yyvsp[(3) - (5)].u),3,max_section_no);hset_entry(&(dir[(yyvsp[(3) - (5)].u)]),(yyvsp[(3) - (5)].u),0,0,(yyvsp[(4) - (5)].s));} - break; - - case 190: -/* Line 1792 of yacc.c */ -#line 846 "shrink.y" - { - #line 7277 "format.w" - hput_definitions_start();} - break; - - case 191: -/* Line 1792 of yacc.c */ -#line 850 "shrink.y" - { - #line 7279 "format.w" - hput_definitions_end();} - break; - - case 194: -/* Line 1792 of yacc.c */ -#line 856 "shrink.y" - { - #line 7395 "format.w" - /*245:*/ - if(max_ref[label_kind]>=0) - ALLOCATE(labels,max_ref[label_kind]+1,label_t); - /*:245*/ /*266:*/ - if(max_outline>=0) - ALLOCATE(outlines,max_outline+1,outline_t); - /*:266*/ /*293:*/ - ALLOCATE(page_on,max_ref[page_kind]+1,int); - ALLOCATE(range_pos,2*(max_ref[range_kind]+1),range_pos_t); - /*:293*/ /*357:*/ - definition_bits[0][int_kind]= (1<<(MAX_INT_DEFAULT+1))-1; - definition_bits[0][dimen_kind]= (1<<(MAX_DIMEN_DEFAULT+1))-1; - definition_bits[0][xdimen_kind]= (1<<(MAX_XDIMEN_DEFAULT+1))-1; - definition_bits[0][glue_kind]= (1<<(MAX_GLUE_DEFAULT+1))-1; - definition_bits[0][baseline_kind]= (1<<(MAX_BASELINE_DEFAULT+1))-1; - definition_bits[0][page_kind]= (1<<(MAX_PAGE_DEFAULT+1))-1; - definition_bits[0][stream_kind]= (1<<(MAX_STREAM_DEFAULT+1))-1; - definition_bits[0][range_kind]= (1<<(MAX_RANGE_DEFAULT+1))-1; - /*:357*/ /*372:*/ - ALLOCATE(hfont_name,max_ref[font_kind]+1,char*); - /*:372*/hput_max_definitions();} - break; - - case 197: -/* Line 1792 of yacc.c */ -#line 882 "shrink.y" - { - #line 7399 "format.w" - hset_max(font_kind,(yyvsp[(2) - (2)].u));} - break; - - case 198: -/* Line 1792 of yacc.c */ -#line 885 "shrink.y" - { - #line 7400 "format.w" - hset_max(int_kind,(yyvsp[(2) - (2)].u));} - break; - - case 199: -/* Line 1792 of yacc.c */ -#line 888 "shrink.y" - { - #line 7401 "format.w" - hset_max(dimen_kind,(yyvsp[(2) - (2)].u));} - break; - - case 200: -/* Line 1792 of yacc.c */ -#line 891 "shrink.y" - { - #line 7402 "format.w" - hset_max(ligature_kind,(yyvsp[(2) - (2)].u));} - break; - - case 201: -/* Line 1792 of yacc.c */ -#line 894 "shrink.y" - { - #line 7403 "format.w" - hset_max(disc_kind,(yyvsp[(2) - (2)].u));} - break; - - case 202: -/* Line 1792 of yacc.c */ -#line 897 "shrink.y" - { - #line 7404 "format.w" - hset_max(glue_kind,(yyvsp[(2) - (2)].u));} - break; - - case 203: -/* Line 1792 of yacc.c */ -#line 900 "shrink.y" - { - #line 7405 "format.w" - hset_max(language_kind,(yyvsp[(2) - (2)].u));} - break; - - case 204: -/* Line 1792 of yacc.c */ -#line 903 "shrink.y" - { - #line 7406 "format.w" - hset_max(rule_kind,(yyvsp[(2) - (2)].u));} - break; - - case 205: -/* Line 1792 of yacc.c */ -#line 906 "shrink.y" - { - #line 7407 "format.w" - hset_max(image_kind,(yyvsp[(2) - (2)].u));} - break; - - case 206: -/* Line 1792 of yacc.c */ -#line 909 "shrink.y" - { - #line 7408 "format.w" - hset_max(leaders_kind,(yyvsp[(2) - (2)].u));} - break; - - case 207: -/* Line 1792 of yacc.c */ -#line 912 "shrink.y" - { - #line 7409 "format.w" - hset_max(baseline_kind,(yyvsp[(2) - (2)].u));} - break; - - case 208: -/* Line 1792 of yacc.c */ -#line 915 "shrink.y" - { - #line 7410 "format.w" - hset_max(xdimen_kind,(yyvsp[(2) - (2)].u));} - break; - - case 209: -/* Line 1792 of yacc.c */ -#line 918 "shrink.y" - { - #line 7411 "format.w" - hset_max(param_kind,(yyvsp[(2) - (2)].u));} - break; - - case 210: -/* Line 1792 of yacc.c */ -#line 921 "shrink.y" - { - #line 7412 "format.w" - hset_max(stream_kind,(yyvsp[(2) - (2)].u));} - break; - - case 211: -/* Line 1792 of yacc.c */ -#line 924 "shrink.y" - { - #line 7413 "format.w" - hset_max(page_kind,(yyvsp[(2) - (2)].u));} - break; - - case 212: -/* Line 1792 of yacc.c */ -#line 927 "shrink.y" - { - #line 7414 "format.w" - hset_max(range_kind,(yyvsp[(2) - (2)].u));} - break; - - case 213: -/* Line 1792 of yacc.c */ -#line 930 "shrink.y" - { - #line 7415 "format.w" - hset_max(label_kind,(yyvsp[(2) - (2)].u));} - break; - - case 214: -/* Line 1792 of yacc.c */ -#line 936 "shrink.y" - { - #line 7612 "format.w" - DEF((yyval.rf),font_kind,(yyvsp[(3) - (5)].u));hput_tags((yyvsp[(1) - (5)].u),(yyvsp[(4) - (5)].info));} - break; - - case 215: -/* Line 1792 of yacc.c */ -#line 939 "shrink.y" - { - #line 7613 "format.w" - DEF((yyval.rf),int_kind,(yyvsp[(3) - (5)].u));hput_tags((yyvsp[(1) - (5)].u),hput_int((yyvsp[(4) - (5)].i)));} - break; - - case 216: -/* Line 1792 of yacc.c */ -#line 942 "shrink.y" - { - #line 7614 "format.w" - DEF((yyval.rf),dimen_kind,(yyvsp[(3) - (5)].u));hput_tags((yyvsp[(1) - (5)].u),hput_dimen((yyvsp[(4) - (5)].d)));} - break; - - case 217: -/* Line 1792 of yacc.c */ -#line 945 "shrink.y" - { - #line 7615 "format.w" - DEF((yyval.rf),language_kind,(yyvsp[(3) - (5)].u));hput_string((yyvsp[(4) - (5)].s));hput_tags((yyvsp[(1) - (5)].u),TAG(language_kind,0));} - break; - - case 218: -/* Line 1792 of yacc.c */ -#line 948 "shrink.y" - { - #line 7616 "format.w" - DEF((yyval.rf),glue_kind,(yyvsp[(3) - (5)].u));hput_tags((yyvsp[(1) - (5)].u),hput_glue(&((yyvsp[(4) - (5)].g))));} - break; - - case 219: -/* Line 1792 of yacc.c */ -#line 951 "shrink.y" - { - #line 7617 "format.w" - DEF((yyval.rf),xdimen_kind,(yyvsp[(3) - (5)].u));hput_tags((yyvsp[(1) - (5)].u),hput_xdimen(&((yyvsp[(4) - (5)].xd))));} - break; - - case 220: -/* Line 1792 of yacc.c */ -#line 954 "shrink.y" - { - #line 7618 "format.w" - DEF((yyval.rf),rule_kind,(yyvsp[(3) - (5)].u));hput_tags((yyvsp[(1) - (5)].u),hput_rule(&((yyvsp[(4) - (5)].r))));} - break; - - case 221: -/* Line 1792 of yacc.c */ -#line 957 "shrink.y" - { - #line 7619 "format.w" - DEF((yyval.rf),leaders_kind,(yyvsp[(3) - (5)].u));hput_tags((yyvsp[(1) - (5)].u),TAG(leaders_kind,(yyvsp[(4) - (5)].info)));} - break; - - case 222: -/* Line 1792 of yacc.c */ -#line 960 "shrink.y" - { - #line 7620 "format.w" - DEF((yyval.rf),baseline_kind,(yyvsp[(3) - (5)].u));hput_tags((yyvsp[(1) - (5)].u),TAG(baseline_kind,(yyvsp[(4) - (5)].info)));} - break; - - case 223: -/* Line 1792 of yacc.c */ -#line 963 "shrink.y" - { - #line 7621 "format.w" - DEF((yyval.rf),ligature_kind,(yyvsp[(3) - (5)].u));hput_tags((yyvsp[(1) - (5)].u),hput_ligature(&((yyvsp[(4) - (5)].lg))));} - break; - - case 224: -/* Line 1792 of yacc.c */ -#line 966 "shrink.y" - { - #line 7622 "format.w" - DEF((yyval.rf),disc_kind,(yyvsp[(3) - (5)].u));hput_tags((yyvsp[(1) - (5)].u),hput_disc(&((yyvsp[(4) - (5)].dc))));} - break; - - case 225: -/* Line 1792 of yacc.c */ -#line 969 "shrink.y" - { - #line 7623 "format.w" - DEF((yyval.rf),image_kind,(yyvsp[(3) - (5)].u));hput_tags((yyvsp[(1) - (5)].u),hput_image(&((yyvsp[(4) - (5)].x))));} - break; - - case 226: -/* Line 1792 of yacc.c */ -#line 972 "shrink.y" - { - #line 7624 "format.w" - DEF((yyval.rf),param_kind,(yyvsp[(3) - (5)].u));hput_tags((yyvsp[(1) - (5)].u),hput_list((yyvsp[(1) - (5)].u)+2,&((yyvsp[(4) - (5)].l))));} - break; - - case 227: -/* Line 1792 of yacc.c */ -#line 975 "shrink.y" - { - #line 7625 "format.w" - DEF((yyval.rf),page_kind,(yyvsp[(3) - (5)].u));hput_tags((yyvsp[(1) - (5)].u),TAG(page_kind,0));} - break; - - case 228: -/* Line 1792 of yacc.c */ -#line 980 "shrink.y" - { - #line 7644 "format.w" - DEF_REF((yyval.rf),int_kind,(yyvsp[(3) - (5)].u),(yyvsp[(4) - (5)].u));hput_tags((yyvsp[(1) - (5)].u),TAG(int_kind,0));} - break; - - case 229: -/* Line 1792 of yacc.c */ -#line 983 "shrink.y" - { - #line 7645 "format.w" - DEF_REF((yyval.rf),dimen_kind,(yyvsp[(3) - (5)].u),(yyvsp[(4) - (5)].u));hput_tags((yyvsp[(1) - (5)].u),TAG(dimen_kind,0));} - break; - - case 230: -/* Line 1792 of yacc.c */ -#line 986 "shrink.y" - { - #line 7646 "format.w" - DEF_REF((yyval.rf),glue_kind,(yyvsp[(3) - (5)].u),(yyvsp[(4) - (5)].u));hput_tags((yyvsp[(1) - (5)].u),TAG(glue_kind,0));} - break; - - case 232: -/* Line 1792 of yacc.c */ -#line 991 "shrink.y" - { - #line 7760 "format.w" - check_param_def(&((yyvsp[(2) - (2)].rf)));} - break; - - case 233: -/* Line 1792 of yacc.c */ -#line 994 "shrink.y" - { - #line 7761 "format.w" - (yyval.l).p= (yyvsp[(2) - (2)].u);(yyval.l).k= param_kind;(yyval.l).s= (hpos-hstart)-(yyvsp[(2) - (2)].u);} - break; - - case 234: -/* Line 1792 of yacc.c */ -#line 998 "shrink.y" - { - #line 7782 "format.w" - HPUTX(2);hpos++;hput_tags((yyvsp[(1) - (1)].u),TAG(param_kind,1));} - break; - - case 235: -/* Line 1792 of yacc.c */ -#line 1001 "shrink.y" - { - #line 7783 "format.w" - hpos= hpos-2;} - break; - - case 236: -/* Line 1792 of yacc.c */ -#line 1004 "shrink.y" - { - #line 7784 "format.w" - hput_tags((yyvsp[(1) - (5)].u)-2,hput_list((yyvsp[(1) - (5)].u)-1,&((yyvsp[(4) - (5)].l))));} - break; - - case 238: -/* Line 1792 of yacc.c */ -#line 1012 "shrink.y" - { - #line 7926 "format.w" - uint8_t f= (yyvsp[(0) - (4)].u);SET_DBIT(f,font_kind);hfont_name[f]= strdup((yyvsp[(1) - (4)].s));(yyval.info)= hput_font_head(f,hfont_name[f],(yyvsp[(2) - (4)].d),(yyvsp[(3) - (4)].u),(yyvsp[(4) - (4)].u));} - break; - - case 241: -/* Line 1792 of yacc.c */ -#line 1019 "shrink.y" - { - #line 7931 "format.w" - hput_tags((yyvsp[(1) - (5)].u),hput_int((yyvsp[(4) - (5)].i)));} - break; - - case 242: -/* Line 1792 of yacc.c */ -#line 1022 "shrink.y" - { - #line 7932 "format.w" - hput_tags((yyvsp[(1) - (5)].u),hput_kern(&((yyvsp[(4) - (5)].kt))));} - break; - - case 243: -/* Line 1792 of yacc.c */ -#line 1025 "shrink.y" - { - #line 7933 "format.w" - hput_tags((yyvsp[(1) - (5)].u),hput_ligature(&((yyvsp[(4) - (5)].lg))));} - break; - - case 244: -/* Line 1792 of yacc.c */ -#line 1028 "shrink.y" - { - #line 7934 "format.w" - hput_tags((yyvsp[(1) - (5)].u),hput_disc(&((yyvsp[(4) - (5)].dc))));} - break; - - case 245: -/* Line 1792 of yacc.c */ -#line 1031 "shrink.y" - { - #line 7935 "format.w" - hput_tags((yyvsp[(1) - (5)].u),hput_glue(&((yyvsp[(4) - (5)].g))));} - break; - - case 246: -/* Line 1792 of yacc.c */ -#line 1034 "shrink.y" - { - #line 7936 "format.w" - hput_string((yyvsp[(4) - (5)].s));hput_tags((yyvsp[(1) - (5)].u),TAG(language_kind,0));} - break; - - case 247: -/* Line 1792 of yacc.c */ -#line 1037 "shrink.y" - { - #line 7937 "format.w" - hput_tags((yyvsp[(1) - (5)].u),hput_rule(&((yyvsp[(4) - (5)].r))));} - break; - - case 248: -/* Line 1792 of yacc.c */ -#line 1040 "shrink.y" - { - #line 7938 "format.w" - hput_tags((yyvsp[(1) - (5)].u),hput_image(&((yyvsp[(4) - (5)].x))));} - break; - - case 249: -/* Line 1792 of yacc.c */ -#line 1044 "shrink.y" - { - #line 7940 "format.w" - RNG("Font parameter",(yyvsp[(1) - (1)].u),0,MAX_FONT_PARAMS);} - break; - - case 250: -/* Line 1792 of yacc.c */ -#line 1048 "shrink.y" - { - #line 8013 "format.w" - REF(xdimen_kind,(yyvsp[(1) - (1)].u));} - break; - - case 251: -/* Line 1792 of yacc.c */ -#line 1051 "shrink.y" - { - #line 8014 "format.w" - REF(param_kind,(yyvsp[(1) - (1)].u));} - break; - - case 252: -/* Line 1792 of yacc.c */ -#line 1054 "shrink.y" - { - #line 8015 "format.w" - REF_RNG(stream_kind,(yyvsp[(1) - (1)].u));} - break; - - case 253: -/* Line 1792 of yacc.c */ -#line 1060 "shrink.y" - { - #line 8019 "format.w" - REF(penalty_kind,(yyvsp[(3) - (4)].u));hput_tags((yyvsp[(1) - (4)].u),TAG(penalty_kind,0));} - break; - - case 254: -/* Line 1792 of yacc.c */ -#line 1064 "shrink.y" - { - #line 8021 "format.w" - REF(dimen_kind,(yyvsp[(4) - (5)].u));hput_tags((yyvsp[(1) - (5)].u),TAG(kern_kind,((yyvsp[(3) - (5)].b))?b100:b000));} - break; - - case 255: -/* Line 1792 of yacc.c */ -#line 1068 "shrink.y" - { - #line 8023 "format.w" - REF(xdimen_kind,(yyvsp[(5) - (6)].u));hput_tags((yyvsp[(1) - (6)].u),TAG(kern_kind,((yyvsp[(3) - (6)].b))?b101:b001));} - break; - - case 256: -/* Line 1792 of yacc.c */ -#line 1071 "shrink.y" - { - #line 8024 "format.w" - REF(glue_kind,(yyvsp[(3) - (4)].u));hput_tags((yyvsp[(1) - (4)].u),TAG(glue_kind,0));} - break; - - case 257: -/* Line 1792 of yacc.c */ -#line 1074 "shrink.y" - { - #line 8025 "format.w" - REF(ligature_kind,(yyvsp[(3) - (4)].u));hput_tags((yyvsp[(1) - (4)].u),TAG(ligature_kind,0));} - break; - - case 258: -/* Line 1792 of yacc.c */ -#line 1077 "shrink.y" - { - #line 8026 "format.w" - REF(disc_kind,(yyvsp[(3) - (4)].u));hput_tags((yyvsp[(1) - (4)].u),TAG(disc_kind,0));} - break; - - case 259: -/* Line 1792 of yacc.c */ -#line 1080 "shrink.y" - { - #line 8027 "format.w" - REF(rule_kind,(yyvsp[(3) - (4)].u));hput_tags((yyvsp[(1) - (4)].u),TAG(rule_kind,0));} - break; - - case 260: -/* Line 1792 of yacc.c */ -#line 1083 "shrink.y" - { - #line 8028 "format.w" - REF(image_kind,(yyvsp[(3) - (4)].u));hput_tags((yyvsp[(1) - (4)].u),TAG(image_kind,0));} - break; - - case 261: -/* Line 1792 of yacc.c */ -#line 1086 "shrink.y" - { - #line 8029 "format.w" - REF(leaders_kind,(yyvsp[(3) - (4)].u));hput_tags((yyvsp[(1) - (4)].u),TAG(leaders_kind,0));} - break; - - case 262: -/* Line 1792 of yacc.c */ -#line 1089 "shrink.y" - { - #line 8030 "format.w" - REF(baseline_kind,(yyvsp[(3) - (4)].u));hput_tags((yyvsp[(1) - (4)].u),TAG(baseline_kind,0));} - break; - - case 263: -/* Line 1792 of yacc.c */ -#line 1092 "shrink.y" - { - #line 8031 "format.w" - REF(language_kind,(yyvsp[(3) - (4)].u));hput_tags((yyvsp[(1) - (4)].u),hput_language((yyvsp[(3) - (4)].u)));} - break; - - case 264: -/* Line 1792 of yacc.c */ -#line 1096 "shrink.y" - { - #line 8033 "format.w" - REF(glue_kind,(yyvsp[(3) - (4)].u)); - if((yyvsp[(3) - (4)].u)==zero_skip_no){hpos= hpos-2;(yyval.b)= false;} - else{hput_tags((yyvsp[(1) - (4)].u),TAG(glue_kind,0));(yyval.b)= true;}} - break; - - case 265: -/* Line 1792 of yacc.c */ -#line 1103 "shrink.y" - { - #line 8464 "format.w" - hput_content_start();} - break; - - case 266: -/* Line 1792 of yacc.c */ -#line 1106 "shrink.y" - { - #line 8465 "format.w" - hput_content_end();hput_range_defs();hput_label_defs();} - break; - - -/* Line 1792 of yacc.c */ -#line 3942 "shrink.tab.c" - default: break; - } - /* User semantic actions sometimes alter yychar, and that requires - that yytoken be updated with the new translation. We take the - approach of translating immediately before every use of yytoken. - One alternative is translating here after every semantic action, - but that translation would be missed if the semantic action invokes - YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or - if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an - incorrect destructor might then be invoked immediately. In the - case of YYERROR or YYBACKUP, subsequent parser actions might lead - to an incorrect destructor call or verbose syntax error message - before the lookahead is translated. */ - 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: - /* Make sure we have latest lookahead translation. See comments at - user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); - - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) - { - ++yynerrs; -#if ! YYERROR_VERBOSE - yyerror (YY_("syntax error")); -#else -# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ - yyssp, yytoken) - { - char const *yymsgp = YY_("syntax error"); - int yysyntax_error_status; - yysyntax_error_status = YYSYNTAX_ERROR; - if (yysyntax_error_status == 0) - yymsgp = yymsg; - else if (yysyntax_error_status == 1) - { - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); - if (!yymsg) - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - yysyntax_error_status = 2; - } - else - { - yysyntax_error_status = YYSYNTAX_ERROR; - yymsgp = yymsg; - } - } - yyerror (yymsgp); - if (yysyntax_error_status == 2) - goto yyexhaustedlab; - } -# undef YYSYNTAX_ERROR -#endif - } - - - - if (yyerrstatus == 3) - { - /* If just tried and failed to reuse lookahead 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 lookahead 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 (!yypact_value_is_default (yyn)) - { - 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); - } - - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - *++yyvsp = yylval; - YY_IGNORE_MAYBE_UNINITIALIZED_END - - - /* 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; - -#if !defined yyoverflow || YYERROR_VERBOSE -/*-------------------------------------------------. -| yyexhaustedlab -- memory exhaustion comes here. | -`-------------------------------------------------*/ -yyexhaustedlab: - yyerror (YY_("memory exhausted")); - yyresult = 2; - /* Fall through. */ -#endif - -yyreturn: - if (yychar != YYEMPTY) - { - /* Make sure we have latest lookahead translation. See comments at - user semantic actions for why this is necessary. */ - yytoken = YYTRANSLATE (yychar); - 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 2055 of yacc.c */ -#line 1110 "shrink.y" - - /*:510*/ diff --git a/Build/source/texk/web2c/hitexdir/parser.h b/Build/source/texk/web2c/hitexdir/parser.h deleted file mode 100644 index dd2a6fb62bb..00000000000 --- a/Build/source/texk/web2c/hitexdir/parser.h +++ /dev/null @@ -1,174 +0,0 @@ -/* A Bison parser, made by GNU Bison 2.7. */ - -/* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2012 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 3 of the License, 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, see <http://www.gnu.org/licenses/>. */ - -/* 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. */ - -#ifndef YY_YY_SHRINK_TAB_H_INCLUDED -# define YY_YY_SHRINK_TAB_H_INCLUDED -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int yydebug; -#endif - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - START = 258, - END = 259, - GLYPH = 260, - UNSIGNED = 261, - REFERENCE = 262, - SIGNED = 263, - STRING = 264, - CHARCODE = 265, - FPNUM = 266, - DIMEN = 267, - PT = 268, - MM = 269, - INCH = 270, - XDIMEN = 271, - H = 272, - V = 273, - FIL = 274, - FILL = 275, - FILLL = 276, - PENALTY = 277, - INTEGER = 278, - LANGUAGE = 279, - RULE = 280, - RUNNING = 281, - KERN = 282, - EXPLICIT = 283, - GLUE = 284, - PLUS = 285, - MINUS = 286, - TXT_START = 287, - TXT_END = 288, - TXT_IGNORE = 289, - TXT_FONT_GLUE = 290, - TXT_FONT_HYPHEN = 291, - TXT_FONT = 292, - TXT_LOCAL = 293, - TXT_GLOBAL = 294, - TXT_CC = 295, - HBOX = 296, - VBOX = 297, - SHIFTED = 298, - HPACK = 299, - HSET = 300, - VPACK = 301, - VSET = 302, - DEPTH = 303, - ADD = 304, - TO = 305, - LEADERS = 306, - ALIGN = 307, - CENTER = 308, - EXPAND = 309, - BASELINE = 310, - LIGATURE = 311, - DISC = 312, - PAR = 313, - MATH = 314, - ON = 315, - OFF = 316, - ADJUST = 317, - TABLE = 318, - ITEM = 319, - IMAGE = 320, - LABEL = 321, - BOT = 322, - MID = 323, - LINK = 324, - OUTLINE = 325, - STREAM = 326, - STREAMDEF = 327, - FIRST = 328, - LAST = 329, - TOP = 330, - NOREFERENCE = 331, - PAGE = 332, - RANGE = 333, - DIRECTORY = 334, - SECTION = 335, - DEFINITIONS = 336, - MAX = 337, - PARAM = 338, - FONT = 339, - CONTENT = 340 - }; -#endif - - -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE -{ -/* Line 2058 of yacc.c */ -#line 79 "shrink.y" - - #line 10241 "format.w" - uint32_t u; int32_t i; char *s; float64_t f; glyph_t c; - dimen_t d;stretch_t st;xdimen_t xd;kern_t kt; - rule_t r;glue_t g;image_t x; - list_t l;box_t h;disc_t dc;lig_t lg; - ref_t rf;info_t info;order_t o;bool b; - - -/* Line 2058 of yacc.c */ -#line 152 "shrink.tab.h" -} YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -#endif - -extern YYSTYPE yylval; - -#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 */ - -#endif /* !YY_YY_SHRINK_TAB_H_INCLUDED */ diff --git a/Build/source/texk/web2c/hitexdir/parser.y b/Build/source/texk/web2c/hitexdir/parser.y deleted file mode 100644 index ab60d2ce4ce..00000000000 --- a/Build/source/texk/web2c/hitexdir/parser.y +++ /dev/null @@ -1,873 +0,0 @@ - /*510:*/ -%{ - -#include "basetypes.h" -#include <string.h> -#include <math.h> -#include "error.h" -#include "hformat.h" -#include "hput.h" -extern char**hfont_name; - - /*356:*/ -uint32_t definition_bits[0x100/32][32]= { - {0}}; - -#define SET_DBIT(N,K) ((N)>0xFF?1:(definition_bits[N/32][K] |= (1<<((N)&(32-1))))) -#define GET_DBIT(N,K) ((N)>0xFF?1:((definition_bits[N/32][K]>>((N)&(32-1)))&1)) -#define DEF(D,K,N) (D).k= K; (D).n= (N);SET_DBIT((D).n,(D).k);\ - DBG(DBGDEF,"Defining %s %d\n",definition_name[(D).k],(D).n);\ - RNG("Definition",(D).n,max_fixed[(D).k]+1,max_ref[(D).k]); -#define REF(K,N) REF_RNG(K,N);if(!GET_DBIT(N,K)) \ - QUIT("Reference %d to %s before definition",(N),definition_name[K]) - /*:356*/ /*360:*/ -#define DEF_REF(D,K,M,N) DEF(D,K,M);\ -if ((M)>max_default[K]) QUIT("Defining non default reference %d for %s",M,definition_name[K]); \ -if ((N)>max_fixed[K]) QUIT("Defining reference %d for %s by non fixed reference %d",M,definition_name[K],N); - /*:360*/ - -extern void hset_entry(entry_t*e,uint16_t i,uint32_t size, -uint32_t xsize,char*file_name); - - /*423:*/ -#ifdef DEBUG -#define YYDEBUG 1 -extern int yydebug; -#else -#define YYDEBUG 0 -#endif - /*:423*/ -extern int yylex(void); - - /*352:*/ -void hset_max(kind_t k,int n) -{ - DBG(DBGDEF,"Setting max %s to %d\n",definition_name[k],n); - RNG("Maximum",n,max_fixed[k]+1,MAX_REF(k)); - if(n>max_ref[k]) - max_ref[k]= n; - } - /*:352*/ /*363:*/ -void check_param_def(ref_t*df) -{ - if(df->k!=int_kind&&df->k!=dimen_kind&&df->k!=glue_kind) - QUIT("Kind %s not allowed in parameter list",definition_name[df->k]); - if(df->n<=max_fixed[df->k]||max_default[df->k]<df->n) - QUIT("Parameter %d for %s not allowed in parameter list",df->n,definition_name[df->k]); - } - /*:363*/ /*422:*/ -extern int yylineno; -int yyerror(const char*msg) -{ - QUIT(" in line %d %s",yylineno,msg); - return 0; - } - /*:422*/ - - -%} - - - - - -%union { - uint32_t u; int32_t i; char *s; float64_t f; glyph_t c; - dimen_t d;stretch_t st;xdimen_t xd;kern_t kt; - rule_t r;glue_t g;image_t x; - list_t l;box_t h;disc_t dc;lig_t lg; - ref_t rf;info_t info;order_t o;bool b; - } - - - -%start hint - - /*2:*/ -%token START -%token END -%token GLYPH -%token <u> UNSIGNED -%token <u> REFERENCE - /*:2*/ /*4:*/ -%type <u> start -%type <c> glyph - /*:4*/ /*26:*/ -%token <i> SIGNED -%type <i> integer - /*:26*/ /*33:*/ -%token <s> STRING - /*:33*/ /*47:*/ -%token <u> CHARCODE - /*:47*/ /*49:*/ -%type <s> string - /*:49*/ /*54:*/ -%token <f> FPNUM -%type <f> number - /*:54*/ /*79:*/ -%token DIMEN -%token PT -%token MM -%token INCH -%type <d> dimension - /*:79*/ /*87:*/ -%token XDIMEN -%token H -%token V -%type <xd> xdimen - /*:87*/ /*98:*/ -%token FIL -%token FILL -%token FILLL -%type <st> stretch -%type <o> order - /*:98*/ /*102:*/ -%token PENALTY -%token INTEGER -%type <i> penalty - /*:102*/ /*108:*/ -%token LANGUAGE - /*:108*/ /*114:*/ -%token RULE -%token RUNNING -%type <d> rule_dimension -%type <r> rule - /*:114*/ /*123:*/ -%token KERN -%token EXPLICIT -%type <b> explicit -%type <kt> kern - /*:123*/ /*132:*/ -%token GLUE -%token PLUS -%token MINUS -%type <g> glue -%type <b> glue_node -%type <st> plus minus - /*:132*/ /*141:*/ -%type <l> list -%type <u> position content_list - /*:141*/ /*150:*/ -%token TXT_START TXT_END TXT_IGNORE -%token TXT_FONT_GLUE TXT_FONT_HYPHEN -%token <u> TXT_FONT TXT_LOCAL -%token <rf> TXT_GLOBAL -%token <u> TXT_CC -%type <u> text - /*:150*/ /*161:*/ -%token HBOX -%token VBOX -%token SHIFTED -%type <info> box box_dimen box_shift box_glue_set - - /*:161*/ /*169:*/ -%token HPACK -%token HSET -%token VPACK -%token VSET -%token DEPTH -%token ADD -%token TO -%type <info> xbox box_goal hpack vpack - /*:169*/ /*174:*/ -%token LEADERS -%token ALIGN -%token CENTER -%token EXPAND -%type <info> leaders -%type <info> ltype - /*:174*/ /*181:*/ -%token BASELINE -%type <info> baseline - /*:181*/ /*188:*/ -%token LIGATURE -%type <u> lig_cc -%type <lg> ligature -%type <u> ref - /*:188*/ /*196:*/ -%token DISC -%type <dc> disc -%type <u> replace_count - /*:196*/ /*204:*/ -%token PAR -%type <info> par - /*:204*/ /*209:*/ -%token MATH -%type <info> math - /*:209*/ /*214:*/ -%token ON -%token OFF -%type <i> on_off - /*:214*/ /*218:*/ -%token ADJUST - /*:218*/ /*222:*/ -%token TABLE -%token ITEM -%type <info> table span_count - /*:222*/ /*229:*/ -%token IMAGE -%type <x> image image_dimen - /*:229*/ /*246:*/ -%token LABEL -%token BOT -%token MID -%type <i> placement - /*:246*/ /*260:*/ -%token LINK - /*:260*/ /*270:*/ -%token OUTLINE - /*:270*/ /*277:*/ -%token STREAM -%token STREAMDEF -%token FIRST -%token LAST -%token TOP -%token NOREFERENCE -%type <info> stream_type -%type <u> stream_ref -%type <rf> stream_def_node - /*:277*/ /*283:*/ -%type <info> stream - /*:283*/ /*287:*/ -%token PAGE - /*:287*/ /*295:*/ -%token RANGE - /*:295*/ /*322:*/ -%token DIRECTORY -%token SECTION - /*:322*/ /*341:*/ -%token DEFINITIONS - /*:341*/ /*349:*/ -%token MAX - /*:349*/ /*358:*/ - -%type <rf> def_node - /*:358*/ /*364:*/ -%token PARAM -%type <u> def_list -%type <l> parameters - /*:364*/ /*373:*/ -%token FONT -%type <info> font font_head - /*:373*/ /*401:*/ -%token CONTENT - /*:401*/ -%% - /*5:*/ -glyph:UNSIGNED REFERENCE{ - $$.c= $1;REF(font_kind,$2);$$.f= $2;}; -content_node:start GLYPH glyph END{ - hput_tags($1,hput_glyph(&($3)));}; -start:START{ - HPUTNODE;$$= (uint32_t)(hpos++-hstart);} - /*:5*/ /*29:*/ -integer:SIGNED |UNSIGNED{ - RNG("number",$1,0,INT32_MAX);}; - /*:29*/ /*38:*/ -glyph:CHARCODE REFERENCE{ - $$.c= $1;REF(font_kind,$2);$$.f= $2;}; - /*:38*/ /*50:*/ -string:STRING |CHARCODE{ - static char s[2]; - RNG("String element",$1,0x20,0x7E); - s[0]= $1;s[1]= 0;$$= s;}; - /*:50*/ /*58:*/ -number:UNSIGNED{ - $$= (float64_t)$1;} |SIGNED{ - $$= (float64_t)$1;} |FPNUM; - /*:58*/ /*82:*/ -dimension:number PT{ - $$= ROUND($1*ONE);RNG("Dimension",$$,-MAX_DIMEN,MAX_DIMEN);} - |number INCH{ - $$= ROUND($1*ONE*72.27);RNG("Dimension",$$,-MAX_DIMEN,MAX_DIMEN);} - |number MM{ - $$= ROUND($1*ONE*(72.27/25.4));RNG("Dimension",$$,-MAX_DIMEN,MAX_DIMEN);}; - /*:82*/ /*89:*/ -xdimen:dimension number H number V{ - $$.w= $1;$$.h= $2;$$.v= $4;} - |dimension number H{ - $$.w= $1;$$.h= $2;$$.v= 0.0;} - |dimension number V{ - $$.w= $1;$$.h= 0.0;$$.v= $2;} - |dimension{ - $$.w= $1;$$.h= 0.0;$$.v= 0.0;}; - - - -xdimen_node:start XDIMEN xdimen END{ - hput_tags($1,hput_xdimen(&($3)));}; - /*:89*/ /*100:*/ - -order:PT{ - $$= normal_o;} |FIL{ - $$= fil_o;} |FILL{ - $$= fill_o;} |FILLL{ - $$= filll_o;}; - -stretch:number order{ - $$.f= $1;$$.o= $2;}; - /*:100*/ /*104:*/ -penalty:integer{ - RNG("Penalty",$1,-20000,+20000);$$= $1;}; -content_node:start PENALTY penalty END{ - hput_tags($1,hput_int($3));}; - /*:104*/ /*116:*/ -rule_dimension:dimension |RUNNING{ - $$= RUNNING_DIMEN;}; -rule:rule_dimension rule_dimension rule_dimension -{ - $$.h= $1;$$.d= $2;$$.w= $3; - if($3==RUNNING_DIMEN&&($1==RUNNING_DIMEN||$2==RUNNING_DIMEN)) - QUIT("Incompatible running dimensions 0x%x 0x%x 0x%x",$1,$2,$3);}; -rule_node:start RULE rule END{ - hput_tags($1,hput_rule(&($3)));}; -content_node:rule_node; - /*:116*/ /*125:*/ -explicit:{ - $$= false;} |EXPLICIT{ - $$= true;}; -kern:explicit xdimen{ - $$.x= $1;$$.d= $2;}; -content_node:start KERN kern END{ - hput_tags($1,hput_kern(&($3)));} - /*:125*/ /*134:*/ -plus:{ - $$.f= 0.0;$$.o= 0;} |PLUS stretch{ - $$= $2;}; -minus:{ - $$.f= 0.0;$$.o= 0;} |MINUS stretch{ - $$= $2;}; -glue:xdimen plus minus{ - $$.w= $1;$$.p= $2;$$.m= $3;}; -content_node:start GLUE glue END{ - if(ZERO_GLUE($3)){HPUT8(zero_skip_no); - hput_tags($1,TAG(glue_kind,0));}else hput_tags($1,hput_glue(&($3)));}; -glue_node:start GLUE glue END -{ - if(ZERO_GLUE($3)){hpos--;$$= false;} - else{hput_tags($1,hput_glue(&($3)));$$= true;}}; - /*:134*/ /*142:*/ -position:{ - $$= hpos-hstart;}; -content_list:position - |content_list content_node; -estimate:{ - hpos+= 2;} - |UNSIGNED{ - hpos+= hsize_bytes($1)+1;}; -list:start estimate content_list END -{ - $$.k= list_kind;$$.p= $3;$$.s= (hpos-hstart)-$3; - hput_tags($1,hput_list($1+1,&($$)));}; - /*:142*/ /*153:*/ -list:TXT_START position -{ - hpos+= 4;} -text TXT_END -{ - $$.k= text_kind;$$.p= $4;$$.s= (hpos-hstart)-$4; - hput_tags($2,hput_list($2+1,&($$)));}; -text:position |text txt; - -txt:TXT_CC{ - hput_txt_cc($1);} - |TXT_FONT{ - REF(font_kind,$1);hput_txt_font($1);} - |TXT_GLOBAL{ - REF($1.k,$1.n);hput_txt_global(&($1));} - |TXT_LOCAL{ - RNG("Font parameter",$1,0,11);hput_txt_local($1);} - |TXT_FONT_GLUE{ - HPUTX(1);HPUT8(txt_glue);} - |TXT_FONT_HYPHEN{ - HPUTX(1);HPUT8(txt_hyphen);} - |TXT_IGNORE{ - HPUTX(1);HPUT8(txt_ignore);} - |{ - HPUTX(1);HPUT8(txt_node);}content_node; - /*:153*/ /*163:*/ - -box_dimen:dimension dimension dimension -{ - $$= hput_box_dimen($1,$2,$3);}; -box_shift:{ - $$= b000;} - |SHIFTED dimension{ - $$= hput_box_shift($2);}; - -box_glue_set:{ - $$= b000;} - |PLUS stretch{ - $$= hput_box_glue_set(+1,$2.f,$2.o);} - |MINUS stretch{ - $$= hput_box_glue_set(-1,$2.f,$2.o);}; - - -box:box_dimen box_shift box_glue_set list{ - $$= $1 |$2 |$3;}; - -hbox_node:start HBOX box END{ - hput_tags($1,TAG(hbox_kind,$3));}; -vbox_node:start VBOX box END{ - hput_tags($1,TAG(vbox_kind,$3));}; -content_node:hbox_node |vbox_node; - /*:163*/ /*171:*/ -box_flex:plus minus{ - hput_stretch(&($1));hput_stretch(&($2));}; -xbox:box_dimen box_shift box_flex xdimen_ref list{ - $$= $1 |$2;} - |box_dimen box_shift box_flex xdimen_node list{ - $$= $1 |$2 |b100;}; - -box_goal:TO xdimen_ref{ - $$= b000;} - |ADD xdimen_ref{ - $$= b001;} - |TO xdimen_node{ - $$= b100;} - |ADD xdimen_node{ - $$= b101;}; - -hpack:box_shift box_goal list{ - $$= $2;}; -vpack:box_shift MAX DEPTH dimension{ - HPUT32($4);}box_goal list{ - $$= $1 |$6;}; - -vxbox_node:start VSET xbox END{ - hput_tags($1,TAG(vset_kind,$3));} - |start VPACK vpack END{ - hput_tags($1,TAG(vpack_kind,$3));}; - - -hxbox_node:start HSET xbox END{ - hput_tags($1,TAG(hset_kind,$3));} - |start HPACK hpack END{ - hput_tags($1,TAG(hpack_kind,$3));}; - -content_node:vxbox_node |hxbox_node; - /*:171*/ /*176:*/ -ltype:{ - $$= 1;} |ALIGN{ - $$= 1;} |CENTER{ - $$= 2;} |EXPAND{ - $$= 3;}; -leaders:glue_node ltype rule_node{ - if($1)$$= $2 |b100;else $$= $2;} - |glue_node ltype hbox_node{ - if($1)$$= $2 |b100;else $$= $2;} - |glue_node ltype vbox_node{ - if($1)$$= $2 |b100;else $$= $2;}; -content_node:start LEADERS leaders END{ - hput_tags($1,TAG(leaders_kind,$3));} - /*:176*/ /*183:*/ -baseline:dimension{ - if($1!=0)HPUT32($1);} -glue_node glue_node{ - $$= b000;if($1!=0)$$ |= b001; - if($3)$$ |= b100; - if($4)$$ |= b010; - }; -content_node:start BASELINE baseline END -{ - if($3==b000)HPUT8(0);hput_tags($1,TAG(baseline_kind,$3));}; - /*:183*/ /*190:*/ -cc_list: |cc_list TXT_CC{ - hput_utf8($2);}; -lig_cc:UNSIGNED{ - RNG("UTF-8 code",$1,0,0x1FFFFF);$$= hpos-hstart;hput_utf8($1);}; -lig_cc:CHARCODE{ - $$= hpos-hstart;hput_utf8($1);}; -ref:REFERENCE{ - HPUT8($1);$$= $1;}; -ligature:ref{ - REF(font_kind,$1);}lig_cc TXT_START cc_list TXT_END -{ - $$.f= $1;$$.l.p= $3;$$.l.s= (hpos-hstart)-$3; - RNG("Ligature size",$$.l.s,0,255);}; -content_node:start LIGATURE ligature END{ - hput_tags($1,hput_ligature(&($3)));}; - /*:190*/ /*198:*/ -replace_count:explicit{ - if($1){$$= 0x80;HPUT8(0x80);}else $$= 0x00;} - |explicit UNSIGNED{ - RNG("Replace count",$2,0,31); - $$= ($2) |(($1)?0x80:0x00);if($$!=0)HPUT8($$);}; -disc:replace_count list list{ - $$.r= $1;$$.p= $2;$$.q= $3; - if($3.s==0){hpos= hpos-2;if($2.s==0)hpos= hpos-2;}} - |replace_count list{ - $$.r= $1;$$.p= $2;if($2.s==0)hpos= hpos-2;$$.q.s= 0;} - |replace_count{ - $$.r= $1;$$.p.s= 0;$$.q.s= 0;}; - - -disc_node:start DISC disc END -{ - hput_tags($1,hput_disc(&($3)));}; - -content_node:disc_node; - /*:198*/ /*206:*/ -par_dimen:xdimen{ - hput_xdimen_node(&($1));}; -par:xdimen_ref param_ref list{ - $$= b000;} - |xdimen_ref empty_param_list non_empty_param_list list{ - $$= b010;} - |xdimen_ref empty_param_list list{ - $$= b010;} - |xdimen param_ref{ - hput_xdimen_node(&($1));}list{ - $$= b100;} - |par_dimen empty_param_list non_empty_param_list list{ - $$= b110;} - |par_dimen empty_param_list list{ - $$= b110;}; - -content_node:start PAR par END{ - hput_tags($1,TAG(par_kind,$3));}; - /*:206*/ /*211:*/ -math:param_ref list{ - $$= b000;} - |param_ref list hbox_node{ - $$= b001;} - |param_ref hbox_node list{ - $$= b010;} - |empty_param_list list{ - $$= b100;} - |empty_param_list list hbox_node{ - $$= b101;} - |empty_param_list hbox_node list{ - $$= b110;} - |empty_param_list non_empty_param_list list{ - $$= b100;} - |empty_param_list non_empty_param_list list hbox_node{ - $$= b101;} - |empty_param_list non_empty_param_list hbox_node list{ - $$= b110;}; - -content_node:start MATH math END{ - hput_tags($1,TAG(math_kind,$3));}; - /*:211*/ /*216:*/ -on_off:ON{ - $$= 1;} |OFF{ - $$= 0;}; -math:on_off{ - $$= b011 |($1<<2);}; - /*:216*/ /*220:*/ -content_node:start ADJUST list END{ - hput_tags($1,TAG(adjust_kind,1));}; - /*:220*/ /*224:*/ -span_count:UNSIGNED{ - $$= hput_span_count($1);}; -content_node:start ITEM content_node END{ - hput_tags($1,TAG(item_kind,1));}; -content_node:start ITEM span_count content_node END{ - hput_tags($1,TAG(item_kind,$3));}; -content_node:start ITEM list END{ - hput_tags($1,TAG(item_kind,b000));}; - -table:H box_goal list list{ - $$= $2;}; -table:V box_goal list list{ - $$= $2 |b010;}; - -content_node:start TABLE table END{ - hput_tags($1,TAG(table_kind,$3));}; - /*:224*/ /*231:*/ -image_dimen:dimension dimension{ - $$.w= $1;$$.h= $2;} |{ - $$.w= $$.h= 0;}; -image:UNSIGNED image_dimen plus minus{ - $$.w= $2.w;$$.h= $2.h;$$.p= $3;$$.m= $4;RNG("Section number",$1,3,max_section_no);$$.n= $1;}; -content_node:start IMAGE image END{ - hput_tags($1,hput_image(&($3)));} - /*:231*/ /*241:*/ -max_value:OUTLINE UNSIGNED{ - max_outline= $2; - RNG("max outline",max_outline,0,0xFFFF); - DBG(DBGDEF |DBGLABEL,"Setting max outline to %d\n",max_outline); - }; - /*:241*/ /*248:*/ -placement:TOP{ - $$= LABEL_TOP;} |BOT{ - $$= LABEL_BOT;} |MID{ - $$= LABEL_MID;} |{ - $$= LABEL_MID;}; -content_node:START LABEL REFERENCE placement END -{ - hset_label($3,$4);} - /*:248*/ /*262:*/ -content_node:start LINK REFERENCE on_off END -{ - hput_tags($1,hput_link($3,$4));}; - /*:262*/ /*272:*/ -def_node:START OUTLINE REFERENCE integer position list END{ - - static int outline_no= -1; - $$.k= outline_kind;$$.n= $3; - if($6.s==0)QUIT("Outline with empty title in line %d",yylineno); - outline_no++; - hset_outline(outline_no,$3,$4,$5); - }; - /*:272*/ /*279:*/ -stream_link:ref{ - REF_RNG(stream_kind,$1);} |NOREFERENCE{ - HPUT8(255);}; -stream_split:stream_link stream_link UNSIGNED{ - RNG("split ratio",$3,0,1000);HPUT16($3);}; -stream_info:xdimen_node UNSIGNED{ - RNG("magnification factor",$2,0,1000);HPUT16($2);}stream_split; - -stream_type:stream_info{ - $$= 0;} |FIRST{ - $$= 1;} |LAST{ - $$= 2;} |TOP{ - $$= 3;}; - -stream_def_node:start STREAMDEF ref stream_type -list xdimen_node glue_node list glue_node END -{ - DEF($$,stream_kind,$3);hput_tags($1,TAG(stream_kind,$4 |b100));}; - -stream_ins_node:start STREAMDEF ref END -{ - RNG("Stream insertion",$3,0,max_ref[stream_kind]);hput_tags($1,TAG(stream_kind,b100));}; - -content_node:stream_def_node |stream_ins_node; - /*:279*/ /*284:*/ -stream:empty_param_list list{ - $$= b010;} - |empty_param_list non_empty_param_list list{ - $$= b010;} - |param_ref list{ - $$= b000;}; -content_node:start STREAM stream_ref stream END -{ - hput_tags($1,TAG(stream_kind,$4));}; - /*:284*/ /*289:*/ -page_priority:{ - HPUT8(1);} - |UNSIGNED{ - RNG("page priority",$1,0,255);HPUT8($1);}; - -stream_def_list: |stream_def_list stream_def_node; - -page:string{ - hput_string($1);}page_priority glue_node dimension{ - HPUT32($5);} -xdimen_node xdimen_node -list stream_def_list; - /*:289*/ /*297:*/ - -content_node:START RANGE REFERENCE ON END{ - REF(page_kind,$3);hput_range($3,true);} - |START RANGE REFERENCE OFF END{ - REF(page_kind,$3);hput_range($3,false);}; - /*:297*/ /*308:*/ -hint:directory_section definition_section content_section; - /*:308*/ /*324:*/ -directory_section:START DIRECTORY UNSIGNED{ - new_directory($3+1);new_output_buffers();}entry_list END; -entry_list: |entry_list entry; -entry:START SECTION UNSIGNED string END -{ - RNG("Section number",$3,3,max_section_no);hset_entry(&(dir[$3]),$3,0,0,$4);}; - /*:324*/ /*343:*/ -definition_section:START DEFINITIONS{ - hput_definitions_start();} -max_definitions definition_list -END{ - hput_definitions_end();}; -definition_list: |definition_list def_node; - /*:343*/ /*351:*/ -max_definitions:START MAX max_list END -{ - /*245:*/ - if(max_ref[label_kind]>=0) - ALLOCATE(labels,max_ref[label_kind]+1,label_t); - /*:245*/ /*266:*/ - if(max_outline>=0) - ALLOCATE(outlines,max_outline+1,outline_t); - /*:266*/ /*293:*/ - ALLOCATE(page_on,max_ref[page_kind]+1,int); - ALLOCATE(range_pos,2*(max_ref[range_kind]+1),range_pos_t); - /*:293*/ /*357:*/ - definition_bits[0][int_kind]= (1<<(MAX_INT_DEFAULT+1))-1; - definition_bits[0][dimen_kind]= (1<<(MAX_DIMEN_DEFAULT+1))-1; - definition_bits[0][xdimen_kind]= (1<<(MAX_XDIMEN_DEFAULT+1))-1; - definition_bits[0][glue_kind]= (1<<(MAX_GLUE_DEFAULT+1))-1; - definition_bits[0][baseline_kind]= (1<<(MAX_BASELINE_DEFAULT+1))-1; - definition_bits[0][page_kind]= (1<<(MAX_PAGE_DEFAULT+1))-1; - definition_bits[0][stream_kind]= (1<<(MAX_STREAM_DEFAULT+1))-1; - definition_bits[0][range_kind]= (1<<(MAX_RANGE_DEFAULT+1))-1; - /*:357*/ /*372:*/ - ALLOCATE(hfont_name,max_ref[font_kind]+1,char*); - /*:372*/hput_max_definitions();}; - -max_list: |max_list START max_value END; - -max_value:FONT UNSIGNED{ - hset_max(font_kind,$2);} - |INTEGER UNSIGNED{ - hset_max(int_kind,$2);} - |DIMEN UNSIGNED{ - hset_max(dimen_kind,$2);} - |LIGATURE UNSIGNED{ - hset_max(ligature_kind,$2);} - |DISC UNSIGNED{ - hset_max(disc_kind,$2);} - |GLUE UNSIGNED{ - hset_max(glue_kind,$2);} - |LANGUAGE UNSIGNED{ - hset_max(language_kind,$2);} - |RULE UNSIGNED{ - hset_max(rule_kind,$2);} - |IMAGE UNSIGNED{ - hset_max(image_kind,$2);} - |LEADERS UNSIGNED{ - hset_max(leaders_kind,$2);} - |BASELINE UNSIGNED{ - hset_max(baseline_kind,$2);} - |XDIMEN UNSIGNED{ - hset_max(xdimen_kind,$2);} - |PARAM UNSIGNED{ - hset_max(param_kind,$2);} - |STREAMDEF UNSIGNED{ - hset_max(stream_kind,$2);} - |PAGE UNSIGNED{ - hset_max(page_kind,$2);} - |RANGE UNSIGNED{ - hset_max(range_kind,$2);} - |LABEL UNSIGNED{ - hset_max(label_kind,$2);}; - - /*:351*/ /*359:*/ -def_node: -start FONT ref font END{ - DEF($$,font_kind,$3);hput_tags($1,$4);} - |start INTEGER ref integer END{ - DEF($$,int_kind,$3);hput_tags($1,hput_int($4));} - |start DIMEN ref dimension END{ - DEF($$,dimen_kind,$3);hput_tags($1,hput_dimen($4));} - |start LANGUAGE ref string END{ - DEF($$,language_kind,$3);hput_string($4);hput_tags($1,TAG(language_kind,0));} - |start GLUE ref glue END{ - DEF($$,glue_kind,$3);hput_tags($1,hput_glue(&($4)));} - |start XDIMEN ref xdimen END{ - DEF($$,xdimen_kind,$3);hput_tags($1,hput_xdimen(&($4)));} - |start RULE ref rule END{ - DEF($$,rule_kind,$3);hput_tags($1,hput_rule(&($4)));} - |start LEADERS ref leaders END{ - DEF($$,leaders_kind,$3);hput_tags($1,TAG(leaders_kind,$4));} - |start BASELINE ref baseline END{ - DEF($$,baseline_kind,$3);hput_tags($1,TAG(baseline_kind,$4));} - |start LIGATURE ref ligature END{ - DEF($$,ligature_kind,$3);hput_tags($1,hput_ligature(&($4)));} - |start DISC ref disc END{ - DEF($$,disc_kind,$3);hput_tags($1,hput_disc(&($4)));} - |start IMAGE ref image END{ - DEF($$,image_kind,$3);hput_tags($1,hput_image(&($4)));} - |start PARAM ref parameters END{ - DEF($$,param_kind,$3);hput_tags($1,hput_list($1+2,&($4)));} - |start PAGE ref page END{ - DEF($$,page_kind,$3);hput_tags($1,TAG(page_kind,0));}; - /*:359*/ /*361:*/ -def_node: -start INTEGER ref ref END{ - DEF_REF($$,int_kind,$3,$4);hput_tags($1,TAG(int_kind,0));} - |start DIMEN ref ref END{ - DEF_REF($$,dimen_kind,$3,$4);hput_tags($1,TAG(dimen_kind,0));} - |start GLUE ref ref END{ - DEF_REF($$,glue_kind,$3,$4);hput_tags($1,TAG(glue_kind,0));}; - /*:361*/ /*366:*/ -def_list:position - |def_list def_node{ - check_param_def(&($2));}; -parameters:estimate def_list{ - $$.p= $2;$$.k= param_kind;$$.s= (hpos-hstart)-$2;}; - /*:366*/ /*367:*/ -empty_param_list:position{ - HPUTX(2);hpos++;hput_tags($1,TAG(param_kind,1));}; -non_empty_param_list:start PARAM{ - hpos= hpos-2;}parameters END -{ - hput_tags($1-2,hput_list($1-1,&($4)));}; - /*:367*/ /*375:*/ - -font:font_head font_param_list; - -font_head:string dimension UNSIGNED UNSIGNED -{ - uint8_t f= $<u>0;SET_DBIT(f,font_kind);hfont_name[f]= strdup($1);$$= hput_font_head(f,hfont_name[f],$2,$3,$4);}; - -font_param_list:glue_node disc_node |font_param_list font_param; - -font_param: -start PENALTY fref penalty END{ - hput_tags($1,hput_int($4));} - |start KERN fref kern END{ - hput_tags($1,hput_kern(&($4)));} - |start LIGATURE fref ligature END{ - hput_tags($1,hput_ligature(&($4)));} - |start DISC fref disc END{ - hput_tags($1,hput_disc(&($4)));} - |start GLUE fref glue END{ - hput_tags($1,hput_glue(&($4)));} - |start LANGUAGE fref string END{ - hput_string($4);hput_tags($1,TAG(language_kind,0));} - |start RULE fref rule END{ - hput_tags($1,hput_rule(&($4)));} - |start IMAGE fref image END{ - hput_tags($1,hput_image(&($4)));}; - -fref:ref{ - RNG("Font parameter",$1,0,MAX_FONT_PARAMS);}; - /*:375*/ /*378:*/ -xdimen_ref:ref{ - REF(xdimen_kind,$1);}; -param_ref:ref{ - REF(param_kind,$1);}; -stream_ref:ref{ - REF_RNG(stream_kind,$1);}; - - -content_node: -start PENALTY ref END{ - REF(penalty_kind,$3);hput_tags($1,TAG(penalty_kind,0));} - |start KERN explicit ref END -{ - REF(dimen_kind,$4);hput_tags($1,TAG(kern_kind,($3)?b100:b000));} - |start KERN explicit XDIMEN ref END -{ - REF(xdimen_kind,$5);hput_tags($1,TAG(kern_kind,($3)?b101:b001));} - |start GLUE ref END{ - REF(glue_kind,$3);hput_tags($1,TAG(glue_kind,0));} - |start LIGATURE ref END{ - REF(ligature_kind,$3);hput_tags($1,TAG(ligature_kind,0));} - |start DISC ref END{ - REF(disc_kind,$3);hput_tags($1,TAG(disc_kind,0));} - |start RULE ref END{ - REF(rule_kind,$3);hput_tags($1,TAG(rule_kind,0));} - |start IMAGE ref END{ - REF(image_kind,$3);hput_tags($1,TAG(image_kind,0));} - |start LEADERS ref END{ - REF(leaders_kind,$3);hput_tags($1,TAG(leaders_kind,0));} - |start BASELINE ref END{ - REF(baseline_kind,$3);hput_tags($1,TAG(baseline_kind,0));} - |start LANGUAGE REFERENCE END{ - REF(language_kind,$3);hput_tags($1,hput_language($3));}; - -glue_node:start GLUE ref END{ - REF(glue_kind,$3); - if($3==zero_skip_no){hpos= hpos-2;$$= false;} - else{hput_tags($1,TAG(glue_kind,0));$$= true;}}; - - /*:378*/ /*403:*/ -content_section:START CONTENT{ - hput_content_start();}content_list END -{ - hput_content_end();hput_range_defs();hput_label_defs();}; - /*:403*/ -%% - /*:510*/ |