diff options
73 files changed, 5451 insertions, 3783 deletions
diff --git a/Build/source/texk/gregorio/ChangeLog b/Build/source/texk/gregorio/ChangeLog index dbb97499c1e..e436cb828b6 100644 --- a/Build/source/texk/gregorio/ChangeLog +++ b/Build/source/texk/gregorio/ChangeLog @@ -1,3 +1,16 @@ +2016-09-25 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + Import gregorio-4.2.0. + * version.ac, configure.ac: Adapted. + * gregorio.test: Change program name by + gregorio=gregorio-$FILENAME_VERSION. + +2016-08-23 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + Import gregorio-4.2.0-rc3. + * version.ac, configure.ac: Adapted. + * Makefile.am: bin_PROGRAMS = gregorio-$(FILENAME_VERSION). + 2016-07-15 Karl Berry <karl@tug.org> * configure.ac (AC_CHECK_ALIGNOF): add. diff --git a/Build/source/texk/gregorio/Makefile.am b/Build/source/texk/gregorio/Makefile.am index 0bd9d26f90b..f0e3707cd2d 100644 --- a/Build/source/texk/gregorio/Makefile.am +++ b/Build/source/texk/gregorio/Makefile.am @@ -20,7 +20,7 @@ AM_CPPFLAGS = \ $(KPATHSEA_INCLUDES) -D_GNU_SOURCE -DUSE_KPSE AM_CFLAGS = $(WARNING_CFLAGS) -bin_PROGRAMS = gregorio +bin_PROGRAMS = gregorio-$(FILENAME_VERSION) gregorio_SOURCES = \ @GREGORIO_TREE@/src/characters.c \ @@ -34,6 +34,7 @@ gregorio_SOURCES = \ @GREGORIO_TREE@/src/gabc/gabc-elements-determination.c \ @GREGORIO_TREE@/src/gabc/gabc-glyphs-determination.c \ @GREGORIO_TREE@/src/gabc/gabc-notes-determination-l.c \ + @GREGORIO_TREE@/src/gabc/gabc-score-determination.c \ @GREGORIO_TREE@/src/gabc/gabc-score-determination-l.c \ @GREGORIO_TREE@/src/gabc/gabc-score-determination-y.c \ @GREGORIO_TREE@/src/gabc/gabc-write.c \ @@ -57,4 +58,3 @@ TESTS = gregorio.test gregorio.log: gregorio$(EXEEXT) EXTRA_DIST += $(TESTS) DISTCLEANFILES = factus.gtex veni.gtex - diff --git a/Build/source/texk/gregorio/Makefile.in b/Build/source/texk/gregorio/Makefile.in index 9cb2229c928..eb3601a479d 100644 --- a/Build/source/texk/gregorio/Makefile.in +++ b/Build/source/texk/gregorio/Makefile.in @@ -88,7 +88,7 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -bin_PROGRAMS = gregorio$(EXEEXT) +bin_PROGRAMS = gregorio-$(FILENAME_VERSION)$(EXEEXT) subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../m4/kpse-common.m4 \ @@ -124,6 +124,7 @@ am_gregorio_OBJECTS = @GREGORIO_TREE@/src/characters.$(OBJEXT) \ @GREGORIO_TREE@/src/gabc/gabc-elements-determination.$(OBJEXT) \ @GREGORIO_TREE@/src/gabc/gabc-glyphs-determination.$(OBJEXT) \ @GREGORIO_TREE@/src/gabc/gabc-notes-determination-l.$(OBJEXT) \ + @GREGORIO_TREE@/src/gabc/gabc-score-determination.$(OBJEXT) \ @GREGORIO_TREE@/src/gabc/gabc-score-determination-l.$(OBJEXT) \ @GREGORIO_TREE@/src/gabc/gabc-score-determination-y.$(OBJEXT) \ @GREGORIO_TREE@/src/gabc/gabc-write.$(OBJEXT) \ @@ -588,6 +589,7 @@ gregorio_SOURCES = \ @GREGORIO_TREE@/src/gabc/gabc-elements-determination.c \ @GREGORIO_TREE@/src/gabc/gabc-glyphs-determination.c \ @GREGORIO_TREE@/src/gabc/gabc-notes-determination-l.c \ + @GREGORIO_TREE@/src/gabc/gabc-score-determination.c \ @GREGORIO_TREE@/src/gabc/gabc-score-determination-l.c \ @GREGORIO_TREE@/src/gabc/gabc-score-determination-y.c \ @GREGORIO_TREE@/src/gabc/gabc-write.c \ @@ -755,6 +757,9 @@ clean-binPROGRAMS: @GREGORIO_TREE@/src/gabc/gabc-notes-determination-l.$(OBJEXT): \ @GREGORIO_TREE@/src/gabc/$(am__dirstamp) \ @GREGORIO_TREE@/src/gabc/$(DEPDIR)/$(am__dirstamp) +@GREGORIO_TREE@/src/gabc/gabc-score-determination.$(OBJEXT): \ + @GREGORIO_TREE@/src/gabc/$(am__dirstamp) \ + @GREGORIO_TREE@/src/gabc/$(DEPDIR)/$(am__dirstamp) @GREGORIO_TREE@/src/gabc/gabc-score-determination-l.$(OBJEXT): \ @GREGORIO_TREE@/src/gabc/$(am__dirstamp) \ @GREGORIO_TREE@/src/gabc/$(DEPDIR)/$(am__dirstamp) @@ -818,6 +823,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@@GREGORIO_TREE@/src/gabc/$(DEPDIR)/gabc-elements-determination.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@@GREGORIO_TREE@/src/gabc/$(DEPDIR)/gabc-glyphs-determination.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@@GREGORIO_TREE@/src/gabc/$(DEPDIR)/gabc-notes-determination-l.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GREGORIO_TREE@/src/gabc/$(DEPDIR)/gabc-score-determination.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@@GREGORIO_TREE@/src/gabc/$(DEPDIR)/gabc-score-determination-l.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@@GREGORIO_TREE@/src/gabc/$(DEPDIR)/gabc-score-determination-y.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@@GREGORIO_TREE@/src/gabc/$(DEPDIR)/gabc-write.Po@am__quote@ diff --git a/Build/source/texk/gregorio/configure b/Build/source/texk/gregorio/configure index 7ab4fa3d9cc..f9b47ac1965 100755 --- a/Build/source/texk/gregorio/configure +++ b/Build/source/texk/gregorio/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Gregorio (TeX Live) 4.1.4. +# Generated by GNU Autoconf 2.69 for Gregorio (TeX Live) 4.2.0. # # Report bugs to <tex-k@tug.org>. # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Gregorio (TeX Live)' PACKAGE_TARNAME='gregorio--tex-live-' -PACKAGE_VERSION='4.1.4' -PACKAGE_STRING='Gregorio (TeX Live) 4.1.4' +PACKAGE_VERSION='4.2.0' +PACKAGE_STRING='Gregorio (TeX Live) 4.2.0' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='http://gregorio-project.github.io/' @@ -1331,7 +1331,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Gregorio (TeX Live) 4.1.4 to adapt to many kinds of systems. +\`configure' configures Gregorio (TeX Live) 4.2.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1402,7 +1402,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Gregorio (TeX Live) 4.1.4:";; + short | recursive ) echo "Configuration of Gregorio (TeX Live) 4.2.0:";; esac cat <<\_ACEOF @@ -1522,7 +1522,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Gregorio (TeX Live) configure 4.1.4 +Gregorio (TeX Live) configure 4.2.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2361,7 +2361,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Gregorio (TeX Live) $as_me 4.1.4, which was +It was created by Gregorio (TeX Live) $as_me 4.2.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2710,7 +2710,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -FILENAME_VERSION="4_1_4" +FILENAME_VERSION="4_2_0" cat >>confdefs.h <<_ACEOF @@ -8054,7 +8054,7 @@ fi # Define the identity of the package. PACKAGE='gregorio--tex-live-' - VERSION='4.1.4' + VERSION='4.2.0' cat >>confdefs.h <<_ACEOF @@ -14474,7 +14474,7 @@ Usage: $0 [OPTIONS] Report bugs to <bug-libtool@gnu.org>." lt_cl_version="\ -Gregorio (TeX Live) config.lt 4.1.4 +Gregorio (TeX Live) config.lt 4.2.0 configured by $0, generated by GNU Autoconf 2.69. Copyright (C) 2011 Free Software Foundation, Inc. @@ -16061,7 +16061,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Gregorio (TeX Live) $as_me 4.1.4, which was +This file was extended by Gregorio (TeX Live) $as_me 4.2.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16128,7 +16128,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Gregorio (TeX Live) config.status 4.1.4 +Gregorio (TeX Live) config.status 4.2.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/Build/source/texk/gregorio/configure.ac b/Build/source/texk/gregorio/configure.ac index 587b2b12795..7b95ac38e61 100644 --- a/Build/source/texk/gregorio/configure.ac +++ b/Build/source/texk/gregorio/configure.ac @@ -9,7 +9,7 @@ dnl with or without modifications, as long as this notice is preserved. dnl m4_include([version.ac])[] dnl define gregorio_version AC_INIT([Gregorio (TeX Live)], gregorio_version, [tex-k@tug.org], [gregorio--tex-live-], [http://gregorio-project.github.io/]) -FILENAME_VERSION="4_1_4" +FILENAME_VERSION="4_2_0" AC_SUBST(FILENAME_VERSION) AC_DEFINE_UNQUOTED(FILENAME_VERSION, "$FILENAME_VERSION", [version suitable for file names]) AC_PREREQ([2.65]) diff --git a/Build/source/texk/gregorio/gregorio-PATCHES/ChangeLog b/Build/source/texk/gregorio/gregorio-PATCHES/ChangeLog index 75e04c1382f..4885ef3d5b1 100644 --- a/Build/source/texk/gregorio/gregorio-PATCHES/ChangeLog +++ b/Build/source/texk/gregorio/gregorio-PATCHES/ChangeLog @@ -1,3 +1,12 @@ +2016-09-25 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + Import gregorio-4.2.0. + +2016-08-23 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + Import gregorio-4.2.0-rc3. + * patch-04-alignof: remove since included upstream. + 2016-07-15 Karl Berry <karl@tug.org> * patch-04-alignof: add. diff --git a/Build/source/texk/gregorio/gregorio-PATCHES/TL-Changes b/Build/source/texk/gregorio/gregorio-PATCHES/TL-Changes index 994e44a88e5..c01b07cfc21 100644 --- a/Build/source/texk/gregorio/gregorio-PATCHES/TL-Changes +++ b/Build/source/texk/gregorio/gregorio-PATCHES/TL-Changes @@ -1,5 +1,5 @@ -Changes applied to the gregorio-4.1.4 tree as obtained from: - https://github.com/gregorio-project/gregorio/releases/tag/v4.1.4/ +Changes applied to the gregorio-4.2.0 tree as obtained from: + https://github.com/gregorio-project/gregorio/releases/tag/v4.2.0/ Remove: Makefile.in diff --git a/Build/source/texk/gregorio/gregorio-PATCHES/patch-04-alignof b/Build/source/texk/gregorio/gregorio-PATCHES/patch-04-alignof deleted file mode 100644 index d1a1fe86dea..00000000000 --- a/Build/source/texk/gregorio/gregorio-PATCHES/patch-04-alignof +++ /dev/null @@ -1,42 +0,0 @@ -Index: configure.ac -=================================================================== ---- configure.ac (revision 41690) -+++ configure.ac (working copy) -@@ -97,6 +97,8 @@ - AC_CHECK_HEADERS([stdint.h]) - AC_CHECK_HEADERS([stdalign.h]) - -+AC_CHECK_ALIGNOF(uint32_t) -+ - AC_C_BIGENDIAN - - AC_SUBST([GREGORIO_TREE], [gregorio-src]) -Index: gregorio-src/src/sha1.c -=================================================================== ---- gregorio-src/src/sha1.c (revision 41690) -+++ gregorio-src/src/sha1.c (working copy) -@@ -37,15 +37,6 @@ - #include <stdlib.h> - #include <string.h> - --#ifdef HAVE_STDALIGN_H --#include <stdalign.h> --#ifdef __clang__ --#pragma clang diagnostic ignored "-Wc11-extensions" --#endif --#else --#define alignof(x) sizeof(x) --#endif -- - #ifdef WORDS_BIGENDIAN - #define SWAP(n) (n) - #else -@@ -167,7 +158,7 @@ - if (len >= 64) { - /* architecture and data-specific; LCOV_EXCL_START */ - #if !_STRING_ARCH_unaligned --#define UNALIGNED_P(p) ((uintptr_t) (p) % alignof (uint32_t) != 0) -+#define UNALIGNED_P(p) ((uintptr_t) (p) % ALIGNOF_UINT32_T != 0) - if (UNALIGNED_P(buffer)) { - while (len > 64) { - sha1_process_block(memcpy(ctx->buffer, buffer, 64), 64, ctx); diff --git a/Build/source/texk/gregorio/gregorio-src/.gregorio-version b/Build/source/texk/gregorio/gregorio-src/.gregorio-version index b8c2ad70162..e1eb41352e7 100644 --- a/Build/source/texk/gregorio/gregorio-src/.gregorio-version +++ b/Build/source/texk/gregorio/gregorio-src/.gregorio-version @@ -1,4 +1,4 @@ -4.1.4 +4.2.0 *** Do not modify this file. *** Use VersionManager.py to change the version. diff --git a/Build/source/texk/gregorio/gregorio-src/CHANGELOG.md b/Build/source/texk/gregorio/gregorio-src/CHANGELOG.md index ac269b51076..76c4b0130d4 100644 --- a/Build/source/texk/gregorio/gregorio-src/CHANGELOG.md +++ b/Build/source/texk/gregorio/gregorio-src/CHANGELOG.md @@ -2,6 +2,85 @@ All notable changes to this project will be documented in this file. As of v3.0.0 this project adheres to [Semantic Versioning](http://semver.org/). It follows [some conventions](http://keepachangelog.com/). +## [4.2.0] - 2016-09-23 +### Fixed +- When the note after an oriscus is at the same pitch, the oriscus will now point downwards by default (see [#1177](https://github.com/gregorio-project/gregorio/issues/1177)). +- When the last note in a score is not in the last syllable, it no longer merges into the (no-note) syllable(s) that follow (see [#1205](https://github.com/gregorio-project/gregorio/issues/1205)). +- A two-line initial on a two-line score no longer generates an error (see [#1139](https://github.com/gregorio-project/gregorio/issues/1139)). +- Staff lines after a two-line initial should now be sized correctly in a more consistent way (see [#1141](https://github.com/gregorio-project/gregorio/issues/1141)). +- Space at the end of line was not always correct when a line is cut in the middle of a word (see [#1155](https://github.com/gregorio-project/gregorio/issues/1155)). +- In rare cases, the very last bar or glyph of a score could appear alone at the beginning of the final line (see [#1152](https://github.com/gregorio-project/gregorio/issues/1152)). +- In cases of a syllable without note, the space between notes of the previous and next syllables was sometimes not enough (see [#1137](https://github.com/gregorio-project/gregorio/issues/1137)). +- `moraadjustment` and `moraadjustmentbar` did not scale when changing factor, they do now. +- The `900_gregorio.xml` file for Scribus now matches `main-lualatex.tex` again (see [#1087](https://github.com/gregorio-project/gregorio/issues/1087)). +- Multiple subsequent lines in gabc no longer cause TeX to fail (see [#1111](https://github.com/gregorio-project/gregorio/issues/1111)). +- Old bar spacing algorithm will no longer separate the text and bar when the bar is preceeded by a puncutm mora (see [#1078](https://github.com/gregorio-project/gregorio/issues/1078)). +- Scores which end with a no-note syllable under the new bar spacing algorithm will no longer have their text pushed out into the right hand margin. See [#1110](https://github.com/gregorio-project/gregorio/issues/1110). +- PlainTeX will now respect underline requests in gabc. +- PlainTeX will now raise a warning when small caps are requested but `\sc` has not been defined. +- A manual custos at the end of the score will now be spaced like regular end of line custos [#1034](https://github.com/gregorio-project/gregorio/issues/1034). +- Custos glyphs heights are now counted when adjusting line heights (see [#961](https://github.com/gregorio-project/gregorio/issues/961)). + +### Added +- Some vertical spaces can now be adjusted for a particular line in a score. Use `\grechangenextscorelinedim` prior to including the score to set the desired values. `spaceabovelines`, `spacebeneathtext`, and `spacelinestext` may be changed with this command. See GregorioRef and [#1156](https://github.com/gregorio-project/gregorio/issues/1156) for details. +- Nabc now supports pitches `hn` and `hp` in addition to previously supported `ha` through `hm`. +- 32 new St. Gall neume glyphs have been added to the `gregall` font and glyphs for nabc `po-1pp2su1sux1` and `po-1su1sux1` have been changed. +- 31 new St. Gall neume glyphs have been added to the `gresgmodern` font and glyph for nabc `tr-1` has been changed. +- It is now possible to set `\parskip`, `\lineskip`, `\baselineskip`, and `\lineskiplimit` to have different values within a score using `\grechangedim`. See [#1038](https://github.com/gregorio-project/gregorio/issues/1038). +- It is now possible to invert the oriscus orientation on pes quassus and oriscus flexus shapes. Use `o0` or `o1` to force the oriscus into the orientation you desire. It is also possible to fuse the oriscus from either direction in either orientation. See [#898](https://github.com/gregorio-project/gregorio/issues/898) and [#972](https://github.com/gregorio-project/gregorio/issues/972). +- Formerly missing torculus figures starting with an oriscus are now rendered using neume fusion (see [#1013](https://github.com/gregorio-project/gregorio/issues/1013)). +- Gregorio will keep together (prevent line breaks between) a user-configurable number of notes (by default, 4) at the start and end of the syllable. Further, Gregorio will prevent line breaks in a syllable with fewer than a user-configurable number of notes (by default, 10). These values may be changed by using the `\gresetunbreakablesyllablenotes` command. See GregorioRef for details (for the change request, see [#1044](https://github.com/gregorio-project/gregorio/issues/1044)). +- The visibility of notes and lyrics can now be toggled on an off using `\gresetlyrics` and `\gresetnotes`. See [#1039](https://github.com/gregorio-project/gregorio/issues/1039). +- An alteration (flat, natural, or sharp) will now appear on a custos if the next note is so altered. Use `\gresetcustosalteration{invisible}` if you prefer the old behavior. See [#1049](https://github.com/gregorio-project/gregorio/issues/1049). +- `gregoriosyms.sty` and `gregoriotex.tex` now contain definitions for `gregoriocolor` and `grebackgroundcolor` and the appropriate score commands dealing with color now work under PlainTeX + +### Changed +- In order to facilitate installation alongside TeX Live, the version number is now appended to the gregorio executable file name. If you are running the executable directly in your custom scripts, you will need to change them to include the version number. If you are not using the TeX-Live-packaged version of Gregorio, you will probably need to use the `--shell-escape` option when compiling your `.tex` files. Note that in TeX Live 2016, which includes Gregorio 4.1.1, the executable filename does not include the version number, though that will change starting with TeX Live 2017. See UPGRADE.md and [#1197](https://github.com/gregorio-project/gregorio/issues/1197) for more information. +- When the clef and the first note are at a reasonable vertical distance, `shortspaceafterlineclef` is used instead of `spaceafterlineclef` (make them equal if you don't want this feature). This is used only on the first line, when there is an initial on one line. See [#1138](https://github.com/gregorio-project/gregorio/issues/1138). +- When an alteration follows a bar, it is not completely taken into consideration in the new bar spacing algorithm (similarly to the punctum mora), this behavior can be tuned with the newly introduced space `alterationadjustmentbar`. See [#1146](https://github.com/gregorio-project/gregorio/issues/1146). +- Very small improvement in the design of the porrectus auctus and torculus resupinus auctus (see [#1169](https://github.com/gregorio-project/gregorio/issues/1169)). +- When the notes around a virgula or divisio minima are lower than two spaces below the top staff line, the spaces used are new shorter spaces with a `@short` suffix. To cancel this feature, make them the same as their normal version. See [#1144](https://github.com/gregorio-project/gregorio/issues/1144). +- Different glyphs are now used for puncta inclinata in an ascent versus in a descent. A heuristic algorithm is used to ensure that the glyphs match when grouped together. If the algorithm chooses the wrong shape, use `0` (for descending) or `1` (for ascending) to force an orientation. See [UPGRADE.md](UPGRADE.md) and [#856](https://github.com/gregorio-project/gregorio/issues/856) for details. +- The shape of the fused oriscus at ambitus one in the greciliae font has been tweaked to form a nicer connection (see [#1079](https://github.com/gregorio-project/gregorio/issues/1079)). +- Syllables are now rewritten to improve ligature rendering. This may be disabled by issuing `\gresetsyllablerewriting{off}`. See GregorioRef for details (for the change request, see [#1098](https://github.com/gregorio-project/gregorio/issues/1098)). +- Default mode style for PlainTeX no longer tries to invoke small caps since they are not defined by default. +- Italic, bold, underlined, small capital, teletype, and colored styles now span multiple syllables. Gregorio will also more consistently raise errors when styles are improperly started or ended. See [UPGRADE.md](UPGRADE.md) and [#1121](https://github.com/gregorio-project/gregorio/issues/1121) for details. +- The stemmed oriscus flexus `(gOe)` is now consistent with the unstemmed oriscus flexus `(goe)` in that the oriscus points downward at the note that follows. If you prefer to have the oriscus point upward, use `(gO1e)` for force upward orientation. +- Space before a custos appearing in the middle of a line is now set by `spacebeforeinlinecustos`. +- The space between two puncta inclinata at the unison may be tuned by changing `punctuminclinatumunisonshift` (see [#1042](https://github.com/gregorio-project/gregorio/issues/1042)). +- A podatus followed by a virga `(eghv)` will now be kept together (no line break between the shapes), If you would like to allow a line break there, use `(eg/hv)` instead (see UPGRADE.md and [#1045](https://github.com/gregorio-project/gregorio/issues/1045)). +- Penalties must now be changed using the `\grechangecount` command. See GregorioRef and [UPGRADE.md](UPGRADE.md) for details (for the change request, see [#1021](https://github.com/gregorio-project/gregorio/issues/1021)). +- `\greemergencystretch` must now be set by changing `emergencystretch` using `\grechangedim` instead of redefining the macro. +- An isolated stropha will now be considered part of the previous neume group and line breaks will be prevented at that point. In order to force a line break there, use a breaking space such as `/` before the stropha in gabc. See [#1056](https://github.com/gregorio-project/gregorio/issues/1056). +- `interwordspacetext` and it's related distances have been redefined to be smaller and dependent on a font based distance (`ex`). They are also no longer scale with the staff size by default. See [#1036](https://github.com/gregorio-project/gregorio/issues/1036) & [gregoriot-test#208](https://github.com/gregorio-project/gregorio-test/pull/208). +- `\grecreatedim` and `\grechangedim` can now be used to link two distances. To do this the second argument should be the name of the master distance and the third argument should be `inherited`. See [#962](https://github.com/gregorio-project/gregorio/issues/962). + +### Removed +- `\grescorereference` +- `\grenewlinepenalty` +- `\grenobreakpenalty` +- `\greendofwordpenalty` +- `\greendofsyllablepenalty` +- `\greendafterbarpenalty` +- `\greendafterbaraltpenalty` +- `\grefinalpenalty` +- `\greendofelementpenalty` +- `\grehyphenpenalty` +- `\grebrokenpenalty` +- `\grewidowpenalty` +- `\greclubpenalty` +- `\grelooseness` +- `\gretolerance` +- `\grepretolerance` +- `\greemergencystretch` + + +## [4.1.5] - 2016-08-18 +### Fixed +- Use node.travese_id() to find our desired nodes when doing translation centering across syllables, thereby preventing a conflict with other packages which insert nodes (such as luatex-ja). See [#1180](https://github.com/gregorio-project/gregorio/issues/1180). +- Explicitly communicate the rescaling of `\gre@skip@temp@four` back to TeX, thereby fixing the problem with custom spacings. See [#1199](https://github.com/gregorio-project/gregorio/issues/1199). +- With thanks to Claudio Beccari (@OldClaudio), adding a commentary no longer generates a bad `\hbox` during TeX processing (see [#1202](https://github.com/gregorio-project/gregorio/issues/1202)). + ## [4.1.4] - 2016-05-29 ### Fixed - Package conflict with luatex-ja also affected the custos. Have now fixed that problem too. See [this thread](http://www.mail-archive.com/gregorio-users@gna.org/msg03520.html). @@ -115,13 +194,13 @@ As of v3.0.0 this project adheres to [Semantic Versioning](http://semver.org/). - `\grescorereference` ### Removed -- `\GreSetStaffLinesFormat`, supplanted by `\grechangeformat{normalstafflines}...` -- `\greinitialformat`, if you were redefining this command, use `\grechangeformat{initial}...` instead -- `\grebiginitialformat`, if you were redefining this command, use `\grechangeformat{biginitial}...` instead -- `\gretranslationformat`, if you were redefining this command, use `\grechangeformat{translation}...` instead -- `\greabovelinestextstyle`, if you were redefining this command, use `\grechangeformat{abovelinestext}...` instead -- `\grelowchoralsignstyle`, if you were redefining this command, use `\grechangeformat{lowchoralsign}...` instead -- `\grehighchoralsignstyle`, if you were redefining this command, use `\grechangeformat{highchoralsign}...` instead +- `\GreSetStaffLinesFormat`, supplanted by `\grechangestyle{normalstafflines}...` +- `\greinitialformat`, if you were redefining this command, use `\grechangestyle{initial}...` instead +- `\grebiginitialformat`, if you were redefining this command, use `\grechangestyle{biginitial}...` instead +- `\gretranslationformat`, if you were redefining this command, use `\grechangestyle{translation}...` instead +- `\greabovelinestextstyle`, if you were redefining this command, use `\grechangestyle{abovelinestext}...` instead +- `\grelowchoralsignstyle`, if you were redefining this command, use `\grechangestyle{lowchoralsign}...` instead +- `\grehighchoralsignstyle`, if you were redefining this command, use `\grechangestyle{highchoralsign}...` instead - `\setaboveinitialseparation`, supplanted by `\grechangedim{annotationseparation}...` - `\scorereference` - `\GreScoreReference` diff --git a/Build/source/texk/gregorio/gregorio-src/COPYING.md b/Build/source/texk/gregorio/gregorio-src/COPYING.md index e4e2580e978..431860c6877 100644 --- a/Build/source/texk/gregorio/gregorio-src/COPYING.md +++ b/Build/source/texk/gregorio/gregorio-src/COPYING.md @@ -1,6 +1,6 @@ #License of Gregorio -The program Gregorio is (C) 2007-2015 The Gregorio project, see +The program Gregorio is (C) 2007-2016 The Gregorio project, see [CONTRIBUTORS.md](CONTRIBUTORS.md) for authors. It is distributed under the GPLv3 license, printed below. diff --git a/Build/source/texk/gregorio/gregorio-src/Makefile.am b/Build/source/texk/gregorio/gregorio-src/Makefile.am index b91d1f8af97..2f40f5004ec 100644 --- a/Build/source/texk/gregorio/gregorio-src/Makefile.am +++ b/Build/source/texk/gregorio/gregorio-src/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) +# Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) # # This file is part of Gregorio. # @@ -23,11 +23,22 @@ EXTRA_DIST = README.md CHANGELOG.md CONTRIBUTING.md CONTRIBUTORS.md \ UPGRADE.md COPYING.md .gregorio-version VersionManager.py \ build.sh install.sh install-gtex.sh +export TOP_LEVEL_MAKE = true + +gregorio: + make -C src all + fonts: make-fonts make-fonts: make -C fonts fonts -export TOP_LEVEL_MAKE = true +clean-fonts: + make -C fonts clean-fonts + +doc: pdf +clean-pdf: clean-doc +clean-doc: + make -C doc clean-doc gregoriotex.tds.zip: dist install-gtex.sh ./install-gtex.sh tds diff --git a/Build/source/texk/gregorio/gregorio-src/README.md b/Build/source/texk/gregorio/gregorio-src/README.md index f59a0be3b91..8c817f8e100 100644 --- a/Build/source/texk/gregorio/gregorio-src/README.md +++ b/Build/source/texk/gregorio/gregorio-src/README.md @@ -16,6 +16,12 @@ You can also try it online [here](http://dev.illuminarepublications.com/gregorio You need a recent and working [TeXLive](https://www.tug.org/texlive/), on top of which you just need to install latest [Gregorio release](https://github.com/gregorio-project/gregorio/releases). See [the website](http://gregorio-project.github.io/installation.html) for more details. +**Note:** Due to a bug in the current release (v2.7-fix-3) of `luaotfload` the documentation cannot be built against TeXLive 2016 (see [#1188](https://github.com/gregorio-project/gregorio/issues/1188)). As a result, building from a clone of the repository will fail against that version. A work around for this bug exists ([9fe9139](https://github.com/henryso/gregorio/commit/9fe9139178dce6adebffbae65016800748450b61), but using it breaks compilation under TeXLive 2015 and the bug has been fixed in the latest master for `luaotfload`. The result is that users should do one of the following: + +- Install from the distribution tar ball (recommended for those installing a stable release). +- Switch to TeXLive 2015 to build the docs. +- Upgrade your `luaotfload` to a more recent version (v2.8-rc1 or later). + ## Documentation You can find documentation and useful links in the [documentation](doc/), on [the main website](http://gregorio-project.github.io/) and on [a wiki](http://gregoriochant.org). diff --git a/Build/source/texk/gregorio/gregorio-src/UPGRADE.md b/Build/source/texk/gregorio/gregorio-src/UPGRADE.md index 11bf3892e8c..b6add43d1cb 100644 --- a/Build/source/texk/gregorio/gregorio-src/UPGRADE.md +++ b/Build/source/texk/gregorio/gregorio-src/UPGRADE.md @@ -2,6 +2,69 @@ This file contains instructions to upgrade to a new release of Gregorio. +## 4.2 + +### Executable file name + +In order to facilitate installation alongside TeX Live, the version number is now appended to the gregorio executable file name. In version 4.2.0, the filename is gregorio-4.2.0. If you run the executable directly, you will need to modify your procedures and/or scripts to use the new name. Alternately, creating a symbolic link, if your system supports it, may work for you. + +If you auto-compile or force-compile your GABC files and are *not* using the Gregorio packaged with TeX Live, you will probably need to use the `--shell-escape` option when compiling your `.tex` files. Alternately, you can add the new filename to your system's `shell_escape_commands` TeX option. + +Unfortunately, there appears to be no easier way to let a user-installed Gregorio coexist with the TeX-Live-packaged Gregorio. Please note: in TeX Live 2016, which includes Gregorio 4.1.1, the executable filename does not include the version number, though that will change starting with TeX Live 2017. + +### Stemmed oriscus flexus orientation + +As of version 4.2, the orientation of the stemmed oriscus flexus `(gOe)` is consistent with the unstemmed oriscus flexus `(goe)` in that the oriscus points downwards (since the note which follows is of lower pitch). If you prefer the oriscus to point upwards, you will need to use the `1` modifier (as in `(gO1e)`), which will force an upward orientation of the oriscus. + +### Oriscus orientation at the unision + +As of version 4.2, when the note after the oriscus is at the same pitch as the oriscus, the oriscus will point downwards by default. If you prefer it to point upwards, append the `1` modifier to force the upward orientation. + +### Podatus followed by a virga + +As of version 4.2, a podatus followed by a virga of the same or higher pitch as the second note in the podatus (e.g., `(eghv)`) will be kept together, disallowing a line break between the two shapes. If you would like to allow a line break between the two shapes, use a `/` or some other breakable space between them (e.g., `(eg/hv)`). + +### Penalties + +As of version 4.2, the penalties should be changed by using `\grechangecount` rather than the old way of redefining macros. The following tunable values are available (they have the same name as their old macro counterparts, minus the `gre`): + +- `brokenpenalty` +- `clubpenalty` +- `endafterbaraltpenalty` +- `endafterbarpenalty` +- `endofelementpenalty` +- `endofsyllablepenalty` +- `endofwordpenalty` +- `finalpenalty` +- `hyphenpenalty` +- `looseness` +- `newlinepenalty` +- `nobreakpenalty` +- `pretolerance` +- `tolerance` +- `widowpenalty` + +See GregorioRef for descriptions. + +Additionally, if you were redefining `\greemergencystretch`, you should now be changing the `emergencystretch` dimension using the `\grechangedim` command. + +### Custos with alteration + +If the note following a custos has an alteration (flat, natural, or sharp), the custos will now also have that alteration typeset before it. If you prefer the old behavior, use `\gresetcustosalteration{invisible}`. This setting may be switched to `visible` and `invisible` between scores. + +### Punctum inclinatum orientation + +As of version 4.2, a different glyph is used for puncta inclinata in an ascent versus puncta inclinata in a descent. However, because the two shapes clash with each other, Gregorio will attempt to use the same shape for all notes within a string of puncta inclinata. This is accomplished by a heuristic algorithm that determines the glyph to use, but tastes differ, so you may override the shape by appending `0` (to force descending) or `1` (to force ascending) after the letter used for the punctum inclinatum. + +Two additional distances have been added to handle strings of puncta inclinata which both ascend and descend. `descendingpunctuminclinatumascendingshift` will be used between two descending punctum inclinatum glyphs which ascend in pitch, and `ascendingpunctuminclinatumdescendingshift` will be used between two ascending punctum inclinatum glyphs which descend in pitch. + +### Styles spanning syllables + +From version 4.2, gabc styles persist through syllables so you can now, for instance, style an entire verse differently from the rest of the piece by starting the style at the beginning of the verse and ending it at the end of the verse. This covers italics (`<i>`), bold (`<b>`), small capitals (`<sc>`), underlined text (`<ul>`), colored text (`<c>`), and "teletype" text (`<tt>`). + +Prior to version 4.2, Gregorio inconsistenly indicated style errors. Now, errors like ending a style that is not started and starting a style that is already started will be caught more consistently. If you are getting errors to this effect, double-check the styles in your score to make sure that styles are started and ended properly. + + ## 4.1.2 ### Changes to texmf tree @@ -16,11 +79,11 @@ To better comply with the TeXLive directory structure, the location of `gregorio As always, please file a bug report if you have any problems with the update process. - ### Parmesan font renamed to Grana Padano To avoid conflicts with the LilyPond Parmesan font, the Gregorio Parmesan font is now called Grana Padano. If you were using `\gresetgregoriofont{parmesan}`, you should now use `\gresetgregoriofont{granapadano}`. + ## 4.1.1 ### Vertical spacings diff --git a/Build/source/texk/gregorio/gregorio-src/VersionManager.py b/Build/source/texk/gregorio/gregorio-src/VersionManager.py index 78935159f8a..b42d36dea80 100644 --- a/Build/source/texk/gregorio/gregorio-src/VersionManager.py +++ b/Build/source/texk/gregorio/gregorio-src/VersionManager.py @@ -44,6 +44,7 @@ VERSION_FILE = '.gregorio-version' GREGORIO_FILES = ["configure.ac", "windows/gregorio-resources.rc", "macosx/Gregorio.pkgproj", + "macosx/douninstall.sh", "windows/gregorio.iss", "doc/GregorioRef.tex", "tex/gregoriotex.sty", @@ -61,6 +62,7 @@ GREGORIO_FILES = ["configure.ac", "tex/gregoriotex-nabc.lua", "tex/gregoriosyms.sty", "fonts/squarize.py", + "contrib/gregorio-scribus.lua", ] def get_parser(): diff --git a/Build/source/texk/gregorio/gregorio-src/build.sh b/Build/source/texk/gregorio/gregorio-src/build.sh index 896bcffbec1..da98af69de2 100755 --- a/Build/source/texk/gregorio/gregorio-src/build.sh +++ b/Build/source/texk/gregorio/gregorio-src/build.sh @@ -11,7 +11,7 @@ # --build= : build system for mingw32 cross-compilation # --arch= : crosscompile for ARCH on OS X # --jobs= : the number of jobs to run simultaneously in the make step -# --force= : force autoreconf or font building +# --force= : force autoreconf # {other) : anything else is passed to configure verbatim # try to find bash, in case the standard shell is not capable of @@ -45,7 +45,6 @@ MACCROSS=FALSE MAKEOPTS= OTHERARGS= FORCE_AUTORECONF= -FORCE_FONTS= until [ -z "$1" ]; do case "$1" in @@ -55,7 +54,6 @@ until [ -z "$1" ]; do --arch=* ) MACCROSS=TRUE; ARCH=`echo $1 | sed 's/--arch=\(.*\)/\1/' ` ;; -j*|--jobs=*) MAKEOPTS="$MAKEOPTS $1" ;; --force=autoreconf) FORCE_AUTORECONF=TRUE ;; - --force=fonts) FORCE_FONTS=TRUE ;; * ) OTHERARGS="$OTHERARGS $1" ;; esac shift @@ -71,14 +69,10 @@ then MINGWSTR=mingw32 if [ -d /usr/mingw32 ]; then MINGWSTR=mingw32 - else - if [ -d /usr/i386-mingw32msvc ]; then + elif [ -d /usr/i386-mingw32msvc ]; then MINGWSTR=i386-mingw32msvc - else - if [ -d /usr/i586-mingw32msvc ]; then + elif [ -d /usr/i586-mingw32msvc ]; then MINGWSTR=i586-mingw32msvc - fi - fi fi OLDPATH=$PATH PATH=/usr/$MINGWSTR/bin:$PATH @@ -89,8 +83,7 @@ then --host=$MINGWSTR \ --build=$MINGWBUILD \ --prefix=/usr/$MINGWSTR" -else -if [ "$MACCROSS" = "TRUE" ] +elif [ "$MACCROSS" = "TRUE" ] then # make sure that architecture parameter is valid case $ARCH in @@ -100,7 +93,6 @@ then ARCHFLAGS="$ARCHFLAGS" CFLAGS="-arch $ARCH -g -O2 $CFLAGS" LDFLAGS="-arch $ARCH $LDFLAGS" -fi fi @@ -124,18 +116,9 @@ echo "Configuring build files; options: $CONFIGURE_ARGS" echo echo "Building Gregorio; options:$MAKEOPTS" -${MAKE} ${MAKEOPTS} || die "build Gregorio" +${MAKE} ${MAKEOPTS} all doc || die "build Gregorio" echo -if [ "$FORCE_FONTS" = "TRUE" -o ! -e fonts/greciliae.ttf ] -then - echo "Building fonts; options:$MAKEOPTS" - cd fonts - ${MAKE} ${MAKEOPTS} fonts || die "build fonts" - cd .. - echo -fi - if [ "$MINGWCROSS" = "TRUE" ] then PATH=$OLDPATH diff --git a/Build/source/texk/gregorio/gregorio-src/configure.ac b/Build/source/texk/gregorio/gregorio-src/configure.ac index ae522daf49f..81aaa70b9c4 100644 --- a/Build/source/texk/gregorio/gregorio-src/configure.ac +++ b/Build/source/texk/gregorio/gregorio-src/configure.ac @@ -1,5 +1,5 @@ dnl Gregorio -dnl Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) +dnl Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) dnl dnl This file is part of Gregorio. dnl @@ -16,8 +16,8 @@ dnl dnl You should have received a copy of the GNU General Public License dnl along with Gregorio. If not, see <http://www.gnu.org/licenses/>. -AC_INIT([gregorio],[4.1.4],[https://github.com/gregorio-project/gregorio/issues],[gregorio],[http://gregorio-project.github.io/]) -FILENAME_VERSION="4_1_4" +AC_INIT([gregorio],[4.2.0],[https://github.com/gregorio-project/gregorio/issues],[gregorio],[http://gregorio-project.github.io/]) +FILENAME_VERSION="4_2_0" AC_SUBST(FILENAME_VERSION) AC_DEFINE_UNQUOTED(FILENAME_VERSION, "$FILENAME_VERSION", [version suitable for file names]) MK="" @@ -38,6 +38,8 @@ AC_PROG_YACC AC_CHECK_TOOL([RC], [windres], [no]) AM_CONDITIONAL([HAVE_RC], [test x$RC != xno]) +AC_CHECK_ALIGNOF(uint32_t) + AX_CHECK_COMPILE_FLAG([-std=gnu89], [CFLAGS+=" -std=gnu89"]) dnl until flex gets their act together, use pedantic instead of pedantic-errors AX_CHECK_COMPILE_FLAG([-pedantic], [CFLAGS+=" -pedantic"]) @@ -50,7 +52,6 @@ AX_CHECK_COMPILE_FLAG([-Wstrict-prototypes], [CFLAGS+=" -Wstrict-prototypes"]) AX_CHECK_COMPILE_FLAG([-Wdeclaration-after-statement], [CFLAGS+=" -Wdeclaration-after-statement"]) AX_CHECK_COMPILE_FLAG([-Wall], [CFLAGS+=" -Wall"]) AX_CHECK_COMPILE_FLAG([-Wextra], [CFLAGS+=" -Wextra"]) -CPPFLAGS+=" -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 " AX_CHECK_LINK_FLAG([-Wl,-z,relro], [LDFLAGS+=" -Wl,-z,relro"]) AX_CHECK_LINK_FLAG([-Wl,-z,now], [LDFLAGS+=" -Wl,-z,now"]) AX_CHECK_LINK_FLAG([-fPIE], [LDFLAGS+=" -fPIE"]) @@ -96,7 +97,11 @@ AC_ARG_ENABLE([debug], AS_HELP_STRING([--enable-debug@<:@=sanitize,coverage@:>@] AX_CHECK_COMPILE_FLAG([--coverage], [CFLAGS+=" --coverage"]) AX_CHECK_LINK_FLAG([--coverage], [LDFLAGS+=" --coverage"]) ]) + ], [ + CPPFLAGS+=" -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 " ]) +], [ + CPPFLAGS+=" -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 " ]) AC_CONFIG_HEADERS([src/config_.h]) diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/900_gregorio.xml b/Build/source/texk/gregorio/gregorio-src/contrib/900_gregorio.xml index 72d9c438f28..a3855195bcf 100644 --- a/Build/source/texk/gregorio/gregorio-src/contrib/900_gregorio.xml +++ b/Build/source/texk/gregorio/gregorio-src/contrib/900_gregorio.xml @@ -1,6 +1,5 @@ <?xml version="1.0"?> <!-- - XML file for using gregorio inside scribus. Copyright (C) 2009 Pierre Couderc <pierre@couderc.eu>. @@ -22,21 +21,19 @@ --> <editorsettings description="gregorio" icon="gregorio.png"> <!-- change the path to gregorio-scribus.lua here. --> - <executable command='texlua /usr/share/scribus/editorconfig/gregorio-scribus.lua "%file" "%dir"'/> - <imagefile extension=".pdf"/> - <highlighter> + <executable command='texlua /usr/share/scribus/editorconfig/gregorio-scribus.lua "%file" "%dir"'/> + <imagefile extension=".pdf"/> + <highlighter> <rule name="gabc header" regex="[a-zA-Z]+:" color="blue" minimal="true"/> <rule name="gabc delimiter" regex="%%" color="green" minimal="true"/> <rule name="gabc notes" regex="\([^)]*\)" color="red" minimal="true"/> - </highlighter> - <empty-frame-text> -name: myscore; + </highlighter> + <empty-frame-text>name: myscore; %% (c3) Pó(eh/hi)pu(h)lus(h) Si(hi)on,(hgh.) </empty-frame-text> <!-- you can change the basic headers there --> - <preamble> -\documentclass[a4paper,$scribus_grefontsize$]{extarticle} + <preamble>\documentclass[a4paper,$scribus_grefontsize$]{extarticle} \usepackage[left=0cm,top=0cm,right=0cm,bottom=0cm,nohead,nofoot]{geometry} \usepackage{color} \title{Scribus-Latex-gregorio-File} @@ -48,48 +45,55 @@ $scribus_additionalgreheaders$ \begin{document} $scribus_greconf$ </preamble> -<postamble> -</postamble> - <tab type="settings"> - <title><i18n> - <en>Headers</en> - <fr>En-tête</fr> - </i18n></title> - <list name="grefontsize" default="11pt"> - <title><i18n> - <en>Fontsize:</en> - <de>Schriftgröße:</de> - <fr>Taille police :</fr> - <pl>Stopień pisma:</pl> - <ru>Кегль шрифт:</ru> - </i18n></title> - <option value="8pt">8pt</option> - <option value="9pt">9pt</option> - <option value="10pt">10pt</option> - <option value="11pt">11pt</option> - <option value="12pt">12pt</option> - <option value="14pt">14pt</option> - <option value="17pt">17pt</option> - <option value="20pt">20pt</option> - </list> - <text name="additionalgreheaders" type="long" default="\usepackage[utf8]{luainputenc} -\usepackage[T1]{fontenc} -\usepackage{times}"><i18n> - <en>Additional LaTeX Headers:</en> - <de>Zusätzliche LaTeX Header:</de> - <fr>En-tête LaTeX additionnel :</fr> - </i18n></text> - </tab> - <tab type="settings"> - <title><i18n> - <en>Gregorio Options</en> - <fr>Conf. gregorio</fr> - </i18n></title> - <comment><i18n> - <en>Input here your additional gregorio-specific TeX commands. -</en><fr>Ajoutez ici vos commandes additionelles pour GregorioTeX. -</fr> - </i18n></comment> + <postamble></postamble> + <tab type="settings"> + <title> + <i18n> + <en>Headers</en> + <fr>En-tête</fr> + </i18n> + </title> + <list name="grefontsize" default="11pt"> + <title> + <i18n> + <en>Fontsize:</en> + <de>Schriftgröße:</de> + <fr>Taille police :</fr> + <pl>Stopień pisma:</pl> + <ru>Кегль шрифт:</ru> + </i18n> + </title> + <option value="8pt">8pt</option> + <option value="9pt">9pt</option> + <option value="10pt">10pt</option> + <option value="11pt">11pt</option> + <option value="12pt">12pt</option> + <option value="14pt">14pt</option> + <option value="17pt">17pt</option> + <option value="20pt">20pt</option> + </list> + <text name="additionalgreheaders" type="long" default="\usepackage{fontspec} +\usepackage{libertine}"> + <i18n> + <en>Additional LaTeX Headers:</en> + <de>Zusätzliche LaTeX Header:</de> + <fr>En-tête LaTeX additionnel :</fr> + </i18n> + </text> + </tab> + <tab type="settings"> + <title> + <i18n> + <en>Gregorio Options</en> + <fr>Conf. gregorio</fr> + </i18n> + </title> + <comment> + <i18n> + <en>Input here your additional gregorio-specific TeX commands.</en> + <fr>Ajoutez ici vos commandes additionelles pour GregorioTeX.</fr> + </i18n> + </comment> <text name="greconf" type="long" default="\grechangestaffsize{17}"></text> - </tab> + </tab> </editorsettings> diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/Makefile.am b/Build/source/texk/gregorio/gregorio-src/contrib/Makefile.am index fbccca9ca49..b25741fea45 100644 --- a/Build/source/texk/gregorio/gregorio-src/contrib/Makefile.am +++ b/Build/source/texk/gregorio/gregorio-src/contrib/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) +# Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) # # This file is part of Gregorio. # diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/Makefile.am b/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/Makefile.am index ea3b5da6edd..7c96f2e89ec 100644 --- a/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/Makefile.am +++ b/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) +# Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) # # This file is part of Gregorio. # diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/auto-configure.command b/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/auto-configure.command index 2d7dd523527..f8751f86769 100644 --- a/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/auto-configure.command +++ b/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/auto-configure.command @@ -62,10 +62,12 @@ defaults write "$TeXShopDir/Contents/Info.plist" CFBundleDocumentTypes -array-ad echo "Adding Gregorio file extensions to appropriate preference lists" #enable syntax coloring and the Typeset button for gabc files defaults write TeXShop OtherTeXExtensions -array-add "gabc" +defaults write TeXShop OtherTeXExtensions -array-add "gtex" #Add gtex and gaux to the list of aux files deleted with Trash Aux Files defaults write TeXShop OtherTrashExtensions -array-add "gtex" defaults write TeXShop OtherTrashExtensions -array-add "gaux" +defaults write TeXShop OtherTrashExtensions -array-add "glog" echo "Configuration complete" exit 0 diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/config-texworks.command b/Build/source/texk/gregorio/gregorio-src/contrib/config-texworks.command index 26f9ef6825d..2101b5ea75d 100644 --- a/Build/source/texk/gregorio/gregorio-src/contrib/config-texworks.command +++ b/Build/source/texk/gregorio/gregorio-src/contrib/config-texworks.command @@ -82,7 +82,7 @@ while read line; do cleanup=true else if $cleanup; then - echo "cleanup-patterns: \$jobname.gaux *-*_*_*.gtex" >> "$CONFIG" + echo "cleanup-patterns: \$jobname.gaux \$jobname.glog *-*_*_*.gtex" >> "$CONFIG" cleanup=false fi fi diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/gabc.vim b/Build/source/texk/gregorio/gregorio-src/contrib/gabc.vim index cb8b08b7f40..1c2c8101417 100644 --- a/Build/source/texk/gregorio/gregorio-src/contrib/gabc.vim +++ b/Build/source/texk/gregorio/gregorio-src/contrib/gabc.vim @@ -10,7 +10,8 @@ endif syn match gabcAttributeName /^[^:]*:/ syn match gabcAttributeEnd ";" syn match gabcNoteError "." contained -syn match gabcBasicNote "[a-npA-NP]" contained +syn match gabcBasicNote "[a-np]" contained +syn match gabcBasicNote "[A-NP][01]\?" contained syn match gabcAlteration "[\<\>~xy#vVwWqQR\-Ss\.+]" contained syn match gabcAlteration "_[0-5]*" contained syn match gabcAlteration "[oO'\.][01]\?" contained @@ -37,7 +38,7 @@ syn match gabcSpace "Z[-+]\?" contained syn match gabcSpace "/\[[^\]]*\]" contained extend syn match gabcCommand "@\@<!\[[^\]]*\]" contained extend -syn region gabcComment start="%" end="$" contained keepend extend +syn region gabcComment start="%" end="$" keepend extend syn region gabcAlt matchgroup=gabcTextMarkup start="<alt>" end="</alt>" \ contained syn region gabcSpecial matchgroup=gabcTextMarkup start="<sp>" end="</sp>" @@ -45,13 +46,13 @@ syn region gabcSpecial matchgroup=gabcTextMarkup start="<sp>" end="</sp>" syn region gabcVerbatim matchgroup=gabcTextMarkup start="<v>" end="</v>" \ contained syn region gabcNabc matchgroup=gabcNabcCut start="|" end="[|)]" keepend -syn cluster gabcFusable contains=gabcBasicNote,gabcAlteration,gabcBar,gabcSpace, +syn cluster gabcFusible contains=gabcBasicNote,gabcAlteration,gabcBar,gabcSpace, \gabcComment,gabcCommand,gabcNoteError,gabcFuse, \gabcTextOrNoteMarkup,gabcClef,gabcNabc syn region gabcFuseGroup matchGroup=gabcFuseGroup start="@\[" end="\]" - \ contains=@gabcFusable,gabcFuseEnd contained keepend + \ contains=@gabcFusible,gabcFuseEnd contained keepend syn region gabcNotes matchgroup=gabcNote start="(" end=")" - \ contains=@gabcFusable,gabcFuseGroup contained keepend + \ contains=@gabcFusible,gabcFuseGroup contained keepend syn region gabcTranslation matchgroup=gabcTextMarkup start="\[" end="\]" \ contained extend syn region gabcText start="^\(%%\)\@=" end="\%$" diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/gregorio-scribus.lua b/Build/source/texk/gregorio/gregorio-src/contrib/gregorio-scribus.lua index 0bc11aa7b1c..540a40e40e1 100644 --- a/Build/source/texk/gregorio/gregorio-src/contrib/gregorio-scribus.lua +++ b/Build/source/texk/gregorio/gregorio-src/contrib/gregorio-scribus.lua @@ -22,7 +22,7 @@ This program allows gregorio to be integrated in Scribus. require"lfs" -local gregoriobin = 'gregorio' +local gregoriobin = 'gregorio-4_2_0' -- FILENAME_VERSION local lualatexbin = "lualatex" local function basename(name) diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.bat b/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.bat index 0d10be99261..f6d160cf1d2 100644 --- a/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.bat +++ b/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.bat @@ -1,5 +1,5 @@ @echo off
-SETLOCAL ENABLEEXTENSIONS
+SETLOCAL ENABLEEXTENSIONS EnableDelayedExpansion
set output="%TEMP%\system-setup.log"
@@ -79,49 +79,134 @@ echo. >> %output% echo. >> %output%
echo ### Gregorio Setup >> %output%
-echo #### Version >> %output%
-echo. >> %output%
-gregorio -V >> %output% 2>&1
-echo. >> %output%
-echo #### Location >> %output%
-echo. >> %output%
-@for %%e in (%PATHEXT%) do @for %%i in (gregorio%%e) do @if NOT "%%~$PATH:i"=="" echo %%~$PATH:i >> %output% 2>&1
-echo. >> %output%
+echo #### Locations and Versions >> %output%
+for /f "delims=" %%G in ('where /f gregorio*') do (
+ echo %%G >> %output%
+ for /f "delims=" %%H in ('%%G -V') do echo %%H >> %output% 2>&1
+ echo. >> %output%
+)
echo #### GregorioTeX Locations >> %output%
echo. >> %output%
-set files=gregorio-vowels.dat ^
-gregoriosyms.sty ^
+:: Files using GREGORIO_VERSION in {}
+set files=gregoriosyms.sty ^
gregoriotex-chars.tex ^
gregoriotex-main.tex ^
-gregoriotex-ictus.tex ^
-gregoriotex-nabc.lua ^
gregoriotex-nabc.tex ^
-gregoriotex-signs.lua ^
gregoriotex-signs.tex ^
gregoriotex-spaces.tex ^
gregoriotex-syllable.tex ^
-gregoriotex-symbols.lua ^
-gregoriotex-symbols.tex ^
-gregoriotex.lua ^
-gregoriotex.sty ^
-gregoriotex.tex ^
-gsp-default.tex ^
-greciliae.ttf ^
+gregoriotex-symbols.tex
+
+for %%G in (%files%) do (
+ echo ##### %%G >> %output%
+ for /f "delims=" %%H in ('kpsewhich -all %%G') do (
+ set loc=%%H
+ set loc=!loc:/=\!
+ echo !loc! >> %output%
+ for /f "delims=" %%I in ('findstr /r "GREGORIO_VERSION" !loc!') do set ver=%%I
+ set ver=!ver:*{=!
+ set ver=!ver:*{=!
+ set trash=}!ver:*}=!
+ call set ver=%%ver:!trash!=%%
+ echo !ver! >> %output% 2>&1
+ set ver=
+ )
+)
+
+:: Files using GREGORIO_VERSION in spaces
+set files=gregoriotex-nabc.lua ^
+gregoriotex-signs.lua ^
+gregoriotex-symbols.lua
+
+for %%G in (%files%) do (
+ echo ##### %%G >> %output%
+ for /f "delims=" %%H in ('kpsewhich -all %%G') do (
+ set loc=%%H
+ set loc=!loc:/=\!
+ echo !loc! >> %output%
+ for /f "delims=" %%I in ('findstr /r "GREGORIO_VERSION" !loc!') do set ver=%%I
+ set ver=!ver:*N =!
+ echo !ver! >> %output% 2>&1
+ set ver=
+ )
+)
+
+:: Files using GREGORIO_VERSION in ''
+set files=gregoriotex.lua
+
+for %%G in (%files%) do (
+ echo ##### %%G >> %output%
+ for /f "delims=" %%H in ('kpsewhich -all %%G') do (
+ set loc=%%H
+ set loc=!loc:/=\!
+ echo !loc! >> %output%
+ for /f "delims=" %%I in ('findstr /r "GREGORIO_VERSION" !loc!') do set ver=%%I
+ set ver=!ver:*'=!
+ set trash='!ver:*'=!
+ call set ver=%%ver:!trash!=%%
+ echo !ver! >> %output% 2>&1
+ set ver=
+ )
+)
+
+:: Files using PARSE_VERSION_DATE_LTX
+set files=gregoriotex.sty ^
+gregoriotex.tex
+
+for %%G in (%files%) do (
+ echo ##### %%G >> %output%
+ for /f "delims=" %%H in ('kpsewhich -all %%G') do (
+ set loc=%%H
+ set loc=!loc:/=\!
+ echo !loc! >> %output%
+ for /f "delims=" %%I in ('findstr /r "PARSE_VERSION_DATE_LTX" !loc!') do set ver=%%I
+ set ver=!ver:*v=!
+ set trash=G!ver:*G=!
+ call set ver=%%ver:!trash!=%%
+ echo !ver! >> %output% 2>&1
+ set ver=
+ )
+)
+
+:: Font Files
+set files=greciliae.ttf ^
greciliae-op.ttf ^
greextra.ttf ^
gregorio.ttf ^
gregorio-op.ttf ^
-gresym.ttf ^
granapadano.ttf ^
granapadano-op.ttf ^
-gregall.ttf ^
+gregall.ttf
+
+for %%G in (%files%) do (
+ echo ##### %%G >> %output%
+ for /f "delims=" %%H in ('kpsewhich -all %%G') do (
+ set loc=%%H
+ set loc=!loc:/=\!
+ echo !loc! >> %output%
+ otfinfo --font-version !loc! >> %output% 2>&1
+ )
+)
+
+:: Unversioned and Obsolete Files
+set files=gregorio-vowels.dat ^
+gsp-default.tex ^
+gregoriotex-ictus.tex ^
+gresym.ttf ^
+parmesan.ttf ^
+parmesan-op.ttf ^
gregsmodern.ttf
for %%G in (%files%) do (
echo ##### %%G >> %output%
- kpsewhich -all %%G >> %output% 2>&1
+ for /f "delims=" %%H in ('kpsewhich -all %%G') do (
+ set loc=%%H
+ set loc=!loc:/=\!
+ echo !loc! >> %output%
+ )
)
+
echo. >> %output%
echo #### kpsewhich --all -engine luatex -progname lualatex gregoriotex.sty >> %output%
kpsewhich --all -engine luatex -progname lualatex gregoriotex.sty >> %output% 2>&1
diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.command b/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.command index 65f313de668..3af3263d72f 100644 --- a/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.command +++ b/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.command @@ -107,22 +107,21 @@ echo "" >> $OUTPUT echo "" >> $OUTPUT echo "### Gregorio Setup" >> $OUTPUT -echo "#### Version" >> $OUTPUT -echo "" >> $OUTPUT -gregorio -V >> $OUTPUT 2>&1 -echo "" >> $OUTPUT -echo "#### Location" >> $OUTPUT -echo "" >> $OUTPUT -which -a gregorio >> $OUTPUT 2>&1 +echo "#### Locations and Versions" >> $OUTPUT echo "" >> $OUTPUT +progs=`compgen -cbka -A function 'gregorio'` +for prog in $progs; do + which -a $prog >> $OUTPUT 2>&1 + $prog -V >> $OUTPUT 2>&1 + echo "" >> $OUTPUT +done echo "#### GregorioTeX Locations" >> $OUTPUT echo "" >> $OUTPUT -files="gregorio-vowels.dat -gregoriosyms.sty +# Files using GREGORIO_VERSION +files="gregoriosyms.sty gregoriotex-chars.tex gregoriotex-main.tex -gregoriotex-ictus.tex gregoriotex-nabc.lua gregoriotex-nabc.tex gregoriotex-signs.lua @@ -131,19 +130,59 @@ gregoriotex-spaces.tex gregoriotex-syllable.tex gregoriotex-symbols.lua gregoriotex-symbols.tex -gregoriotex.lua -gregoriotex.sty -gregoriotex.tex -gsp-default.tex -greciliae.ttf +gregoriotex.lua" + +for f in $files +do + echo "##### $f" >> $OUTPUT + locations=`kpsewhich -all $f` + for loc in $locations; do + echo $loc >> $OUTPUT 2>&1 + grep -m 1 'GREGORIO_VERSION' $loc | grep -o '[0-9]*\.[0-9]*\.[0-9]*-*[betarc]*[0-9]*' >> $OUTPUT 2>&1 + done +done + +# Files using PARSE_VERSION_DATE_LTX +files="gregoriotex.sty +gregoriotex.tex" + +for f in $files +do + echo "##### $f" >> $OUTPUT + locations=`kpsewhich -all $f` + for loc in $locations; do + echo $loc >> $OUTPUT 2>&1 + grep -m 1 'PARSE_VERSION_DATE_LTX' $loc | grep -o '[0-9]*\.[0-9]*\.[0-9]*-*[betarc]*[0-9]*' >> $OUTPUT 2>&1 + done +done + +# Font Files +files="greciliae.ttf greciliae-op.ttf greextra.ttf gregorio.ttf gregorio-op.ttf -gresym.ttf granapadano.ttf granapadano-op.ttf -gregall.ttf +gregall.ttf" + +for f in $files +do + echo "##### $f" >> $OUTPUT + locations=`kpsewhich -all $f` + for loc in $locations; do + echo $loc >> $OUTPUT 2>&1 + otfinfo --font-version $loc >> $OUTPUT 2>&1 + done +done + +# Unversioned and Obsolete Files +files="gregorio-vowels.dat +gsp-default.tex +gregoriotex-ictus.tex +gresym.ttf +parmesan.ttf +parmesan-op.ttf gregsmodern.ttf" for f in $files @@ -152,11 +191,13 @@ do kpsewhich -all $f >> $OUTPUT 2>&1 done + echo "" >> $OUTPUT -echo "#### kpsewhich --all -engine luatex -progname lualatex gregoriotex.sty" >> $OUTPUT +echo "### LuaTeX Double Checks" >> $OUTPUT +echo "#### kpsewhich --all -engine luatex -progname lualatex gregoriotex.sty" >> $OUTPUT kpsewhich --all -engine luatex -progname lualatex gregoriotex.sty >> $OUTPUT 2>&1 echo "" >> $OUTPUT -echo "#### kpsewhich --all -engine luatex gregoriotex.tex" >> $OUTPUT +echo "#### kpsewhich --all -engine luatex gregoriotex.tex" >> $OUTPUT kpsewhich --all -engine luatex gregoriotex.tex >> $OUTPUT 2>&1 echo "" >> $OUTPUT echo "" >> $OUTPUT diff --git a/Build/source/texk/gregorio/gregorio-src/doc/Appendix_Font_Tables.tex b/Build/source/texk/gregorio/gregorio-src/doc/Appendix_Font_Tables.tex index 78705d2bf61..7c5cd65747a 100644 --- a/Build/source/texk/gregorio/gregorio-src/doc/Appendix_Font_Tables.tex +++ b/Build/source/texk/gregorio/gregorio-src/doc/Appendix_Font_Tables.tex @@ -1,5 +1,23 @@ % !TEX root = GregorioRef.tex % !TEX program = LuaLaTeX+se +% +% Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) +% +% This file is part of Gregorio. +% +% Gregorio 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. +% +% Gregorio 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 Gregorio. If not, see <http://www.gnu.org/licenses/>. +% \begin{landscape} \section{Font Glyph Tables}\label{glyphtable} diff --git a/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_User.tex b/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_User.tex index e1e4fac9ede..f184d97d212 100644 --- a/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_User.tex +++ b/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_User.tex @@ -1,5 +1,23 @@ % !TEX root = GregorioRef.tex % !TEX program = LuaLaTeX+se +% +% Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) +% +% This file is part of Gregorio. +% +% Gregorio 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. +% +% Gregorio 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 Gregorio. If not, see <http://www.gnu.org/licenses/>. +% \section{User Controls} These functions are available to the user to customize elements of the @@ -234,7 +252,8 @@ Macro to create one of Gregorio\TeX’s distances. Used to initialize distances \#1 & string & The name of the distance to be changed. See \nameref{distances} below.\\ \#2 & string & The distance in string format. \textbf{Note:} You cannot use a length register for this argument. You \emph{must} use a string because of the way that Gregorio\TeX\ handles spaces.\\ \#3 & \texttt{fixed} & Distance will not scale when staff size is changed.\\ - & \texttt{scalable} & Distance will scale when staff size is changed. + & \texttt{scalable} & Distance will scale when staff size is changed.\\ + & \texttt{inherited} & Distance will inherit its value from another distance. When this argument is used, then \#2 should be the name of another Gregorio\TeX\ distance. \end{argtable} \macroname{\textbackslash grechangedim}{\{\#1\}\{\#2\}\{\#3\}}{gregoriotex-spaces.tex} @@ -244,7 +263,20 @@ Macro to change one of Gregorio\TeX’s distances. This function will check to \#1 & string & The name of the distance to be changed. See \nameref{distances} below.\\ \#2 & string & The distance in string format. \textbf{Note:} You cannot use a length register for this argument. You \emph{must} use a string because of the way that Gregorio\TeX\ handles spaces.\\ \#3 & \texttt{fixed} & Distance will not scale when staff size is changed.\\ - & \texttt{scalable} & Distance will scale when staff size is changed. + & \texttt{scalable} & Distance will scale when staff size is changed.\\ + & \texttt{inherited} & Distance will inherit its value from another distance. When this argument is used, then \#2 should be the name of another Gregorio\TeX\ distance. +\end{argtable} + +\macroname{\textbackslash grechangenextscorelinedim}{\{\#1\}\{\#2\}\{\#3\}\{\#4\}}{gregoriotex-spaces.tex} +Changes one of Gregorio\TeX’s distances for a given line in the next included score. This works with \texttt{spaceabovelines}, \texttt{spacebeneathtext}, and \texttt{spacelinestext}. + +\begin{argtable} + \#1 & integer & The number of the line in the next score to be adjusted.\\ + \#2 & string & The name of the distance to be changed. See \nameref{distances} below.\\ + \#3 & string & The distance in string format. \textbf{Note:} You cannot use a length register for this argument. You \emph{must} use a string because of the way that Gregorio\TeX\ handles spaces.\\ + \#4 & \texttt{fixed} & Distance will not scale when staff size is changed.\\ + & \texttt{scalable} & Distance will scale when staff size is changed.\\ + & \texttt{inherited} & Distance will inherit its value from another distance. When this argument is used, then \#3 should be the name of another Gregorio\TeX\ distance. \end{argtable} \macroname{\textbackslash grescaledim}{\{\#1\}\{\#2\}}{gregoriotex-spaces.tex} @@ -259,10 +291,10 @@ Macro to turn on or off scaling with the staff size for a particular distance. \textbf{Nota bene:} This macro also can be used to change whether or not the staff line thickness scales with the staff size by specifying \texttt{stafflinefactor} for the first argument. \macroname{\textbackslash grechangecount}{\{\#1\}\{\#2\}}{gregoriotex-spaces.tex} -Macro to change one of Gregorio\TeX’s counts (numeric values). +Macro to change one of Gregorio\TeX’s counts or penalities (numeric values). \begin{argtable} - \#1 & string & The name of the count to be changed. See \nameref{counts} below.\\ + \#1 & string & The name of the count to be changed. See \nameref{counts} and \nameref{penalties} below.\\ \#2 & integer & The new value.\\ \end{argtable} @@ -707,10 +739,10 @@ Different elements of an include score have different styles applied. These ele \stylename{initial} & Score initial (the first letter of the score, when offset from the rest of the text) & 40 pt font\\ \stylename{lowchoralsign} & low choral signs & none\\ \stylename{modedifferentia} & the rendered annotation from the \texttt{mode-differentia: ;} header in the gabc file & \parbox[t]{2.2cm}{\raggedleft\textbf{bold}}\\ - \stylename{modeline} & the rendered annotation from the \texttt{mode: ;} header in the gabc file & \parbox[t]{2.2cm}{\raggedleft\textsc{\textbf{bold small capitals}}}\\ + \stylename{modeline} & the rendered annotation from the \texttt{mode: ;} header in the gabc file & \parbox[t]{2.2cm}{\raggedleft\textsc{\textbf{bold small capitals}}} (\LaTeX)\\ + & & \textbf{bold} (Plain\TeX)\\ \stylename{modemodifier} & the rendered annotation from the \texttt{mode-modifier: ;} header in the gabc file & \parbox[t]{2.2cm}{\raggedleft\textit{\textbf{bold italics}}}\\ - \stylename{nabc} & ancient notation & {\color{gregoriocolor}gregoriocolor} (\LaTeX)\\ - && none (Plain \TeX)\\ + \stylename{nabc} & ancient notation & {\color{gregoriocolor}gregoriocolor}\\ \stylename{normalstafflines} & Full length staff lines & none\\ \stylename{translation} & Translation text (appears below lyrics) & {\it italics}\\ \end{tabular} @@ -780,7 +812,7 @@ Macro to add an illuminated initial. \textbf{Nota Bene:} Usually the argument of this command should be an \verb=\includegraphics= command, but you may use what ever you want as the illuminated initial. -\macroname{\textbackslash gresetinitiallines}{\#1}{gregoriotex-syllable.tex} +\macroname{\textbackslash gresetinitiallines}{\{\#1\}}{gregoriotex-syllable.tex} Sets the number of lines the score initial requires. \begin{argtable} @@ -789,15 +821,24 @@ Sets the number of lines the score initial requires. \textbf{Nota Bene:} As currently implemented, you cannot set an initial which is larger than 2 lines and in order to do so you must set manual line breaks in the gabc for the first two lines. -\macroname{\textbackslash gresetmodenumbersystem}{\#1}{gregoriotex-main.tex} +\macroname{\textbackslash gresetmodenumbersystem}{\{\#1\}}{gregoriotex-main.tex} Sets the number system used for the mode number. \begin{argtable} - \#1 & \texttt{roman-minuscule} & Use lower-case Roman numerals (the default, good for small capitals).\\ - & \texttt{roman-majuscule} & Use upper-case Roman numerals.\\ + \#1 & \texttt{roman-minuscule} & Use lower-case Roman numerals (the default in \LaTeX, good for small capitals).\\ + & \texttt{roman-majuscule} & Use upper-case Roman numerals (the default in Plain\TeX).\\ & \texttt{arabic} & Use Arabic numerals.\\ \end{argtable} +\macroname{\textbackslash gresetlyrics}{\{\#1\}}{gregoriotex-syllable.tex} +Sets the visibility of the lyrics. + +\begin{argtable} + \#1 & \texttt{visible} & Lyrics are visible (default).\\ + & \texttt{invisible} & Lyrics are not visible.\\ +\end{argtable} + + \subsubsection{Text Alignment} Gregorio\TeX\ allows you to manipulate the global alignment behavior of some text elements using the following commands. @@ -857,6 +898,21 @@ Macro to specify which part of the control line in the annotation should be alig \textbf{Nota Bene:} These variable refer to the actual contents of the line and not to the ``hypothetical'' limits for the font. As a result if the top of an annotation containing only short letters will be different from one which contains tall ones even if both use the same font. Likewise, if the annotation contains no descenders, then baseline and bottom will be the same. If this is a problem, then the use of struts within the annotation can be used to control the line height (distance from baseline to top) and depth (distance from baseline to bottom). +\macroname{\textbackslash gresetsyllablerewriting}{\{\#1\}}{gregoriotex-syllable.tex} +Sets whether the last part of a non-final syllable of a word is moved to the +next syllable when there is no hyphen. The ``last part'' of a syllable is +the part that comes after the part that is centered under the first note of +the syllable. This feature may allow Lua\TeX{} to find better opportunities +for ligaturing based on \TeX{} and font settings. + +\begin{argtable} + \#1 & \texttt{auto} & Gregorio\TeX{} will move the last part of a syllable + to the next syllable in a word when there is no + hyphen (default).\\ + & \texttt{off} & Gregorio\TeX{} will not attempt to rewrite any + syllables.\\ +\end{argtable} + \subsubsection{End of Line Behavior} While Gregorio\TeX\ will automatically wrap scores to fit your page, there are several ways to fine tune that line breaking behavior with the following commands. @@ -895,6 +951,15 @@ Macro to determine whether line breaks are allowed inside a translation. & \texttt{prohibit} & Line breaks are prohibited, the entire translation should appear on one line \end{argtable} +\macroname{\textbackslash gresetcustosalteration}{\{\#1\}}{gregoriotex-signs.tex} +Macro for setting whether an alteration (flat, sharp, or natural) should be +rendered before a custos or not. + +\begin{argtable} + \#1 & \texttt{visible} & The custos alteration should be printed (default)\\ + & \texttt{invisible} & The custos alteration should not be printed +\end{argtable} + \macroname{\textbackslash greseteolcustos}{\{\#1\}}{gregoriotex-main.tex} Macro to determine whether Gregorio\TeX\ should automatically place the custos at a line break. @@ -939,6 +1004,21 @@ Macro to determine whether the last line of the score should be justified or not & \texttt{ragged} & Set the last line ragged (default) \end{argtable} +\macroname{\textbackslash gresetunbreakablesyllablenotes}{\{\#1\}\{\#2\}\{\#3\}}{gregoriotex-syllable.tex} +Configures how notes should be kept together on line breaks. + +\begin{argtable} + \#1 & integer & The minimum number of notes in the syllable before the + syllable may be broken across lines. Defaults to + \getgrecount{unbreakabletotalnotes}.\\ + \#2 & integer & The minimum number of notes at the start of a syllable that + must be kept together when the syllable is broken across + lines. Defaults to \getgrecount{unbreakableinitialnotes}.\\ + \#3 & integer & The minimum number of notes at the end of a syllable that + must be kept together when the syllable is broken across + lines. Defaults to \getgrecount{unbreakablefinalnotes}.\\ +\end{argtable} + \subsubsection{Bar spacing} @@ -960,12 +1040,22 @@ When a punctum mora is ignored, the bar will also be shifted by \texttt{moraadju Macro to activate the new bar spacing algorithm. The new algorithm attempts to place the bar line exactly midway between its surrounding notes. Any text associated with the bar is placed midway between its surrounding text. Since this might result in the bar line and the text being widely separated, there are also a limits to the distance between their respective centers: \texttt{maxbaroffsettextleft} and \texttt{maxbaroffsettextright} (when text center is respectively on the left or on the right of bar center). \begin{argtable} - \#1 & \texttt{new} & Activates the new spacing algorithm\\ - & \texttt{old} & Activates the old behavior (Default)\\ + \#1 & \texttt{new} & Activates the new spacing algorithm (Default)\\ + & \texttt{old} & Activates the old behavior\\ \end{argtable} \subsubsection{Sign printing} +\macroname{\textbackslash gresetnotes}{\{\#1\}}{gregoriotex-syllable.tex} +Sets the visibility of the notes. + +\begin{argtable} + \#1 & \texttt{visible} & Notes are visible (default).\\ + & \texttt{invisible} & Notes are not visible.\\ +\end{argtable} + +\textbf{Nota Bene:} If the notes are set to be invisible, then bar lines, rythmic signs, and the like will also be invisible. However, the staff lines and clefs will still show up (since their visibility is controlled by other settings). + \macroname{\textbackslash greprintsigns}{\{\#1\}\{\#2\}}{gregoriotex-signs.tex} Macro to prevent rythmic signs from printing (all signs are printed by default): @@ -975,7 +1065,7 @@ Macro to prevent rythmic signs from printing (all signs are printed by default): & \texttt{mora} & sets the printing of punctum mora and auctum duplex\\ & \texttt{all} & set the printing of all of these\\ \#2 & \texttt{enable} & enable the printing\\ - & \texttt{disable} & disable the priting\\ + & \texttt{disable} & disable the printing\\ \end{argtable} Note that punctum mora and auctum duplex have an influence on spacings, so removing them will have an impact on that matter. @@ -1149,22 +1239,24 @@ Macro to set the font to be used for the ancient notation. Each of the following counts controls some aspect of the configuration of the Gregorio\TeX\ score. They are changed using \verb=\grechangecount=, documented above. -\macroname{additionaltopspacethreshold}{}{gsp-default.tex} - +\begin{gcount}{additionaltopspacethreshold} The threshold above which we start accounting notes above lines for additional vertical space. For instance with a threshold of \texttt{2}, notes with a pitch of \texttt{k} and \texttt{l} will not interfere with the space above lines. Set it to a high value if you don't want high notes to interfere with space above lines. +\end{gcount} -Default: \texttt{2} - -\macroname{additionaltopspacealtthreshold}{}{gsp-default.tex} - +\begin{gcount}{additionaltopspacealtthreshold} Same as \texttt{additionaltopspacethreshold} but setting the threshold for notes taken into account with above lines text vertical placement. +\end{gcount} -Default: \texttt{0} +\begin{gcount}{additionaltopspacenabcthreshold} +Same as \texttt{additionaltopspacethreshold} but setting the threshold for +notes taken into account with above lines nabc neume vertical placement +baseline. +\end{gcount} \subsection{Distances}\label{distances} @@ -1290,7 +1382,11 @@ Space between notes of a bistropha or tristrophae. \end{gdimension} \begin{gdimension}{punctuminclinatumshift} -Space between two punctum inclinatum. +Space between two descending puncta inclinata. +\end{gdimension} + +\begin{gdimension}{punctuminclinatumunisonshift} +Space between two unison puncta inclinata. \end{gdimension} \begin{gdimension}{beforepunctainclinatashift} @@ -1298,7 +1394,8 @@ Space before puncta inclinata. \end{gdimension} \begin{gdimension}{punctuminclinatumanddebilisshift} -Space between a punctum inclinatum and a punctum inclinatum deminutus. +Space between a punctum inclinatum and a punctum inclinatum deminutus, +descending. \end{gdimension} \begin{gdimension}{punctuminclinatumdebilisshift} @@ -1306,11 +1403,15 @@ Space between two punctum inclinatum deminutus. \end{gdimension} \begin{gdimension}{punctuminclinatumbigshift} -Space between puncta inclinata, larger ambitus (range=3rd). +Space between descending puncta inclinata, larger ambitus (range=3rd). \end{gdimension} \begin{gdimension}{punctuminclinatummaxshift} -Space between puncta inclinata, larger ambitus (range=4th or 5th). +Space between descending puncta inclinata, larger ambitus (range=4th or 5th). +\end{gdimension} + +\begin{gdimension}{descendingpunctuminclinatumascendingshift} +Space between descending puncta inclinata shapes in an ascent of pitch. \end{gdimension} \begin{gdimension}{ascendingpunctuminclinatumshift} @@ -1330,6 +1431,10 @@ Space between ascending puncta inclinata, larger ambitus (range=3rd). Space between ascending puncta inclinata, larger ambitus (range=4th or 5th). \end{gdimension} +\begin{gdimension}{ascendingpunctuminclinatumdescendingshift} +Space between ascending puncta inclinata shapes in a descent of pitch. +\end{gdimension} + \begin{gdimension}{descendinginclinatumtonobarshift} Space between a punctum inclinatum and a no-bar (stemless) glyph one pitch below. @@ -1552,20 +1657,48 @@ Vertical distance to place a punctum mora for the second note in a porrectus (or Distance to place a ``rare'' sign above the top space in a score. \end{gdimension} -\subsubsection*{Bar distances} +\begin{gdimension}{parskip} +The effective \verb=\parskip= inside of a score. +\end{gdimension} + +\begin{gdimension}{lineskip} +The effective \verb=\lineskip= inside of a score. +\end{gdimension} + +\begin{gdimension}{baselineskip} +The effective \verb=\baselineskip= inside of a score. +\end{gdimension} + +\begin{gdimension}{lineskiplimit} +The effective \verb=\lineskiplimit= inside of a score. +\end{gdimension} + +\begin{gdimension}{shortspaceafterlineclef} +Space after a clef at the beginning of a line, when the clef and first note are vertically distant. +\end{gdimension} + +\subsubsection{Bar distances} \begin{gdimension}{bar@finalfinalis} This space is added before the final divisio final of a score (old bar spacing algorithm only). \end{gdimension} -Spaces around bars when they are typeset inside a syllable: +Spaces around bars when they are typeset inside a syllable. The \verb=@short= suffix for virgula +and divisio minima indicates the space used when the notes surrounding the bar are strictly lower +than \texttt{g} (in a four-line score). \begin{gdimension}{bar@virgula} \end{gdimension} +\begin{gdimension}{bar@virgula@short} +\end{gdimension} + \begin{gdimension}{bar@minima} \end{gdimension} +\begin{gdimension}{bar@minima@short} +\end{gdimension} + \begin{gdimension}{bar@minor} \end{gdimension} @@ -1583,9 +1716,15 @@ Spaces around bars in standalone syllables, when these have text (new bar spacin \begin{gdimension}{bar@virgula@standalone@text} \end{gdimension} +\begin{gdimension}{bar@virgula@standalone@text@short} +\end{gdimension} + \begin{gdimension}{bar@minima@standalone@text} \end{gdimension} +\begin{gdimension}{bar@minima@standalone@text@short} +\end{gdimension} + \begin{gdimension}{bar@minor@standalone@text} \end{gdimension} @@ -1606,9 +1745,15 @@ Spaces around bars in standalone syllables, when these have no text (new bar spa \begin{gdimension}{bar@virgula@standalone@notext} \end{gdimension} +\begin{gdimension}{bar@virgula@standalone@notext@short} +\end{gdimension} + \begin{gdimension}{bar@minima@standalone@notext} \end{gdimension} +\begin{gdimension}{bar@minima@standalone@notext@short} +\end{gdimension} + \begin{gdimension}{bar@minor@standalone@notext} \end{gdimension} @@ -1682,89 +1827,79 @@ Maximum distance by which the center of a bar and the center of its associated t Same as \texttt{maxbaroffsettextleft@eol} but when the center of the text goes right of the center of the bar. \end{gdimension} +\begin{gdimension}{alterationadjustmentbar} +In the case of an alteration after a bar, the alteration will go a bit left of this value. This can be compared to \texttt{moraadjustmentbar}. +\end{gdimension} \subsection{Penalties}\label{penalties} -Penalties are used by \TeX\ to determine where line and page breaks should occur. Gregorio\TeX\ modifies or defines a few of its own to help with that process in scores. +Penalties are used by \TeX\ to determine where line and page breaks should occur. Gregorio\TeX\ modifies or defines a few of its own to help with that process in scores. With the exception of \texttt{emergencystretch} (which should be changed using \verb=\grechangedim=) these should be changed using \verb=\grechangecount=, described above. -\macroname{\textbackslash grebrokenpenalty}{}{gsp-default.tex} +\begin{gcount}{brokenpenalty} The vertical penalty inserted after a break on a clef change. +\end{gcount} -Default: 0 - -\macroname{\textbackslash greclubpenalty}{}{gsp-default.tex} +\begin{gcount}{clubpenalty} The club penalty (determines how important it is to prevent orphans from occurring). +\end{gcount} -Default: 0 - -\macroname{\textbackslash grewidowpenalty}{}{gsp-default.tex} +\begin{gcount}{widowpenalty} The widow penalty (determines how important it is to prevent widows from occurring). +\end{gcount} -Default: 0 - -\macroname{\textbackslash greemergencystretch}{}{gsp-default.tex} -The value of the last ditch stretch for overfull boxes. +\macroname{emergencystretch}{}{gsp-default.tex} +The value of the last ditch stretch for overfull boxes. This should be set using \verb=\grechangedim=. Default: \verb=\emergencystretch= -\macroname{\textbackslash greendafterbarpenalty}{}{gsp-default.tex} +\begin{gcount}{endafterbarpenalty} The end after bar penalty. +\end{gcount} -Default: $-200$ - -\macroname{\textbackslash greendafterbaraltpenalty}{}{gsp-default.tex} +\begin{gcount}{endafterbaraltpenalty}{}{gsp-default.tex} The alternate end after bar penalty (used when there is no text under the bar). +\end{gcount} -Default: $-200$ - -\macroname{\textbackslash greendofelementpenalty}{}{gsp-default.tex} +\begin{gcount}{endofelementpenalty}{}{gsp-default.tex} The end of element penalty. +\end{gcount} -Default: $-50$ - -\macroname{\textbackslash greendofsyllablepenalty}{}{gsp-default.tex} +\begin{gcount}{endofsyllablepenalty}{}{gsp-default.tex} The end of element penalty. +\end{gcount} -Default: $-50$ - -\macroname{\textbackslash greendofwordpenalty}{}{gsp-default.tex} +\begin{gcount}{endofwordpenalty}{}{gsp-default.tex} The end of element penalty. +\end{gcount} -Default: $-100$ - -\macroname{\textbackslash grehyphenpenalty}{}{gsp-default.tex} +\begin{gcount}{hyphenpenalty}{}{gsp-default.tex} The hyphen penalty. +\end{gcount} -Default: $-200$ - -\macroname{\textbackslash grenobreakpenalty}{}{gsp-default.tex} +\begin{gcount}{nobreakpenalty}{}{gsp-default.tex} Penalty to prevent a line break. +\end{gcount} -Default: 10001 - -\macroname{\textbackslash grenewlinepenalty}{}{gsp-default.tex} +\begin{gcount}{newlinepenalty} Penalty to force a line break. +\end{gcount} -Default: $-10001$ - -\macroname{\textbackslash grefinalpenalty}{}{gsp-default.tex} +\begin{gcount}{finalpenalty} The penalty applied after the final element of a score. +\end{gcount} -Default: $0$ - -\macroname{\textbackslash grelooseness}{}{gsp-default.tex} +\macroname{looseness}{}{gsp-default.tex} The \TeX\ looseness within a score. Default: \verb=\looseness= -\macroname{\textbackslash gretolerance}{}{gsp-default.tex} +\begin{gcount}{tolerance} The \TeX\ tolerance within a score. See \url{https://en.wikibooks.org/wiki/TeX/tolerance} for an explanation of what tolerance is. +\end{gcount} -Default: 9000 - -\macroname{\textbackslash grepretolerance}{}{gsp-default.tex} +\macroname{pretolerance}{}{gsp-default.tex} The \TeX\ pretolerance within a score. See \url{https://en.wikibooks.org/wiki/TeX/pretolerance} for an explanation of what pretolerance is. -Default: $-1$ (Lua\TeX\ versions prior to 0.80) or \verb=\pretolerance= (versions after, and including, 0.80) +Default: $-1$ (Lua\TeX\ versions prior to 0.80) or \verb=\pretolerance= (versions after, and including, 0.80)] \textit{Nota bene:} For more details on why this is necessary see the comments in gsp-default.tex. @@ -1773,11 +1908,8 @@ Default: $-1$ (Lua\TeX\ versions prior to 0.80) or \verb=\pretolerance= (version \subsection{Colors}\label{colors} -Colors are strictly a \LaTeX\ phenomena as currently implemented. All -commands which change a color will raise a warning in Plain \TeX, but will not alter the document. - All colors can be redefined using \verb=\definecolor=. See the -\verb=xcolor= package for documentation. +\verb=xcolor= (\LaTeX) or \verb=color= (Plain\TeX) package for documentation. Example:\par\medskip \begin{latexcode} diff --git a/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_gregorio.tex b/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_gregorio.tex index c61e16809bd..8daeb7b93a7 100644 --- a/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_gregorio.tex +++ b/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_gregorio.tex @@ -1,5 +1,23 @@ % !TEX root = GregorioRef.tex % !TEX program = LuaLaTeX+se +% +% Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) +% +% This file is part of Gregorio. +% +% Gregorio 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. +% +% Gregorio 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 Gregorio. If not, see <http://www.gnu.org/licenses/>. +% \section{Gregorio Controls} These functions are the ones written by gregorio to the gtex file. @@ -61,13 +79,14 @@ Macro to typeset the additional line above or below the staff. \#3 & integer & Set horizontal episema (0), horizontal episema under a note (1), line at top of staff (2), line at bottom of staff (3), choral sign (4).\\ \end{argtable} -\macroname{\textbackslash GreAdHocSpaceEndOfElement}{\#1\#2}{gregoriotex-main.tex} +\macroname{\textbackslash GreAdHocSpaceEndOfElement}{\#1\#2\#3}{gregoriotex-main.tex} Macro to end an element with an ad-hoc space. \begin{argtable} \#1 & float & The factor to scale the default space for use as an ad-hoc space.\\ \#2 & \texttt{0} & Space is breakable.\\ & \texttt{1} & Space is unbreakable.\\ + \#3 & integer & The number of notes in the syllable prior to this macro.\\ \end{argtable} \macroname{\textbackslash GreAugmentumDuplex}{\#1\#2\#3}{gregoriotex-signs.tex} @@ -175,7 +194,10 @@ Typesets a custos. \begin{argtable} \#1 & integer & Height number of custos.\\ - \#2 & integer & Indicate if the custo is the last of the score.\\ + \#2 & \texttt{Flat} & The custos should have a flat.\\ + & \texttt{Natural} & The custos should have a natural.\\ + & \texttt{Sharp} & The custos should have a sharp.\\ + & \textit{empty} & The custos should not have an alteration.\\ \end{argtable} \macroname{\textbackslash GreDagger}{}{gregoriotex-symbols.tex} @@ -208,13 +230,15 @@ Macro to typeset a divisio maior. \#2 & \TeX\ code & Macros which may happen before the skip but after the divisio maior (typically \verb=\grevepisema=).\\ \end{argtable} -\macroname{\textbackslash GreDivisioMinima}{\#1\#2}{gregoriotex-signs.tex} +\macroname{\textbackslash GreDivisioMinima}{\#1\#2\#3}{gregoriotex-signs.tex} Macro to typeset a divisio minima. \begin{argtable} \#1 & \texttt{0} & There is no text under the bar.\\ & \texttt{1} & There is text under the bar.\\ \#2 & \TeX\ code & Macros which may happen before the skip but after the divisio minima (typically \verb=\grevepisema=).\\ + \#3 & \texttt{0} & The notes around the bar are vertically close to the bar.\\ + & \texttt{1} & The notes around the bar are far, \verb=@short= versions of spaces will be used.\\ \end{argtable} \macroname{\textbackslash GreDivisioMinor}{\#1\#2}{gregoriotex-signs.tex} @@ -273,7 +297,7 @@ Macro to mark the end of a EUOUAE block. & \texttt{3} & before bar \end{argtable} -\macroname{\textbackslash GreEndOfElement}{\#1\#2}{gregoriotex-main.tex} +\macroname{\textbackslash GreEndOfElement}{\#1\#2\#3}{gregoriotex-main.tex} Macro to end elements. \begin{argtable} @@ -284,6 +308,7 @@ Macro to end elements. & \texttt{4} & Ad-hoc space.\\ \#2 & \texttt{0} & Space is breakable.\\ & \texttt{1} & Space is unbreakable.\\ + \#3 & integer & The number of notes in the syllable prior to this macro.\\ \end{argtable} \macroname{\textbackslash GreEndNLBArea}{\#1\#2}{gregoriotex-main.tex} @@ -327,11 +352,15 @@ Macro to end a glyph without ending the element. & \texttt{22} & Half-space. \\ \end{argtable} -\macroname{\textbackslash GreFinalCustos}{\#1}{gregoriotex-signs.tex} +\macroname{\textbackslash GreFinalCustos}{\#1\#2}{gregoriotex-signs.tex} Typesets a custos after the final bar in a score. \begin{argtable} \#1 & integer & Height number of custos.\\ + \#2 & \texttt{Flat} & The custos should have a flat.\\ + & \texttt{Natural} & The custos should have a natural.\\ + & \texttt{Sharp} & The custos should have a sharp.\\ + & \textit{empty} & The custos should not have an alteration.\\ \end{argtable} \macroname{\textbackslash GreFinalDivisioFinalis}{\#1}{gregoriotex-signs.tex} @@ -415,7 +444,7 @@ Macro to typeset a glyph. \begin{argtable} \#1 & character & the character that it must call\\ \#2 & integer & The number for where the glyph is located. \texttt{a} in gabc is 1, \texttt{b} is 2, \etc\\ - \#3 & integer & height number of the next note\\ + \#3 & \TeX\ code & code to set the next custos (using \verb=\GreNextCustos=)\\ \#4 & \texttt{0} & One-note glyph or more than two notes glyph except porrectus: \ie, we must put the aligncenter in the middle of the first note\\ & \texttt{1} & Two notes glyph (podatus is considered as a one-note glyph): \ie, we put the aligncenter in the middle of the glyph\\ & \texttt{2} & Porrectus: has a special align center.\\ @@ -532,7 +561,7 @@ Same as \verb=\GreDivisioFinalis= except inside a syllable. \macroname{\textbackslash GreInDivisioMaior}{\#1\#2}{gregoriotex-signs.tex} Same as \verb=\GreDivisioMaior= except inside a syllable. -\macroname{\textbackslash GreInDivisioMinima}{\#1\#2}{gregoriotex-signs.tex} +\macroname{\textbackslash GreInDivisioMinima}{\#1\#2\#3}{gregoriotex-signs.tex} Same as \verb=\GreDivisioMinima= except inside a syllable. \macroname{\textbackslash GreInDivisioMinor}{\#1\#2}{gregoriotex-signs.tex} @@ -541,7 +570,7 @@ Same as \verb=\GreDivisioMinor= except inside a syllable. \macroname{\textbackslash GreInDominica}{\#1\#2\#3}{gregoriotex-signs.tex} Same as \verb=\GreDominica= except inside a syllable. -\macroname{\textbackslash GreInVirgula}{\#1\#2}{gregoriotex-signs.tex} +\macroname{\textbackslash GreInVirgula}{\#1\#2\#3}{gregoriotex-signs.tex} Same as \verb=\GreVirgula= except inside a syllable. \macroname{\textbackslash GreItalic}{\#1}{gregoriotex.sty or gregoriotex.tex} @@ -630,12 +659,19 @@ Macro to call if you want to go to the next line. \macroname{\textbackslash GreNewParLine}{}{gregoriotex-main.tex} Same as \verb=\GreNewLine= except line is not justified. -\macroname{\textbackslash GreNextCustos}{\#1}{gregoriotex-signs.tex} +\macroname{\textbackslash GreFinalNewLine}{}{gregoriotex-main.tex} +Handles a new line after the final bar. This currently just advances \verb=\gre@knownline= in order to prevent a potential error message with a two-line initial on a two-line score. + +\macroname{\textbackslash GreNextCustos}{\#1\#2}{gregoriotex-signs.tex} Sets the pitch to use for the next custos if it were to happen at the point where this macro is called. \begin{argtable} \#1 & integer & Height number of the custos.\\ + \#2 & \texttt{Flat} & The custos should have a flat.\\ + & \texttt{Natural} & The custos should have a natural.\\ + & \texttt{Sharp} & The custos should have a sharp.\\ + & \textit{empty} & The custos should not have an alteration.\\ \end{argtable} \macroname{\textbackslash GreNextSyllableBeginsEUOUAE}{\#1\#2}{gregoriotex-syllable.tex} @@ -647,8 +683,8 @@ Indicates that the syllable which follows begins a EUOUAE block. & \texttt{1} & There is a line break between this syllable and the beginning of the EUOUAE block.\\ \end{argtable} -\macroname{\textbackslash GreOriscusCavum}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex} -Macro to typeset an oriscus cavum (the oriscus points at a higher note). +\macroname{\textbackslash GreAscendensOriscusCavum}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex} +Macro to typeset an ascending oriscus cavum (the oriscus points at a higher note). \begin{argtable} \#1 & length & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\ @@ -659,8 +695,8 @@ Macro to typeset an oriscus cavum (the oriscus points at a higher note). \#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled. \end{argtable} -\macroname{\textbackslash GreOriscusCavumAuctus}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex} -Macro to typeset a reverse oriscus cavum (the oriscus points at a lower note). +\macroname{\textbackslash GreDescendensOriscusCavum}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex} +Macro to typeset a descending oriscus cavum (the oriscus points at a lower note). \begin{argtable} \#1 & length & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\ @@ -839,7 +875,7 @@ ligatures. In this example we should call \verb=\grefixedtext{\textit{ffj}}=. \#1 & character & The initial letter of the score.\\ \end{argtable} -\macroname{\textbackslash GreSetInitialClef}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex} +\macroname{\textbackslash GreSetInitialClef}{\#1\#2\#3\#4\#5\#6\#7}{gregoriotex-signs.tex} Macro for writing initial clef. \begin{argtable} @@ -849,6 +885,7 @@ Macro for writing initial clef. \#4 & \texttt{c} or \texttt{f} & Type of secondary clef.\\ \#5 & \texttt{0}--\texttt{5} & Line of secondary clef (\texttt{0} for no secondary clef).\\ \#6 & integer & Height of flat in secondary clef (\texttt{3} for no flat).\\ + \#7 & integer & \texttt{0} if clef and first note are far enough to use a shorter space, 1 otherwise.\\ \end{argtable} \macroname{\textbackslash GreSetLinesClef}{\#1\#2\#3\#4\#5\#6\#7}{gregoriotex-main.tex} @@ -865,6 +902,14 @@ Macro to define the clef that will appear at the beginning of the lines. \#7 & integer & Height of flat in secondary clef (\texttt{3} for no flat).\\ \end{argtable} +\macroname{\textbackslash GreSetNabcAboveLines}{\#1}{gregoriotex-main.tex} +Macro to place argument containing Nabc neumes above the lines and empty +\verb=\gre@currenttextabovelines= when done. + +\begin{argtable} + \#1 & string & Nabc neumes to be placed above the lines.\\ +\end{argtable} + \macroname{\textbackslash GreSetNextSyllable}{\#1\#2\#3}{gregoriotex-syllable.tex} Macro to set the text of the next syllable for spacing purposes. @@ -963,6 +1008,13 @@ Macro to typeset the syllable. \#9 & Gregorio\TeX\ glyphs & all the notes \end{argtable} +\macroname{\textbackslash GreSyllableNoteCount}{\#1}{gregoriotex-syllable.tex} +Indicates the number of notes in the current syllable. + +\begin{argtable} + \#1 & integer & The number of notes in the current syllable.\\ +\end{argtable} + \macroname{\textbackslash GreTranslationCenterEnd}{}{gregoriotex-main.tex} Macro to end the centering of the translation text. @@ -1035,13 +1087,15 @@ Macro for typesetting the vertical episema. \#2 & string & Type of glyph the episema is attached to. See \nameref{EpisemaSpecial} argument for description of options.\\ \end{argtable} -\macroname{\textbackslash GreVirgula}{\#1\#2}{gregoriotex-signs.tex} +\macroname{\textbackslash GreVirgula}{\#1\#2\#3}{gregoriotex-signs.tex} Macro to typeset a virgula. \begin{argtable} \#1 & \texttt{0} & There is no text under the bar.\\ & \texttt{1} & There is text under the bar.\\ \#2 & code & Macros which may happen before the skip but after the virgula (typically \verb=\grevepisema=).\\ + \#3 & \texttt{0} & The notes around the bar are vertically close to the bar.\\ + & \texttt{1} & The notes around the bar are far, \verb=@short= versions of spaces will be used.\\ \end{argtable} \macroname{\textbackslash GreWriteTranslation}{\#1}{gregoriotex-main.tex} diff --git a/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_internal.tex b/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_internal.tex index 9a2ae64deb9..18f050c3006 100644 --- a/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_internal.tex +++ b/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_internal.tex @@ -1,5 +1,23 @@ % !TEX root = GregorioRef.tex % !TEX program = LuaLaTeX+se +% +% Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) +% +% This file is part of Gregorio. +% +% Gregorio 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. +% +% Gregorio 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 Gregorio. If not, see <http://www.gnu.org/licenses/>. +% \section{Gregorio\TeX{} Controls} These functions are the ones used by Gregorio\TeX{} internally as it @@ -48,6 +66,11 @@ Macro that handles obsolescence errors. \#2 & string & name of the correct macro to use\\ \end{argtable} +\macroname{\textbackslash gre@allowdeprecated@asboolean}{}{gregoriotex-main.tex} +Macro that evaluates \texttt{true} or \texttt{false} depending on whether +deprecated usage is allowed. This is used to pass the value of +\verb=\ifgre@allowdeprecated= to Lua. + \macroname{\textbackslash gre@loadgregoriofont}{}{gregoriotex-main.tex} Loads the chosen font for the neumes at the correct size. @@ -73,13 +96,14 @@ Macro which calculates \verb=\gre@additionalbottomspace= and\\ & \texttt{1} & there is above lines text \end{argtable} -\macroname{\textbackslash gre@calculate@textaligncenter}{\#1\#2\#3}{gregoriotex-spaces.tex} +\macroname{\textbackslash gre@calculate@textaligncenter}{\#1\#2\#3\#4}{gregoriotex-spaces.tex} Macro for calculating \verb=\gre@textaligncenter=. \begin{argtable} - \#1 & string & The first part of the syllable (any preceding consonants in Latin).\\ - \#2 & string & The middle part of the syllable (the vowel in Latin, the whole syllable in English).\\ - \#3 & \texttt{0} & Calculation is being performed for the current syllable.\\ + \#1 & string & The carry-over letters from the previous syllable that should be moved to the current.\\ + \#2 & string & The first part of the syllable (any preceding consonants in Latin).\\ + \#3 & string & The middle part of the syllable (the vowel in Latin, the whole syllable in English).\\ + \#4 & \texttt{0} & Calculation is being performed for the current syllable.\\ & \texttt{1} & Calculation is being performed for the next syllable.\\ \end{argtable} @@ -189,14 +213,15 @@ Rescales all the distances (and \texttt{stafflinefactor}) which are supposed to \#2 & integer & the factor the distances are to be put into\\ \end{argtable} -\macroname{\textbackslash gre@calculate@nextbegindifference}{\#1\#2\#3\#4}{gregoriotex-spaces.tex} +\macroname{\textbackslash gre@calculate@nextbegindifference}{\#1\#2\#3\#4\#5}{gregoriotex-spaces.tex} Macro to calculate \texttt{nextbegindifference}. \begin{argtable} - \#1 & string & the first letters of the next syllable\\ - \#2 & string & the middle letters of the next syllable (the vowel in Latin, the whole syllable in English)\\ - \#3 & string & the end letters of the next syllable\\ - \#4 & $0 \le$ integer $\le 19$ & the type of notes alignment. See \nameref{notesalign}.\\ + \#1 & string & the carry-over letters for the next syllable\\ + \#2 & string & the first letters of the next syllable\\ + \#3 & string & the middle letters of the next syllable (the vowel in Latin, the whole syllable in English)\\ + \#4 & string & the end letters of the next syllable\\ + \#5 & $0 \le$ integer $\le 19$ & the type of notes alignment. See \nameref{notesalign}.\\ & $20 \le$ integer $\le 39$ & Same as below 20 except there is a flat before the notes. Subtract 20 to get the type of notes alignment.\\ & $40 \le$ integer $\le 59$ & Same as below 20 except there is a natural before the notes. Subtract 40 to get the type of notes alignment. \end{argtable} @@ -393,6 +418,13 @@ Evaluates to \verb=#1= if running under \LaTeX{}. \#1 & \TeX{} code & the \TeX{} code to use if running under \LaTeX{}. \end{argtable} +\macroname{\textbackslash gre@ifnotlatex}{\#1}{gregoriotex.sty \textup{and} gregoriotex.tex} +Evaluates to \verb=#1= if not running under \LaTeX{}. + +\begin{argtable} + \#1 & \TeX{} code & the \TeX{} code to use if not running under \LaTeX{}. +\end{argtable} + \macroname{\textbackslash gre@latex@barredsymbol}{\#1\#2\#3\#4}{gregoriotex-signs.tex} Internal method used by \verb=\grelatexsimpledefarredsymbol= to simplify the cascading of conditionals used to implement that macro. @@ -425,8 +457,22 @@ Macro to pick the appropriate custos character. \#1 & integer & height of the custos character to be placed\\ \end{argtable} -\macroname{\textbackslash gre@nextcustos}{}{gregoriotex-signs.tex} -Macro that saves the next custos height. +\macroname{\textbackslash gre@nextcustospitch}{}{gregoriotex-signs.tex} +Macro that saves the next custos pitch (height). + +\macroname{\textbackslash gre@nextcustosalteration}{}{gregoriotex-signs.tex} +Macro that saves the next custos alteration. + +\macroname{\textbackslash gre@custosalteration}{\#1\#2}{gregoriotex-signs.tex} +Typesets the alteration for a custos, if enabled. + +\begin{argtable} + \#1 & integer & The pitch (height number) of the custos.\\ + \#2 & \texttt{Flat} & The custos should have a flat.\\ + & \texttt{Natural} & The custos should have a natural.\\ + & \texttt{Sharp} & The custos should have a sharp.\\ + & \textit{empty} & The custos should not have an alteration.\\ +\end{argtable} \macroname{\textbackslash gre@beginnotes}{}{gregoriotex-main.tex} Macro to draw the staff lines. Comes after the initial but before the clef. @@ -493,8 +539,14 @@ Macro redrawing a key from \verb=\gre@clefnum=, useful for vertical space change \macroname{\textbackslash gre@currenttextabovelines}{}{gregoriotex-main.tex} Macro for storing the text which needs to be placed above the lines. -\macroname{\textbackslash gre@typesettextabovelines}{\#1}{gregoriotex-main.tex} -Macro for typesetting the text above the lines. +\macroname{\textbackslash gre@typesettextabovelines}{\#1\#2}{gregoriotex-main.tex} +Macro for typesetting the text or nabc neumes above the lines. + +\begin{argtable} + \#1 & string & Text to be typeset\\ + \#2 & \texttt{0} & Use alt text above the lines vertical spacing\\ + & \texttt{1} & Use nabc neumes above the lines vertical spacing\\ +\end{argtable} \macroname{\textbackslash gre@dotranslationcenterend}{}{gregoriotex-main.tex} Macro to typeset a centered translation. @@ -547,6 +599,9 @@ Macro called at end of a syllable, adds a penalty and a space. & \texttt{0} & otherwise\\ \end{argtable} +\macroname{\textbackslash gre@endofglyphcommon}{}{gregoriotex-syllable.tex} +Macro called at the end of every glyph. Checks to see if glyph being ended is the last of the score and does some clean-up if it is. + \macroname{\textbackslash gre@setfirstsyllabletext}{\#1\#2\#3\#4\#5\#6}{gregoriotex-syllable.tex} Internal macro to set the first syllable text after all parts are known. @@ -736,7 +791,7 @@ Saves clef information for use in \verb=gre@updatelinesclef=. \#6 & integer & if \texttt{3}, it means that we must not put a flat after the secondary clef, otherwise it’s the height of the flat\\ \end{argtable} -\macroname{\textbackslash gre@typeclef}{\#1\#2\#3\#4\#5\#6\#7\#8}{gregoriotex-signs.tex} +\macroname{\textbackslash gre@typeclef}{\#1\#2\#3\#4\#5\#6\#7\#8\#9}{gregoriotex-signs.tex} Macro which typesets the clef. \begin{argtable} @@ -745,7 +800,8 @@ Macro which typesets the clef. \#3 & \texttt{0} & no need to use small clef characters (inside a line)\\ & \texttt{1} & we must use small clef characters (inside a line)\\ \#4 & \texttt{0} & no extra space is needed after the clef\\ - & \texttt{}1 & we must type a space after the clef\\ + & \texttt{1} & we must type a normal space after the clef\\ + & \texttt{2} & we must type a short space after the clef\\ \#5 & integer & if \texttt{3}, it means that we must not put a flat after the clef, otherwise it’s the height of the flat\\ \#6 & character & the type of the secondary clef: c or f\\ \#7 & integer & the line of the secondary clef (1 is the lowest, 0 for no secondary clef)\\ @@ -778,7 +834,7 @@ Macro which specifies the alternate glyphs which are common to all of the styles \macroname{\textbackslash gre@widthof}{\#1}{gregoriotex-main.tex} Macro for calculating the width of its argument and storing it in \verb=\gre@dimen@temp@three=. -\macroname{\textbackslash gre@writebar}{\#1\#2\#3\#4}{gregoriotex-signs.tex} +\macroname{\textbackslash gre@writebar}{\#1\#2\#3\#4\#5}{gregoriotex-signs.tex} Macro to write a bar. \begin{argtable} @@ -793,6 +849,8 @@ Macro to write a bar. \#3 & \texttt{0} & if there is no text underneath the bar\\ & \texttt{1} & if there is text underneath the bar\\ \#4 & \TeX\ code & macros that may happen before the skip after the bar (typically GreVEpisema)\\ + \#5 & \texttt{0} & The notes around the bar are vertically close to the bar.\\ + & \texttt{1} & The notes around the bar are far, \verb=@short= versions of spaces will be used.\\ \end{argtable} \macroname{\textbackslash gre@@arg}{}{gregoriotex-syllable.tex} @@ -984,13 +1042,63 @@ A macro which applies formatting that needs to apply to the whole syllable (rath \#1 & string & The syllable (usually built as \verb=\gre@nextfirstsyllablepart\gre@nextmiddlesyllablepart\gre@nextendsyllablepart=\\ \end{argtable} +\macroname{\textbackslash gre@if@rewritesyllable}{\#1\#2}{gregoriotex-syllable.tex} +Performs \#1 if the syllable should be rewritten, else \#2. + +\begin{argtable} + \#1 & \TeX\ code & Code to perform when rewriting the syllable\\ + \#2 & \TeX\ code & Code to perform when \emph{not} rewriting the syllable\\ +\end{argtable} + +\macroname{\textbackslash gre@save@endsyllablepart}{}{gregoriotex-syllable.tex} +Control sequence aliased to the carry-over syllable part to be moved to the next syllable. + +\macroname{\textbackslash gre@save@fixedtextformat}{\#1}{gregoriotex-syllable.tex} +Control sequence aliased to the fixed text format for the carry-over syllable part to be moved to the next syllable. + +\begin{argtable} + \#1 & string & The carry-over syllable part, as with \verb=\gre@fixednexttextformat=\\ +\end{argtable} + +\macroname{\textbackslash gre@save@pointandclick}{}{gregoriotex-syllable.tex} +Control sequence aliased to the line:char:column of the point-and-click link for the carry-over syllable part to be moved to the next syllable\\ + +\macroname{\textbackslash gre@push@endsyllable}{\#1}{gregoriotex-syllable.tex} +Sets the save aliases to push the end-syllable part of the current syllable to the next syllable if necessary. + +\begin{argtable} + \#1 & link target & line:char:column for the link to use for the pushed syllable part\\ +\end{argtable} + +\macroname{\textbackslash gre@emit@syllabletext}{\#1}{gregoriotex-syllable.tex} +Emits the text for the syllable, prepending the carry-over syllable part if necessary and consolidating the fixed text styles if possible. + +\begin{argtable} + \#1 & \TeX\ code & Code that emits the syllable text\\ +\end{argtable} + +\macroname{\textbackslash gre@emit@endsyllablepart}{}{gregoriotex-syllable.tex} +Emits the text for the end syllable part if it \emph{is not} to be moved to the next syllable. + +\macroname{\textbackslash gre@emit@endsyllablepartfornextsyllable}{}{gregoriotex-syllable.tex} +Emits the text for the end syllable part if it \emph{is} to be moved to the next syllable. This is used when projecting the next syllable text while processing some syllable. + +\macroname{\textbackslash gre@syllable@args}{}{gregoriotex-syllable.tex} +Saves the arguments to \verb=\GreSyllable=. Needed so that \verb=\GreSyllable= can look forward to see if the next token is \verb=\GreBarSyllable=. + +\macroname{\textbackslash gre@syllable@expand}{}{gregoriotex-syllable.tex} +Calls \verb=\gre@syllable@act=, passing the arguments saved in \verb=gre@syllable@args=. Needed so that \verb=\GreSyllable= can look forward to see if the next token is \verb=\GreBarSyllable=. + +\macroname{\textbackslash gre@syllable@act}{\#1\#2\#3\#4\#5\#6\#7\#8\#9}{gregoriotex-syllable.tex} +Typesets the syllable. Same arguments as \verb=\GreSyllable=. See the description of that macro for more information. Needed so that \verb=\GreSyllable= can look forward to see if the next token is \verb=\GreBarSyllable=. + \macroname{\textbackslash gre@gabcname}{}{gregoriotex-main.tex} Macro which holds the point-and-click file name. \macroname{\textbackslash gre@gregoriotexluaversion}{}{gregoriotex-main.tex} Macro to hold the version number of \emph{gregoriotex.lua} so that it can be checked for consistency. -\macroname{\textbackslash gre@gregorioversion}{}{gregoriotex-main.tex} +\macroname{\textbackslash gre@gregoriotexversion}{}{gregoriotex-main.tex} Macro to hold the version number of Gregorio\TeX\ so that it can be checked for consistency. \macroname{\textbackslash gre@leftfill}{}{gregoriotex-main.tex} @@ -1050,6 +1158,9 @@ The pitch of a rare sign (semicirculus, \etc). \macroname{\textbackslash gre@pitch@dummy}{}{gregoriotex-main.tex} A meaningless (don't-care) pitch. +\macroname{\textbackslash gre@pitch@nominal}{}{gregoriotex-main.tex} +A pitch guaranteed to be in the staff. + \macroname{\textbackslash gre@pointandclick}{\#1\#2}{gregoriotex-main.tex} Macro to generate the point-and-click links. @@ -1059,7 +1170,10 @@ Macro to generate the point-and-click links. \end{argtable} \macroname{\textbackslash gre@prefix}{}{gregoriotex-spaces.tex} -Either ``skip’’ or ``dimen’’ according to the distance being set or changed at the given moment. +Either \texttt{skip} or \texttt{dimen} according to the distance being set or changed at the given moment. + +\macroname{\textbackslash gre@prefixII}{}{gregoriotex-spaces.tex} +Same as \verb=\gre@prefix=. Used when we were dealing with two distances simultaneously. \macroname{\textbackslash gre@rubberpermit}{\#1}{gregoriotex-spaces.tex} Determines whether the given distance is allowed to take a rubber length. @@ -1114,7 +1228,12 @@ Alias for \verb=\luatexlocalrightbox= or \verb=\localrightbox=, depending on \La Alias for \verb=\resizebox=. \macroname{\textbackslash gre@dimension}{}{gregoriotex-spaces.tex} -Workhorse function behind \verb=\grecreatedim= and \verb=\grechangedim=. +Workhorse function for setting distances in \verb=\grecreatedim= and \verb=\grechangedim=. + +\macroname{\textbackslash gre@changedimforline}{\#1\#2\#3}{gregoriotex-spaces.tex} +Saves the current value of the dimension and then changes it. The arguments +are the same as \verb=\grechangedim=. Used to temporarily change the dimension +for a given line, which is restored at the next beginning of the next line. \macroname{\textbackslash gre@setstafflines}{\#1}{gregoriotex-main.tex} Sets the number of staff lines. @@ -1140,12 +1259,16 @@ Typesets its numeric argument as a lower-case Roman numeral. \#1 & integer & The number to typeset\\ \end{argtable} -\macroname{\textbackslash gre@bar@space@suffix}{\#1\#2}{gregoriotex-symbols.tex} +\macroname{\textbackslash gre@bar@space@suffix}{\#1\#2\#3}{gregoriotex-symbols.tex} Macro used to select the corresct suffix of the \verb=bar@x= spaces. \begin{argtable} \#1 & \texttt{0} & emits nothing\\ - & \texttt{1} emits \texttt{text}\\ + & \texttt{1} emits \verb=@standalone=\\ + \#2 & \texttt{0} & emits \verb=@notext= (only if standalone)\\ + & \texttt{1} emits \verb=@text= (only if standalone)\\ + \#3 & \texttt{0} & emits nothing\\ + & \texttt{1} emits \verb=@short=\\ \end{argtable} \macroname{\textbackslash gre@drawadditionalline}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex} @@ -1216,6 +1339,12 @@ Macro to typeset a punctum mora. & 0 & other cases\\ \end{argtable} +\macroname{\textbackslash gre@alterationadjustment}{\#1}{gregoriotex-spaces.tex} +Macro to make adjustments to \verb=nextbegindifference= in order to account for an alteration at the begining of the next syllable. + +\macroname{\textbackslash gre@punctummoraadjustment}{}{gregoriotex-spaces.tex} +Macro to make adjustments to cursor position and \verb=previousenddifference= based on the presence of a punctum mora at the end of the last syllable. + \subsection{Auxiliary File} Gregorio\TeX\ creates its own auxiliary file (extension \texttt{gaux}) which it uses to store information between successive typesetting runs. This allows for such features as the dynamic interline spacing. The following functions are used to interact with that auxiliary file. @@ -1378,6 +1507,14 @@ A fused character consisting of a leading quilisma (of ambitus two) and a regula \macroname{\textbackslash gre@char@he@...}{\#1}{gregoriotex-chars.tex} A class of macros for the horizontal episema which populates the \verb=\gre@box@hep= box. +\macroname{\textbackslash gre@nabccharno}{\#1\#2\#3}{gregoriotex-nabc.tex} +Prints the nabc glyphs for the given nabc string. + +\begin{argtable} + \#1 & string & nabc code representing the character\\ + \#2 & string & name of nabc font to use\\ + \#3 & integer & scaling factor\\ +\end{argtable} \subsection{Flags} @@ -1458,6 +1595,9 @@ Boolean to mark the last syllable of the score. \macroname{\textbackslash ifgre@firstglyph}{}{gregoriotex-syllable.tex} Boolean that tells us if the current glyph is the first glyph or not. +\macroname{\textbackslash ifgre@rewritesyllables}{}{gregoriotex-syllable.tex} +Boolean that enables moving the last part of a syllable to the next if there is no hyphen. + \macroname{\textbackslash gre@attr@dash}{}{gregoriotex-main.tex} A Lua\TeX\ attribute which indicates whether a syllable takes a dash if it ends a line. @@ -1473,6 +1613,9 @@ A Lua\TeX\ attribute which identifies the high point of the glyph. Used for dyn \macroname{\textbackslash gre@attr@glyph@bottom}{}{gregoriotex-main.tex} A Lua\TeX\ attribute which identifies the low point of the glyph. Used for dynamic line spacing. +\macroname{\textbackslash gre@attr@syllable@id}{}{gregoriotex-main.tex} +A Lua\TeX\ attribute which identifies one syllable from the next. Used to position the text after the center of a syllable on the next syllable if the text flows properly, in order to improve ligaturing. + \macroname{\textbackslash gre@clivisalignment}{}{gregoriotex-syllable.tex} Count to indicate how the clivis is to be aligned with its respective syllable text. Values: \texttt{0}) always align clivis on its center; \texttt{1}) align clivis on first punctum; \texttt{2}) align clivis on its center, except if notes would go left of text or consonants after vowels are larger than \verb=\gre@dimen@clivisalignmentmin=. @@ -1521,11 +1664,17 @@ Count which indicates whether the point-and-click functionality should be implem \macroname{\textbackslash gre@variableheightexpansion}{}{gregoriotex-main.tex} Count to indicated if the spacing between lines should be variable (\texttt{1}) or fixed (\texttt{0}). Not a boolean because it needs to be readable by Lua. +\macroname{\textbackslash ifgre@usecustosalteration}{}{gregoriotex-signs.tex} +Boolean which indicates whether alterations should be printed for custodes. + \macroname{\textbackslash ifgre@blockeolcustos}{}{gregoriotex-main.tex} Boolean which indicates whether the custos at the end of the line should be blocked. \macroname{\textbackslash ifgre@blockeolcustosbeforeeuouae}{}{gregoriotex-main.tex} Boolean which indicates whether the custos at the end of the line should be blocked if a EUOUAE block immediately follows. +\macroname{\textbackslash ifgre@blockeolcustos}{}{gregoriotex-main.tex} +Boolean which indicates whether the custos at the end of the line should be blocked. + \macroname{\textbackslash ifgre@raggedbreakbeforeeuouae}{}{gregoriotex-main.tex} Boolean which indicates whether an automatic line break immediately before a EUOUAE block should be ragged. @@ -1619,6 +1768,35 @@ Boolean indicating that the current syllable had a forced center in the gabc whi \macroname{\textbackslash ifgre@nextforcedcentering}{}{gregoriotex-syllable.tex} Boolean indicating that the next syllable had a forced center in the gabc which is to be respected. +\macroname{\textbackslash ifgre@unbreakableendofelement}{}{gregoriotex-main.tex} +Boolean used by \verb=\GreEndOfElement= to store whether the line may be broken at that point. + +\macroname{\textbackslash gre@count@syllablenotes}{}{gregoriotex-syllable.tex} +Count containing the number of notes in the syllable. + +\macroname{\textbackslash gre@count@unbreakabletotalnotes}{}{gregoriotex-syllable.tex} +Count containing the minimum number of notes in the syllable before the syllable +may be broken across lines. + +\macroname{\textbackslash gre@count@unbreakableinitialnotes}{}{gregoriotex-syllable.tex} +Count containing the minimum number of notes at the start of a syllable that +must be kept together when the syllable is broken across lines. + +\macroname{\textbackslash gre@count@unbreakablefinalnotes}{}{gregoriotex-syllable.tex} +Count containing the minimum number of notes at the end of a syllable that must +be kept together when the syllable is broken across lines. + +\macroname{\textbackslash ifgre@shownotes}{}{gregoriotex-syllable.tex} +Boolean indicating whether the notes should be shown. + +\macroname{\textbackslash ifgre@showlyrics}{}{gregoriotex-syllable.tex} +Boolean indicating whether the lyrics should be shown. + +\macroname{\textbackslash gre@initiallines}{}{gregoriotex-syllable.tex} +Number of lines the initial takes up. Currently limited to 0, 1, or 2. Not currently a count, but will be changed to one in 5.0. + +\macroname{\textbackslash ifgre@rewritethissyllable}{}{gregoriotex-syllable.tex} +Boolean indicating that a syllable should be rewritten to improve ligature rendering. \subsection{Boxes} @@ -1711,6 +1889,9 @@ Dimension representing extra space above the staff needed for high notes. \macroname{\textbackslash gre@dimen@additionaltopspacealt}{}{gregoriotex-spaces.tex} Dimension representing extra space above the staff needed for above lines text. +\macroname{\textbackslash gre@dimen@additionaltopspacenabc}{}{gregoriotex-spaces.tex} +Dimension representing extra space above the staff needed for nabc notation. + \macroname{\textbackslash gre@dimen@textlower}{}{gregoriotex-spaces.tex} Dimension representing the height of the separation between the 0th line (which is invisible except for notes in the a or b position) and @@ -1760,6 +1941,9 @@ Stored value of enddifference prior to the current one after adjusting for the p \macroname{\textbackslash gre@skip@nextbegindifference}{}{gregoriotex-spaces.tex} The difference between the start of the notes and the start of the text for the next syllable. Positive when when text begins first, negative in other case. +\macroname{\textbackslash gre@skip@adjustednextbegindifference}{}{gregoriotex-spaces.tex} +Only used in new bar spacing algorithm. It is \verb=grebegindifference= adjusted with \verb=alterationadjustmentbar= if relevant. + \macroname{\textbackslash gre@dimen@begindifference}{}{gregoriotex-spaces.tex} The difference between the start of the notes and the start of the text for the current syllable. Positive when when text begins first, negative in other case. This means that \verb=\kern\gre@dimen@begindifference= will take you from the start of the notes to the start of the text. @@ -1848,7 +2032,22 @@ Space required by the text in the new bar spacing algorithm. Skip after the most recent bar. \macroname{\textbackslash gre@skip@punctummorashift}{}{gregoriotex-spaces.tex} -Displacement of whole syllable to account for the presence of a punctum mora at the end of the previous syllable +Displacement of whole syllable to account for the presence of a punctum mora at the end of the previous syllable. + +\macroname{\textbackslash gre@skip@alterationshift}{}{gregoriotex-spaces.tex} +Displacement of whole syllable to account for the presence of an alteration at the beginning of the next syllable. + +\macroname{\textbackslash gre@skip@baselineskip@save}{}{gregoriotex-spaces.tex} +Saved value of \verb=\baselineskip= from before a score so that it can be restored when the score ends. + +\macroname{\textbackslash gre@skip@lineskip@save}{}{gregoriotex-spaces.tex} +Saved value of \verb=\lineskip= from before a score so that it can be restored when the score ends. + +\macroname{\textbackslash gre@skip@lineskiplimit@save}{}{gregoriotex-spaces.tex} +Saved value of \verb=\lineskiplimit= from before a score so that it can be restored when the score ends. + +\macroname{\textbackslash gre@skip@parskip@save}{}{gregoriotex-spaces.tex} +Saved value of \verb=\parskip= from before a score so that it can be restored when the score ends. \subsection{Penalties} @@ -1933,6 +2132,38 @@ A place to save the current value of the tolerance so that we can change it temp A place to save the current value of the pretolerance so that we can change it temporarily and then restore it later. +\subsection{Backwards compatibility} +Depending on version of Lua\TeX / \LaTeX, some primitives have different names +We define the following local aliases to account for this eventuality. + +\macroname{\textbackslash gre@localleftbox}{}{gregoriotex-main.tex} +Current primitive: \verb=\localleftbox= +Legacy primitive: \verb=\luatexlocalleftbox= + +\macroname{\textbackslash gre@localrightbox}{}{gregoriotex-main.tex} +Current primitive: \verb=\localrightbox= +Legacy primitive: \verb=\luatexlocalrightbox= + +\macroname{\textbackslash gre@startlink}{}{gregoriotex-main.tex} +Current primitive: \verb=\pdfextension startlink= +Legacy primitive: \verb=\pdfstartlink= + +\macroname{\textbackslash gre@endlink}{}{gregoriotex-main.tex} +Current primitive: \verb=\pdfextension endlink= +Legacy primitive: \verb=\pdfendlink= + +\macroname{\textbackslash gre@savepos}{}{gregoriotex-main.tex} +Current primitive: \verb=\savepos= +Legacy primitive: \verb=\pdfsavepos= + +\macroname{\textbackslash gre@lastxpos}{}{gregoriotex-main.tex} +Current primitive: \verb=\lastxpos= +Legacy primitive: \verb=\pdflastxpos= + +\macroname{\textbackslash gre@lastypos}{}{gregoriotex-main.tex} +Current primitive: \verb=\lastypos= +Legacy primitive: \verb=\pdflastypos= + \subsection{\LaTeX/Plain \TeX\ compatibility} While every effort has been made to use only primitives which are compatible with both \LaTeX\ and Plain \TeX, it is sometimes necessary to use primitives which are defined for one but not the other (usually its \LaTeX\ that has what we need built in). In these cases we have to provide an equivalent macro to the \TeX\ version which is lacking. diff --git a/Build/source/texk/gregorio/gregorio-src/doc/Gabc.tex b/Build/source/texk/gregorio/gregorio-src/doc/Gabc.tex index 27ef298188b..a3680cd715b 100644 --- a/Build/source/texk/gregorio/gregorio-src/doc/Gabc.tex +++ b/Build/source/texk/gregorio/gregorio-src/doc/Gabc.tex @@ -1,5 +1,23 @@ % !TEX root = GregorioRef.tex % !TEX program = LuaLaTeX+se +% +% Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) +% +% This file is part of Gregorio. +% +% Gregorio 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. +% +% Gregorio 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 Gregorio. If not, see <http://www.gnu.org/licenses/>. +% \section{The GABC File} gabc is a simple notation based exclusively on ASCII characters that diff --git a/Build/source/texk/gregorio/gregorio-src/doc/GregorioNabcRef.pdf b/Build/source/texk/gregorio/gregorio-src/doc/GregorioNabcRef.pdf Binary files differindex 3f007307978..6fdfa1009d9 100644 --- a/Build/source/texk/gregorio/gregorio-src/doc/GregorioNabcRef.pdf +++ b/Build/source/texk/gregorio/gregorio-src/doc/GregorioNabcRef.pdf diff --git a/Build/source/texk/gregorio/gregorio-src/doc/GregorioNabcRef.tex b/Build/source/texk/gregorio/gregorio-src/doc/GregorioNabcRef.tex index 836e75db56b..4eb686fa986 100644 --- a/Build/source/texk/gregorio/gregorio-src/doc/GregorioNabcRef.tex +++ b/Build/source/texk/gregorio/gregorio-src/doc/GregorioNabcRef.tex @@ -1,5 +1,22 @@ % !TEX program = LuaLaTeX+se - +% +% Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) +% +% This file is part of Gregorio. +% +% Gregorio 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. +% +% Gregorio 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 Gregorio. If not, see <http://www.gnu.org/licenses/>. +% \documentclass[a4paper]{article} \usepackage{color} \usepackage[margin=1cm]{geometry} @@ -200,8 +217,8 @@ variant. The \textit{pitch descriptor} allows to specify the vertical position of the neume. There are no staves, so the vertical position is only rough. For pitches the same letters as in \texttt{gabc} are used, \texttt{a} through -\texttt{m}. If the \textit{pitch descriptor} is missing, the default is -\texttt{hf}, otherwise it consists of the letter \texttt{h} followed by +\texttt{n} and \texttt{p}. If the \textit{pitch descriptor} is missing, the default +is \texttt{hf}, otherwise it consists of the letter \texttt{h} followed by the pitch letter. Within the \textit{complex glyph descriptor}, each \textit{basic glyph descriptor} has its own pitch, but in the current fonts there are no glyphs with different relative pitches, so if you use a @@ -524,6 +541,7 @@ only present in the font source file to help drawing the glyphs.} \texttt{C118C} Clamaverunt iusti \texttt{GT454}\\ \texttt{C122I} In omnem terram \texttt{GT427}\\ \texttt{C123C} Constitues eos \texttt{GT426}\\ +\texttt{C132D} Domine praevenisti \texttt{GT509}\\ \texttt{C134B} Benedicite Dominum \texttt{GT608}\\ \texttt{C137A} Audi filia \texttt{GT406}\\ \texttt{C139A} Alleluia Benedictus es \texttt{GT375}\\ @@ -640,9 +658,24 @@ only present in the font source file to help drawing the glyphs.} \texttt{H269R} Repleti sunt omnes \texttt{NR494}\\ \texttt{H270S} Spiritus Domini \texttt{AM520}\\ \texttt{H271L} Loquebantur variis \texttt{AM521}\\ +\texttt{H297B} Beatam me dicent \texttt{NR[172]}\\ +\texttt{H305H} Hodie nata est \texttt{NR278*}\\ +\texttt{H305G} Gloriosae virginis Mariae \texttt{NR279*}\\ +\texttt{H306N} Nativitas gloriosae \texttt{NR280*}\\ +\texttt{H307N} Nativitas tua \texttt{NR281*}\\ +\texttt{H307F} Felix namque \texttt{NR[171]}\\ +\texttt{H320R} Regem confessorum\\ +\texttt{H322B} Beatus Gallus zelo\\ +\texttt{H322C} Columbanus itaque beato\\ +\texttt{H323B} Beatus Gallus cum\\ +\texttt{H323D} Domine Iesu Christe\\ +\texttt{H324P} Pater sanctus\\ +\texttt{H324V} Vir Deo plenus\\ +\texttt{H325I} Iste sanctus digne\\ \texttt{H367V} Viri sancti \texttt{NR[54]}\\ \texttt{H424M} Magnificat\\ -\texttt{H428A} Ascendens Iesus \texttt{AM593} +\texttt{H428A} Ascendens Iesus \texttt{AM593}\\ +\texttt{H443V} Venite exsultemus \texttt{NRXXVIII} \noindent\textbf{St.\ Gall codex 339} @@ -868,7 +901,10 @@ only present in the font source file to help drawing the glyphs.} \sneume{visu2sux1} & \texttt{visu2sux1} & \texttt{H48B} & mater & \fbox{1.7x}\\ \sneume{vi-sut1su2} & \texttt{vi-sut1su2} & \texttt{H22S} & elegi & \fbox{1.71x}\\ \sneume{vi-su1suu1} & \texttt{vi-su1suu1} & \texttt{H114C} & gloriam & \fbox{1.71x}\\ -\sneume{vi-su1suu1su2} & \texttt{vi-su1suu1su2} & \texttt{H114N} & nobis & \fbox{1.71x}\\ \hline +\sneume{vi-su1suu1su2} & \texttt{vi-su1suu1su2} & \texttt{H114N} & nobis & \fbox{1.71x}\\ +\sneume{vi-su1sut2} & \texttt{vi-su1sut2} & \texttt{H324P} & aetatis & \fbox{2.0x}\\ +\sneume{vi-su3} & \texttt{vi-su3} & \texttt{H307F} & natalem & \fbox{2.0x}\\ +\sneume{vi-sut1suu1} & \texttt{vi-sut1suu1} & \texttt{325I} & peregrinatione & \fbox{2.0x}\\ \hline & \multicolumn{3}{l}{\textbf{scandicus}} & \\ \sneume{sc} & \texttt{sc} & \texttt{G11P} & imperium & \fbox{0.85x}\\ \sneume{sc1} & \texttt{sc1} \textit{Cf.} \sneume{vipp4} & \multicolumn{3}{l}{\texttt{vipp4} minus first punctum}\\ @@ -935,7 +971,12 @@ only present in the font source file to help drawing the glyphs.} \sneume{peSsut1su2} & \texttt{peSsut1su2} & \texttt{E13P} & Domine & \fbox{2.133x}\\ \sneume{pesu1sux1} & \texttt{pesu1sux1} & \texttt{H25E} & angelum & \fbox{1.7x}\\ \sneume{pe-1su1suw1} & \texttt{pe-1su1suw1} & \texttt{H29E} & deprecabuntur & \fbox{1.7x}\\ -\sneume{pesu1sut1} & \texttt{pesu1sut1} \textit{Cf.} \sneume{pesu1sut3} & \multicolumn{3}{l}{\texttt{pesu1sut3} minus 2 tractulis}\\ \hline +\sneume{pesu1sut1} & \texttt{pesu1sut1} \textit{Cf.} \sneume{pesu1sut3} & \multicolumn{3}{l}{\texttt{pesu1sut3} minus 2 tractulis}\\ +\sneume{pe-1su1sut1} & \texttt{pe-1su1sut1} & \texttt{H306N} & de & \fbox{2.0x}\\ +\sneume{pe-1su1sut2} & \texttt{pe-1su1sut2} & \texttt{H305G} & Mariae & \fbox{2.0x}\\ +\sneume{pe-1su1suu2} & \texttt{pe-1su1suu2} & \texttt{H305G} & vidente & \fbox{2.0x}\\ +\sneume{pe-su4} & \texttt{pe-su4} & \texttt{C139A} & Alleluia\\ +\sneume{pesuv1su1sut1} & \texttt{pesuv1su1sut1} & \texttt{C139A} & Alleluia\\ \hline & \multicolumn{3}{l}{\textbf{scandicus flexus}} & \\ \sneume{sf} & \texttt{sf} & \texttt{C64Q} & habitat\\ \sneume{sflsc3} & \texttt{sflsc3} & \texttt{C27E} & Deus\\ @@ -959,7 +1000,8 @@ only present in the font source file to help drawing the glyphs.} \sneume{tr-~} & \texttt{tr-\char`\~} & \texttt{C27Q} & et\\ \sneume{tr-~1} & \texttt{tr-\char`\~1} & \texttt{C107A} & Alleluia.\\ \sneume{trS-} & \texttt{trS-} & \texttt{C89T} & pedes,\\ -\sneume{trS1} & \texttt{trS1} & \texttt{E26L} & eeiieiue & \fbox{2.166x}\\ \hline +\sneume{trS1} & \texttt{trS1} & \texttt{E26L} & eeiieiue & \fbox{2.166x}\\ +\sneume{tr-3} & \texttt{tr-3} & \texttt{H323D} & honore & \fbox{2.0x}\\ \hline & \multicolumn{3}{l}{\textbf{stropha}} & \\ \sneume{st} & \texttt{st} & \texttt{C80Q} & commovebitur\\ \sneume{st-} & \texttt{st-} & \texttt{C52P} & Desiderium\\ @@ -1044,7 +1086,8 @@ only present in the font source file to help drawing the glyphs.} \sneume{saM3} & \texttt{saM3} & \texttt{N53A} & fratres\\ \sneume{saM-4} & \texttt{saM-4} & \texttt{N296V} & amoris\\ \sneume{sa>2} & \texttt{sa>2} & \texttt{H73S} & viderunt\\ -\sneume{sa1!cl->} & \texttt{sa1!cl->} & \texttt{H32N} & eius & \fbox{1.7x}\\ \hline +\sneume{sa1!cl->} & \texttt{sa1!cl->} & \texttt{H32N} & eius & \fbox{1.7x}\\ +\sneume{sapp1} & \texttt{sapp1} & \texttt{H320R} & venite & \fbox{2.0x}\\ \hline & \multicolumn{3}{l}{\textbf{pes quassus}} & \\ \sneume{pq} & \texttt{pq} & \texttt{C27E} & sacrificia.\\ \sneume{pqlsfr1} & \texttt{pqlsfr1} & \texttt{C150L} & nostri\\ @@ -1106,7 +1149,10 @@ only present in the font source file to help drawing the glyphs.} \sneume{sut2suu1} & \texttt{sut2suu1} \textit{Cf.} \sneume{ql-ppt1sut2suu1} & \multicolumn{2}{l}{\texttt{ql-ppt1sut2suu1}}\\ \sneume{suu3} & \texttt{suu3} \textit{Cf.} \sneume{vi-suu3} & \multicolumn{2}{l}{\texttt{vi-suu3}}\\ \sneume{su1} & \texttt{su1} \textit{Cf.} \sneume{ci} & \multicolumn{2}{l}{\texttt{ci}}\\ -\sneume{sut1} & \texttt{sut1} \textit{Cf.} \sneume{ciS1} & \multicolumn{2}{l}{\texttt{ciS1}}\\ \hline +\sneume{sut1} & \texttt{sut1} \textit{Cf.} \sneume{ciS1} & \multicolumn{2}{l}{\texttt{ciS1}}\\ +\sneume{su1suv1su2} & \texttt{su1suv1su2} \textit{Cf.} \sneume{ql-ppt2su1suv1su2} & \multicolumn{2}{l}{\texttt{ql-ppt2su1suv1su2}}\\ +\sneume{sut1suu1} & \texttt{sut1suu1} \textit{Cf.} \sneume{vi-sut1suu1} & \multicolumn{2}{l}{\texttt{vi-sut1suu1}}\\ +\sneume{suv1su1sut1} & \texttt{suv1su1sut1} \textit{Cf.} \sneume{pesuv1su1sut1} & \multicolumn{2}{l}{\texttt{pesuv1su1sut1}}\\ \hline \\ & \multicolumn{3}{l}{\textbf{prepunctis}} & \\ \sneume{pp2} & \texttt{pp2} \textit{Cf.} \sneume{vi-pp2} & \texttt{vi-pp2}\\ @@ -1145,6 +1191,11 @@ only present in the font source file to help drawing the glyphs.} \sneume{ql!vssut2} & \texttt{ql!vssut2} \textit{Cf.} \sneume{ql!vsppt1sut2} & \multicolumn{3}{l}{\texttt{ql!vsppt1sut2} minus tractulus}\\ \sneume{qi!vs} & \texttt{qi!vs} \textit{Cf.} \sneume{qi!vssu2} & \multicolumn{3}{l}{\texttt{qi!vssu2} minus subbipunctis}\\ \sneume{qi!vssu2} & \texttt{qi!vssu2} \textit{Cf.} \sneume{qi!vsppt1su2} & \multicolumn{3}{l}{\texttt{qi!vsppt1su2} minus tractulus}\\ +\sneume{ql-su1suu1} & \texttt{ql-su1suu1} \textit{Cf.} \sneume{ql-ppt1su1suu1} & \multicolumn{3}{l}{\texttt{ql-ppt1su1suu1} minus tractulus}\\ +\sneume{ql-su1suv1su2} & \texttt{ql-su1suv1su2} \textit{Cf.} \sneume{ql-ppt2su1suv1su2} & \multicolumn{3}{l}{\texttt{ql-ppt2su1suv1su2} minus tractulis}\\ +\sneume{qisut2} & \texttt{qisut2} \textit{Cf.} \sneume{qippt2sut2} & \multicolumn{3}{l}{\texttt{qippt2sut2} minus tractulis}\\ +\sneume{ql-su3} & \texttt{ql-su3} \textit{Cf.} \sneume{ql-ppt1su3} & \multicolumn{3}{l}{\texttt{ql-ppt1su3} minus tractulus}\\ +\sneume{qlsut3} & \texttt{qlsut3} \textit{Cf.} \sneume{qlppt1sut3} & \multicolumn{3}{l}{\texttt{qlppt1sut3} minus tractulus}\\ \sneume{ql-su2} & \texttt{ql-su2} \textit{Cf.} \sneume{ql-ppt1su2} & \multicolumn{3}{l}{\texttt{ql-ppt1su2} minus tractulus}\\ \sneume{ql-sut2} & \texttt{ql-sut2} & \texttt{H73S} & cedebat\\ \sneume{ql-su1sux1} & \texttt{ql-su1sux1} \textit{Cf.} \sneume{ql-ppt1su1sux1} & \multicolumn{3}{l}{\texttt{ql-ppt1su1sux1} minus tractulus}\\ @@ -1196,6 +1247,14 @@ only present in the font source file to help drawing the glyphs.} \sneume{ql!vsppt1} & \texttt{ql!vsppt1} \textit{Cf.} \sneume{ql!vsppt1su2} & \multicolumn{3}{l}{\texttt{ql!vsppt1su2} minus subbipunctis}\\ \sneume{ql!vsppt1sut2} & \texttt{ql!vsppt1sut2} & \texttt{H73S} & gaudio\\ \sneume{qi!vsppt1su2} & \texttt{qi!vsppt1su2} & \texttt{H74I} & Domini\\ +\sneume{qi-sut3} & \texttt{qi-sut3} & \texttt{H322B} & in & \fbox{2.0x}\\ +\sneume{ql-ppt1su1suu1} & \texttt{ql-ppt1su1suu1} & \texttt{H305H} & David & \fbox{2.0x}\\ +\sneume{ql-ppt1su3} & \texttt{ql-ppt1su3} & \texttt{H323D} & subire & \fbox{2.0x}\\ +\sneume{qlppt1sut3} & \texttt{qlppt1sut3} & \texttt{H305G} & Redemptorem & \fbox{2.0x}\\ +\sneume{ql-ppt2su1suv1su2} & \texttt{ql-ppt2su1suv1su2} & \texttt{H306N} & illustrat & \fbox{2.0x}\\ +\sneume{ql-su1sut1} & \texttt{ql-su1sut1} & \texttt{H307F} & iustitiae & \fbox{2.0x}\\ +\sneume{qippt2sut2} & \texttt{qippt2sut2} & \texttt{H297B} & generationes & \fbox{2.0x}\\ +\sneume{ql!vssu3} & \texttt{ql!vssu3} & \texttt{H443V} & ei & \fbox{2.0x}\\ \sneume{to!ciG} & \texttt{to!ciG} & \texttt{C28T} & gloriae.\\ \sneume{to!cl} & \texttt{to!cl} & \texttt{C84T} & pupillo\\ \sneume{to!cl!cl!cl} & \texttt{to!cl!cl!cl} & \texttt{C64Q} & sepavit,\\ @@ -1221,11 +1280,17 @@ only present in the font source file to help drawing the glyphs.} \sneume{cl!po} & \texttt{cl!po} & \texttt{C26A} & nobis.\\ \sneume{cl!po-1} & \texttt{cl!po-1} & \texttt{H119C} & in\\ \sneume{tr-1su2} & \texttt{tr-1su2} & \texttt{H73O} & dona\\ +\sneume{trSsut2} & \texttt{trSsut2} & \texttt{H305H} & devotissime & \fbox{2.0x}\\ \sneume{ci-pp2} & \texttt{ci-pp2} & \texttt{H73S} & magno\\ \sneume{toS2su2} & \texttt{toS2su2} & \texttt{H73S} & eam\\ \sneume{toS2sut2} & \texttt{toS2sut2} & \texttt{C150L} & dicta\\ -\sneume{po-1pp2su1sux1} & \texttt{po-1pp2su1sux1} & \texttt{E75G} & filium & \fbox{2.2x}\\ -\sneume{po-1su1sux1} & \texttt{po-1su1sux1} \textit{Cf.} \sneume{po-1pp2su1sux1} & \multicolumn{3}{l}{\texttt{po-1pp2su1sux1} minus bipunctis}\\ \hline +\sneume{to-1su2} & \texttt{to-1su2} & \texttt{H322C} & ostendere & \fbox{2.0x}\\ +\sneume{to-1su1} & \texttt{to-1su1} & \texttt{H323B} & Gallus & \fbox{2.0x}\\ +\sneume{to-1suu1su2} & \texttt{to-1suu1su2} & \texttt{H324V} & cognovi & \fbox{2.0x}\\ +\sneume{po-1pp2su1sux1} & \texttt{po-1pp2su1sux1} & \texttt{H323D} & desiderium & \fbox{2.0x}\\ +\sneume{po-1su1sux1} & \texttt{po-1su1sux1} \textit{Cf.} \sneume{po-1pp2su1sux1} & \multicolumn{3}{l}{\texttt{po-1pp2su1sux1} minus bipunctis}\\ +\sneume{pisu1} & \texttt{pisu1} & \texttt{H307N} & annuntiavit & \fbox{2.0x}\\ +\sneume{pq-su2} & \texttt{pq-su2} & \texttt{C132D} & praetioso\\ \hline \end{supertabular} \begin{supertabular}{llllll}\noindent diff --git a/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.lua b/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.lua index bcc35a9bb69..091bfa24e90 100644 --- a/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.lua +++ b/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.lua @@ -1,3 +1,20 @@ +-- Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) +-- +-- This file is part of Gregorio. +-- +-- Gregorio 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. +-- +-- Gregorio 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 Gregorio. If not, see <http://www.gnu.org/licenses/>. + local P = lpeg.P local R = lpeg.R local C = lpeg.C @@ -27,6 +44,8 @@ local EXCLUDE = { ['.notdef'] = true, ['.null'] = true, nonmarkingreturn = true, + AscendensOriscusLineBLTR = true, + AscendensOriscusLineTR = true, PunctumAuctusLineBL = true, PunctumLineBLBR = true, PunctumLineBR = true, @@ -34,7 +53,8 @@ local EXCLUDE = { PunctumSmall = true, FlexusLineBL = true, FlexusAmOneLineBL = true, - OriscusLineTR = true, + DescendensOriscusLineTR = true, + DescendensOriscusLineBLTR = true, QuilismaLineTR = true, VirgaLineBR = true, SalicusOriscus = true, @@ -58,6 +78,15 @@ local GABC = { AccentusReversus = [[\excluded{g}r2]], Ancus = [[gec]], AncusLongqueue = [[hfd]], + AscendensOriscusCavum = [[go1r]], + AscendensOriscusCavumHole = [[\excluded{gor}]], + AscendensOriscus = [[go1]], + AscendensOriscusLineBL = [[\excluded{e}@go1]], + AscendensOriscusLineTL = [[\excluded{i}@go1]], + AscendensOriscusScapus = [[gO1]], + AscendensOriscusScapusLongqueue = [[hO1]], + AscendensOriscusScapusOpenqueue = [[aO1]], + AscendensPunctumInclinatum = [[G1]], AuctumMora = [[\excluded{g}.]], BarBrace = [[\excluded{,}\_]], CClef = [[c3]], @@ -70,84 +99,93 @@ local GABC = { CustosUpLong = [[f+]], CustosUpMedium = [[a+]], CustosUpShort = [[g+]], + DescendensOriscusCavum = [[go0r]], + DescendensOriscusCavumHole = [[\excluded{go0r}]], + DescendensOriscus = [[go0]], + DescendensOriscusLineBL = [[\excluded{e}@go0]], + DescendensOriscusLineTL = [[\excluded{i}@go0]], + DescendensOriscusScapus = [[gO0]], + DescendensOriscusScapusLongqueue = [[hO0]], + DescendensOriscusScapusOpenqueue = [[aO0]], + DescendensPunctumInclinatum = [[G0]], DivisioDominican = [[,3]], DivisioDominicanAlt = [[,4]], DivisioMaior = [[:]], DivisioMinima = [[,]], DivisioMinor = [[;]], - FClef = [[f3]], FClefChange = [[f3]], + FClef = [[f3]], Flat = [[gx]], FlatHole = [[\excluded{gx}]], Flexus = [[ge]], FlexusLongqueue = [[hf]], FlexusNobar = [[@hf]], FlexusOriscus = [[goe]], + FlexusOriscusInusitatus = [[go1e]], FlexusOriscusScapus = [[gOe]], + FlexusOriscusScapusInusitatus = [[gO1e]], + FlexusOriscusScapusInusitatusLongqueue = [[hO1f]], FlexusOriscusScapusLongqueue = [[hOf]], LeadingOriscus = [[go\excluded{igig}]], LeadingPunctum = [[g\excluded{igig}]], LeadingQuilisma = [[gw\excluded{igig}]], Linea = [[g=]], - LineaPunctum = [[gR]], LineaPunctumCavum = [[gr0]], LineaPunctumCavumHole = [[\excluded{gr0}]], + LineaPunctum = [[gR]], Natural = [[gy]], NaturalHole = [[\excluded{gy}]], - Oriscus = [[go1]], - OriscusCavum = [[go1r]], - OriscusCavumDeminutus = [[gor\~{}]], + OblatusAscendensOriscus = [[go1]], + OblatusDescendensOriscus = [[go0]], + OblatusFlexusOriscus = [[goe]], + OblatusFlexusOriscusInusitatus = [[go1e]], + OblatusPesQuassus = [[goi]], + OblatusPesQuassusLongqueue = [[hoj]], + OblatusPesQuassusInusitatus = [[go0i]], + OblatusPesQuassusInusitatusLongqueue = [[ho0j]], + Oriscus = [[go]], -- for Deminutus + OriscusCavum = [[gor]], -- for Deminutus OriscusCavumDeminutusHole = [[\excluded{gor\~{}}]], - OriscusCavumHole = [[\excluded{gor}]], - OriscusCavumReversus = [[go0r]], - OriscusCavumReversusHole = [[\excluded{go0r}]], - OriscusLineBL = [[\excluded{e}@go]], - OriscusReversus = [[go0]], - OriscusReversusLineTL = [[\excluded{i}@go]], - OriscusScapus = [[gO1]], - OriscusScapusLongqueue = [[hO1]], - OriscusScapusOpenqueue = [[aO1]], - OriscusScapusReversus = [[gO0]], - OriscusScapusReversusLongqueue = [[hO0]], - OriscusScapusReversusOpenqueue = [[aO0]], Pes = [[gi]], PesQuadratum = [[gqi]], PesQuadratumLongqueue = [[hqj]], PesQuassus = [[goi]], + PesQuassusInusitatus = [[go0i]], + PesQuassusInusitatusLongqueue = [[ho0j]], PesQuassusLongqueue = [[hoj]], PesQuilisma = [[gwi]], PesQuilismaQuadratum = [[gWi]], PesQuilismaQuadratumLongqueue = [[hWj]], - Porrectus = [[geg]], PorrectusFlexus = [[gege]], PorrectusFlexusNobar = [[\excluded{e}gege]], + Porrectus = [[geg]], PorrectusLongqueue = [[hfh]], PorrectusNobar = [[@geg]], - Punctum = [[g]], PunctumCavum = [[gr]], PunctumCavumHole = [[\excluded{gr}]], - PunctumCavumInclinatum = [[Gr]], PunctumCavumInclinatumAuctus = [[Gr>]], PunctumCavumInclinatumAuctusHole = [[\excluded{Gr>}]], + PunctumCavumInclinatum = [[Gr]], PunctumCavumInclinatumHole = [[\excluded{Gr}]], - PunctumInclinatum = [[G]], + Punctum = [[g]], + PunctumInclinatum = [[G]], -- for deminutus PunctumInclinatumAuctus = [[G>]], PunctumLineBL = [[\excluded{e}@g]], PunctumLineTL = [[\excluded{i}@g]], Quilisma = [[gw]], - RoundBrace = '[ob:1;6mm]', RoundBraceDown = '[ub:1;6mm]', - Salicus = [[giOk]], + RoundBrace = '[ob:1;6mm]', SalicusFlexus = [[giOki]], + Salicus = [[giOk]], SalicusLongqueue = [[hjOl]], Scandicus = [[gik]], Semicirculus = [[\excluded{g}r4]], SemicirculusReversus = [[\excluded{g}r5]], Sharp = [[g\#{}]], SharpHole = [[\excluded{g\#{}}]], - Stropha = [[gs]], StrophaAucta = [[gs>]], StrophaAuctaLongtail = [[hs>]], + Stropha = [[gs]], Torculus = [[gig]], TorculusLiquescens = [[gige]], TorculusLiquescensQuilisma = [[gwige]], @@ -173,47 +211,80 @@ local GABC_AMBITUS_ONE = { PesQuadratumOpenqueue = [[aqb]], PesQuassusOpenqueue = [[aob]], PesQuilismaQuadratumOpenqueue = [[aWb]], + OblatusPesQuassusInusitatusOpenqueue = [[ao0b]], + OblatusPesQuassusOpenqueue = [[boc]], } -- if the item is a table, the values will replace fuse_head and gabc local GABC_FUSE = { Upper = { Punctum = [[\excluded{e}@]], - Oriscus = [[\excluded{e}@]], + AscendensOriscus = [[\excluded{e}@]], + DescendensOriscus = [[\excluded{e}@]], + OblatusAscendensOriscus = [[\excluded{f}@]], + OblatusFlexusOriscusInusitatus = [[\excluded{f}@]], + OblatusPesQuassus = [[\excluded{f}@]], + OblatusPesQuassusLongqueue = [[\excluded{g}@]], + OblatusPesQuassusOpenqueue = [[\excluded{a}@]], Pes = [[\excluded{e}@]], PesQuadratum = [[\excluded{e}@]], PesQuadratumLongqueue = [[\excluded{f}@]], - PesQuadratumOpenqueue = { [[\excluded{a}@]], [[bq[ll:0]c]] }, + PesQuadratumOpenqueue = { [[\excluded{a}@]], [[bqc]] }, PesQuassus = [[\excluded{e}@]], + PesQuassusInusitatus = [[\excluded{e}@]], + PesQuassusInusitatusLongqueue = [[\excluded{f}@]], PesQuassusLongqueue = [[\excluded{f}@]], - PesQuassusOpenqueue = { [[\excluded{a}@]], [[bo[ll:0]c]] }, + PesQuassusOpenqueue = { [[\excluded{a}@]], [[cod]] }, Flexus = [[\excluded{e}@]], + FlexusOriscus = [[\excluded{e}@]], + FlexusOriscusInusitatus = [[\excluded{e}@]], }, Lower = { Punctum = [[\excluded{i}@]], - Oriscus = [[\excluded{i}@]], + AscendensOriscus = [[\excluded{i}@]], + DescendensOriscus = [[\excluded{i}@]], + OblatusDescendensOriscus = [[\excluded{h}@]], + OblatusFlexusOriscus = [[\excluded{h}@]], + OblatusPesQuassusInusitatus = [[\excluded{h}@]], + OblatusPesQuassusInusitatusLongqueue = [[\excluded{i}@]], + OblatusPesQuassusInusitatusOpenqueue = [[\excluded{b}@]], Pes = [[\excluded{i}@]], PesQuadratum = [[\excluded{i}@]], PesQuadratumLongqueue = [[\excluded{j}@]], PesQuadratumOpenqueue = [[\excluded{b}@]], PesQuassus = [[\excluded{i}@]], + PesQuassusInusitatus = [[\excluded{i}@]], + PesQuassusInusitatusLongqueue = [[\excluded{j}@]], + PesQuassusLongqueue = [[\excluded{j}@]], + PesQuassusOpenqueue = [[\excluded{b}@]], Flexus = [[\excluded{i}@]], FlexusOriscus = [[\excluded{i}@]], + FlexusOriscusInusitatus = [[\excluded{i}@]], }, Up = { Punctum = [[\excluded{@ij}]], - Oriscus = [[\excluded{@ij}]], - OriscusScapus = [[\excluded{@ij}]], - OriscusScapusLongqueue = [[\excluded{@jk}]], + AscendensOriscus = [[\excluded{@ij}]], + AscendensOriscusScapus = [[\excluded{@ij}]], + AscendensOriscusScapusLongqueue = [[\excluded{@jk}]], + DescendensOriscus = [[\excluded{@ij}]], + DescendensOriscusScapus = [[\excluded{@ij}]], + DescendensOriscusScapusLongqueue = [[\excluded{@jk}]], + OblatusAscendensOriscus = [[\excluded{@i}]], + OblatusDescendensOriscus = [[\excluded{@i}]], Quilisma = [[\excluded{@ij}]], Flexus = [[\excluded{@gi}]], FlexusNobar = [[\excluded{@hj}]], }, Down = { Punctum = [[\excluded{@eg}]], - Oriscus = [[\excluded{@eg}]], - OriscusScapus = [[\excluded{@eg}]], - OriscusScapusLongqueue = [[\excluded{@eg}]], + AscendensOriscus = [[\excluded{@eg}]], + AscendensOriscusScapus = [[\excluded{@eg}]], + AscendensOriscusScapusLongqueue = [[\excluded{@eg}]], + DescendensOriscus = [[\excluded{@eg}]], + DescendensOriscusScapus = [[\excluded{@eg}]], + DescendensOriscusScapusLongqueue = [[\excluded{@eg}]], + OblatusAscendensOriscus = [[\excluded{@e}]], + OblatusDescendensOriscus = [[\excluded{@e}]], VirgaReversa = [[\excluded{@eg}]], VirgaReversaLongqueue = [[\excluded{@fg}]], }, @@ -304,6 +375,8 @@ function GregorioRef.emit_score_glyphs(cs_greciliae, cs_gregorio, cs_granapadano liq = '' end gabc = '('..fuse_head..DEBILIS[debilis]..gabc..LIQUESCENCE[liq]..fuse_tail..')' + else + texio.write_nl('GregorioRef Warning: missing GABC for '..name) end tex.sprint(string.format( [[{\scriptsize %s{\bfseries %s}{\itshape %s}%s%s}&{\ttfamily\small %s}&{\%s\char%d}&{\%s\char%d}&{\%s\char%d}&]], @@ -336,8 +409,8 @@ function GregorioRef.emit_score_glyphs(cs_greciliae, cs_gregorio, cs_granapadano local post_word_liquescentia = P'Nothing' + P'Deminutus' + P'Ascendens' + P'Descendens' local liquescentia = post_word_liquescentia + P'Up' + P'Down' - local word = (majuscule * minuscule^0) - fusion - ambitus - debilis - - post_word_liquescentia + local word = ((majuscule * minuscule^0) - fusion - ambitus - debilis - + post_word_liquescentia) + ((P'Ascendens' + P'Descendens') * P'Oriscus') local liquescence = debilis^-1 * liquescentia^-1 local pattern = C(fusion^-1) * C(word^1) * C(ambitus^0) * C(debilis^-1) * C(liquescentia^-1) * -1 diff --git a/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.pdf b/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.pdf Binary files differindex f961ed429a5..b98649202d1 100644 --- a/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.pdf +++ b/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.pdf diff --git a/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.tex b/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.tex index 71dd41d9dfb..29823a34b9c 100644 --- a/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.tex +++ b/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.tex @@ -1,4 +1,22 @@ % !TEX program = LuaLaTeX+se +% +% Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) +% +% This file is part of Gregorio. +% +% Gregorio 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. +% +% Gregorio 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 Gregorio. If not, see <http://www.gnu.org/licenses/>. +% \documentclass[12pt,a4paper]{article} \usepackage[titletoc,toc,title]{appendix} \usepackage{fontspec} @@ -32,7 +50,6 @@ \usepackage{url} \usepackage{tabulary} \usepackage{tabularx} -\usepackage{adjustbox} \usepackage{xparse} \usepackage{makeidx} @@ -43,6 +60,7 @@ \definecolor{green}{HTML}{0c700c} \definecolor{myred}{HTML}{FF3333} +\usepackage{adjustbox} % must be after xcolor \usepackage{minted} % must be after xcolor \makeatletter \@ifpackagelater{minted}{2013/12/21}{% @@ -87,7 +105,7 @@ \ifbreakable% \filbreak% \else% - \breakabletrue% + \global\breakabletrue% \fi% \makebox[\linewidth]{\ttfamily\bfseries #1#2% \hspace{\fill}\normalfont\itshape #3}% @@ -132,11 +150,20 @@ \fi% } +\NewDocumentEnvironment{gcount}{m}{\macroname{#1}{}{gsp-default.tex}}{% + + Default: \expandafter$\expandafter\the\csname gre@space@count@#1\endcsname$ +} + \newcommand{\writemode}[3]{% \gre@style@modeline #1\endgre@style@modeline % \gre@style@modemodifier #2\endgre@style@modemodifier % \gre@style@modedifferentia #3\endgre@style@modedifferentia % } + +\newcommand{\getgrecount}[1]{% + \the\csname gre@count@#1\endcsname% +} \makeatother \setlength{\parindent}{0mm} % Default is 15pt @@ -152,7 +179,7 @@ \vspace{1cm} - \large Version \textbf{4.1.4}, 29 May 2016 %% PARSE_VERSION_DATE + \large Version \textbf{4.2.0}, 23 September 2016 %% PARSE_VERSION_DATE \vspace{1.5cm} \end{center} diff --git a/Build/source/texk/gregorio/gregorio-src/doc/Makefile.am b/Build/source/texk/gregorio/gregorio-src/doc/Makefile.am index 42a58014fe7..2f2425e7985 100644 --- a/Build/source/texk/gregorio/gregorio-src/doc/Makefile.am +++ b/Build/source/texk/gregorio/gregorio-src/doc/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) +# Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) # # This file is part of Gregorio. # @@ -21,40 +21,49 @@ SRCFILES = GregorioRef.tex Command_Index_gregorio.tex \ Gabc.tex Appendix_Font_Tables.tex GregorioRef.lua factus.gabc NABCSRCFILES = GregorioNabcRef.tex veni.gabc +GREGORIO=gregorio-$(FILENAME_VERSION) + .NOTPARALLEL: # I know these rules look wrong, but they must not depend on anything that # gets generated or make distcheck will fail. GregorioRef.pdf: $(SRCFILES) - $(MAKE) $(AM_MAKEFLAGS) -C ../src gregorio - ../src/gregorio -o factus.gtex $(<D)/factus.gabc + $(MAKE) $(AM_MAKEFLAGS) -C ../src $(GREGORIO) + ../src/$(GREGORIO) -o factus.gtex $(<D)/factus.gabc TEXINPUTS=$(<D):$(<D)/../tex: LUAINPUTS=$(<D):$(<D)/../tex: \ - TTFONTS=$(<D)/../fonts: PATH=../src:${PATH} latexmk -recorder -pdf \ + TTFONTS=$(<D)/../fonts: PATH=../src:${PATH} latexmk -f -recorder -pdf \ + -interaction=nonstopmode -halt-on-error \ -pdflatex='lualatex --shell-escape %O %S' \ - -jobname=GregorioRef $< + -jobname=GregorioRef $< || rm $@ GregorioNabcRef.pdf: $(NABCSRCFILES) - $(MAKE) $(AM_MAKEFLAGS) -C ../src gregorio - ../src/gregorio -o veni.gtex $(<D)/veni.gabc + $(MAKE) $(AM_MAKEFLAGS) -C ../src $(GREGORIO) + ../src/$(GREGORIO) -o veni.gtex $(<D)/veni.gabc TEXINPUTS=$(<D):$(<D)/../tex: LUAINPUTS=$(<D):$(<D)/../tex: \ TTFONTS=$(<D)/../fonts: PATH=../src:${PATH} latexmk -recorder -pdf \ + -interaction=nonstopmode -halt-on-error \ -pdflatex='lualatex --shell-escape %O %S' \ - -jobname=GregorioNabcRef $< + -jobname=GregorioNabcRef $< || rm $@ doc: GregorioRef.pdf GregorioNabcRef.pdf pdf-local: doc -distclean-local: +clean-doc-intermediate: latexmk -quiet -c -f -jobname=GregorioRef GregorioRef.tex latexmk -quiet -c -f -jobname=GregorioNabcRef GregorioNabcRef.tex - rm -rf _minted* *.gtex *.aux *.gaux + rm -rf _minted* *.gtex *.aux *.gaux *.glog + +clean-doc: clean-doc-intermediate + rm -rf GregorioRef.pdf + rm -rf GregorioNabcRef.pdf + +distclean-local: clean-doc-intermediate + +maintainer-clean-local: clean-doc EXTRA_DIST = $(SRCFILES) $(NABCSRCFILES) \ GregorioRef.pdf \ - GregorioNabcRef.pdf - -maintainer-clean-local: - rm -rf GregorioRef*.pdf - rm -rf GregorioRef-* GregorioNabcRef-* + GregorioNabcRef.pdf \ + README.md diff --git a/Build/source/texk/gregorio/gregorio-src/doc/README.md b/Build/source/texk/gregorio/gregorio-src/doc/README.md new file mode 100644 index 00000000000..4bbd40f2dab --- /dev/null +++ b/Build/source/texk/gregorio/gregorio-src/doc/README.md @@ -0,0 +1,19 @@ +Documentation for gregorio and gregoriotex +========================================== + +This folder contains the source files of a manual is primarily intended for +developers. Users should not expect to find an indepth guide on using gregorio. + +You can find a compiled PDF version in the files of each [Gregorio release](https://github.com/gregorio-project/gregorio/releases). + +Developers can use this manual as a reference for information on the +internal workings of gregorio. + +## Building + +To compile the pdf you must have + * an up-to-date [TeXLive](https://www.tug.org/texlive/) system, with at least the `luatex` bundle and `latexmk` + * the [Linux Libertine](http://www.linuxlibertine.org/index.php?id=1&L=1) and [Inconsolata](http://www.levien.com/type/myfonts/inconsolata.html) fonts (distributed by TeXLive too) + * the [`pygments` library](http://pygments.org/) + +Once you have run `./configure` in the main directory, run `make doc` in this directory. diff --git a/Build/source/texk/gregorio/gregorio-src/examples/Makefile.am b/Build/source/texk/gregorio/gregorio-src/examples/Makefile.am index 72230adc3ad..31a94221813 100644 --- a/Build/source/texk/gregorio/gregorio-src/examples/Makefile.am +++ b/Build/source/texk/gregorio/gregorio-src/examples/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) +# Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) # # This file is part of Gregorio. # diff --git a/Build/source/texk/gregorio/gregorio-src/install-gtex.sh b/Build/source/texk/gregorio/gregorio-src/install-gtex.sh index 8501843a4e4..21a7b50a2e8 100755 --- a/Build/source/texk/gregorio/gregorio-src/install-gtex.sh +++ b/Build/source/texk/gregorio/gregorio-src/install-gtex.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2015 The Gregorio Project (see CONTRIBUTORS.md) # @@ -56,6 +56,10 @@ # # Creates a TDS-ready archive named gregoriotex.tds.zip # +# In special situations, you may want to skip some parts of the installation. +# To do this, set the SKIP environment variable to a comma-separated list of +# the parts you want don't want installed: tex, latex, fonts, docs, examples, +# and/or font-sources VERSION=`head -1 .gregorio-version` FILEVERSION=`echo $VERSION | sed 's/\./_/g'` @@ -66,9 +70,7 @@ LATEXFILES=(tex/gregorio*.sty) TTFFILES=(gregorio.ttf greciliae.ttf granapadano.ttf gregorio-op.ttf greciliae-op.ttf granapadano-op.ttf greextra.ttf gregall.ttf gresgmodern.ttf) -DOCFILES=(doc/Appendix*.tex doc/Command*.tex doc/Gabc.tex - doc/*Ref.tex doc/*Ref.lua doc/*.gabc - doc/Gregorio*Ref.pdf) +DOCFILES=(doc/*.tex doc/*.lua doc/*.gabc doc/*.pdf doc/README.md) EXAMPLEFILES=(examples/FactusEst.gabc examples/PopulusSion.gabc examples/main-lualatex.tex examples/debugging.tex) FONTSRCFILES=(gregorio-base.sfd granapadano-base.sfd greciliae-base.sfd @@ -159,24 +161,49 @@ function install_to { } function find_and_remove { - for files in $1; do + for files in "$@"; do target="${TEXMFROOT}/${files}" +# echo "Looking for $target" if [ -e "$target" ]; then +# echo "Removing $target" $RM -f "$target" fi done } +function not_installing { + echo "install-gtex.sh: not installing $@" +} + echo "Removing old files" find_and_remove "${LEGACYFILES[@]}" +declare -A skip_install +if [ -n "$SKIP" ] +then + IFS=, read -r -a skip <<< "$SKIP" + for skipped in "${skip[@]}" + do + # trim spaces + skipped="${skipped#"${skipped%%[![:space:]]*}"}" + skipped="${skipped%"${skipped##*[![:space:]]}"}" + skip_install[$skipped]=true + done +fi + echo "Installing in '${TEXMFROOT}'." -install_to "${TEXMFROOT}/tex/${FORMAT}/${NAME}" "${TEXFILES[@]}" -install_to "${TEXMFROOT}/tex/${LATEXFORMAT}/${NAME}" "${LATEXFILES[@]}" -install_to "${TEXMFROOT}/fonts/truetype/public/${NAME}" "${TTFFILES[@]}" -install_to "${TEXMFROOT}/doc/${FORMAT}/${NAME}" "${DOCFILES[@]}" -install_to "${TEXMFROOT}/doc/${FORMAT}/${NAME}/examples" "${EXAMPLEFILES[@]}" -install_to "${TEXMFROOT}/fonts/source/${NAME}" "${FONTSRCFILES[@]}" +${skip_install[tex]:-false} && not_installing tex files || + install_to "${TEXMFROOT}/tex/${FORMAT}/${NAME}" "${TEXFILES[@]}" +${skip_install[latex]:-false} && not_installing latex files || + install_to "${TEXMFROOT}/tex/${LATEXFORMAT}/${NAME}" "${LATEXFILES[@]}" +${skip_install[fonts]:-false} && not_installing fonts || + install_to "${TEXMFROOT}/fonts/truetype/public/${NAME}" "${TTFFILES[@]}" +${skip_install[docs]:-false} && not_installing docs || + install_to "${TEXMFROOT}/doc/${FORMAT}/${NAME}" "${DOCFILES[@]}" +${skip_install[examples]:-false} && not_installing examples || + install_to "${TEXMFROOT}/doc/${FORMAT}/${NAME}/examples" "${EXAMPLEFILES[@]}" +${skip_install[font-sources]:-false} && not_installing font sources || + install_to "${TEXMFROOT}/fonts/source/${NAME}" "${FONTSRCFILES[@]}" if [ "$arg" = 'tds' ] then diff --git a/Build/source/texk/gregorio/gregorio-src/src/Makefile.am b/Build/source/texk/gregorio/gregorio-src/src/Makefile.am index df996ee02e0..f0c275215b4 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/Makefile.am +++ b/Build/source/texk/gregorio/gregorio-src/src/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) +# Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) # # This file is part of Gregorio. # @@ -16,19 +16,16 @@ # along with Gregorio. If not, see <http://www.gnu.org/licenses/>. AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/src/gabc -I$(top_srcdir)/src/dump -I$(top_srcdir)/src/gregoriotex -AM_CFLAGS = +AM_CFLAGS = $(KPSE_CFLAGS) +LDADD = $(KPSE_LIBS) -gregorio_CFLAGS = $(KPSE_CFLAGS) -gregorio_LDADD = $(KPSE_LIBS) - -bin_PROGRAMS = gregorio -gregorio_SOURCES = gregorio-utils.c characters.c characters.h \ - messages.c messages.h struct.c struct.h enum_generator.h \ - unicode.c unicode.h sha1.c sha1.h support.c support.h \ - config.h bool.h plugins.h utf8strings.h dump/dump.c \ - gregoriotex/gregoriotex-write.c \ - gregoriotex/gregoriotex-position.c \ - gregoriotex/gregoriotex.h +bin_PROGRAMS = gregorio-$(FILENAME_VERSION) +gregorio___FILENAME_VERSION__SOURCES = \ + gregorio-utils.c characters.c characters.h messages.c messages.h struct.c \ + struct.h struct_iter.h enum_generator.h unicode.c unicode.h sha1.c sha1.h \ + support.c support.h config.h bool.h plugins.h utf8strings.h dump/dump.c \ + gregoriotex/gregoriotex-write.c gregoriotex/gregoriotex-position.c \ + gregoriotex/gregoriotex.h @MK@ifneq ($(wildcard ../.git),) @MK@ _tag_ = $(shell git describe --exact-match HEAD 2>/dev/null) @@ -46,40 +43,33 @@ gregorio_SOURCES = gregorio-utils.c characters.c characters.h \ @MK@endif # gabc files -gregorio_SOURCES += gabc/gabc-elements-determination.c gabc/gabc-write.c \ - gabc/gabc-glyphs-determination.c gabc/gabc.h \ - gabc/gabc-score-determination.h \ - gabc/gabc-score-determination-y.h \ - gabc/gabc-score-determination-y.c \ - gabc/gabc-score-determination-l.h \ - gabc/gabc-score-determination-l.c \ - gabc/gabc-notes-determination-l.c \ - vowel/vowel.h vowel/vowel.c vowel/vowel-rules.h \ - vowel/vowel-rules-l.h vowel/vowel-rules-l.c \ - vowel/vowel-rules-y.h vowel/vowel-rules-y.c +gregorio___FILENAME_VERSION__SOURCES += \ + gabc/gabc-elements-determination.c gabc/gabc-write.c \ + gabc/gabc-glyphs-determination.c gabc/gabc.h \ + gabc/gabc-score-determination.h gabc/gabc-score-determination.c \ + gabc/gabc-score-determination-y.h gabc/gabc-score-determination-y.c \ + gabc/gabc-score-determination-l.h gabc/gabc-score-determination-l.c \ + gabc/gabc-notes-determination-l.c vowel/vowel.h vowel/vowel.c \ + vowel/vowel-rules.h vowel/vowel-rules-l.h vowel/vowel-rules-l.c \ + vowel/vowel-rules-y.h vowel/vowel-rules-y.c EXTRA_DIST = encode_utf8strings.c utf8strings.h.in utf8strings.h \ - gabc/gabc-notes-determination.l \ - gabc/gabc-notes-determination-l.c \ - gabc/gabc-score-determination.h \ - gabc/gabc-score-determination.y \ - gabc/gabc-score-determination-y.h \ - gabc/gabc-score-determination-y.c \ - gabc/gabc-score-determination.l \ - gabc/gabc-score-determination-l.h \ - gabc/gabc-score-determination-l.c \ - vowel/vowel-rules.l \ - vowel/vowel-rules-l.h vowel/vowel-rules-l.c \ - vowel/vowel-rules.y \ - vowel/vowel-rules-y.h vowel/vowel-rules-y.c + gabc/gabc-notes-determination.l gabc/gabc-notes-determination-l.c \ + gabc/gabc-score-determination.h gabc/gabc-score-determination.y \ + gabc/gabc-score-determination-y.h \ + gabc/gabc-score-determination-y.c gabc/gabc-score-determination.l \ + gabc/gabc-score-determination-l.h \ + gabc/gabc-score-determination-l.c vowel/vowel-rules.l \ + vowel/vowel-rules-l.h vowel/vowel-rules-l.c vowel/vowel-rules.y \ + vowel/vowel-rules-y.h vowel/vowel-rules-y.c if HAVE_RC # Windows resources (see windows/README.md) gregorio-resources.o: ../windows/gregorio-resources.rc ../windows/gregorio.ico $(RC) $(RCFLAGS) $< -o $@ -gregorio_SOURCES += ../windows/gregorio-resources.rc ../windows/gregorio.ico -gregorio_LDADD += gregorio-resources.o +gregorio___FILENAME_VERSION__SOURCES += ../windows/gregorio-resources.rc ../windows/gregorio.ico +LDADD += gregorio-resources.o endif gabc/gabc-score-determination-y.c: gabc/gabc-score-determination.y @@ -136,16 +126,13 @@ clean-local: find . -name '*.gcno' -print | xargs rm -f -- find . -name '*.gcda' -print | xargs rm -f -- -BUILT_SOURCES = utf8strings.h \ - gabc/gabc-notes-determination-l.c \ - gabc/gabc-score-determination-l.c \ - gabc/gabc-score-determination-l.h \ - gabc/gabc-score-determination-y.c \ - gabc/gabc-score-determination-y.h \ - vowel/vowel-rules-l.c \ - vowel/vowel-rules-l.h \ - vowel/vowel-rules-y.c \ - vowel/vowel-rules-y.h +BUILT_SOURCES = utf8strings.h gabc/gabc-notes-determination-l.c \ + gabc/gabc-score-determination-l.c \ + gabc/gabc-score-determination-l.h \ + gabc/gabc-score-determination-y.c \ + gabc/gabc-score-determination-y.h vowel/vowel-rules-l.c \ + vowel/vowel-rules-l.h vowel/vowel-rules-y.c \ + vowel/vowel-rules-y.h CLEANFILES = encode_utf8strings${EXEEXT} MAINTAINERCLEANFILES = $(BUILT_SOURCES) diff --git a/Build/source/texk/gregorio/gregorio-src/src/characters.c b/Build/source/texk/gregorio/gregorio-src/src/characters.c index 51c68b51f96..b82e25e809f 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/characters.c +++ b/Build/source/texk/gregorio/gregorio-src/src/characters.c @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX. * This file contains functions that deal with lyrics and styles. * - * Copyright (C) 2008-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2008-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * diff --git a/Build/source/texk/gregorio/gregorio-src/src/characters.h b/Build/source/texk/gregorio/gregorio-src/src/characters.h index 32cea87401e..01fa80180ba 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/characters.h +++ b/Build/source/texk/gregorio/gregorio-src/src/characters.h @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This header prototypes the lyric handling data structures and entry points. * - * Copyright (C) 2008-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2008-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * diff --git a/Build/source/texk/gregorio/gregorio-src/src/dump/dump.c b/Build/source/texk/gregorio/gregorio-src/src/dump/dump.c index c394acf3fa4..db7e5a5f0c0 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/dump/dump.c +++ b/Build/source/texk/gregorio/gregorio-src/src/dump/dump.c @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX. * This file provides functions to dump out Gregorio structures. * - * Copyright (C) 2007-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2007-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * diff --git a/Build/source/texk/gregorio/gregorio-src/src/enum_generator.h b/Build/source/texk/gregorio/gregorio-src/src/enum_generator.h index e6c6ae1049e..7ea576e1cd8 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/enum_generator.h +++ b/Build/source/texk/gregorio/gregorio-src/src/enum_generator.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * diff --git a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-elements-determination.c b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-elements-determination.c index d279f6a3d59..b6e914e5546 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-elements-determination.c +++ b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-elements-determination.c @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX. * This file provides functions for determining elements from notes. * - * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -198,8 +198,15 @@ static gregorio_element *gabc_det_elements_from_glyphs( } break; + case G_STROPHA_AUCTA: + case G_STROPHA: + if (current_glyph->u.notes.liquescentia + & (L_AUCTUS_ASCENDENS | L_AUCTUS_DESCENDENS)) { + force_cut = true; + } + /* fall through */ case PUNCTA_INCLINATA_DESCENDENS_GLYPH: - /* we don't cut before, so we don't do anything */ + /* we don't cut before, so we don't do anything else */ if (do_not_cut) { do_not_cut = false; } @@ -239,6 +246,16 @@ static gregorio_element *gabc_det_elements_from_glyphs( } break; + case G_PODATUS: + if (current_glyph->u.notes.glyph_type == G_VIRGA) { + ambitus = glyph_note_ambitus(current_glyph, previous_glyph); + if (ambitus >= 0) { + do_not_cut = false; + break_early = true; + } + } + break; + default: /* do nothing in particular */ break; @@ -294,23 +311,27 @@ static gregorio_element *gabc_det_elements_from_glyphs( static gregorio_element *gabc_det_elements_from_notes( gregorio_note *current_note, int *current_key, + gregorio_shape *const punctum_inclinatum_orientation, const gregorio_score *const score) { gregorio_element *final = NULL; gregorio_glyph *tmp = gabc_det_glyphs_from_notes(current_note, current_key, - score); + punctum_inclinatum_orientation, score); final = gabc_det_elements_from_glyphs(tmp); return final; } gregorio_element *gabc_det_elements_from_string(char *const str, int *const current_key, char *macros[10], - gregorio_scanner_location *const loc, const gregorio_score *const score) + gregorio_scanner_location *const loc, + gregorio_shape *const punctum_inclinatum_orientation, + const gregorio_score *const score) { gregorio_element *final; gregorio_note *tmp; tmp = gabc_det_notes_from_string(str, macros, loc, score); - final = gabc_det_elements_from_notes(tmp, current_key, score); + final = gabc_det_elements_from_notes(tmp, current_key, + punctum_inclinatum_orientation, score); return final; } diff --git a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-glyphs-determination.c b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-glyphs-determination.c index 3d06eadda00..0569dec78e2 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-glyphs-determination.c +++ b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-glyphs-determination.c @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This file provides functions for determining glyphs from notes. * - * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -81,11 +81,12 @@ static __inline gregorio_scanner_location *copy_note_location( * ****************************/ -static char gregorio_add_note_to_a_glyph(gregorio_glyph_type current_glyph_type, +static char add_note_to_a_glyph(gregorio_glyph_type current_glyph_type, char current_pitch, char last_pitch, gregorio_shape shape, gregorio_liquescentia liquescentia, gregorio_note *current_glyph_first_note, - gabc_determination * end_of_glyph) + gabc_determination *end_of_glyph, + gregorio_shape *punctum_inclinatum_orientation) { /* next glyph type is the type of the glyph that will be returned (the @@ -167,7 +168,7 @@ static char gregorio_add_note_to_a_glyph(gregorio_glyph_type current_glyph_type, *end_of_glyph = DET_END_OF_PREVIOUS; } break; - case G_VIRGA_STRATA: + case G_VIRGA_STRATA: /* really a pes stratus */ if (current_pitch > last_pitch) { next_glyph_type = G_SALICUS; } else { @@ -291,7 +292,9 @@ static char gregorio_add_note_to_a_glyph(gregorio_glyph_type current_glyph_type, next_glyph_type = G_PUNCTUM; } break; - case S_PUNCTUM_INCLINATUM: + case S_PUNCTUM_INCLINATUM_UNDETERMINED: + case S_PUNCTUM_INCLINATUM_ASCENDENS: + case S_PUNCTUM_INCLINATUM_DESCENDENS: case S_PUNCTUM_CAVUM_INCLINATUM: /* * Warning : this part of the code is specific to the @@ -311,6 +314,16 @@ static char gregorio_add_note_to_a_glyph(gregorio_glyph_type current_glyph_type, next_glyph_type = G_PUNCTUM_INCLINATUM; break; } + if ((shape == S_PUNCTUM_INCLINATUM_ASCENDENS + || shape == S_PUNCTUM_INCLINATUM_DESCENDENS) + && *punctum_inclinatum_orientation != shape + && *punctum_inclinatum_orientation + != S_PUNCTUM_INCLINATUM_UNDETERMINED) { + /* change of orientation ends the glyph */ + *end_of_glyph = DET_END_OF_PREVIOUS; + next_glyph_type = G_PUNCTUM_INCLINATUM; + break; + } switch (current_glyph_type) { case G_PUNCTUM_INCLINATUM: if (last_pitch < current_pitch) { @@ -402,7 +415,7 @@ static char gregorio_add_note_to_a_glyph(gregorio_glyph_type current_glyph_type, default: /* not reachable unless there's a programming error */ /* LCOV_EXCL_START */ - gregorio_fail2(gregorio_add_note_to_a_glyph, "unexpected shape: %s", + gregorio_fail2(add_note_to_a_glyph, "unexpected shape: %s", gregorio_shape_to_string(shape)); break; /* LCOV_EXCL_STOP */ @@ -443,7 +456,7 @@ static char gregorio_add_note_to_a_glyph(gregorio_glyph_type current_glyph_type, gregorio_message(_("Encountered the need to switch " "DET_END_OF_CURRENT to DET_END_OF_BOTH because of " "overly large ambitus"), - "gregorio_add_note_to_a_glyph", VERBOSITY_WARNING, + "add_note_to_a_glyph", VERBOSITY_WARNING, __LINE__); *end_of_glyph = DET_END_OF_BOTH; } else { @@ -453,6 +466,22 @@ static char gregorio_add_note_to_a_glyph(gregorio_glyph_type current_glyph_type, } } + switch (shape) { + case S_PUNCTUM_CAVUM_INCLINATUM: + /* treat this as descendens */ + *punctum_inclinatum_orientation = S_PUNCTUM_INCLINATUM_DESCENDENS; + break; + case S_PUNCTUM_INCLINATUM_ASCENDENS: + case S_PUNCTUM_INCLINATUM_DESCENDENS: + *punctum_inclinatum_orientation = shape; + break; + case S_PUNCTUM_INCLINATUM_UNDETERMINED: + break; + default: + *punctum_inclinatum_orientation = S_PUNCTUM_INCLINATUM_UNDETERMINED; + break; + } + return next_glyph_type; } @@ -641,7 +670,8 @@ static void add_intervening_texverbs(gregorio_glyph **last_glyph, static gregorio_note *close_fusion_glyph(gregorio_glyph **last_glyph, gregorio_note **first_note, gregorio_liquescentia liquescentia, - gregorio_note *real_last_note) + gregorio_note *real_last_note, + gregorio_shape *const punctum_inclinatum_orientation) { bool first = true; gregorio_note *last_note, *texverb_tail; @@ -675,10 +705,14 @@ static gregorio_note *close_fusion_glyph(gregorio_glyph **last_glyph, gregorio_free_one_note(first_note); } - gregorio_assert( - *first_note != last_note && (next = (*first_note)->next), - close_fusion_glyph, "Unexpected single note during fusion", - return last_note); + if (*first_note == last_note) { + close_fused_glyph(last_glyph, G_PUNCTUM, first_note, + liquescentia & ~TAIL_LIQUESCENTIA_MASK, last_note); + return last_note; + } + + gregorio_assert((*first_note)->next, close_fusion_glyph, + "Unexpected single note during fusion", return last_note); next = next_non_texverb_note(*first_note, last_note); @@ -729,9 +763,10 @@ static gregorio_note *close_fusion_glyph(gregorio_glyph **last_glyph, /* didn't find anything interesting, so fuse the single note */ gabc_determination ignored; gregorio_glyph_type next_glyph_type = - gregorio_add_note_to_a_glyph(G_UNDETERMINED, + add_note_to_a_glyph(G_UNDETERMINED, (*first_note)->u.note.pitch, 0, (*first_note)->u.note.shape, - (*first_note)->u.note.liquescentia, *first_note, &ignored); + (*first_note)->u.note.liquescentia, *first_note, &ignored, + punctum_inclinatum_orientation); close_fused_glyph(last_glyph, next_glyph_type, first_note, liquescentia & ~TAIL_LIQUESCENTIA_MASK, *first_note); prev_shift = shift; @@ -746,11 +781,28 @@ static gregorio_note *close_fusion_glyph(gregorio_glyph **last_glyph, static gregorio_note *close_glyph(gregorio_glyph **last_glyph, gregorio_glyph_type glyph_type, gregorio_note **first_note, - gregorio_liquescentia liquescentia, gregorio_note *current_note) + gregorio_liquescentia liquescentia, gregorio_note *current_note, + gregorio_shape *const punctum_inclinatum_orientation) { + /* special case for fusion when rarer shapes don't exist */ + if (glyph_type == G_TORCULUS) { + switch ((*first_note)->u.note.shape) { + case S_ORISCUS_UNDETERMINED: + case S_ORISCUS_ASCENDENS: + case S_ORISCUS_DESCENDENS: + case S_ORISCUS_SCAPUS_UNDETERMINED: + case S_ORISCUS_SCAPUS_ASCENDENS: + case S_ORISCUS_SCAPUS_DESCENDENS: + glyph_type = G_FUSED; + break; + default: + break; + } + } + if (glyph_type == G_FUSED) { return close_fusion_glyph(last_glyph, first_note, liquescentia, - current_note); + current_note, punctum_inclinatum_orientation); } else { return close_normal_glyph(last_glyph, glyph_type, first_note, liquescentia, current_note); @@ -826,14 +878,15 @@ static char gabc_determine_custo_pitch(gregorio_note *current_note, * have the shape quilisma for very rare forms). But these shapes must * not appear in the final form of the score, and we transform them * respectively in punctum and quilisma (and the glyph type must be - * pes_quadratum, but it is done in gregorio_add_note_to_a_glyph). + * pes_quadratum, but it is done in add_note_to_a_glyph). * ****************************/ /* this function updates current_key with the new values (with clef changes) */ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, - int *current_key, const gregorio_score *const score) + int *current_key, gregorio_shape *const punctum_inclinatum_orientation, + const gregorio_score *const score) { /* the first note of the current glyph, to be able to close it well: * later we will cut the link (next_notes and previous_note) between @@ -851,7 +904,7 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, gregorio_note *next_note = NULL; /* determination of end of glyphs, see comments on - * gregorio_add_note_to_a_glyph */ + * add_note_to_a_glyph */ gabc_determination end_of_glyph = DET_NO_END; /* a char representing the liquescentia of the current glyph */ @@ -882,7 +935,7 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, if (current_glyph_type != G_UNDETERMINED) { close_glyph(&last_glyph, next_glyph_type, ¤t_glyph_first_note, liquescentia, - current_note->previous); + current_note->previous, punctum_inclinatum_orientation); current_glyph_type = G_UNDETERMINED; liquescentia = L_NO_LIQUESCENTIA; } @@ -965,7 +1018,8 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, /* if it is not the first glyph */ close_glyph(&last_glyph, current_glyph_type, ¤t_glyph_first_note, - liquescentia, current_note->previous); + liquescentia, current_note->previous, + punctum_inclinatum_orientation); current_glyph_type = G_UNDETERMINED; } liquescentia = head_liquescentia; @@ -991,7 +1045,7 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, liquescentia |= current_note->u.note.liquescentia; current_note = close_glyph(&last_glyph, G_FUSED, ¤t_glyph_first_note, liquescentia, - current_note); + current_note, punctum_inclinatum_orientation); current_glyph_type = G_UNDETERMINED; liquescentia = L_NO_LIQUESCENTIA; add = false; @@ -999,16 +1053,24 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, switch (current_note->u.note.shape) { case S_PUNCTUM: case S_ORISCUS_UNDETERMINED: + case S_ORISCUS_ASCENDENS: + case S_ORISCUS_DESCENDENS: case S_ORISCUS_SCAPUS_UNDETERMINED: + case S_ORISCUS_SCAPUS_ASCENDENS: + case S_ORISCUS_SCAPUS_DESCENDENS: case S_QUILISMA: case S_QUADRATUM: case S_QUILISMA_QUADRATUM: /* these are fusible */ - if (current_glyph_type <= G_PUNCTA_INCLINATA) { + if (current_glyph_type <= G_PUNCTA_INCLINATA + || current_note->u.note.shape != S_PUNCTUM) { /* if we had some puncta inclinata, then end them */ + /* if the current shape is not a punctum, start a + * new shape */ close_glyph(&last_glyph, current_glyph_type, ¤t_glyph_first_note, - liquescentia, current_note->previous); + liquescentia, current_note->previous, + punctum_inclinatum_orientation); if (!(current_note->u.note.liquescentia & L_INITIO_DEBILIS)) { current_note->u.note.liquescentia |= L_FUSED; @@ -1029,12 +1091,12 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, } if (add) { - next_glyph_type = - gregorio_add_note_to_a_glyph(current_glyph_type, + next_glyph_type = add_note_to_a_glyph(current_glyph_type, current_note->u.note.pitch, last_pitch, current_note->u.note.shape, current_note->u.note.liquescentia, - current_glyph_first_note, &end_of_glyph); + current_glyph_first_note, &end_of_glyph, + punctum_inclinatum_orientation); } /* patch to have good shapes in the special cases of pes quadratum and @@ -1054,7 +1116,7 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, } if (add) { - /* see comments on gregorio_add_note_to_a_glyph for the meaning of + /* see comments on add_note_to_a_glyph for the meaning of * end_of_glyph */ switch (end_of_glyph) { case DET_NO_END: @@ -1086,25 +1148,34 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, } /* special cases of the punctum inclinatum deminutus and * auctus */ - if (current_note->u.note.shape == S_PUNCTUM_INCLINATUM) { + if (current_note->u.note.shape + == S_PUNCTUM_INCLINATUM_ASCENDENS + || current_note->u.note.shape + == S_PUNCTUM_INCLINATUM_DESCENDENS + || current_note->u.note.shape + == S_PUNCTUM_INCLINATUM_UNDETERMINED) { if (current_note->u.note.liquescentia == L_DEMINUTUS) { current_note->u.note.shape = S_PUNCTUM_INCLINATUM_DEMINUTUS; } - if (current_note->u.note.liquescentia == - L_AUCTUS_DESCENDENS - || current_note->u.note.liquescentia == - L_AUCTUS_ASCENDENS) { + if (current_note->u.note.liquescentia + == L_AUCTUS_DESCENDENS + || current_note->u.note.liquescentia + == L_AUCTUS_ASCENDENS) { current_note->u.note.shape = S_PUNCTUM_INCLINATUM_AUCTUS; } if (current_note->next && current_note->next->type == GRE_NOTE - && current_note->next->u.note.shape == - S_PUNCTUM_INCLINATUM - && current_note->next->u.note.liquescentia == - L_DEMINUTUS) { + && (current_note->next->u.note.shape + == S_PUNCTUM_INCLINATUM_ASCENDENS + || current_note->next->u.note.shape + == S_PUNCTUM_INCLINATUM_DESCENDENS + || current_note->next->u.note.shape + == S_PUNCTUM_INCLINATUM_UNDETERMINED) + && current_note->next->u.note.liquescentia + == L_DEMINUTUS) { last_pitch = current_note->u.note.pitch; current_note = next_note; continue; @@ -1122,8 +1193,12 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, if (current_note->next && current_note->next->type == GRE_NOTE - && current_note->next->u.note.shape == - S_PUNCTUM_INCLINATUM + && (current_note->next->u.note.shape + == S_PUNCTUM_INCLINATUM_ASCENDENS + || current_note->next->u.note.shape + == S_PUNCTUM_INCLINATUM_DESCENDENS + || current_note->next->u.note.shape + == S_PUNCTUM_INCLINATUM_UNDETERMINED) && current_note->next->u.note.liquescentia == L_DEMINUTUS) { last_pitch = current_note->u.note.pitch; @@ -1135,7 +1210,8 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, /* once again, only works with the good values in the header * file */ current_note = close_glyph(&last_glyph, current_glyph_type, - ¤t_glyph_first_note, liquescentia, current_note); + ¤t_glyph_first_note, liquescentia, + current_note, punctum_inclinatum_orientation); current_glyph_type = G_UNDETERMINED; liquescentia = L_NO_LIQUESCENTIA; } @@ -1146,7 +1222,8 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, /* we don't want to close previous glyph twice */ close_glyph(&last_glyph, current_glyph_type, ¤t_glyph_first_note, liquescentia, - current_note->previous); + current_note->previous, + punctum_inclinatum_orientation); } current_glyph_type = next_glyph_type; liquescentia = L_NO_LIQUESCENTIA; @@ -1158,7 +1235,12 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, { /* special cases of the punctum inclinatum deminutus and * auctus */ - if (current_note->u.note.shape == S_PUNCTUM_INCLINATUM) { + if (current_note->u.note.shape + == S_PUNCTUM_INCLINATUM_ASCENDENS + || current_note->u.note.shape + == S_PUNCTUM_INCLINATUM_DESCENDENS + || current_note->u.note.shape + == S_PUNCTUM_INCLINATUM_UNDETERMINED) { if (current_note->u.note.liquescentia == L_DEMINUTUS) { current_note->u.note.shape = S_PUNCTUM_INCLINATUM_DEMINUTUS; @@ -1172,8 +1254,12 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, } if (current_note->next && current_note->next->type == GRE_NOTE - && current_note->next->u.note.shape == - S_PUNCTUM_INCLINATUM + && (current_note->next->u.note.shape + == S_PUNCTUM_INCLINATUM_ASCENDENS + || current_note->next->u.note.shape + == S_PUNCTUM_INCLINATUM_DESCENDENS + || current_note->next->u.note.shape + == S_PUNCTUM_INCLINATUM_UNDETERMINED) && current_note->next->u.note.liquescentia == L_DEMINUTUS) { current_note = next_note; @@ -1192,8 +1278,12 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, if (current_note->next && current_note->next->type == GRE_NOTE - && current_note->next->u.note.shape == - S_PUNCTUM_INCLINATUM + && (current_note->next->u.note.shape + == S_PUNCTUM_INCLINATUM_ASCENDENS + || current_note->next->u.note.shape + == S_PUNCTUM_INCLINATUM_DESCENDENS + || current_note->next->u.note.shape + == S_PUNCTUM_INCLINATUM_UNDETERMINED) && current_note->next->u.note.liquescentia == L_DEMINUTUS) { current_note = next_note; @@ -1202,7 +1292,8 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, } current_note = close_glyph(&last_glyph, current_glyph_type, ¤t_glyph_first_note, - current_note->u.note.liquescentia, current_note); + current_note->u.note.liquescentia, current_note, + punctum_inclinatum_orientation); current_glyph_type = G_UNDETERMINED; } break; @@ -1210,7 +1301,8 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, liquescentia += current_note->u.note.liquescentia; /* once again, only works with the good values in the header file */ current_note = close_glyph(&last_glyph, next_glyph_type, - ¤t_glyph_first_note, liquescentia, current_note); + ¤t_glyph_first_note, liquescentia, current_note, + punctum_inclinatum_orientation); current_glyph_type = G_UNDETERMINED; liquescentia = L_NO_LIQUESCENTIA; break; @@ -1220,13 +1312,15 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, /* we don't want to close previous glyph twice */ close_glyph(&last_glyph, current_glyph_type, ¤t_glyph_first_note, liquescentia, - current_note->previous); + current_note->previous, + punctum_inclinatum_orientation); } current_glyph_type = G_UNDETERMINED; liquescentia = L_NO_LIQUESCENTIA; current_note = close_glyph(&last_glyph, next_glyph_type, ¤t_glyph_first_note, - current_note->u.note.liquescentia, current_note); + current_note->u.note.liquescentia, current_note, + punctum_inclinatum_orientation); break; } } @@ -1234,7 +1328,8 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, if (!next_note && current_glyph_type != G_UNDETERMINED) { /* we must end the determination here */ current_note = close_glyph(&last_glyph, current_glyph_type, - ¤t_glyph_first_note, liquescentia, current_note); + ¤t_glyph_first_note, liquescentia, current_note, + punctum_inclinatum_orientation); } last_pitch = current_note->u.note.pitch; diff --git a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-notes-determination-l.c b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-notes-determination-l.c index 919f86d5383..3c17f898dff 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-notes-determination-l.c +++ b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-notes-determination-l.c @@ -1909,9 +1909,9 @@ static yyconst flex_int32_t yy_nxt[][256] = -48, -48, -48, -48, -48, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, -48, 113, -48, -48, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -48, -48, -48, -48, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, -48, 113, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -48, -48, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, -48, 114, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, @@ -1935,7 +1935,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, - -49, -49, -49, -49, -49, -49, -49, -49, 114, 114, + -49, -49, -49, -49, -49, -49, -49, -49, 115, 115, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, @@ -1966,13 +1966,13 @@ static yyconst flex_int32_t yy_nxt[][256] = 39, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, - -50, -50, -50, 115, -50, -50, -50, -50, -50, -50, - -50, -50, -50, -50, -50, -50, -50, 116, 117, -50, + -50, -50, -50, 116, -50, -50, -50, -50, -50, -50, + -50, -50, -50, -50, -50, -50, -50, 117, 118, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, - -50, 118, -50, -50, -50, -50, -50, -50, -50, -50, + -50, 119, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, @@ -2000,7 +2000,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, - -51, -51, -51, -51, -51, -51, -51, -51, 119, -51, + -51, -51, -51, -51, -51, -51, -51, -51, 120, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, @@ -2062,14 +2062,14 @@ static yyconst flex_int32_t yy_nxt[][256] = -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, - -53, -53, -53, -53, -53, -53, -53, 120, -53, -53, + -53, -53, -53, -53, -53, -53, -53, 121, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, - 121, -53, -53, -53, -53, -53, -53, -53, -53, -53, + 122, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, @@ -2159,12 +2159,12 @@ static yyconst flex_int32_t yy_nxt[][256] = -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, - -56, -56, -56, -56, -56, 122, 122, 122, 122, 122, - 122, 122, 122, 122, 122, 122, 122, 122, 122, -56, - 122, -56, -56, -56, -56, -56, -56, -56, -56, -56, - -56, 123, -56, -56, -56, -56, -56, 122, 122, 124, - 122, 122, 124, 122, 122, 122, 122, 122, 122, 122, - 122, -56, 122, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, 123, 123, 123, 123, 123, + 123, 123, 123, 123, 123, 123, 123, 123, 123, -56, + 123, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, 124, -56, -56, -56, -56, -56, 125, 125, 126, + 125, 125, 126, 125, 125, 125, 125, 125, 125, 125, + 125, -56, 125, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, @@ -2188,15 +2188,15 @@ static yyconst flex_int32_t yy_nxt[][256] = -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, - -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, + -57, -57, -57, -57, -57, -57, -57, -57, 127, 127, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, - -57, -57, -57, -57, -57, -57, 125, -57, -57, -57, + -57, -57, -57, -57, -57, -57, 128, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, - -57, -57, -57, -57, -57, 126, -57, -57, 127, -57, + -57, -57, -57, -57, -57, 129, -57, -57, 130, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, @@ -2220,7 +2220,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, - -58, -58, -58, -58, -58, -58, -58, -58, 128, 129, + -58, -58, -58, -58, -58, -58, -58, -58, 131, 132, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, @@ -2346,7 +2346,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, - -62, -62, -62, 130, -62, 131, -62, -62, -62, -62, + -62, -62, -62, 133, -62, 134, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, @@ -2383,9 +2383,9 @@ static yyconst flex_int32_t yy_nxt[][256] = -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, - -63, -63, -63, -63, -63, -63, -63, 132, -63, 133, - -63, 134, -63, 135, 136, -63, -63, -63, 137, -63, - 138, 139, -63, -63, -63, -63, -63, 140, -63, -63, + -63, -63, -63, -63, -63, -63, -63, 135, -63, 136, + -63, 137, -63, 138, 139, -63, -63, -63, 140, -63, + 141, 142, -63, -63, -63, -63, -63, 143, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, @@ -2441,8 +2441,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, - -65, -65, -65, -65, -65, -65, -65, -65, 141, 141, - 141, 141, 141, 141, -65, -65, -65, -65, -65, -65, + -65, -65, -65, -65, -65, -65, -65, -65, 144, 144, + 144, 144, 144, 144, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, @@ -2504,15 +2504,15 @@ static yyconst flex_int32_t yy_nxt[][256] = -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, - -67, -67, -67, 142, -67, -67, -67, -67, -67, -67, + -67, -67, -67, 145, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, - -67, -67, -67, -67, -67, -67, 125, -67, -67, -67, + -67, -67, -67, -67, -67, -67, 128, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, - -67, -67, -67, -67, -67, 126, -67, -67, 127, -67, + -67, -67, -67, -67, -67, 129, -67, -67, 130, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, @@ -2536,14 +2536,14 @@ static yyconst flex_int32_t yy_nxt[][256] = -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, - -68, -68, -68, 142, -68, -68, -68, -68, -68, 143, - 143, 143, 143, 143, -68, -68, -68, -68, -68, -68, + -68, -68, -68, 145, -68, -68, -68, -68, -68, 146, + 146, 146, 146, 146, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, - -68, -68, -68, -68, -68, -68, 125, -68, -68, -68, - -68, -68, -68, -68, -68, -68, -68, -68, 144, -68, + -68, -68, -68, -68, -68, -68, 128, -68, -68, -68, + -68, -68, -68, -68, -68, -68, -68, -68, 147, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, - -68, -68, -68, -68, -68, 126, -68, -68, 127, -68, + -68, -68, -68, -68, -68, 129, -68, -68, 130, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, @@ -2567,7 +2567,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, - -69, -69, -69, -69, -69, -69, -69, -69, 145, 146, + -69, -69, -69, -69, -69, -69, -69, -69, 148, 149, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, @@ -2631,8 +2631,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, - -71, -71, -71, -71, -71, -71, -71, -71, 147, 148, - 149, 150, 151, 152, -71, -71, -71, -71, -71, -71, + -71, -71, -71, -71, -71, -71, -71, -71, 150, 151, + 152, 153, 154, 155, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, @@ -2820,7 +2820,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, - -77, -77, -77, 153, -77, 154, -77, -77, 155, -77, + -77, -77, -77, 156, -77, 157, -77, -77, 158, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, @@ -2942,35 +2942,35 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 39, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 39, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, -81, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, -81, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156 + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159 }, { @@ -3005,114 +3005,17 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 39, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, -83, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157 - }, - - { - 39, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, -84, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158 - - }, - - { - 39, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, -85, 159, 159, 159, 159, 159, 159, - - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159 - }, - - { 39, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, -86, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, -83, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, @@ -3128,6 +3031,8 @@ static yyconst flex_int32_t yy_nxt[][256] = 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160 }, @@ -3138,13 +3043,11 @@ static yyconst flex_int32_t yy_nxt[][256] = 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, -87, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, -84, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, @@ -3159,15 +3062,14 @@ static yyconst flex_int32_t yy_nxt[][256] = 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161 + }, { 39, 162, 162, 162, 162, 162, 162, 162, 162, 162, - -88, 162, 162, -88, 162, 162, 162, 162, 162, 162, - - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, @@ -3176,6 +3078,7 @@ static yyconst flex_int32_t yy_nxt[][256] = 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, -85, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, @@ -3191,39 +3094,41 @@ static yyconst flex_int32_t yy_nxt[][256] = 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162 }, { - 39, -89, -89, -89, -89, -89, -89, -89, -89, -89, - 163, -89, -89, 163, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + 39, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, -86, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89 + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163 }, { @@ -3235,11 +3140,9 @@ static yyconst flex_int32_t yy_nxt[][256] = 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, -90, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, -87, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, @@ -3254,21 +3157,21 @@ static yyconst flex_int32_t yy_nxt[][256] = 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164 }, { 39, 165, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + -88, 165, 165, -88, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, -91, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, @@ -3286,54 +3189,54 @@ static yyconst flex_int32_t yy_nxt[][256] = 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165 }, { - 39, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 39, -89, -89, -89, -89, -89, -89, -89, -89, -89, + 166, -89, -89, 166, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, -92, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89 - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166 }, { 39, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, -93, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, -90, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, @@ -3349,10 +3252,107 @@ static yyconst flex_int32_t yy_nxt[][256] = 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167 }, { + 39, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, -91, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168 + }, + + { + 39, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, -92, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169 + }, + + { + 39, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, -93, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170 + }, + + { 39, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, @@ -3389,8 +3389,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, - -95, -95, -95, -95, -95, -95, 168, -95, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, -95, -95, + -95, -95, -95, -95, -95, -95, 171, -95, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, @@ -3421,8 +3421,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, - -96, -96, -96, -96, -96, -96, -96, -96, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, -96, -96, + -96, -96, -96, -96, -96, -96, -96, -96, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, @@ -3452,13 +3452,13 @@ static yyconst flex_int32_t yy_nxt[][256] = -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, - -97, -97, -97, -97, -97, -97, 171, -97, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, -97, -97, + -97, -97, -97, -97, -97, -97, 174, -97, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, - -97, -97, -97, 172, -97, -97, -97, -97, -97, -97, + -97, -97, -97, 175, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, @@ -3484,8 +3484,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, - -98, -98, -98, -98, -98, -98, 173, -98, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, -98, -98, + -98, -98, -98, -98, -98, -98, 176, -98, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, @@ -3515,8 +3515,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, - -99, -99, -99, -99, -99, -99, -99, -99, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, -99, -99, + -99, -99, -99, -99, -99, -99, -99, -99, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, @@ -3547,12 +3547,12 @@ static yyconst flex_int32_t yy_nxt[][256] = -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, - -100, -100, -100, -100, -100, -100, 176, -100, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, -100, -100, + -100, -100, -100, -100, -100, -100, 179, -100, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, - -100, -100, -100, 177, -100, -100, -100, -100, -100, -100, + -100, -100, -100, 180, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, @@ -3574,117 +3574,20 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 39, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, -101, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, -101, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178 - }, - - { - 39, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, -102, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179 - }, - - { - 39, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, -103, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180 - }, - - { 39, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, -104, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, -101, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, -104, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, -101, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, @@ -3696,8 +3599,10 @@ static yyconst flex_int32_t yy_nxt[][256] = 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181 + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181 }, { @@ -3709,11 +3614,9 @@ static yyconst flex_int32_t yy_nxt[][256] = 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, -105, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, -102, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, @@ -3728,23 +3631,23 @@ static yyconst flex_int32_t yy_nxt[][256] = 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182 }, { 39, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, -106, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, -103, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, @@ -3760,10 +3663,107 @@ static yyconst flex_int32_t yy_nxt[][256] = 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183 }, { + 39, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, -104, + + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, -104, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184 + + }, + + { + 39, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, -105, 185, 185, 185, 185, 185, 185, + + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185 + }, + + { + 39, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, -106, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186 + }, + + { 39, -107, -107, -107, -107, -107, -107, -107, -107, 107, 107, -107, -107, 107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, @@ -3862,13 +3862,13 @@ static yyconst flex_int32_t yy_nxt[][256] = 39, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, - -110, -110, -110, 115, -110, -110, -110, -110, -110, -110, - -110, -110, -110, -110, -110, -110, -110, 184, 117, -110, + -110, -110, -110, 116, -110, -110, -110, -110, -110, -110, + -110, -110, -110, -110, -110, -110, -110, 187, 118, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, - -110, 185, -110, -110, -110, -110, -110, -110, -110, -110, + -110, 188, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, @@ -3958,7 +3958,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, - -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, + -113, -113, -113, -113, -113, -113, -113, -113, 189, 189, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, @@ -4058,7 +4058,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, - -116, 186, -116, -116, -116, -116, -116, -116, -116, -116, + -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, @@ -4090,7 +4090,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, - -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, + -117, 190, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, @@ -4187,7 +4187,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, - 187, -120, -120, -120, -120, -120, -120, -120, -120, -120, + -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, @@ -4217,8 +4217,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, - -121, -121, -121, -121, -121, -121, -121, -121, 188, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, + 191, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, @@ -4249,7 +4249,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, - -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, + -122, -122, -122, -122, -122, -122, -122, -122, 192, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, @@ -4274,7 +4274,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, - -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, + -123, -123, -123, -123, -123, -123, -123, -123, 193, 193, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, @@ -4305,13 +4305,13 @@ static yyconst flex_int32_t yy_nxt[][256] = -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, - -124, -124, -124, -124, -124, -124, -124, -124, -124, 189, - 189, 189, 189, 189, -124, -124, -124, -124, -124, -124, + -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, + -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, - -124, -124, -124, -124, -124, -124, -124, -124, 190, -124, + -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, @@ -4341,7 +4341,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, - -125, -125, -125, -125, -125, -125, 191, -125, -125, -125, + -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, @@ -4369,16 +4369,16 @@ static yyconst flex_int32_t yy_nxt[][256] = -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, + -126, -126, -126, -126, -126, -126, -126, -126, -126, 194, + 194, 194, 194, 194, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, + -126, -126, -126, -126, -126, -126, -126, -126, 195, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, - -126, -126, -126, -126, -126, 192, -126, -126, -126, -126, - -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, - -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, @@ -4408,7 +4408,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, - -127, -127, -127, -127, -127, -127, -127, -127, 193, -127, + -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, @@ -4436,7 +4436,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, + -128, -128, -128, -128, -128, -128, 196, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, @@ -4471,7 +4471,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, - -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, + -129, -129, -129, -129, -129, 197, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, -129, @@ -4503,7 +4503,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, - -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, + -130, -130, -130, -130, -130, -130, -130, -130, 198, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, @@ -4565,7 +4565,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, - -132, -132, -132, -132, -132, -132, -132, -132, 194, -132, + -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, @@ -4597,7 +4597,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, - 195, -133, -133, -133, -133, 196, -133, -133, -133, -133, + -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, @@ -4628,8 +4628,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, - -134, -134, -134, -134, -134, -134, -134, -134, -134, 197, - -134, -134, -134, -134, -134, -134, -134, -134, 198, -134, + -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, + -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, @@ -4660,8 +4660,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, - -135, -135, -135, -135, -135, -135, -135, -135, -135, 199, - -135, -135, -135, -135, -135, -135, -135, -135, 200, -135, + -135, -135, -135, -135, -135, -135, -135, -135, 199, -135, + -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, @@ -4691,8 +4691,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, - -136, -136, -136, -136, -136, -136, -136, -136, 201, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, + 200, -136, -136, -136, -136, 201, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, @@ -4723,8 +4723,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, - -137, -137, -137, -137, -137, -137, -137, -137, 202, -137, - -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, + -137, -137, -137, -137, -137, -137, -137, -137, -137, 202, + -137, -137, -137, -137, -137, -137, -137, -137, 203, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, @@ -4754,8 +4754,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, - -138, -138, -138, -138, -138, -138, -138, -138, -138, 203, - -138, -138, -138, -138, -138, -138, -138, -138, 204, -138, + -138, -138, -138, -138, -138, -138, -138, -138, -138, 204, + -138, -138, -138, -138, -138, -138, -138, -138, 205, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, @@ -4785,9 +4785,9 @@ static yyconst flex_int32_t yy_nxt[][256] = -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, - -139, -139, -139, -139, -139, -139, -139, -139, 205, 206, - -139, -139, -139, -139, 207, -139, -139, -139, 208, -139, - -139, -139, -139, -139, -139, 209, -139, -139, -139, -139, + -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, + -139, -139, -139, -139, -139, -139, -139, -139, 206, -139, + -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, @@ -4816,10 +4816,10 @@ static yyconst flex_int32_t yy_nxt[][256] = -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, - -140, -140, -140, -140, -140, -140, -140, -140, 210, -140, + -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, - -140, -140, -140, -140, 207, -140, -140, -140, 211, -140, - -140, -140, -140, -140, -140, 209, -140, -140, -140, -140, + -140, -140, -140, -140, -140, -140, -140, -140, 207, -140, + -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, @@ -4843,14 +4843,14 @@ static yyconst flex_int32_t yy_nxt[][256] = -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, - -141, -141, -141, -141, -141, -141, -141, -141, 141, 141, - 141, 141, 141, 141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, + -141, -141, -141, -141, -141, -141, -141, -141, -141, 208, + -141, -141, -141, -141, -141, -141, -141, -141, 209, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, @@ -4880,9 +4880,9 @@ static yyconst flex_int32_t yy_nxt[][256] = -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, - -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, - -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, - -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, + -142, -142, -142, -142, -142, -142, -142, -142, 210, 211, + -142, -142, -142, -142, 212, -142, -142, -142, 213, -142, + -142, -142, -142, -142, -142, 214, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, @@ -4911,9 +4911,9 @@ static yyconst flex_int32_t yy_nxt[][256] = -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, - -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, - -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, - -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, + -143, -143, -143, -143, -143, -143, -143, -143, 215, -143, + -143, -143, -143, -143, 212, -143, -143, -143, 216, -143, + -143, -143, -143, -143, -143, 214, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, @@ -4937,8 +4937,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, - -144, -144, -144, -144, -144, -144, -144, -144, -144, 212, - 212, 212, 212, 212, -144, -144, -144, -144, -144, -144, + -144, -144, -144, -144, -144, -144, -144, -144, 144, 144, + 144, 144, 144, 144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, @@ -5032,8 +5032,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, - -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, - -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, 217, + 217, 217, 217, 217, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, @@ -5312,98 +5312,98 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 39, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, -156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156 - }, - - { - 39, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, -157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157 - }, - - { - 39, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, -158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158 + 39, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + + -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, + -156, -156, -156, -156, -156, -156 + }, + + { + 39, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157 + }, + + { + 39, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158 }, { @@ -5503,16 +5503,16 @@ static yyconst flex_int32_t yy_nxt[][256] = { 39, 162, 162, 162, 162, 162, 162, 162, 162, 162, - -162, 162, 162, -162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, -162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, @@ -5533,35 +5533,35 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 39, -163, -163, -163, -163, -163, -163, -163, -163, -163, - 163, -163, -163, 163, -163, -163, -163, -163, -163, -163, + 39, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, -163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, -163, -163 + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163 }, { @@ -5598,6 +5598,7 @@ static yyconst flex_int32_t yy_nxt[][256] = { 39, 165, 165, 165, 165, 165, 165, 165, 165, 165, + -165, 165, 165, -165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, @@ -5606,7 +5607,6 @@ static yyconst flex_int32_t yy_nxt[][256] = 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, -165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, @@ -5628,35 +5628,35 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 39, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 39, -166, -166, -166, -166, -166, -166, -166, -166, -166, + 166, -166, -166, 166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, -166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166 + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166 }, { @@ -5691,98 +5691,98 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 39, -168, -168, -168, -168, -168, -168, -168, -168, -168, - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - -168, -168, -168, -168, -168, -168, -168, -168, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, -168, -168, - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - -168, -168, -168, -168, -168, -168 - }, - - { - 39, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169, 171, -169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, -169, -169, - - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, 172, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169 - - }, - - { - 39, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, 172, -170, -170, -170, -170, -170, -170, - - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, -170, -170 + 39, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, -168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168 + }, + + { + 39, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, -169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169 + + }, + + { + 39, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, -170, 170, 170, 170, 170, 170, 170, + + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170 }, { @@ -5791,12 +5791,12 @@ static yyconst flex_int32_t yy_nxt[][256] = -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, - -171, -171, -171, -171, -171, -171, -171, -171, 213, 213, - 213, 213, 213, 213, 213, 213, 213, 213, -171, -171, + -171, -171, -171, -171, -171, -171, -171, -171, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, -171, -171, + -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, - -171, -171, -171, 172, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, @@ -5822,13 +5822,13 @@ static yyconst flex_int32_t yy_nxt[][256] = -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, - -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, - -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, + -172, -172, -172, -172, -172, -172, 174, -172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, - -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, + -172, -172, -172, 175, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, @@ -5854,12 +5854,12 @@ static yyconst flex_int32_t yy_nxt[][256] = -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, - -173, -173, -173, -173, -173, -173, -173, -173, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, -173, -173, - -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, + -173, -173, -173, -173, -173, -173, -173, -173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, + -173, -173, -173, 175, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, @@ -5885,13 +5885,13 @@ static yyconst flex_int32_t yy_nxt[][256] = -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, - -174, -174, -174, -174, -174, -174, 176, -174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, -174, -174, + -174, -174, -174, -174, -174, -174, -174, -174, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, - -174, -174, -174, 177, -174, -174, -174, -174, -174, -174, + -174, -174, -174, 175, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, @@ -5917,12 +5917,12 @@ static yyconst flex_int32_t yy_nxt[][256] = -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, - -175, -175, -175, -175, -175, -175, -175, -175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, - -175, -175, -175, 177, -175, -175, -175, -175, -175, -175, + -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, + -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, + -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, @@ -5949,12 +5949,12 @@ static yyconst flex_int32_t yy_nxt[][256] = -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, - -176, -176, -176, -176, -176, -176, -176, -176, 214, 214, - 214, 214, 214, 214, 214, 214, 214, 214, -176, -176, + -176, -176, -176, -176, -176, -176, -176, -176, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, -176, -176, + -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, - -176, -176, -176, 177, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, @@ -5980,13 +5980,13 @@ static yyconst flex_int32_t yy_nxt[][256] = -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, - -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, - -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, + -177, -177, -177, -177, -177, -177, 179, -177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, - -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, + -177, -177, -177, 180, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, @@ -6007,98 +6007,98 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 39, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, -178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - - 178, 178, 178, -178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178 - }, - - { - 39, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, -179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179 - - }, - - { - 39, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, -180, 180, 180, 180, 180, 180, 180, - - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180 + 39, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, 180, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178 + }, + + { + 39, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, 219, 219, + 219, 219, 219, 219, 219, 219, 219, 219, -179, -179, + + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, 180, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179 + + }, + + { + 39, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180 }, { @@ -6197,98 +6197,98 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 39, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, 215, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184 - - }, - - { - 39, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, -185, -185 - }, - - { - 39, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186 + 39, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, -184, + + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, -184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184 + + }, + + { + 39, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, -185, 185, 185, 185, 185, 185, 185, + + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185 + }, + + { + 39, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, -186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186 }, { @@ -6302,8 +6302,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, + -187, 220, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, - -187, -187, -187, -187, -187, -187, -187, -187, 216, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, @@ -6333,7 +6333,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, - -188, -188, -188, -188, -188, -188, -188, -188, 217, -188, + -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, @@ -6391,8 +6391,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, - -190, -190, -190, -190, -190, -190, -190, -190, -190, 218, - 218, 218, 218, 218, -190, -190, -190, -190, -190, -190, + -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, + -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, @@ -6427,9 +6427,9 @@ static yyconst flex_int32_t yy_nxt[][256] = -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, - -191, -191, -191, -191, -191, -191, 219, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, + -191, -191, -191, -191, -191, -191, -191, -191, 221, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, @@ -6456,13 +6456,13 @@ static yyconst flex_int32_t yy_nxt[][256] = -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, - 220, -192, 220, -192, -192, -192, -192, -192, -192, -192, + -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, + -192, -192, -192, -192, -192, -192, -192, -192, 222, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, - -192, -192, -192, -192, -192, 221, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, @@ -6493,7 +6493,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, - -193, -193, -193, -193, -193, -193, -193, -193, 222, -193, + -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, @@ -6525,7 +6525,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, - -194, -194, -194, -194, -194, -194, 223, -194, -194, -194, + -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, @@ -6549,8 +6549,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, 224, -195, + -195, -195, -195, -195, -195, -195, -195, -195, -195, 223, + 223, 223, 223, 223, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, @@ -6582,10 +6582,10 @@ static yyconst flex_int32_t yy_nxt[][256] = -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, - -196, -196, -196, -196, -196, -196, -196, -196, 225, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, + -196, -196, -196, -196, -196, -196, 224, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, @@ -6612,15 +6612,15 @@ static yyconst flex_int32_t yy_nxt[][256] = -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, - -197, -197, -197, -197, -197, -197, -197, -197, -197, 226, - 226, 226, 226, 226, 226, 226, 226, 226, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, - + 225, -197, 225, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, + -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, + -197, -197, -197, -197, -197, 226, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, @@ -6645,13 +6645,13 @@ static yyconst flex_int32_t yy_nxt[][256] = -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, - -198, -198, -198, -198, -198, -198, -198, -198, 227, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, + -198, -198, -198, -198, -198, -198, -198, -198, 227, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, @@ -6675,15 +6675,15 @@ static yyconst flex_int32_t yy_nxt[][256] = -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, 228, - 228, 228, 228, 228, 228, 228, 228, 228, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, + + -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, + -199, -199, -199, -199, -199, -199, 228, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, @@ -6770,8 +6770,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, - -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, - -202, -202, -202, -202, -202, -202, -202, -202, 231, -202, + -202, -202, -202, -202, -202, -202, -202, -202, -202, 231, + 231, 231, 231, 231, 231, 231, 231, 231, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, @@ -6802,8 +6802,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, - -203, -203, -203, -203, -203, -203, -203, -203, -203, 232, - 232, 232, 232, 232, 232, 232, 232, 232, -203, -203, + -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, + -203, -203, -203, -203, -203, -203, -203, -203, 232, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, @@ -6833,8 +6833,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, - -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, - -204, -204, -204, -204, -204, -204, -204, -204, 233, -204, + -204, -204, -204, -204, -204, -204, -204, -204, -204, 233, + 233, 233, 233, 233, 233, 233, 233, 233, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, @@ -6898,11 +6898,11 @@ static yyconst flex_int32_t yy_nxt[][256] = -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, + -206, -206, -206, -206, -206, -206, -206, -206, 235, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, - -206, -206, -206, -206, -206, -206, -206, -206, 235, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, @@ -6937,7 +6937,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, - -207, -207, -207, 237, -207, 238, -207, -207, -207, -207, + -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, @@ -6960,14 +6960,14 @@ static yyconst flex_int32_t yy_nxt[][256] = -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, + -208, -208, -208, -208, -208, -208, -208, -208, -208, 237, + 237, 237, 237, 237, 237, 237, 237, 237, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, - -208, -208, -208, -208, -208, -208, -208, -208, 239, -208, - -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, @@ -6992,13 +6992,13 @@ static yyconst flex_int32_t yy_nxt[][256] = -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, - -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, + -209, -209, -209, -209, -209, -209, -209, -209, 238, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, - -209, -209, -209, -209, -209, -209, -209, -209, 240, -209, + -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, @@ -7024,7 +7024,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, - -210, -210, -210, -210, -210, -210, -210, -210, 241, -210, + -210, -210, -210, -210, -210, -210, -210, -210, 239, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, @@ -7060,8 +7060,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, + -211, -211, -211, -211, -211, -211, -211, -211, 240, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, - -211, -211, -211, -211, -211, -211, -211, -211, 242, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, @@ -7087,7 +7087,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, - -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, + -212, -212, -212, -212, -212, -212, -212, -212, 241, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, @@ -7095,7 +7095,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, - -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, + -212, -212, -212, 242, -212, 243, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, @@ -7118,14 +7118,14 @@ static yyconst flex_int32_t yy_nxt[][256] = -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, - -213, -213, -213, -213, -213, -213, -213, -213, 213, 213, - 213, 213, 213, 213, 213, 213, 213, 213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, - -213, -213, -213, 172, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, + -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, + -213, -213, -213, -213, -213, -213, -213, -213, 244, -213, + -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, @@ -7149,14 +7149,14 @@ static yyconst flex_int32_t yy_nxt[][256] = -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, - -214, -214, -214, -214, -214, -214, -214, -214, 214, 214, - 214, 214, 214, 214, 214, 214, 214, 214, -214, -214, + -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, + -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, - -214, -214, -214, 177, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, + -214, -214, -214, -214, -214, -214, -214, -214, 245, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, @@ -7182,7 +7182,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, 246, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, @@ -7218,8 +7218,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, - -216, -216, -216, -216, -216, -216, -216, -216, 243, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, 247, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, @@ -7250,7 +7250,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, - -217, -217, -217, -217, -217, -217, -217, 244, -217, -217, + -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, @@ -7276,12 +7276,12 @@ static yyconst flex_int32_t yy_nxt[][256] = -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, + -218, -218, -218, -218, -218, -218, -218, -218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, - -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, - -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, - -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, + -218, -218, -218, 175, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, @@ -7307,13 +7307,13 @@ static yyconst flex_int32_t yy_nxt[][256] = -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, - -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, - -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, + -219, -219, -219, -219, -219, -219, -219, -219, 219, 219, + 219, 219, 219, 219, 219, 219, 219, 219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, - -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, + -219, -219, -219, 180, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, @@ -7373,10 +7373,10 @@ static yyconst flex_int32_t yy_nxt[][256] = -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, - 245, -221, 245, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, + -221, -221, -221, -221, -221, -221, -221, -221, 248, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, @@ -7408,7 +7408,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, + -222, -222, -222, -222, -222, -222, -222, 249, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, @@ -7435,12 +7435,12 @@ static yyconst flex_int32_t yy_nxt[][256] = -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, - -223, -223, -223, -223, -223, -223, -223, -223, 246, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, - -223, -223, -223, -223, -223, -223, -223, -223, -223, 247, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, @@ -7531,10 +7531,10 @@ static yyconst flex_int32_t yy_nxt[][256] = -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, + 250, -226, 250, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, - -226, -226, -226, 248, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, @@ -7593,12 +7593,12 @@ static yyconst flex_int32_t yy_nxt[][256] = -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, + -228, -228, -228, -228, -228, -228, -228, -228, 251, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, - -228, -228, -228, 249, -228, -228, -228, -228, -228, -228, - -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, + -228, -228, -228, -228, -228, -228, -228, -228, -228, 252, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, @@ -7655,7 +7655,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, - -230, -230, -230, -230, -230, -230, -230, -230, 250, 251, + -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, @@ -7687,12 +7687,12 @@ static yyconst flex_int32_t yy_nxt[][256] = -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, - -231, -231, -231, -231, -231, -231, -231, -231, 252, 253, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, + -231, -231, -231, 253, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, @@ -7724,7 +7724,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, - -232, -232, -232, 254, -232, -232, -232, -232, -232, -232, + -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, @@ -7755,7 +7755,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, - -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, + -233, -233, -233, 254, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, @@ -7781,7 +7781,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, - -234, -234, -234, -234, -234, -234, -234, -234, 255, 255, + -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, @@ -7813,12 +7813,12 @@ static yyconst flex_int32_t yy_nxt[][256] = -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, + -235, -235, -235, -235, -235, -235, -235, -235, 255, 256, + -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, - -235, -235, -235, -235, -235, -235, -235, -235, 256, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, - -235, -235, -235, -235, -235, -235, -235, 257, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, @@ -7845,15 +7845,15 @@ static yyconst flex_int32_t yy_nxt[][256] = -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, - -236, -236, -236, 258, -236, 258, -236, -236, -236, -236, + -236, -236, -236, -236, -236, -236, -236, -236, 257, 258, + -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, + -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, + -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, - -236, -236, -236, -236, 259, -236, -236, -236, 259, 259, - -236, 260, -236, -236, -236, -236, -236, 260, -236, -236, - -236, -236, -236, 237, -236, 238, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, @@ -7882,7 +7882,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, - -237, -237, -237, 261, -237, -237, -237, -237, -237, -237, + -237, -237, -237, 259, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, @@ -7913,7 +7913,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, - -238, -238, -238, 262, -238, -238, -238, -238, -238, -238, + -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, @@ -7939,8 +7939,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, + -239, -239, -239, -239, -239, -239, -239, -239, 260, 260, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, - -239, -239, -239, -239, -239, -239, -239, -239, 263, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, @@ -7972,14 +7972,14 @@ static yyconst flex_int32_t yy_nxt[][256] = -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, + -240, -240, -240, -240, -240, -240, -240, -240, 261, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, - -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, - -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, + -240, -240, -240, -240, -240, -240, -240, 262, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, - -240, -240, -240, -240, -240, -240, -240, 264, -240, -240, + -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, @@ -8003,15 +8003,15 @@ static yyconst flex_int32_t yy_nxt[][256] = -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, - -241, -241, -241, -241, -241, -241, -241, -241, 265, 265, - -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, - -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, - -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, + -241, -241, -241, 263, -241, 263, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, + -241, -241, -241, -241, 264, -241, -241, -241, 264, 264, + -241, 265, -241, -241, -241, -241, -241, 265, -241, -241, + -241, -241, -241, 242, -241, 243, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, @@ -8035,12 +8035,12 @@ static yyconst flex_int32_t yy_nxt[][256] = -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, - -242, -242, -242, -242, -242, -242, -242, -242, 266, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, - -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, + -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, + -242, -242, -242, 266, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, @@ -8071,7 +8071,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, - -243, -243, -243, -243, -243, -243, -243, 267, -243, -243, + -243, -243, -243, 267, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, @@ -8098,9 +8098,9 @@ static yyconst flex_int32_t yy_nxt[][256] = -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, - -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, + -244, -244, -244, -244, -244, -244, -244, -244, 268, -244, - -244, -244, 268, -244, -244, -244, -244, -244, -244, -244, + -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, @@ -8137,7 +8137,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, - -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, + -245, -245, -245, -245, -245, -245, -245, 269, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, @@ -8161,7 +8161,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, - -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, + -246, -246, -246, -246, -246, -246, -246, -246, 270, 270, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, @@ -8192,8 +8192,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, - -247, -247, -247, -247, -247, -247, -247, -247, -247, 269, - 269, 269, 269, 269, 269, 269, 269, 269, -247, -247, + -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, + -247, -247, -247, -247, -247, -247, -247, -247, 271, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, @@ -8229,7 +8229,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, - -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, + -248, -248, -248, -248, -248, -248, -248, 272, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, @@ -8258,7 +8258,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, - -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, + -249, -249, 273, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, @@ -8292,7 +8292,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, - -250, -250, -250, 270, -250, -250, -250, -250, -250, -250, + -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, @@ -8324,7 +8324,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, - -251, -251, -251, 271, -251, -251, -251, -251, -251, -251, + -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, -251, @@ -8350,13 +8350,13 @@ static yyconst flex_int32_t yy_nxt[][256] = -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, - -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, - -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, + -252, -252, -252, -252, -252, -252, -252, -252, -252, 274, + 274, 274, 274, 274, 274, 274, 274, 274, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, - -252, -252, -252, 272, -252, -252, -252, -252, -252, -252, + -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, @@ -8387,7 +8387,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, - -253, -253, -253, 273, -253, -253, -253, -253, -253, -253, + -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, @@ -8446,15 +8446,15 @@ static yyconst flex_int32_t yy_nxt[][256] = -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, - -255, -255, -255, -255, -255, -255, -255, -255, -255, 274, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, + -255, -255, -255, 275, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, - -255, -255, -255, 275, -255, 276, -255, -255, -255, -255, + -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, @@ -8477,12 +8477,12 @@ static yyconst flex_int32_t yy_nxt[][256] = -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, - -256, -256, -256, -256, -256, -256, -256, -256, 277, 277, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, + -256, -256, -256, 276, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, @@ -8509,12 +8509,12 @@ static yyconst flex_int32_t yy_nxt[][256] = -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, - -257, -257, -257, -257, -257, -257, -257, -257, 278, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, - -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, + -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, + -257, -257, -257, 277, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, @@ -8535,35 +8535,35 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 39, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, + 39, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, -258, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, 278, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, - 279, 279, 279, -258, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279 + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258 }, { @@ -8571,16 +8571,16 @@ static yyconst flex_int32_t yy_nxt[][256] = -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, - -259, -259, -259, 258, -259, 258, -259, -259, -259, -259, + -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, - -259, -259, -259, 261, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, - -259, -259, -259, 237, -259, -259, -259, -259, -259, -259, + -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, + -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, @@ -8604,15 +8604,15 @@ static yyconst flex_int32_t yy_nxt[][256] = -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, - -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, + -260, -260, -260, -260, -260, -260, -260, -260, -260, 279, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, - -260, -260, -260, -260, 259, -260, -260, -260, 259, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, + -260, -260, -260, 280, -260, 281, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, @@ -8635,7 +8635,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, - -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, + -261, -261, -261, -261, -261, -261, -261, -261, 282, 282, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, @@ -8667,7 +8667,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, - -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, + -262, -262, -262, -262, -262, -262, -262, -262, 283, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, @@ -8693,35 +8693,35 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 39, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, + 39, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, -263, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - -263, -263, -263, -263, -263, 280, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, + 284, 284, 284, -263, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, -263, -263 + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284 }, { @@ -8729,16 +8729,16 @@ static yyconst flex_int32_t yy_nxt[][256] = -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, - -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, + -264, -264, -264, 263, -264, 263, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, + -264, -264, -264, 266, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, - -264, -264, -264, -264, 281, -264, -264, -264, -264, -264, - -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, + -264, -264, -264, 242, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, @@ -8762,15 +8762,15 @@ static yyconst flex_int32_t yy_nxt[][256] = -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, - -265, -265, -265, -265, -265, -265, -265, -265, -265, 282, + -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, + -265, -265, -265, -265, 264, -265, -265, -265, 264, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, - -265, -265, -265, 283, -265, 284, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, @@ -8801,7 +8801,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, - -266, -266, -266, -266, -266, 285, -266, -266, -266, -266, + -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, @@ -8826,7 +8826,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, - -267, -267, 286, -267, -267, -267, -267, -267, -267, -267, + -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, @@ -8865,7 +8865,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, - -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, + -268, -268, -268, -268, -268, 285, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, @@ -8893,9 +8893,9 @@ static yyconst flex_int32_t yy_nxt[][256] = -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, - -269, -269, -269, 287, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, + -269, -269, -269, -269, 286, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, @@ -8920,7 +8920,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, - -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, + -270, -270, -270, -270, -270, -270, -270, -270, -270, 287, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, @@ -8928,7 +8928,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, - -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, + -270, -270, -270, 288, -270, 289, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, @@ -8959,7 +8959,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, - -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, + -271, -271, -271, -271, -271, 290, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, @@ -8984,7 +8984,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, - -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, + -272, -272, 291, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, @@ -9051,7 +9051,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, - -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, + -274, -274, -274, 292, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, @@ -9082,7 +9082,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, - -275, -275, -275, 288, -275, -275, -275, -275, -275, -275, + -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, @@ -9114,7 +9114,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, - -276, -276, -276, 289, -276, -276, -276, -276, -276, -276, + -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, @@ -9141,7 +9141,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, - -277, -277, -277, -277, -277, -277, -277, -277, -277, 290, + -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, @@ -9149,7 +9149,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, - -277, -277, -277, 291, -277, 292, -277, -277, -277, -277, + -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, @@ -9172,7 +9172,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, - -278, -278, -278, -278, -278, -278, -278, -278, 293, 293, + -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, @@ -9199,34 +9199,34 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 39, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, + 39, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 261, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 294, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279 + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279 }, @@ -9240,7 +9240,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, - -280, -280, -280, 295, -280, -280, -280, -280, -280, -280, + -280, -280, -280, 293, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, @@ -9268,11 +9268,11 @@ static yyconst flex_int32_t yy_nxt[][256] = -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, - -281, -281, -281, -281, -281, -281, -281, -281, 296, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, + -281, -281, -281, 294, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, @@ -9299,7 +9299,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, - -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, + -282, -282, -282, -282, -282, -282, -282, -282, -282, 295, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, @@ -9307,7 +9307,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, - -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, + -282, -282, -282, 296, -282, 297, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, @@ -9330,12 +9330,12 @@ static yyconst flex_int32_t yy_nxt[][256] = -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, + -283, -283, -283, -283, -283, -283, -283, -283, 298, 298, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, - -283, -283, -283, 297, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, @@ -9357,34 +9357,34 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 39, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, + 39, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, 298, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 266, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 299, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284 + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284 }, @@ -9398,7 +9398,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, 299, -285, -285, -285, -285, -285, -285, + -285, -285, -285, 300, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, @@ -9426,7 +9426,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, - -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, + -286, -286, -286, -286, -286, -286, -286, -286, 301, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, @@ -9493,7 +9493,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, 302, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, @@ -9525,7 +9525,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, - -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, + -289, -289, -289, 303, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, @@ -9556,7 +9556,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, - -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, + -290, -290, -290, 304, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, @@ -9588,7 +9588,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, 300, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, @@ -9620,7 +9620,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, - -292, -292, -292, 301, -292, -292, -292, -292, -292, -292, + -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, @@ -9647,7 +9647,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, - -293, -293, -293, -293, -293, -293, -293, -293, -293, 302, + -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, @@ -9655,7 +9655,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, - -293, -293, -293, 303, -293, 304, -293, -293, -293, -293, + -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, @@ -9683,7 +9683,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, - -294, -294, -294, 261, -294, -294, -294, -294, -294, -294, + -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, @@ -9741,13 +9741,13 @@ static yyconst flex_int32_t yy_nxt[][256] = -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, - -296, -296, -296, -296, -296, -296, -296, -296, 305, 305, - 305, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, 305, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, @@ -9778,7 +9778,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, - -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, + -297, -297, -297, 306, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, @@ -9805,7 +9805,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, 307, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, @@ -9813,7 +9813,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, 308, -298, 309, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, @@ -9841,7 +9841,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, 266, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, @@ -9899,8 +9899,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, - -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, - -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, + -301, -301, -301, -301, -301, -301, -301, -301, 310, 310, + 310, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, @@ -9967,7 +9967,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, - -303, -303, -303, 306, -303, -303, -303, -303, -303, -303, + -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, @@ -9999,7 +9999,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, 307, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, @@ -10026,7 +10026,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, - -305, -305, -305, -305, -305, -305, -305, -305, -305, 308, + -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, @@ -10034,7 +10034,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, - -305, -305, -305, 309, -305, 310, -305, -305, -305, -305, + -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, @@ -10115,35 +10115,35 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 39, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, + 39, -308, -308, -308, -308, -308, -308, -308, -308, -308, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, -308, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, + -308, -308, -308, 311, -308, -308, -308, -308, -308, -308, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311 + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, + -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, + -308, -308, -308, -308, -308, -308 }, { @@ -10184,15 +10184,15 @@ static yyconst flex_int32_t yy_nxt[][256] = -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, + -310, -310, -310, -310, -310, -310, -310, -310, -310, 313, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, - -310, -310, -310, 313, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, - -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, + -310, -310, -310, 314, -310, 315, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, @@ -10210,35 +10210,35 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 39, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, + 39, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, - 311, 311, 311, 311, 314, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311 + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311 }, { @@ -10273,130 +10273,288 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 39, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, -313, -313 - }, - - { - 39, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, -314, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315 - - }, - - { - 39, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 316, 315, 315, 315, 315, 315, 315, - - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315 - }, - - { - 39, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - - -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, -316, -316 + 39, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, -313, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316 + }, + + { + 39, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, 317, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, + -314, -314, -314, -314, -314, -314 + + }, + + { + 39, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, 318, -315, -315, -315, -315, -315, -315, + + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315 + }, + + { + 39, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + + 316, 316, 316, 316, 319, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316 + }, + + { + 39, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, + -317, -317, -317, -317, -317, -317 + }, + + { + 39, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, + -318, -318, -318, -318, -318, -318 + }, + + { + 39, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, -319, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320 + + }, + + { + 39, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 321, 320, 320, 320, 320, 320, 320, + + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320 + }, + + { + 39, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + + -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, + -321, -321, -321, -321, -321, -321 }, } ; @@ -10419,8 +10577,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 138 -#define YY_END_OF_BUFFER 139 +#define YY_NUM_RULES 141 +#define YY_END_OF_BUFFER 142 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -10428,49 +10586,50 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int32_t yy_accept[317] = +static yyconst flex_int32_t yy_accept[322] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 139, 137, - 63, 97, 137, 90, 1, 115, 76, 137, 117, 94, - 79, 78, 120, 103, 119, 137, 112, 125, 82, 131, - 129, 68, 137, 29, 116, 75, 112, 112, 122, 121, - 81, 132, 130, 128, 89, 91, 65, 60, 61, 118, + 0, 0, 0, 0, 0, 0, 0, 0, 142, 140, + 63, 97, 140, 90, 1, 118, 76, 140, 120, 94, + 79, 78, 123, 103, 122, 140, 115, 128, 82, 134, + 132, 68, 140, 29, 119, 75, 112, 112, 125, 124, + 81, 135, 133, 131, 89, 91, 65, 60, 61, 121, 36, 54, 37, 38, 34, 35, 39, 3, 2, 30, - 31, 32, 33, 138, 138, 138, 138, 138, 138, 138, - - 46, 138, 138, 51, 138, 138, 63, 102, 101, 98, - 115, 77, 113, 117, 93, 96, 92, 40, 80, 0, - 0, 114, 28, 114, 0, 0, 0, 126, 127, 69, - 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 116, 62, 71, 0, 123, 124, 83, 84, 85, 86, - 87, 88, 66, 67, 64, 36, 37, 38, 34, 35, - 39, 3, 2, 30, 31, 32, 33, 0, 0, 0, - 0, 41, 0, 0, 0, 0, 43, 46, 47, 48, - 51, 52, 53, 100, 42, 95, 0, 0, 73, 0, - 106, 108, 104, 0, 0, 0, 0, 0, 0, 0, + 31, 32, 33, 141, 141, 141, 141, 141, 141, 141, + + 46, 141, 141, 51, 141, 141, 63, 102, 101, 98, + 118, 77, 116, 113, 120, 93, 96, 92, 40, 80, + 0, 0, 117, 28, 114, 114, 115, 0, 0, 0, + 129, 130, 69, 70, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 119, 62, 71, 0, 126, 127, 83, + 84, 85, 86, 87, 88, 66, 67, 64, 36, 37, + 38, 34, 35, 39, 3, 2, 30, 31, 32, 33, + 0, 0, 0, 0, 41, 0, 0, 0, 0, 43, + 46, 47, 48, 51, 52, 53, 100, 42, 116, 95, + 0, 0, 117, 73, 0, 106, 108, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 72, 0, 0, 99, 0, 0, 74, 107, 109, - 110, 105, 0, 5, 4, 0, 24, 0, 23, 0, - 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 111, 25, 0, 20, 19, 0, - 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, - 58, 59, 45, 0, 0, 50, 0, 26, 0, 134, - 133, 136, 135, 6, 0, 0, 0, 0, 0, 0, - 0, 7, 0, 0, 0, 27, 21, 10, 14, 8, - 0, 0, 0, 0, 44, 0, 11, 15, 49, 12, - - 16, 9, 0, 0, 0, 13, 17, 0, 0, 0, - 0, 56, 57, 0, 0, 55 + 0, 0, 0, 0, 0, 0, 72, 0, 0, 99, + 0, 0, 74, 107, 109, 110, 105, 0, 5, 4, + 0, 24, 0, 23, 0, 0, 0, 22, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, + 25, 0, 20, 19, 0, 0, 0, 0, 18, 0, + 0, 0, 0, 0, 0, 58, 59, 45, 0, 0, + 50, 0, 26, 0, 137, 136, 139, 138, 6, 0, + 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 27, 21, 10, 14, 8, 0, 0, 0, 0, 44, + + 0, 11, 15, 49, 12, 16, 9, 0, 0, 0, + 13, 17, 0, 0, 0, 0, 56, 57, 0, 0, + 55 } ; static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; -static yyconst yy_state_type yy_NUL_trans[317] = +static yyconst yy_state_type yy_NUL_trans[322] = { 0, 40, 40, 81, 81, 83, 83, 84, 84, 85, 85, 86, 86, 87, 87, 88, 88, 90, 90, 91, 91, @@ -10480,18 +10639,18 @@ static yyconst yy_state_type yy_NUL_trans[317] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 156, 0, 157, 158, 159, 160, 161, 162, 0, 164, - 165, 166, 167, 0, 0, 0, 0, 0, 0, 0, + 159, 0, 160, 161, 162, 163, 164, 165, 0, 167, + 168, 169, 170, 0, 0, 0, 0, 0, 0, 0, - 178, 179, 180, 181, 182, 183, 0, 0, 0, 0, + 181, 182, 183, 184, 185, 186, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 159, 160, + 161, 162, 163, 164, 165, 0, 167, 168, 169, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 156, 157, 158, 159, 160, - 161, 162, 0, 164, 165, 166, 167, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 178, 179, 180, - 181, 182, 183, 0, 0, 0, 0, 0, 0, 0, + 181, 182, 183, 184, 185, 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10499,14 +10658,15 @@ static yyconst yy_state_type yy_NUL_trans[317] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 279, 0, + 0, 0, 284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, - 311, 0, 0, 315, 315, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 316, 0, 0, 316, 0, 0, 320, 320, + 0 } ; extern int gabc_notes_determination__flex_debug; @@ -10526,7 +10686,7 @@ char *gabc_notes_determination_text; * Gregorio is a program that translates gabc files to GregorioTeX * This file implements the note parser. * - * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -10565,19 +10725,18 @@ static char char_for_brace; static unsigned int nbof_isolated_episema; static char *notesmacros[10]; static char tempstr[256]; -static int brace_var_counter = 0; -static int overbrace_var = 0, underbrace_var = 0; +static unsigned short overbrace_var = 0, underbrace_var = 0; static const char *overbrace_var_kind; static int before_ledger_type; static char *before_ledger_length = NULL; -static int ledger_var[2] = { 0, 0 }; +static unsigned short ledger_var[2] = { 0, 0 }; static unsigned char staff_lines; static signed char highest_pitch; static bool legacy_oriscus_orientation; static unsigned short he_adjustment_index[2] = { 0, 0 }; typedef struct slur_info { - int var; + unsigned short var; char shift; gregorio_note *start; } slur_info; @@ -10628,13 +10787,17 @@ static __inline char pitch_letter_to_height(const char pitch) { return result; } -static gregorio_shape punctum(const char pitch) +static gregorio_shape punctum_inclinatum(const char orientation) { - if (pitch < 'a') { - return S_PUNCTUM_INCLINATUM; - } else { - return S_PUNCTUM; + switch (orientation) { + case '0': + return S_PUNCTUM_INCLINATUM_DESCENDENS; + + case '1': + return S_PUNCTUM_INCLINATUM_ASCENDENS; } + + return S_PUNCTUM_INCLINATUM_UNDETERMINED; } static __inline void lex_add_note(int i, gregorio_shape shape, char signs, @@ -10797,10 +10960,10 @@ static void add_variable_ledger(const gregorio_sign_orientation type, after_ledger_length = after_ledger; } - ledger_var[type] = ++brace_var_counter; + ledger_var[type] = ++tex_position_id; gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{0}{1}" - "\\GreDrawAdditionalLine{%d}{\\GreVarBraceLength{%d}}" + "\\GreVarBraceSavePos{%hu}{0}{1}" + "\\GreDrawAdditionalLine{%d}{\\GreVarBraceLength{%hu}}" "{%d}{%s}{%d}{%s}", ledger_var[type], type, ledger_var[type], before_ledger_type, before_ledger_length, after_ledger_type, after_ledger_length); @@ -10824,7 +10987,7 @@ static void end_variable_ledger(const gregorio_sign_orientation type) "%s-staff ledger line start"), typename, typename); } else { gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{0}{2}", ledger_var[type]); + "\\GreVarBraceSavePos{%hu}{0}{2}", ledger_var[type]); ledger_var[type] = 0; gregorio_add_texverb_as_note(¤t_note, gregorio_strdup(tempstr), GRE_TEXVERB_GLYPH, ¬es_lloc); @@ -10963,7 +11126,7 @@ static void start_var_slur(void) return; } - slur[index].var = ++brace_var_counter; + slur[index].var = ++tex_position_id; parse_slur_shift(&(slur[index].shift)); slur[index].start = current_note; } @@ -10993,8 +11156,8 @@ static void end_var_slur(void) parse_slur_shift(&shift); gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{%c}{1}" - "\\GreSlur{%d}{%d}{%c}{\\GreVarBraceLength{%d}}{}{%d}", + "\\GreVarBraceSavePos{%hu}{%c}{1}" + "\\GreSlur{%d}{%d}{%c}{\\GreVarBraceLength{%hu}}{}{%d}", slur[index].var, slur[index].shift, slur[index].start->u.note.pitch + direction, direction, slur[index].shift, slur[index].var, @@ -11002,7 +11165,7 @@ static void end_var_slur(void) gregorio_add_texverb_to_note(slur[index].start, gregorio_strdup(tempstr)); gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{%c}{2}", slur[index].var, shift); + "\\GreVarBraceSavePos{%hu}{%c}{2}", slur[index].var, shift); gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr)); @@ -11179,7 +11342,7 @@ void gabc_det_notes_finish(void) -#line 11183 "gabc/gabc-notes-determination-l.c" +#line 11346 "gabc/gabc-notes-determination-l.c" #define INITIAL 0 #define texverbnote 1 @@ -11417,9 +11580,9 @@ YY_DECL } { -#line 677 "gabc/gabc-notes-determination.l" +#line 680 "gabc/gabc-notes-determination.l" -#line 11423 "gabc/gabc-notes-determination-l.c" +#line 11586 "gabc/gabc-notes-determination-l.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -11466,7 +11629,7 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 678 "gabc/gabc-notes-determination.l" +#line 681 "gabc/gabc-notes-determination.l" { BEGIN(comments); } @@ -11474,35 +11637,35 @@ YY_RULE_SETUP case 2: /* rule 2 can match eol */ YY_RULE_SETUP -#line 681 "gabc/gabc-notes-determination.l" +#line 684 "gabc/gabc-notes-determination.l" { BEGIN(INITIAL); } YY_BREAK case 3: YY_RULE_SETUP -#line 684 "gabc/gabc-notes-determination.l" +#line 687 "gabc/gabc-notes-determination.l" { /* ignored */ } YY_BREAK case 4: YY_RULE_SETUP -#line 687 "gabc/gabc-notes-determination.l" +#line 690 "gabc/gabc-notes-determination.l" { BEGIN(choralsign); } YY_BREAK case 5: YY_RULE_SETUP -#line 690 "gabc/gabc-notes-determination.l" +#line 693 "gabc/gabc-notes-determination.l" { BEGIN(choralnabc); } YY_BREAK case 6: YY_RULE_SETUP -#line 693 "gabc/gabc-notes-determination.l" +#line 696 "gabc/gabc-notes-determination.l" { char_for_brace = gabc_notes_determination_text[4]-'0'; BEGIN(overbrace); @@ -11510,7 +11673,7 @@ YY_RULE_SETUP YY_BREAK case 7: YY_RULE_SETUP -#line 697 "gabc/gabc-notes-determination.l" +#line 700 "gabc/gabc-notes-determination.l" { char_for_brace = gabc_notes_determination_text[4]-'0'; BEGIN(underbrace); @@ -11518,7 +11681,7 @@ YY_RULE_SETUP YY_BREAK case 8: YY_RULE_SETUP -#line 701 "gabc/gabc-notes-determination.l" +#line 704 "gabc/gabc-notes-determination.l" { char_for_brace = gabc_notes_determination_text[5]-'0'; BEGIN(overcurlybrace); @@ -11526,7 +11689,7 @@ YY_RULE_SETUP YY_BREAK case 9: YY_RULE_SETUP -#line 705 "gabc/gabc-notes-determination.l" +#line 708 "gabc/gabc-notes-determination.l" { char_for_brace = gabc_notes_determination_text[6]-'0'; BEGIN(overcurlyaccentusbrace); @@ -11534,7 +11697,7 @@ YY_RULE_SETUP YY_BREAK case 10: YY_RULE_SETUP -#line 709 "gabc/gabc-notes-determination.l" +#line 712 "gabc/gabc-notes-determination.l" { if (overbrace_var) { gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0, @@ -11542,11 +11705,11 @@ YY_RULE_SETUP "previous overbrace")); } else { char_for_brace = gabc_notes_determination_text[4]-'0'; - overbrace_var = ++brace_var_counter; + overbrace_var = ++tex_position_id; overbrace_var_kind = "ob"; gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{%d}{1}" - "\\GreOverBrace{\\GreVarBraceLength{%d}}{0pt}{0pt}{%d}", + "\\GreVarBraceSavePos{%hu}{%d}{1}" + "\\GreOverBrace{\\GreVarBraceLength{%hu}}{0pt}{0pt}{%d}", overbrace_var, char_for_brace, overbrace_var, char_for_brace); gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr)); } @@ -11554,7 +11717,7 @@ YY_RULE_SETUP YY_BREAK case 11: YY_RULE_SETUP -#line 725 "gabc/gabc-notes-determination.l" +#line 728 "gabc/gabc-notes-determination.l" { if (underbrace_var) { gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0, @@ -11562,10 +11725,10 @@ YY_RULE_SETUP "previous underbrace")); } else { char_for_brace = gabc_notes_determination_text[4]-'0'; - underbrace_var = ++brace_var_counter; + underbrace_var = ++tex_position_id; gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{%d}{1}" - "\\GreUnderBrace{\\GreVarBraceLength{%d}}{0pt}{0pt}{%d}", + "\\GreVarBraceSavePos{%hu}{%d}{1}" + "\\GreUnderBrace{\\GreVarBraceLength{%hu}}{0pt}{0pt}{%d}", underbrace_var, char_for_brace, underbrace_var, char_for_brace); gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr)); } @@ -11573,7 +11736,7 @@ YY_RULE_SETUP YY_BREAK case 12: YY_RULE_SETUP -#line 740 "gabc/gabc-notes-determination.l" +#line 743 "gabc/gabc-notes-determination.l" { if (overbrace_var) { gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0, @@ -11581,11 +11744,11 @@ YY_RULE_SETUP "previous overbrace")); } else { char_for_brace = gabc_notes_determination_text[5]-'0'; - overbrace_var = ++brace_var_counter; + overbrace_var = ++tex_position_id; overbrace_var_kind = "ocb"; gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{%d}{1}" - "\\GreOverCurlyBrace{\\GreVarBraceLength{%d}}{0pt}{0pt}{%d}{0}", + "\\GreVarBraceSavePos{%hu}{%d}{1}" + "\\GreOverCurlyBrace{\\GreVarBraceLength{%hu}}{0pt}{0pt}{%d}{0}", overbrace_var, char_for_brace, overbrace_var, char_for_brace); gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr)); } @@ -11593,7 +11756,7 @@ YY_RULE_SETUP YY_BREAK case 13: YY_RULE_SETUP -#line 756 "gabc/gabc-notes-determination.l" +#line 759 "gabc/gabc-notes-determination.l" { if (overbrace_var) { gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0, @@ -11601,11 +11764,11 @@ YY_RULE_SETUP "previous overbrace")); } else { char_for_brace = gabc_notes_determination_text[6]-'0'; - overbrace_var = ++brace_var_counter; + overbrace_var = ++tex_position_id; overbrace_var_kind = "ocba"; gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{%d}{1}" - "\\GreOverCurlyBrace{\\GreVarBraceLength{%d}}{0pt}{0pt}{%d}{1}", + "\\GreVarBraceSavePos{%hu}{%d}{1}" + "\\GreOverCurlyBrace{\\GreVarBraceLength{%hu}}{0pt}{0pt}{%d}{1}", overbrace_var, char_for_brace, overbrace_var, char_for_brace); gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr)); } @@ -11613,7 +11776,7 @@ YY_RULE_SETUP YY_BREAK case 14: YY_RULE_SETUP -#line 772 "gabc/gabc-notes-determination.l" +#line 775 "gabc/gabc-notes-determination.l" { if (!overbrace_var) { gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0, @@ -11627,7 +11790,7 @@ YY_RULE_SETUP } else { char_for_brace = gabc_notes_determination_text[4]-'0'; gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{%d}{2}", overbrace_var, + "\\GreVarBraceSavePos{%hu}{%d}{2}", overbrace_var, char_for_brace); overbrace_var = 0; gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr)); @@ -11636,7 +11799,7 @@ YY_RULE_SETUP YY_BREAK case 15: YY_RULE_SETUP -#line 791 "gabc/gabc-notes-determination.l" +#line 794 "gabc/gabc-notes-determination.l" { if (!underbrace_var) { gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0, @@ -11645,7 +11808,7 @@ YY_RULE_SETUP } else { char_for_brace = gabc_notes_determination_text[4]-'0'; gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{%d}{2}", underbrace_var, + "\\GreVarBraceSavePos{%hu}{%d}{2}", underbrace_var, char_for_brace); underbrace_var = 0; gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr)); @@ -11654,7 +11817,7 @@ YY_RULE_SETUP YY_BREAK case 16: YY_RULE_SETUP -#line 805 "gabc/gabc-notes-determination.l" +#line 808 "gabc/gabc-notes-determination.l" { if (!overbrace_var) { gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0, @@ -11668,7 +11831,7 @@ YY_RULE_SETUP } else { char_for_brace = gabc_notes_determination_text[5]-'0'; gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{%d}{2}", overbrace_var, + "\\GreVarBraceSavePos{%hu}{%d}{2}", overbrace_var, char_for_brace); overbrace_var = 0; gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr)); @@ -11677,7 +11840,7 @@ YY_RULE_SETUP YY_BREAK case 17: YY_RULE_SETUP -#line 824 "gabc/gabc-notes-determination.l" +#line 827 "gabc/gabc-notes-determination.l" { if (!overbrace_var) { gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0, @@ -11691,7 +11854,7 @@ YY_RULE_SETUP } else { char_for_brace = gabc_notes_determination_text[6]-'0'; gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{%d}{2}", overbrace_var, + "\\GreVarBraceSavePos{%hu}{%d}{2}", overbrace_var, char_for_brace); overbrace_var = 0; gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr)); @@ -11700,7 +11863,7 @@ YY_RULE_SETUP YY_BREAK case 18: YY_RULE_SETUP -#line 843 "gabc/gabc-notes-determination.l" +#line 846 "gabc/gabc-notes-determination.l" { if (notesmacros[gabc_notes_determination_text[3]-'0']) { gregorio_add_texverb_to_note(current_note, @@ -11710,7 +11873,7 @@ YY_RULE_SETUP YY_BREAK case 19: YY_RULE_SETUP -#line 849 "gabc/gabc-notes-determination.l" +#line 852 "gabc/gabc-notes-determination.l" { if (notesmacros[gabc_notes_determination_text[3]-'0']) { gregorio_add_texverb_as_note(¤t_note, @@ -11721,7 +11884,7 @@ YY_RULE_SETUP YY_BREAK case 20: YY_RULE_SETUP -#line 856 "gabc/gabc-notes-determination.l" +#line 859 "gabc/gabc-notes-determination.l" { if (notesmacros[gabc_notes_determination_text[3]-'0']) { gregorio_add_texverb_as_note(¤t_note, @@ -11732,7 +11895,7 @@ YY_RULE_SETUP YY_BREAK case 21: YY_RULE_SETUP -#line 863 "gabc/gabc-notes-determination.l" +#line 866 "gabc/gabc-notes-determination.l" { if (notesmacros[gabc_notes_determination_text[5]-'0']) { gregorio_add_texverb_as_note(¤t_note, @@ -11743,56 +11906,56 @@ YY_RULE_SETUP YY_BREAK case 22: YY_RULE_SETUP -#line 870 "gabc/gabc-notes-determination.l" +#line 873 "gabc/gabc-notes-determination.l" { BEGIN(texverbnote); } YY_BREAK case 23: YY_RULE_SETUP -#line 873 "gabc/gabc-notes-determination.l" +#line 876 "gabc/gabc-notes-determination.l" { BEGIN(texverbglyph); } YY_BREAK case 24: YY_RULE_SETUP -#line 876 "gabc/gabc-notes-determination.l" +#line 879 "gabc/gabc-notes-determination.l" { BEGIN(texverbelement); } YY_BREAK case 25: YY_RULE_SETUP -#line 879 "gabc/gabc-notes-determination.l" +#line 882 "gabc/gabc-notes-determination.l" { BEGIN(alt); } YY_BREAK case 26: YY_RULE_SETUP -#line 882 "gabc/gabc-notes-determination.l" +#line 885 "gabc/gabc-notes-determination.l" { gregorio_add_nlba_as_note(¤t_note, NLBA_BEGINNING, ¬es_lloc); } YY_BREAK case 27: YY_RULE_SETUP -#line 885 "gabc/gabc-notes-determination.l" +#line 888 "gabc/gabc-notes-determination.l" { gregorio_add_nlba_as_note(¤t_note, NLBA_END, ¬es_lloc); } YY_BREAK case 28: YY_RULE_SETUP -#line 888 "gabc/gabc-notes-determination.l" +#line 891 "gabc/gabc-notes-determination.l" { gregorio_start_autofuse(¤t_note, ¬es_lloc); } YY_BREAK case 29: YY_RULE_SETUP -#line 891 "gabc/gabc-notes-determination.l" +#line 894 "gabc/gabc-notes-determination.l" { gregorio_end_autofuse(¤t_note, ¬es_lloc); } @@ -11800,7 +11963,7 @@ YY_RULE_SETUP case 30: /* rule 30 can match eol */ YY_RULE_SETUP -#line 894 "gabc/gabc-notes-determination.l" +#line 897 "gabc/gabc-notes-determination.l" { gregorio_snprintf(tempstr, sizeof tempstr, "\\GreOverBrace{%s}{0pt}{0pt}{%d}", @@ -11811,7 +11974,7 @@ YY_RULE_SETUP case 31: /* rule 31 can match eol */ YY_RULE_SETUP -#line 900 "gabc/gabc-notes-determination.l" +#line 903 "gabc/gabc-notes-determination.l" { gregorio_snprintf(tempstr, sizeof tempstr, "\\GreUnderBrace{%s}{0pt}{0pt}{%d}", @@ -11822,7 +11985,7 @@ YY_RULE_SETUP case 32: /* rule 32 can match eol */ YY_RULE_SETUP -#line 906 "gabc/gabc-notes-determination.l" +#line 909 "gabc/gabc-notes-determination.l" { gregorio_snprintf(tempstr, sizeof tempstr, "\\GreOverCurlyBrace{%s}{0pt}{0pt}{%d}{0}", @@ -11833,7 +11996,7 @@ YY_RULE_SETUP case 33: /* rule 33 can match eol */ YY_RULE_SETUP -#line 912 "gabc/gabc-notes-determination.l" +#line 915 "gabc/gabc-notes-determination.l" { gregorio_snprintf(tempstr, sizeof tempstr, "\\GreOverCurlyBrace{%s}{0pt}{0pt}{%d}{1}", @@ -11844,7 +12007,7 @@ YY_RULE_SETUP case 34: /* rule 34 can match eol */ YY_RULE_SETUP -#line 918 "gabc/gabc-notes-determination.l" +#line 921 "gabc/gabc-notes-determination.l" { gregorio_add_cs_to_note(¤t_note, gregorio_strdup(gabc_notes_determination_text), false); @@ -11853,7 +12016,7 @@ YY_RULE_SETUP case 35: /* rule 35 can match eol */ YY_RULE_SETUP -#line 922 "gabc/gabc-notes-determination.l" +#line 925 "gabc/gabc-notes-determination.l" { gregorio_add_cs_to_note(¤t_note, gregorio_strdup(gabc_notes_determination_text), true); @@ -11862,7 +12025,7 @@ YY_RULE_SETUP case 36: /* rule 36 can match eol */ YY_RULE_SETUP -#line 926 "gabc/gabc-notes-determination.l" +#line 929 "gabc/gabc-notes-determination.l" { gregorio_add_texverb_to_note(current_note, gregorio_strdup(gabc_notes_determination_text)); @@ -11871,7 +12034,7 @@ YY_RULE_SETUP case 37: /* rule 37 can match eol */ YY_RULE_SETUP -#line 930 "gabc/gabc-notes-determination.l" +#line 933 "gabc/gabc-notes-determination.l" { gregorio_add_texverb_as_note(¤t_note, gregorio_strdup(gabc_notes_determination_text), @@ -11881,7 +12044,7 @@ YY_RULE_SETUP case 38: /* rule 38 can match eol */ YY_RULE_SETUP -#line 935 "gabc/gabc-notes-determination.l" +#line 938 "gabc/gabc-notes-determination.l" { gregorio_add_texverb_as_note(¤t_note, gregorio_strdup(gabc_notes_determination_text), @@ -11891,7 +12054,7 @@ YY_RULE_SETUP case 39: /* rule 39 can match eol */ YY_RULE_SETUP -#line 940 "gabc/gabc-notes-determination.l" +#line 943 "gabc/gabc-notes-determination.l" { gregorio_add_texverb_as_note(¤t_note, gregorio_strdup(gabc_notes_determination_text), GRE_ALT, @@ -11900,7 +12063,7 @@ YY_RULE_SETUP YY_BREAK case 40: YY_RULE_SETUP -#line 945 "gabc/gabc-notes-determination.l" +#line 948 "gabc/gabc-notes-determination.l" { BEGIN(space); } @@ -11910,7 +12073,7 @@ case 41: (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up gabc_notes_determination_text again */ YY_RULE_SETUP -#line 948 "gabc/gabc-notes-determination.l" +#line 951 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_AD_HOC_SPACE, gregorio_strdup(gabc_notes_determination_text), ¬es_lloc); @@ -11918,7 +12081,7 @@ YY_RULE_SETUP YY_BREAK case 42: YY_RULE_SETUP -#line 952 "gabc/gabc-notes-determination.l" +#line 955 "gabc/gabc-notes-determination.l" { BEGIN(nbspace); } @@ -11928,7 +12091,7 @@ case 43: (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up gabc_notes_determination_text again */ YY_RULE_SETUP -#line 955 "gabc/gabc-notes-determination.l" +#line 958 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_AD_HOC_SPACE_NB, gregorio_strdup(gabc_notes_determination_text), ¬es_lloc); @@ -11936,14 +12099,14 @@ YY_RULE_SETUP YY_BREAK case 44: YY_RULE_SETUP -#line 959 "gabc/gabc-notes-determination.l" +#line 962 "gabc/gabc-notes-determination.l" { end_variable_ledger(SO_OVER); } YY_BREAK case 45: YY_RULE_SETUP -#line 962 "gabc/gabc-notes-determination.l" +#line 965 "gabc/gabc-notes-determination.l" { BEGIN(overledger); } @@ -11951,7 +12114,7 @@ YY_RULE_SETUP case 46: /* rule 46 can match eol */ YY_RULE_SETUP -#line 965 "gabc/gabc-notes-determination.l" +#line 968 "gabc/gabc-notes-determination.l" { save_before_ledger(gabc_notes_determination_text); BEGIN(overledger2); @@ -11960,7 +12123,7 @@ YY_RULE_SETUP case 47: /* rule 47 can match eol */ YY_RULE_SETUP -#line 969 "gabc/gabc-notes-determination.l" +#line 972 "gabc/gabc-notes-determination.l" { add_static_ledger(SO_OVER, gabc_notes_determination_text); BEGIN(endledger); @@ -11969,7 +12132,7 @@ YY_RULE_SETUP case 48: /* rule 48 can match eol */ YY_RULE_SETUP -#line 973 "gabc/gabc-notes-determination.l" +#line 976 "gabc/gabc-notes-determination.l" { add_variable_ledger(SO_OVER, gabc_notes_determination_text); BEGIN(endledger); @@ -11977,14 +12140,14 @@ YY_RULE_SETUP YY_BREAK case 49: YY_RULE_SETUP -#line 977 "gabc/gabc-notes-determination.l" +#line 980 "gabc/gabc-notes-determination.l" { end_variable_ledger(SO_UNDER); } YY_BREAK case 50: YY_RULE_SETUP -#line 980 "gabc/gabc-notes-determination.l" +#line 983 "gabc/gabc-notes-determination.l" { BEGIN(underledger); } @@ -11992,7 +12155,7 @@ YY_RULE_SETUP case 51: /* rule 51 can match eol */ YY_RULE_SETUP -#line 983 "gabc/gabc-notes-determination.l" +#line 986 "gabc/gabc-notes-determination.l" { save_before_ledger(gabc_notes_determination_text); BEGIN(underledger2); @@ -12001,7 +12164,7 @@ YY_RULE_SETUP case 52: /* rule 52 can match eol */ YY_RULE_SETUP -#line 987 "gabc/gabc-notes-determination.l" +#line 990 "gabc/gabc-notes-determination.l" { add_static_ledger(SO_UNDER, gabc_notes_determination_text); BEGIN(endledger); @@ -12010,7 +12173,7 @@ YY_RULE_SETUP case 53: /* rule 53 can match eol */ YY_RULE_SETUP -#line 991 "gabc/gabc-notes-determination.l" +#line 994 "gabc/gabc-notes-determination.l" { add_variable_ledger(SO_UNDER, gabc_notes_determination_text); BEGIN(endledger); @@ -12018,7 +12181,7 @@ YY_RULE_SETUP YY_BREAK case 54: YY_RULE_SETUP -#line 995 "gabc/gabc-notes-determination.l" +#line 998 "gabc/gabc-notes-determination.l" { BEGIN(INITIAL); } @@ -12026,21 +12189,21 @@ YY_RULE_SETUP case 55: /* rule 55 can match eol */ YY_RULE_SETUP -#line 998 "gabc/gabc-notes-determination.l" +#line 1001 "gabc/gabc-notes-determination.l" { parse_slur(); } YY_BREAK case 56: YY_RULE_SETUP -#line 1001 "gabc/gabc-notes-determination.l" +#line 1004 "gabc/gabc-notes-determination.l" { start_var_slur(); } YY_BREAK case 57: YY_RULE_SETUP -#line 1004 "gabc/gabc-notes-determination.l" +#line 1007 "gabc/gabc-notes-determination.l" { end_var_slur(); } @@ -12048,21 +12211,21 @@ YY_RULE_SETUP case 58: /* rule 58 can match eol */ YY_RULE_SETUP -#line 1011 "gabc/gabc-notes-determination.l" +#line 1014 "gabc/gabc-notes-determination.l" { parse_hepisema_adjustment(); } YY_BREAK case 59: YY_RULE_SETUP -#line 1014 "gabc/gabc-notes-determination.l" +#line 1017 "gabc/gabc-notes-determination.l" { end_hepisema_adjustment(); } YY_BREAK case 60: YY_RULE_SETUP -#line 1017 "gabc/gabc-notes-determination.l" +#line 1020 "gabc/gabc-notes-determination.l" { gregorio_add_texverb_as_note(¤t_note, gregorio_strdup("\\hbox to 0pt{"), GRE_TEXVERB_ELEMENT, @@ -12071,7 +12234,7 @@ YY_RULE_SETUP YY_BREAK case 61: YY_RULE_SETUP -#line 1022 "gabc/gabc-notes-determination.l" +#line 1025 "gabc/gabc-notes-determination.l" { gregorio_add_texverb_as_note(¤t_note, gregorio_strdup("\\hss%\n}%\n\\GreNoBreak\\relax "), @@ -12080,7 +12243,7 @@ YY_RULE_SETUP YY_BREAK case 62: YY_RULE_SETUP -#line 1027 "gabc/gabc-notes-determination.l" +#line 1030 "gabc/gabc-notes-determination.l" { gregorio_add_manual_custos_as_note(¤t_note, pitch_letter_to_height(gabc_notes_determination_text[0]), @@ -12090,19 +12253,19 @@ YY_RULE_SETUP case 63: /* rule 63 can match eol */ YY_RULE_SETUP -#line 1032 "gabc/gabc-notes-determination.l" +#line 1035 "gabc/gabc-notes-determination.l" /* ignore ends of line and tabs */; YY_BREAK case 64: YY_RULE_SETUP -#line 1033 "gabc/gabc-notes-determination.l" +#line 1036 "gabc/gabc-notes-determination.l" { gregorio_add_custo_as_note(¤t_note, ¬es_lloc); } YY_BREAK case 65: YY_RULE_SETUP -#line 1036 "gabc/gabc-notes-determination.l" +#line 1039 "gabc/gabc-notes-determination.l" { gregorio_add_end_of_line_as_note(¤t_note, false, false, false, ¬es_lloc); @@ -12110,7 +12273,7 @@ YY_RULE_SETUP YY_BREAK case 66: YY_RULE_SETUP -#line 1040 "gabc/gabc-notes-determination.l" +#line 1043 "gabc/gabc-notes-determination.l" { gregorio_add_end_of_line_as_note(¤t_note, false, true, true, ¬es_lloc); @@ -12118,7 +12281,7 @@ YY_RULE_SETUP YY_BREAK case 67: YY_RULE_SETUP -#line 1044 "gabc/gabc-notes-determination.l" +#line 1047 "gabc/gabc-notes-determination.l" { gregorio_add_end_of_line_as_note(¤t_note, false, true, false, ¬es_lloc); @@ -12126,7 +12289,7 @@ YY_RULE_SETUP YY_BREAK case 68: YY_RULE_SETUP -#line 1048 "gabc/gabc-notes-determination.l" +#line 1051 "gabc/gabc-notes-determination.l" { gregorio_add_end_of_line_as_note(¤t_note, true, false, false, ¬es_lloc); @@ -12134,7 +12297,7 @@ YY_RULE_SETUP YY_BREAK case 69: YY_RULE_SETUP -#line 1052 "gabc/gabc-notes-determination.l" +#line 1055 "gabc/gabc-notes-determination.l" { gregorio_add_end_of_line_as_note(¤t_note, true, true, true, ¬es_lloc); @@ -12142,7 +12305,7 @@ YY_RULE_SETUP YY_BREAK case 70: YY_RULE_SETUP -#line 1056 "gabc/gabc-notes-determination.l" +#line 1059 "gabc/gabc-notes-determination.l" { gregorio_add_end_of_line_as_note(¤t_note, true, true, false, ¬es_lloc); @@ -12150,7 +12313,7 @@ YY_RULE_SETUP YY_BREAK case 71: YY_RULE_SETUP -#line 1060 "gabc/gabc-notes-determination.l" +#line 1063 "gabc/gabc-notes-determination.l" { gregorio_add_clef_as_note(¤t_note, letter_to_clef(gabc_notes_determination_text[0]), @@ -12160,7 +12323,7 @@ YY_RULE_SETUP YY_BREAK case 72: YY_RULE_SETUP -#line 1066 "gabc/gabc-notes-determination.l" +#line 1069 "gabc/gabc-notes-determination.l" { gregorio_add_clef_as_note(¤t_note, letter_to_clef(gabc_notes_determination_text[0]), @@ -12170,7 +12333,7 @@ YY_RULE_SETUP YY_BREAK case 73: YY_RULE_SETUP -#line 1072 "gabc/gabc-notes-determination.l" +#line 1075 "gabc/gabc-notes-determination.l" { gregorio_add_secondary_clef_to_note(current_note, letter_to_clef(gabc_notes_determination_text[1]), @@ -12179,7 +12342,7 @@ YY_RULE_SETUP YY_BREAK case 74: YY_RULE_SETUP -#line 1077 "gabc/gabc-notes-determination.l" +#line 1080 "gabc/gabc-notes-determination.l" { gregorio_add_secondary_clef_to_note(current_note, letter_to_clef(gabc_notes_determination_text[1]), @@ -12188,49 +12351,49 @@ YY_RULE_SETUP YY_BREAK case 75: YY_RULE_SETUP -#line 1082 "gabc/gabc-notes-determination.l" +#line 1085 "gabc/gabc-notes-determination.l" { add_bar_as_note(B_VIRGULA); } YY_BREAK case 76: YY_RULE_SETUP -#line 1085 "gabc/gabc-notes-determination.l" +#line 1088 "gabc/gabc-notes-determination.l" { add_bar_as_note(B_DIVISIO_MINIMA); } YY_BREAK case 77: YY_RULE_SETUP -#line 1088 "gabc/gabc-notes-determination.l" +#line 1091 "gabc/gabc-notes-determination.l" { add_bar_as_note(parse_dominican_bar(gabc_notes_determination_text[1])); } YY_BREAK case 78: YY_RULE_SETUP -#line 1091 "gabc/gabc-notes-determination.l" +#line 1094 "gabc/gabc-notes-determination.l" { add_bar_as_note(B_DIVISIO_MINOR); } YY_BREAK case 79: YY_RULE_SETUP -#line 1094 "gabc/gabc-notes-determination.l" +#line 1097 "gabc/gabc-notes-determination.l" { add_bar_as_note(B_DIVISIO_MAIOR); } YY_BREAK case 80: YY_RULE_SETUP -#line 1097 "gabc/gabc-notes-determination.l" +#line 1100 "gabc/gabc-notes-determination.l" { add_bar_as_note(B_DIVISIO_FINALIS); } YY_BREAK case 81: YY_RULE_SETUP -#line 1100 "gabc/gabc-notes-determination.l" +#line 1103 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_PUNCTUM_CAVUM, legacy_oriscus_orientation); @@ -12238,7 +12401,7 @@ YY_RULE_SETUP YY_BREAK case 82: YY_RULE_SETUP -#line 1104 "gabc/gabc-notes-determination.l" +#line 1107 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_LINEA_PUNCTUM, legacy_oriscus_orientation); @@ -12246,7 +12409,7 @@ YY_RULE_SETUP YY_BREAK case 83: YY_RULE_SETUP -#line 1108 "gabc/gabc-notes-determination.l" +#line 1111 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_LINEA_PUNCTUM_CAVUM, legacy_oriscus_orientation); @@ -12254,49 +12417,49 @@ YY_RULE_SETUP YY_BREAK case 84: YY_RULE_SETUP -#line 1112 "gabc/gabc-notes-determination.l" +#line 1115 "gabc/gabc-notes-determination.l" { gregorio_add_special_sign(current_note, _ACCENTUS); } YY_BREAK case 85: YY_RULE_SETUP -#line 1115 "gabc/gabc-notes-determination.l" +#line 1118 "gabc/gabc-notes-determination.l" { gregorio_add_special_sign(current_note, _ACCENTUS_REVERSUS); } YY_BREAK case 86: YY_RULE_SETUP -#line 1118 "gabc/gabc-notes-determination.l" +#line 1121 "gabc/gabc-notes-determination.l" { gregorio_add_special_sign(current_note, _CIRCULUS); } YY_BREAK case 87: YY_RULE_SETUP -#line 1121 "gabc/gabc-notes-determination.l" +#line 1124 "gabc/gabc-notes-determination.l" { gregorio_add_special_sign(current_note, _SEMI_CIRCULUS); } YY_BREAK case 88: YY_RULE_SETUP -#line 1124 "gabc/gabc-notes-determination.l" +#line 1127 "gabc/gabc-notes-determination.l" { gregorio_add_special_sign(current_note, _SEMI_CIRCULUS_REVERSUS); } YY_BREAK case 89: YY_RULE_SETUP -#line 1127 "gabc/gabc-notes-determination.l" +#line 1130 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_FLAT, legacy_oriscus_orientation); } YY_BREAK case 90: YY_RULE_SETUP -#line 1130 "gabc/gabc-notes-determination.l" +#line 1133 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_SHARP, legacy_oriscus_orientation); @@ -12304,7 +12467,7 @@ YY_RULE_SETUP YY_BREAK case 91: YY_RULE_SETUP -#line 1134 "gabc/gabc-notes-determination.l" +#line 1137 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_NATURAL, legacy_oriscus_orientation); @@ -12312,7 +12475,7 @@ YY_RULE_SETUP YY_BREAK case 92: YY_RULE_SETUP -#line 1138 "gabc/gabc-notes-determination.l" +#line 1141 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_HALF_SPACE, NULL, ¬es_lloc); @@ -12320,7 +12483,7 @@ YY_RULE_SETUP YY_BREAK case 93: YY_RULE_SETUP -#line 1142 "gabc/gabc-notes-determination.l" +#line 1145 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_INTERGLYPH_SPACE, NULL, ¬es_lloc); @@ -12328,7 +12491,7 @@ YY_RULE_SETUP YY_BREAK case 94: YY_RULE_SETUP -#line 1146 "gabc/gabc-notes-determination.l" +#line 1149 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_NEUMATIC_CUT, NULL, ¬es_lloc); @@ -12339,7 +12502,7 @@ case 95: (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up gabc_notes_determination_text again */ YY_RULE_SETUP -#line 1150 "gabc/gabc-notes-determination.l" +#line 1153 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_NEUMATIC_CUT, NULL, ¬es_lloc); @@ -12347,7 +12510,7 @@ YY_RULE_SETUP YY_BREAK case 96: YY_RULE_SETUP -#line 1154 "gabc/gabc-notes-determination.l" +#line 1157 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_LARGER_SPACE, NULL, ¬es_lloc); @@ -12355,7 +12518,7 @@ YY_RULE_SETUP YY_BREAK case 97: YY_RULE_SETUP -#line 1158 "gabc/gabc-notes-determination.l" +#line 1161 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_GLYPH_SPACE, NULL, ¬es_lloc); @@ -12363,7 +12526,7 @@ YY_RULE_SETUP YY_BREAK case 98: YY_RULE_SETUP -#line 1162 "gabc/gabc-notes-determination.l" +#line 1165 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_NEUMATIC_CUT_NB, NULL, ¬es_lloc); @@ -12374,7 +12537,7 @@ case 99: (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up gabc_notes_determination_text again */ YY_RULE_SETUP -#line 1166 "gabc/gabc-notes-determination.l" +#line 1169 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_NEUMATIC_CUT_NB, NULL, ¬es_lloc); @@ -12382,7 +12545,7 @@ YY_RULE_SETUP YY_BREAK case 100: YY_RULE_SETUP -#line 1170 "gabc/gabc-notes-determination.l" +#line 1173 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_LARGER_SPACE_NB, NULL, ¬es_lloc); @@ -12390,7 +12553,7 @@ YY_RULE_SETUP YY_BREAK case 101: YY_RULE_SETUP -#line 1174 "gabc/gabc-notes-determination.l" +#line 1177 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_GLYPH_SPACE_NB, NULL, ¬es_lloc); @@ -12403,7 +12566,7 @@ YY_LINENO_REWIND_TO(yy_bp + 1); (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up gabc_notes_determination_text again */ YY_RULE_SETUP -#line 1178 "gabc/gabc-notes-determination.l" +#line 1181 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_ZERO_WIDTH, NULL, ¬es_lloc); @@ -12411,7 +12574,7 @@ YY_RULE_SETUP YY_BREAK case 103: YY_RULE_SETUP -#line 1182 "gabc/gabc-notes-determination.l" +#line 1185 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_LINEA, legacy_oriscus_orientation); @@ -12419,134 +12582,131 @@ YY_RULE_SETUP YY_BREAK case 104: YY_RULE_SETUP -#line 1186 "gabc/gabc-notes-determination.l" +#line 1189 "gabc/gabc-notes-determination.l" { lex_add_note(0, S_BIVIRGA, _NO_SIGN, L_NO_LIQUESCENTIA); } YY_BREAK case 105: YY_RULE_SETUP -#line 1189 "gabc/gabc-notes-determination.l" +#line 1192 "gabc/gabc-notes-determination.l" { lex_add_note(0, S_TRIVIRGA, _NO_SIGN, L_NO_LIQUESCENTIA); } YY_BREAK case 106: YY_RULE_SETUP -#line 1192 "gabc/gabc-notes-determination.l" +#line 1195 "gabc/gabc-notes-determination.l" { lex_add_note(0, S_BIVIRGA, _NO_SIGN, L_NO_LIQUESCENTIA); } YY_BREAK case 107: YY_RULE_SETUP -#line 1195 "gabc/gabc-notes-determination.l" +#line 1198 "gabc/gabc-notes-determination.l" { lex_add_note(0, S_TRIVIRGA, _NO_SIGN, L_NO_LIQUESCENTIA); } YY_BREAK case 108: YY_RULE_SETUP -#line 1198 "gabc/gabc-notes-determination.l" +#line 1201 "gabc/gabc-notes-determination.l" { lex_add_note(0, S_DISTROPHA, _NO_SIGN, L_NO_LIQUESCENTIA); } YY_BREAK case 109: YY_RULE_SETUP -#line 1201 "gabc/gabc-notes-determination.l" +#line 1204 "gabc/gabc-notes-determination.l" { lex_add_note(0, S_DISTROPHA, _NO_SIGN, L_AUCTUS_ASCENDENS); } YY_BREAK case 110: YY_RULE_SETUP -#line 1204 "gabc/gabc-notes-determination.l" +#line 1207 "gabc/gabc-notes-determination.l" { lex_add_note(0, S_TRISTROPHA, _NO_SIGN, L_NO_LIQUESCENTIA); } YY_BREAK case 111: YY_RULE_SETUP -#line 1207 "gabc/gabc-notes-determination.l" +#line 1210 "gabc/gabc-notes-determination.l" { lex_add_note(0, S_TRISTROPHA, _NO_SIGN, L_AUCTUS_ASCENDENS); } YY_BREAK case 112: YY_RULE_SETUP -#line 1210 "gabc/gabc-notes-determination.l" +#line 1213 "gabc/gabc-notes-determination.l" { - lex_add_note(0, punctum(gabc_notes_determination_text[0]), _NO_SIGN, - L_NO_LIQUESCENTIA); + lex_add_note(0, S_PUNCTUM, _NO_SIGN, L_NO_LIQUESCENTIA); } YY_BREAK case 113: YY_RULE_SETUP -#line 1214 "gabc/gabc-notes-determination.l" +#line 1216 "gabc/gabc-notes-determination.l" { - lex_add_note(1, punctum(gabc_notes_determination_text[1]), _NO_SIGN, - L_INITIO_DEBILIS); + lex_add_note(1, S_PUNCTUM, _NO_SIGN, L_INITIO_DEBILIS); } YY_BREAK case 114: YY_RULE_SETUP -#line 1218 "gabc/gabc-notes-determination.l" +#line 1219 "gabc/gabc-notes-determination.l" { - lex_add_note(1, punctum(gabc_notes_determination_text[1]), _NO_SIGN, - L_FUSED); + lex_add_note(1, S_PUNCTUM, _NO_SIGN, L_FUSED); } YY_BREAK case 115: YY_RULE_SETUP #line 1222 "gabc/gabc-notes-determination.l" { - add_sign(_V_EPISEMA); + lex_add_note(0, punctum_inclinatum(gabc_notes_determination_text[1]), + _NO_SIGN, L_NO_LIQUESCENTIA); } YY_BREAK case 116: YY_RULE_SETUP -#line 1225 "gabc/gabc-notes-determination.l" +#line 1226 "gabc/gabc-notes-determination.l" { - add_h_episema(); + lex_add_note(1, punctum_inclinatum(gabc_notes_determination_text[2]), + _NO_SIGN, L_INITIO_DEBILIS); } YY_BREAK case 117: YY_RULE_SETUP -#line 1228 "gabc/gabc-notes-determination.l" +#line 1230 "gabc/gabc-notes-determination.l" { - add_sign(_PUNCTUM_MORA); + lex_add_note(1, punctum_inclinatum(gabc_notes_determination_text[2]), + _NO_SIGN, L_FUSED); } YY_BREAK case 118: YY_RULE_SETUP -#line 1231 "gabc/gabc-notes-determination.l" +#line 1234 "gabc/gabc-notes-determination.l" { - gregorio_add_tail_liquescentia(current_note, L_DEMINUTUS, - legacy_oriscus_orientation); + add_sign(_V_EPISEMA); } YY_BREAK case 119: YY_RULE_SETUP -#line 1235 "gabc/gabc-notes-determination.l" +#line 1237 "gabc/gabc-notes-determination.l" { - gregorio_add_tail_liquescentia(current_note, L_AUCTUS_DESCENDENS, - legacy_oriscus_orientation); + add_h_episema(); } YY_BREAK case 120: YY_RULE_SETUP -#line 1239 "gabc/gabc-notes-determination.l" +#line 1240 "gabc/gabc-notes-determination.l" { - gregorio_add_tail_liquescentia(current_note, L_AUCTUS_ASCENDENS, - legacy_oriscus_orientation); + add_sign(_PUNCTUM_MORA); } YY_BREAK case 121: YY_RULE_SETUP #line 1243 "gabc/gabc-notes-determination.l" { - gregorio_change_shape(current_note, S_QUADRATUM, + gregorio_add_tail_liquescentia(current_note, L_DEMINUTUS, legacy_oriscus_orientation); } YY_BREAK @@ -12554,7 +12714,7 @@ case 122: YY_RULE_SETUP #line 1247 "gabc/gabc-notes-determination.l" { - gregorio_change_shape(current_note, S_ORISCUS_UNDETERMINED, + gregorio_add_tail_liquescentia(current_note, L_AUCTUS_DESCENDENS, legacy_oriscus_orientation); } YY_BREAK @@ -12562,7 +12722,7 @@ case 123: YY_RULE_SETUP #line 1251 "gabc/gabc-notes-determination.l" { - gregorio_change_shape(current_note, S_ORISCUS_DESCENDENS, + gregorio_add_tail_liquescentia(current_note, L_AUCTUS_ASCENDENS, legacy_oriscus_orientation); } YY_BREAK @@ -12570,7 +12730,7 @@ case 124: YY_RULE_SETUP #line 1255 "gabc/gabc-notes-determination.l" { - gregorio_change_shape(current_note, S_ORISCUS_ASCENDENS, + gregorio_change_shape(current_note, S_QUADRATUM, legacy_oriscus_orientation); } YY_BREAK @@ -12578,7 +12738,7 @@ case 125: YY_RULE_SETUP #line 1259 "gabc/gabc-notes-determination.l" { - gregorio_change_shape(current_note, S_ORISCUS_SCAPUS_UNDETERMINED, + gregorio_change_shape(current_note, S_ORISCUS_UNDETERMINED, legacy_oriscus_orientation); } YY_BREAK @@ -12586,7 +12746,7 @@ case 126: YY_RULE_SETUP #line 1263 "gabc/gabc-notes-determination.l" { - gregorio_change_shape(current_note, S_ORISCUS_SCAPUS_DESCENDENS, + gregorio_change_shape(current_note, S_ORISCUS_DESCENDENS, legacy_oriscus_orientation); } YY_BREAK @@ -12594,7 +12754,7 @@ case 127: YY_RULE_SETUP #line 1267 "gabc/gabc-notes-determination.l" { - gregorio_change_shape(current_note, S_ORISCUS_SCAPUS_ASCENDENS, + gregorio_change_shape(current_note, S_ORISCUS_ASCENDENS, legacy_oriscus_orientation); } YY_BREAK @@ -12602,7 +12762,7 @@ case 128: YY_RULE_SETUP #line 1271 "gabc/gabc-notes-determination.l" { - gregorio_change_shape(current_note, S_QUILISMA, + gregorio_change_shape(current_note, S_ORISCUS_SCAPUS_UNDETERMINED, legacy_oriscus_orientation); } YY_BREAK @@ -12610,7 +12770,7 @@ case 129: YY_RULE_SETUP #line 1275 "gabc/gabc-notes-determination.l" { - gregorio_change_shape(current_note, S_QUILISMA_QUADRATUM, + gregorio_change_shape(current_note, S_ORISCUS_SCAPUS_DESCENDENS, legacy_oriscus_orientation); } YY_BREAK @@ -12618,7 +12778,7 @@ case 130: YY_RULE_SETUP #line 1279 "gabc/gabc-notes-determination.l" { - gregorio_change_shape(current_note, S_VIRGA, + gregorio_change_shape(current_note, S_ORISCUS_SCAPUS_ASCENDENS, legacy_oriscus_orientation); } YY_BREAK @@ -12626,7 +12786,7 @@ case 131: YY_RULE_SETUP #line 1283 "gabc/gabc-notes-determination.l" { - gregorio_change_shape(current_note, S_VIRGA_REVERSA, + gregorio_change_shape(current_note, S_QUILISMA, legacy_oriscus_orientation); } YY_BREAK @@ -12634,7 +12794,7 @@ case 132: YY_RULE_SETUP #line 1287 "gabc/gabc-notes-determination.l" { - gregorio_change_shape(current_note, S_STROPHA, + gregorio_change_shape(current_note, S_QUILISMA_QUADRATUM, legacy_oriscus_orientation); } YY_BREAK @@ -12642,50 +12802,74 @@ case 133: YY_RULE_SETUP #line 1291 "gabc/gabc-notes-determination.l" { - current_note->supposed_high_ledger_line = true; - current_note->explicit_high_ledger_line = true; + gregorio_change_shape(current_note, S_VIRGA, + legacy_oriscus_orientation); } YY_BREAK case 134: YY_RULE_SETUP #line 1295 "gabc/gabc-notes-determination.l" { - current_note->supposed_high_ledger_line = false; - current_note->explicit_high_ledger_line = true; + gregorio_change_shape(current_note, S_VIRGA_REVERSA, + legacy_oriscus_orientation); } YY_BREAK case 135: YY_RULE_SETUP #line 1299 "gabc/gabc-notes-determination.l" { - current_note->supposed_low_ledger_line = true; - current_note->explicit_low_ledger_line = true; + gregorio_change_shape(current_note, S_STROPHA, + legacy_oriscus_orientation); } YY_BREAK case 136: YY_RULE_SETUP #line 1303 "gabc/gabc-notes-determination.l" { - current_note->supposed_low_ledger_line = false; - current_note->explicit_low_ledger_line = true; + current_note->supposed_high_ledger_line = true; + current_note->explicit_high_ledger_line = true; } YY_BREAK case 137: -/* rule 137 can match eol */ YY_RULE_SETUP #line 1307 "gabc/gabc-notes-determination.l" { + current_note->supposed_high_ledger_line = false; + current_note->explicit_high_ledger_line = true; + } + YY_BREAK +case 138: +YY_RULE_SETUP +#line 1311 "gabc/gabc-notes-determination.l" +{ + current_note->supposed_low_ledger_line = true; + current_note->explicit_low_ledger_line = true; + } + YY_BREAK +case 139: +YY_RULE_SETUP +#line 1315 "gabc/gabc-notes-determination.l" +{ + current_note->supposed_low_ledger_line = false; + current_note->explicit_low_ledger_line = true; + } + YY_BREAK +case 140: +/* rule 140 can match eol */ +YY_RULE_SETUP +#line 1319 "gabc/gabc-notes-determination.l" +{ gregorio_messagef("det_notes_from_string", VERBOSITY_ERROR, 0, _("unrecognized character: \"%c\""), gabc_notes_determination_text[0]); } YY_BREAK -case 138: +case 141: YY_RULE_SETUP -#line 1313 "gabc/gabc-notes-determination.l" +#line 1325 "gabc/gabc-notes-determination.l" ECHO; YY_BREAK -#line 12689 "gabc/gabc-notes-determination-l.c" +#line 12873 "gabc/gabc-notes-determination-l.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(texverbnote): case YY_STATE_EOF(texverbglyph): @@ -13670,7 +13854,7 @@ void gabc_notes_determination_free (void * ptr ) #define YYTABLES_NAME "yytables" -#line 1313 "gabc/gabc-notes-determination.l" +#line 1325 "gabc/gabc-notes-determination.l" diff --git a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-notes-determination.l b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-notes-determination.l index 9682d53c7e3..b5a53d1f094 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-notes-determination.l +++ b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-notes-determination.l @@ -3,7 +3,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This file implements the note parser. * - * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -42,19 +42,18 @@ static char char_for_brace; static unsigned int nbof_isolated_episema; static char *notesmacros[10]; static char tempstr[256]; -static int brace_var_counter = 0; -static int overbrace_var = 0, underbrace_var = 0; +static unsigned short overbrace_var = 0, underbrace_var = 0; static const char *overbrace_var_kind; static int before_ledger_type; static char *before_ledger_length = NULL; -static int ledger_var[2] = { 0, 0 }; +static unsigned short ledger_var[2] = { 0, 0 }; static unsigned char staff_lines; static signed char highest_pitch; static bool legacy_oriscus_orientation; static unsigned short he_adjustment_index[2] = { 0, 0 }; typedef struct slur_info { - int var; + unsigned short var; char shift; gregorio_note *start; } slur_info; @@ -105,13 +104,17 @@ static __inline char pitch_letter_to_height(const char pitch) { return result; } -static gregorio_shape punctum(const char pitch) +static gregorio_shape punctum_inclinatum(const char orientation) { - if (pitch < 'a') { - return S_PUNCTUM_INCLINATUM; - } else { - return S_PUNCTUM; + switch (orientation) { + case '0': + return S_PUNCTUM_INCLINATUM_DESCENDENS; + + case '1': + return S_PUNCTUM_INCLINATUM_ASCENDENS; } + + return S_PUNCTUM_INCLINATUM_UNDETERMINED; } static __inline void lex_add_note(int i, gregorio_shape shape, char signs, @@ -274,10 +277,10 @@ static void add_variable_ledger(const gregorio_sign_orientation type, after_ledger_length = after_ledger; } - ledger_var[type] = ++brace_var_counter; + ledger_var[type] = ++tex_position_id; gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{0}{1}" - "\\GreDrawAdditionalLine{%d}{\\GreVarBraceLength{%d}}" + "\\GreVarBraceSavePos{%hu}{0}{1}" + "\\GreDrawAdditionalLine{%d}{\\GreVarBraceLength{%hu}}" "{%d}{%s}{%d}{%s}", ledger_var[type], type, ledger_var[type], before_ledger_type, before_ledger_length, after_ledger_type, after_ledger_length); @@ -301,7 +304,7 @@ static void end_variable_ledger(const gregorio_sign_orientation type) "%s-staff ledger line start"), typename, typename); } else { gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{0}{2}", ledger_var[type]); + "\\GreVarBraceSavePos{%hu}{0}{2}", ledger_var[type]); ledger_var[type] = 0; gregorio_add_texverb_as_note(¤t_note, gregorio_strdup(tempstr), GRE_TEXVERB_GLYPH, ¬es_lloc); @@ -440,7 +443,7 @@ static void start_var_slur(void) return; } - slur[index].var = ++brace_var_counter; + slur[index].var = ++tex_position_id; parse_slur_shift(&(slur[index].shift)); slur[index].start = current_note; } @@ -470,8 +473,8 @@ static void end_var_slur(void) parse_slur_shift(&shift); gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{%c}{1}" - "\\GreSlur{%d}{%d}{%c}{\\GreVarBraceLength{%d}}{}{%d}", + "\\GreVarBraceSavePos{%hu}{%c}{1}" + "\\GreSlur{%d}{%d}{%c}{\\GreVarBraceLength{%hu}}{}{%d}", slur[index].var, slur[index].shift, slur[index].start->u.note.pitch + direction, direction, slur[index].shift, slur[index].var, @@ -479,7 +482,7 @@ static void end_var_slur(void) gregorio_add_texverb_to_note(slur[index].start, gregorio_strdup(tempstr)); gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{%c}{2}", slur[index].var, shift); + "\\GreVarBraceSavePos{%hu}{%c}{2}", slur[index].var, shift); gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr)); @@ -713,11 +716,11 @@ void gabc_det_notes_finish(void) "previous overbrace")); } else { char_for_brace = gabc_notes_determination_text[4]-'0'; - overbrace_var = ++brace_var_counter; + overbrace_var = ++tex_position_id; overbrace_var_kind = "ob"; gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{%d}{1}" - "\\GreOverBrace{\\GreVarBraceLength{%d}}{0pt}{0pt}{%d}", + "\\GreVarBraceSavePos{%hu}{%d}{1}" + "\\GreOverBrace{\\GreVarBraceLength{%hu}}{0pt}{0pt}{%d}", overbrace_var, char_for_brace, overbrace_var, char_for_brace); gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr)); } @@ -729,10 +732,10 @@ void gabc_det_notes_finish(void) "previous underbrace")); } else { char_for_brace = gabc_notes_determination_text[4]-'0'; - underbrace_var = ++brace_var_counter; + underbrace_var = ++tex_position_id; gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{%d}{1}" - "\\GreUnderBrace{\\GreVarBraceLength{%d}}{0pt}{0pt}{%d}", + "\\GreVarBraceSavePos{%hu}{%d}{1}" + "\\GreUnderBrace{\\GreVarBraceLength{%hu}}{0pt}{0pt}{%d}", underbrace_var, char_for_brace, underbrace_var, char_for_brace); gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr)); } @@ -744,11 +747,11 @@ void gabc_det_notes_finish(void) "previous overbrace")); } else { char_for_brace = gabc_notes_determination_text[5]-'0'; - overbrace_var = ++brace_var_counter; + overbrace_var = ++tex_position_id; overbrace_var_kind = "ocb"; gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{%d}{1}" - "\\GreOverCurlyBrace{\\GreVarBraceLength{%d}}{0pt}{0pt}{%d}{0}", + "\\GreVarBraceSavePos{%hu}{%d}{1}" + "\\GreOverCurlyBrace{\\GreVarBraceLength{%hu}}{0pt}{0pt}{%d}{0}", overbrace_var, char_for_brace, overbrace_var, char_for_brace); gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr)); } @@ -760,11 +763,11 @@ void gabc_det_notes_finish(void) "previous overbrace")); } else { char_for_brace = gabc_notes_determination_text[6]-'0'; - overbrace_var = ++brace_var_counter; + overbrace_var = ++tex_position_id; overbrace_var_kind = "ocba"; gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{%d}{1}" - "\\GreOverCurlyBrace{\\GreVarBraceLength{%d}}{0pt}{0pt}{%d}{1}", + "\\GreVarBraceSavePos{%hu}{%d}{1}" + "\\GreOverCurlyBrace{\\GreVarBraceLength{%hu}}{0pt}{0pt}{%d}{1}", overbrace_var, char_for_brace, overbrace_var, char_for_brace); gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr)); } @@ -782,7 +785,7 @@ void gabc_det_notes_finish(void) } else { char_for_brace = gabc_notes_determination_text[4]-'0'; gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{%d}{2}", overbrace_var, + "\\GreVarBraceSavePos{%hu}{%d}{2}", overbrace_var, char_for_brace); overbrace_var = 0; gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr)); @@ -796,7 +799,7 @@ void gabc_det_notes_finish(void) } else { char_for_brace = gabc_notes_determination_text[4]-'0'; gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{%d}{2}", underbrace_var, + "\\GreVarBraceSavePos{%hu}{%d}{2}", underbrace_var, char_for_brace); underbrace_var = 0; gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr)); @@ -815,7 +818,7 @@ void gabc_det_notes_finish(void) } else { char_for_brace = gabc_notes_determination_text[5]-'0'; gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{%d}{2}", overbrace_var, + "\\GreVarBraceSavePos{%hu}{%d}{2}", overbrace_var, char_for_brace); overbrace_var = 0; gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr)); @@ -834,7 +837,7 @@ void gabc_det_notes_finish(void) } else { char_for_brace = gabc_notes_determination_text[6]-'0'; gregorio_snprintf(tempstr, sizeof tempstr, - "\\GreVarBraceSavePos{%d}{%d}{2}", overbrace_var, + "\\GreVarBraceSavePos{%hu}{%d}{2}", overbrace_var, char_for_brace); overbrace_var = 0; gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr)); @@ -1207,17 +1210,26 @@ y { [a-npA-NP]sss(\<|\>) { lex_add_note(0, S_TRISTROPHA, _NO_SIGN, L_AUCTUS_ASCENDENS); } -[a-npA-NP] { - lex_add_note(0, punctum(gabc_notes_determination_text[0]), _NO_SIGN, - L_NO_LIQUESCENTIA); +[a-np] { + lex_add_note(0, S_PUNCTUM, _NO_SIGN, L_NO_LIQUESCENTIA); + } +-[a-np] { + lex_add_note(1, S_PUNCTUM, _NO_SIGN, L_INITIO_DEBILIS); + } +@[a-np] { + lex_add_note(1, S_PUNCTUM, _NO_SIGN, L_FUSED); + } +[A-NP][01]? { + lex_add_note(0, punctum_inclinatum(gabc_notes_determination_text[1]), + _NO_SIGN, L_NO_LIQUESCENTIA); } --[a-npA-NP] { - lex_add_note(1, punctum(gabc_notes_determination_text[1]), _NO_SIGN, - L_INITIO_DEBILIS); +-[A-NP][01]? { + lex_add_note(1, punctum_inclinatum(gabc_notes_determination_text[2]), + _NO_SIGN, L_INITIO_DEBILIS); } -@[a-npA-NP] { - lex_add_note(1, punctum(gabc_notes_determination_text[1]), _NO_SIGN, - L_FUSED); +@[A-NP][01]? { + lex_add_note(1, punctum_inclinatum(gabc_notes_determination_text[2]), + _NO_SIGN, L_FUSED); } \'[01]? { add_sign(_V_EPISEMA); diff --git a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-l.c b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-l.c index a9f5dcf0baa..42c089a3dea 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-l.c +++ b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-l.c @@ -398,8 +398,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 70 -#define YY_END_OF_BUFFER 71 +#define YY_NUM_RULES 71 +#define YY_END_OF_BUFFER 72 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -407,40 +407,40 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int32_t yy_accept[292] = +static yyconst flex_int32_t yy_accept[296] = { 0, - 0, 1, 7, 7, 0, 0, 65, 65, 46, 46, - 52, 52, 49, 49, 5, 5, 57, 57, 71, 25, - 69, 25, 23, 6, 23, 23, 23, 23, 23, 23, + 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 72, 25, + 70, 25, 23, 6, 23, 23, 23, 23, 23, 23, 23, 23, 23, 2, 2, 3, 3, 1, 7, 7, - 70, 26, 47, 64, 27, 53, 62, 63, 54, 55, - 65, 67, 66, 46, 53, 52, 53, 49, 48, 5, - 4, 57, 53, 0, 0, 23, 6, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 2, 1, - 7, 7, 0, 7, 7, 0, 7, 8, 0, 26, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 65, 68, 46, 0, 0, 52, 0, 49, - 48, 5, 4, 57, 0, 24, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 7, - 0, 0, 0, 38, 36, 42, 0, 30, 0, 0, - 0, 0, 0, 50, 61, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 23, 23, 0, 23, 23, 23, - 14, 23, 10, 23, 23, 23, 0, 0, 0, 59, - 0, 40, 44, 32, 34, 39, 37, 43, 31, 0, - 0, 0, 0, 51, 0, 23, 23, 23, 0, 23, - 23, 0, 0, 23, 23, 23, 60, 0, 56, 0, - - 41, 45, 33, 35, 0, 23, 18, 9, 23, 23, - 23, 23, 23, 23, 23, 0, 0, 0, 28, 58, + 71, 27, 26, 49, 65, 28, 55, 63, 64, 56, + 57, 66, 68, 67, 27, 47, 48, 55, 71, 54, + 55, 51, 50, 5, 4, 55, 0, 0, 23, 6, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 29, 23, 23, 0, 19, 23, 23, 23, 0, 23, + 23, 2, 1, 7, 7, 0, 7, 7, 0, 7, + 8, 0, 27, 26, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 66, 69, 27, 48, + 47, 0, 54, 0, 51, 50, 5, 4, 0, 24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 17, 23, 23, 23, 23, 21, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 20, 23, 23, 23, 23, - 23, 23, 23, 13, 23, 15, 23, 23, 12, 23, - 23, 23, 23, 23, 11, 16, 23, 23, 23, 22, - 0 + 23, 23, 23, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 39, 37, 43, 0, 31, 0, 0, + 0, 0, 0, 52, 62, 0, 0, 0, 23, 23, + 0, 23, 23, 23, 14, 23, 10, 23, 23, 23, + 40, 38, 44, 0, 32, 0, 0, 0, 0, 0, + 60, 0, 41, 45, 33, 35, 0, 53, 0, 23, + 23, 23, 0, 23, 23, 0, 0, 23, 23, 23, + + 61, 0, 42, 34, 36, 58, 0, 46, 0, 23, + 18, 9, 23, 23, 23, 23, 23, 23, 23, 0, + 0, 0, 29, 59, 23, 23, 23, 23, 23, 23, + 23, 23, 23, 23, 30, 23, 23, 0, 19, 23, + 23, 23, 0, 23, 23, 23, 23, 23, 23, 23, + 23, 23, 23, 23, 17, 23, 23, 23, 23, 21, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 20, + 23, 23, 23, 23, 23, 23, 23, 13, 23, 15, + 23, 23, 12, 23, 23, 23, 23, 23, 11, 16, + 23, 23, 23, 22, 0 } ; @@ -485,244 +485,250 @@ static yyconst YY_CHAR yy_meta[46] = 4, 9, 1, 1, 1 } ; -static yyconst flex_uint32_t yy_base[313] = +static yyconst flex_uint32_t yy_base[316] = { 0, - 0, 43, 48, 50, 82, 118, 39, 50, 41, 42, - 635, 634, 57, 62, 64, 66, 633, 632, 646, 651, - 651, 638, 634, 638, 48, 53, 83, 45, 84, 63, - 86, 64, 95, 68, 104, 651, 635, 66, 109, 115, - 131, 0, 651, 651, 651, 150, 630, 651, 651, 651, - 0, 136, 651, 0, 131, 0, 629, 0, 111, 0, - 117, 0, 628, 140, 0, 628, 651, 68, 117, 138, - 136, 122, 142, 139, 146, 149, 158, 144, 162, 139, - 188, 190, 192, 623, 194, 0, 196, 176, 208, 0, - 183, 607, 619, 618, 185, 617, 603, 183, 595, 601, - - 613, 609, 0, 215, 0, 202, 611, 0, 588, 0, - 224, 0, 228, 0, 605, 231, 614, 193, 219, 613, - 199, 179, 226, 92, 231, 230, 232, 234, 233, 608, - 584, 591, 583, 651, 651, 651, 602, 651, 596, 600, - 599, 598, 597, 651, 651, 596, 595, 594, 593, 223, - 572, 578, 590, 576, 237, 238, 574, 593, 241, 239, - 592, 591, 590, 240, 247, 249, 583, 577, 581, 651, - 576, 651, 651, 651, 651, 651, 651, 651, 651, 579, - 578, 577, 576, 651, 555, 245, 250, 251, 568, 262, - 265, 256, 560, 254, 578, 577, 651, 566, 651, 569, - - 651, 651, 651, 651, 566, 256, 564, 549, 267, 268, - 270, 273, 271, 277, 278, 528, 518, 511, 651, 651, - 279, 283, 511, 280, 284, 285, 288, 509, 290, 292, - 651, 296, 300, 377, 400, 301, 302, 305, 373, 304, - 307, 311, 313, 308, 317, 315, 314, 321, 322, 324, - 394, 323, 325, 326, 335, 392, 340, 333, 336, 343, - 344, 342, 346, 348, 347, 387, 349, 355, 352, 364, - 368, 367, 370, 385, 371, 382, 372, 374, 203, 375, - 376, 377, 380, 378, 165, 159, 381, 379, 384, 120, - 651, 415, 424, 433, 442, 451, 460, 469, 478, 483, - - 489, 498, 507, 516, 523, 532, 539, 548, 557, 566, - 69, 575 + 0, 43, 48, 50, 86, 126, 39, 50, 166, 206, + 662, 661, 52, 54, 57, 62, 660, 659, 673, 678, + 678, 665, 661, 665, 61, 53, 58, 64, 59, 65, + 62, 66, 63, 80, 99, 678, 662, 63, 106, 108, + 110, 0, 113, 678, 678, 678, 238, 657, 678, 678, + 678, 0, 135, 678, 139, 148, 0, 656, 678, 0, + 655, 0, 128, 0, 139, 654, 152, 0, 654, 678, + 117, 125, 150, 60, 144, 152, 154, 157, 161, 169, + 170, 188, 150, 193, 201, 208, 649, 214, 0, 216, + 195, 199, 0, 229, 256, 633, 645, 644, 149, 643, + + 629, 204, 621, 627, 639, 635, 0, 236, 235, 0, + 292, 618, 0, 614, 0, 232, 0, 247, 631, 252, + 640, 247, 217, 639, 178, 253, 242, 237, 260, 257, + 255, 254, 261, 634, 631, 630, 267, 629, 615, 621, + 606, 612, 604, 678, 678, 678, 623, 678, 617, 621, + 620, 619, 618, 678, 678, 600, 616, 602, 262, 275, + 600, 619, 289, 290, 618, 617, 616, 291, 292, 293, + 678, 678, 678, 609, 678, 603, 607, 606, 605, 604, + 678, 599, 678, 678, 678, 678, 602, 678, 581, 295, + 296, 109, 594, 299, 300, 291, 586, 298, 604, 601, + + 678, 577, 678, 678, 678, 678, 572, 678, 569, 301, + 562, 555, 302, 153, 312, 313, 314, 315, 316, 536, + 523, 534, 678, 678, 319, 321, 539, 318, 323, 322, + 326, 444, 329, 330, 678, 334, 339, 415, 436, 340, + 342, 343, 413, 346, 345, 349, 350, 352, 353, 358, + 354, 359, 361, 362, 434, 363, 364, 365, 377, 433, + 380, 372, 375, 371, 382, 385, 388, 391, 386, 431, + 392, 394, 397, 403, 407, 406, 384, 426, 411, 424, + 412, 413, 219, 414, 415, 416, 419, 417, 213, 115, + 421, 423, 420, 113, 678, 455, 464, 473, 482, 491, + + 500, 509, 514, 520, 529, 538, 547, 554, 563, 570, + 577, 586, 595, 61, 604 } ; -static yyconst flex_int32_t yy_def[313] = +static yyconst flex_int32_t yy_def[316] = { 0, - 291, 1, 292, 292, 293, 293, 294, 294, 295, 295, - 296, 296, 297, 297, 298, 298, 299, 299, 291, 291, - 291, 291, 300, 291, 300, 300, 300, 300, 300, 300, - 300, 300, 300, 291, 291, 291, 291, 291, 301, 302, - 303, 304, 291, 291, 291, 291, 291, 291, 291, 291, - 305, 291, 291, 306, 46, 307, 291, 308, 291, 309, - 291, 310, 291, 291, 311, 300, 291, 300, 300, 300, - 300, 300, 300, 300, 300, 300, 300, 300, 291, 291, - 301, 302, 303, 302, 302, 312, 303, 291, 291, 304, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - - 291, 291, 305, 291, 306, 291, 291, 307, 291, 308, - 291, 309, 291, 310, 291, 291, 311, 300, 300, 300, - 300, 300, 300, 300, 300, 300, 300, 300, 300, 312, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 300, 300, 311, 300, 300, 300, - 300, 300, 300, 300, 300, 300, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 300, 300, 311, 311, 300, - 300, 311, 311, 300, 300, 300, 291, 291, 291, 291, - - 291, 291, 291, 291, 291, 300, 300, 311, 311, 300, - 300, 311, 311, 311, 300, 311, 311, 291, 291, 291, - 300, 311, 300, 300, 311, 311, 311, 300, 311, 311, - 291, 300, 311, 311, 300, 311, 311, 311, 311, 311, - 311, 300, 311, 311, 311, 311, 311, 311, 311, 311, - 300, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 0, 291, 291, 291, 291, 291, 291, 291, 291, 291, - - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291 + 295, 1, 296, 296, 297, 297, 298, 298, 299, 299, + 300, 300, 301, 301, 302, 302, 300, 300, 295, 295, + 295, 295, 303, 295, 303, 303, 303, 303, 303, 303, + 303, 303, 303, 295, 295, 295, 295, 295, 304, 305, + 306, 307, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 308, 295, 295, 309, 295, 310, 295, 295, 311, + 295, 312, 295, 313, 295, 295, 295, 314, 303, 295, + 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, + 303, 295, 295, 304, 305, 306, 305, 305, 315, 306, + 295, 295, 307, 295, 295, 295, 295, 295, 295, 295, + + 295, 295, 295, 295, 295, 295, 308, 295, 309, 310, + 295, 295, 311, 295, 312, 295, 313, 295, 295, 295, + 314, 303, 303, 303, 303, 303, 303, 303, 303, 303, + 303, 303, 303, 315, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 303, 303, + 314, 303, 303, 303, 303, 303, 303, 303, 303, 303, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 303, + 303, 314, 314, 303, 303, 314, 314, 303, 303, 303, + + 295, 295, 295, 295, 295, 295, 295, 295, 295, 303, + 303, 314, 314, 303, 303, 314, 314, 314, 303, 314, + 314, 295, 295, 295, 303, 314, 303, 303, 314, 314, + 314, 303, 314, 314, 295, 303, 314, 314, 303, 314, + 314, 314, 314, 314, 314, 303, 314, 314, 314, 314, + 314, 314, 314, 314, 303, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 0, 295, 295, 295, 295, 295, + + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295 } ; -static yyconst flex_uint32_t yy_nxt[697] = +static yyconst flex_uint32_t yy_nxt[724] = { 0, 20, 20, 21, 20, 20, 20, 22, 20, 20, 20, 20, 23, 24, 20, 20, 20, 23, 20, 20, 25, 23, 23, 26, 23, 23, 27, 23, 28, 29, 30, 31, 32, 23, 23, 33, 23, 23, 23, 23, 20, - 20, 20, 20, 20, 20, 34, 35, 52, 36, 37, - 40, 40, 40, 40, 65, 55, 55, 65, 52, 59, - 59, 41, 65, 41, 59, 59, 61, 61, 61, 61, - 79, 79, 65, 65, 117, 72, 70, 65, 68, 53, - 49, 49, 50, 50, 69, 38, 38, 38, 43, 44, - 53, 45, 65, 65, 74, 65, 46, 76, 118, 47, - - 48, 65, 71, 73, 65, 75, 79, 79, 80, 80, - 80, 82, 82, 111, 111, 161, 77, 85, 85, 113, - 113, 49, 83, 50, 43, 44, 65, 45, 86, 65, - 78, 65, 46, 88, 88, 47, 48, 104, 104, 104, - 104, 106, 116, 116, 89, 65, 64, 65, 65, 122, - 291, 65, 119, 65, 107, 65, 121, 49, 65, 50, - 91, 124, 120, 129, 79, 79, 125, 65, 65, 92, - 93, 94, 123, 95, 65, 126, 127, 96, 88, 88, - 97, 80, 80, 80, 98, 99, 100, 101, 65, 128, - 82, 82, 85, 85, 291, 291, 85, 85, 82, 82, - - 136, 83, 65, 86, 140, 291, 131, 86, 65, 83, - 88, 88, 65, 132, 159, 141, 104, 104, 104, 104, - 158, 137, 146, 147, 155, 148, 111, 111, 65, 149, - 113, 113, 132, 116, 116, 65, 150, 151, 152, 65, - 65, 65, 65, 65, 180, 156, 65, 65, 65, 65, - 65, 160, 162, 163, 65, 181, 65, 166, 65, 65, - 65, 194, 208, 65, 206, 65, 164, 165, 190, 187, - 195, 65, 186, 196, 65, 191, 65, 65, 212, 65, - 65, 210, 65, 207, 211, 213, 65, 65, 65, 65, - 215, 221, 65, 65, 65, 224, 223, 65, 222, 65, - - 225, 65, 226, 235, 227, 65, 232, 237, 236, 65, - 65, 65, 228, 65, 65, 233, 65, 65, 238, 241, - 65, 240, 65, 65, 65, 245, 65, 242, 247, 246, - 65, 65, 65, 65, 65, 65, 249, 250, 243, 255, - 254, 251, 65, 253, 65, 65, 252, 259, 256, 65, - 260, 65, 65, 65, 257, 65, 65, 65, 65, 262, - 258, 65, 263, 261, 65, 269, 265, 264, 267, 270, - 266, 271, 268, 65, 272, 273, 65, 65, 274, 65, - 65, 65, 275, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 278, 65, 65, 284, 65, 276, 277, 286, - - 282, 65, 283, 65, 248, 279, 280, 281, 288, 65, - 289, 244, 285, 287, 290, 39, 39, 39, 39, 39, + 20, 20, 20, 20, 20, 34, 35, 53, 36, 37, + 40, 40, 40, 40, 63, 63, 63, 63, 53, 65, + 65, 41, 68, 41, 65, 65, 121, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 73, 74, 76, 54, + 125, 78, 82, 82, 80, 38, 38, 38, 43, 43, + 54, 71, 44, 45, 75, 46, 77, 72, 81, 79, + + 47, 82, 82, 48, 49, 83, 83, 83, 85, 85, + 88, 88, 91, 91, 94, 94, 94, 94, 68, 86, + 212, 89, 68, 92, 68, 50, 68, 51, 43, 43, + 116, 116, 44, 45, 68, 46, 108, 108, 108, 108, + 47, 118, 118, 48, 49, 110, 110, 122, 110, 111, + 111, 111, 111, 68, 120, 120, 110, 110, 67, 68, + 123, 68, 68, 68, 146, 50, 68, 51, 56, 56, + 68, 126, 57, 57, 124, 57, 128, 129, 68, 68, + 58, 227, 127, 57, 57, 147, 130, 68, 131, 133, + 82, 82, 83, 83, 83, 85, 85, 91, 91, 162, + + 132, 91, 91, 88, 88, 59, 86, 59, 56, 56, + 295, 295, 57, 57, 89, 57, 88, 88, 85, 85, + 58, 295, 68, 57, 57, 150, 68, 89, 68, 86, + 94, 94, 94, 94, 116, 116, 151, 108, 108, 108, + 108, 110, 110, 160, 110, 59, 68, 59, 95, 118, + 118, 68, 110, 110, 120, 120, 68, 96, 97, 98, + 165, 99, 68, 68, 68, 100, 68, 164, 101, 68, + 68, 68, 102, 103, 104, 105, 135, 136, 159, 137, + 167, 166, 173, 138, 68, 170, 139, 169, 163, 168, + 140, 141, 142, 111, 111, 111, 111, 190, 68, 68, + + 68, 68, 68, 174, 68, 68, 191, 68, 68, 68, + 68, 68, 198, 216, 210, 199, 194, 200, 214, 215, + 217, 68, 68, 68, 68, 68, 195, 68, 68, 211, + 68, 68, 68, 226, 219, 68, 225, 228, 68, 68, + 229, 239, 231, 68, 241, 230, 236, 240, 68, 68, + 232, 68, 68, 237, 68, 68, 242, 245, 68, 68, + 244, 68, 68, 68, 249, 246, 251, 68, 68, 250, + 68, 68, 68, 68, 68, 254, 258, 247, 253, 255, + 68, 68, 259, 256, 68, 263, 68, 257, 260, 68, + 264, 68, 261, 68, 68, 68, 271, 68, 266, 262, + + 68, 68, 265, 68, 267, 269, 68, 268, 273, 270, + 272, 274, 68, 276, 275, 68, 68, 278, 277, 283, + 68, 68, 68, 68, 68, 68, 68, 279, 68, 68, + 68, 282, 68, 68, 288, 68, 280, 281, 290, 286, + 68, 287, 68, 68, 252, 68, 284, 285, 292, 248, + 294, 289, 291, 243, 293, 39, 39, 39, 39, 39, 39, 39, 39, 39, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 60, - 60, 60, 60, 60, 60, 60, 60, 60, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 66, 66, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 84, 84, - - 84, 84, 84, 84, 84, 84, 84, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 90, 90, 239, 90, - 234, 90, 90, 103, 103, 103, 231, 103, 103, 103, - 103, 103, 105, 105, 105, 105, 105, 105, 105, 108, - 108, 108, 108, 108, 108, 108, 230, 108, 110, 229, - 110, 110, 110, 110, 110, 110, 110, 112, 65, 112, - 112, 112, 112, 112, 112, 112, 114, 114, 114, 114, - 114, 114, 114, 65, 114, 130, 130, 130, 130, 130, - 130, 220, 130, 130, 219, 218, 217, 216, 214, 209, - 205, 204, 203, 202, 201, 200, 199, 198, 197, 65, - - 193, 192, 189, 188, 185, 184, 183, 182, 179, 178, - 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, - 167, 86, 157, 65, 154, 153, 136, 145, 144, 143, - 142, 139, 138, 135, 134, 133, 86, 65, 115, 109, - 102, 64, 67, 65, 64, 291, 63, 63, 57, 57, - 19, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291 - + 42, 42, 42, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 60, 60, 60, 60, 60, 60, 60, 60, 60, + + 62, 62, 62, 62, 62, 62, 62, 62, 62, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 69, 69, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 87, + 87, 87, 87, 87, 87, 87, 87, 87, 90, 90, + 90, 90, 90, 90, 90, 90, 90, 93, 238, 235, + 93, 234, 93, 93, 107, 107, 107, 233, 107, 107, + 107, 107, 107, 109, 68, 109, 109, 109, 109, 109, + 110, 68, 110, 110, 110, 110, 110, 113, 113, 113, + 113, 113, 113, 113, 224, 113, 115, 223, 115, 115, + 115, 115, 115, 115, 115, 117, 222, 117, 117, 117, + + 117, 117, 117, 117, 134, 134, 134, 134, 134, 134, + 221, 134, 134, 220, 218, 213, 209, 208, 207, 206, + 205, 204, 203, 202, 201, 68, 197, 196, 193, 192, + 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, + 179, 178, 177, 176, 175, 172, 171, 89, 161, 68, + 158, 157, 156, 155, 154, 153, 152, 149, 148, 145, + 144, 143, 89, 68, 119, 114, 112, 106, 67, 70, + 68, 67, 295, 66, 66, 61, 61, 19, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295 } ; -static yyconst flex_int32_t yy_chk[697] = +static yyconst flex_int32_t yy_chk[724] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 7, 2, 2, - 3, 3, 4, 4, 28, 9, 10, 25, 8, 13, - 13, 3, 26, 4, 14, 14, 15, 15, 16, 16, - 34, 34, 30, 32, 311, 28, 26, 68, 25, 7, - 9, 10, 9, 10, 25, 2, 2, 2, 5, 5, - 8, 5, 27, 29, 30, 31, 5, 32, 68, 5, - - 5, 124, 27, 29, 33, 31, 35, 35, 38, 38, - 38, 39, 39, 59, 59, 124, 33, 40, 40, 61, - 61, 5, 39, 5, 6, 6, 69, 6, 40, 290, - 33, 72, 6, 41, 41, 6, 6, 52, 52, 52, - 52, 55, 64, 64, 41, 71, 64, 70, 74, 72, - 55, 73, 69, 78, 55, 75, 71, 6, 76, 6, - 46, 74, 70, 78, 79, 79, 75, 77, 286, 46, - 46, 46, 73, 46, 285, 75, 76, 46, 88, 88, - 46, 80, 80, 80, 46, 46, 46, 46, 122, 77, - 81, 81, 82, 82, 83, 83, 85, 85, 87, 87, - - 95, 81, 118, 82, 98, 83, 91, 85, 121, 87, - 89, 89, 279, 91, 122, 98, 104, 104, 104, 104, - 121, 95, 106, 106, 118, 106, 111, 111, 119, 106, - 113, 113, 106, 116, 116, 123, 106, 106, 106, 126, - 125, 127, 129, 128, 150, 119, 155, 156, 160, 164, - 159, 123, 125, 126, 186, 150, 165, 129, 166, 187, - 188, 164, 188, 194, 186, 206, 127, 128, 159, 156, - 165, 190, 155, 166, 191, 160, 209, 210, 192, 211, - 213, 190, 212, 187, 191, 192, 214, 215, 221, 224, - 194, 206, 222, 225, 226, 211, 210, 227, 209, 229, - - 212, 230, 213, 224, 214, 232, 221, 226, 225, 233, - 236, 237, 215, 240, 238, 222, 241, 244, 227, 230, - 242, 229, 243, 247, 246, 236, 245, 232, 238, 237, - 248, 249, 252, 250, 253, 254, 240, 241, 233, 246, - 245, 242, 258, 244, 255, 259, 243, 250, 247, 257, - 252, 262, 260, 261, 248, 263, 265, 264, 267, 254, - 249, 269, 255, 253, 268, 262, 258, 257, 260, 263, - 259, 264, 261, 270, 265, 267, 272, 271, 268, 273, - 275, 277, 269, 278, 280, 281, 282, 284, 288, 283, - 287, 276, 272, 289, 274, 281, 266, 270, 271, 283, - - 278, 256, 280, 251, 239, 273, 275, 277, 287, 235, - 288, 234, 282, 284, 289, 292, 292, 292, 292, 292, - 292, 292, 292, 292, 293, 293, 293, 293, 293, 293, - 293, 293, 293, 294, 294, 294, 294, 294, 294, 294, - 294, 294, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 296, 296, 296, 296, 296, 296, 296, 296, 296, - 297, 297, 297, 297, 297, 297, 297, 297, 297, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 299, 299, - 299, 299, 299, 299, 299, 299, 299, 300, 300, 301, - 301, 301, 301, 301, 301, 301, 301, 301, 302, 302, - - 302, 302, 302, 302, 302, 302, 302, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 304, 304, 228, 304, - 223, 304, 304, 305, 305, 305, 218, 305, 305, 305, - 305, 305, 306, 306, 306, 306, 306, 306, 306, 307, - 307, 307, 307, 307, 307, 307, 217, 307, 308, 216, - 308, 308, 308, 308, 308, 308, 308, 309, 208, 309, - 309, 309, 309, 309, 309, 309, 310, 310, 310, 310, - 310, 310, 310, 207, 310, 312, 312, 312, 312, 312, - 312, 205, 312, 312, 200, 198, 196, 195, 193, 189, - 185, 183, 182, 181, 180, 171, 169, 168, 167, 163, - - 162, 161, 158, 157, 154, 153, 152, 151, 149, 148, - 147, 146, 143, 142, 141, 140, 139, 137, 133, 132, - 131, 130, 120, 117, 115, 109, 107, 102, 101, 100, - 99, 97, 96, 94, 93, 92, 84, 66, 63, 57, - 47, 37, 24, 23, 22, 19, 18, 17, 12, 11, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291 - + 3, 3, 4, 4, 13, 13, 14, 14, 8, 15, + 15, 3, 26, 4, 16, 16, 314, 27, 29, 74, + 25, 31, 33, 28, 30, 32, 26, 27, 29, 7, + 74, 31, 34, 34, 33, 2, 2, 2, 5, 5, + 8, 25, 5, 5, 28, 5, 30, 25, 33, 32, + + 5, 35, 35, 5, 5, 38, 38, 38, 39, 39, + 40, 40, 41, 41, 43, 43, 43, 43, 192, 39, + 192, 40, 294, 41, 290, 5, 71, 5, 6, 6, + 63, 63, 6, 6, 72, 6, 53, 53, 53, 53, + 6, 65, 65, 6, 6, 55, 55, 71, 55, 56, + 56, 56, 56, 75, 67, 67, 55, 55, 67, 73, + 72, 76, 214, 77, 99, 6, 78, 6, 9, 9, + 79, 75, 9, 9, 73, 9, 77, 78, 80, 81, + 9, 214, 76, 9, 9, 99, 78, 125, 79, 81, + 82, 82, 83, 83, 83, 84, 84, 91, 91, 125, + + 80, 92, 92, 85, 85, 9, 84, 9, 10, 10, + 86, 86, 10, 10, 85, 10, 88, 88, 90, 90, + 10, 86, 289, 10, 10, 102, 123, 88, 283, 90, + 94, 94, 94, 94, 116, 116, 102, 108, 108, 108, + 108, 109, 109, 123, 109, 10, 128, 10, 47, 118, + 118, 127, 109, 109, 120, 120, 122, 47, 47, 47, + 128, 47, 126, 132, 131, 47, 130, 127, 47, 129, + 133, 159, 47, 47, 47, 47, 95, 95, 122, 95, + 130, 129, 137, 95, 160, 133, 95, 132, 126, 131, + 95, 95, 95, 111, 111, 111, 111, 159, 163, 164, + + 168, 169, 170, 137, 190, 191, 160, 198, 194, 195, + 210, 213, 168, 196, 190, 169, 163, 170, 194, 195, + 196, 215, 216, 217, 218, 219, 164, 228, 225, 191, + 226, 230, 229, 213, 198, 231, 210, 215, 233, 234, + 216, 228, 218, 236, 230, 217, 225, 229, 237, 240, + 219, 241, 242, 226, 245, 244, 231, 234, 246, 247, + 233, 248, 249, 251, 240, 236, 242, 250, 252, 241, + 253, 254, 256, 257, 258, 245, 249, 237, 244, 246, + 264, 262, 250, 247, 263, 254, 259, 248, 251, 261, + 256, 265, 252, 277, 266, 269, 264, 267, 258, 253, + + 268, 271, 257, 272, 259, 262, 273, 261, 266, 263, + 265, 267, 274, 269, 268, 276, 275, 272, 271, 277, + 279, 281, 282, 284, 285, 286, 288, 273, 287, 293, + 291, 276, 292, 280, 285, 278, 274, 275, 287, 282, + 270, 284, 260, 255, 243, 239, 279, 281, 291, 238, + 293, 286, 288, 232, 292, 296, 296, 296, 296, 296, + 296, 296, 296, 296, 297, 297, 297, 297, 297, 297, + 297, 297, 297, 298, 298, 298, 298, 298, 298, 298, + 298, 298, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 300, 300, 300, 300, 300, 300, 300, 300, 300, + + 301, 301, 301, 301, 301, 301, 301, 301, 301, 302, + 302, 302, 302, 302, 302, 302, 302, 302, 303, 303, + 304, 304, 304, 304, 304, 304, 304, 304, 304, 305, + 305, 305, 305, 305, 305, 305, 305, 305, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 307, 227, 222, + 307, 221, 307, 307, 308, 308, 308, 220, 308, 308, + 308, 308, 308, 309, 212, 309, 309, 309, 309, 309, + 310, 211, 310, 310, 310, 310, 310, 311, 311, 311, + 311, 311, 311, 311, 209, 311, 312, 207, 312, 312, + 312, 312, 312, 312, 312, 313, 202, 313, 313, 313, + + 313, 313, 313, 313, 315, 315, 315, 315, 315, 315, + 200, 315, 315, 199, 197, 193, 189, 187, 182, 180, + 179, 178, 177, 176, 174, 167, 166, 165, 162, 161, + 158, 157, 156, 153, 152, 151, 150, 149, 147, 143, + 142, 141, 140, 139, 138, 136, 135, 134, 124, 121, + 119, 114, 112, 106, 105, 104, 103, 101, 100, 98, + 97, 96, 87, 69, 66, 61, 58, 48, 37, 24, + 23, 22, 19, 18, 17, 12, 11, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295 } ; static yy_state_type yy_last_accepting_state; @@ -746,22 +752,22 @@ char *gabc_score_determination_text; * This file implements the score lexer. * * Gregorio score determination in gabc input. - * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. - * + * * 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/>. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see <http://www.gnu.org/licenses/>. */ #include "config.h" @@ -777,9 +783,35 @@ char *gabc_score_determination_text; #include "gabc-score-determination.h" #include "gabc-score-determination-y.h" -static unsigned char style_stack = 0; static bool eof_found = false; +#define START_STYLE(STYLE) \ + if (*styles & SB_ ## STYLE) { \ + gregorio_messagef("gabc_score_determination_lex", VERBOSITY_ERROR, 0, \ + _("style already started: %s"), gabc_score_determination_text); \ + } else { \ + *styles ^= SB_ ## STYLE; \ + return STYLE ## _BEGIN; \ + } + +#define END_STYLE(STYLE) \ + if (*styles & SB_ ## STYLE) { \ + *styles ^= SB_ ## STYLE; \ + return STYLE ## _END; \ + } else { \ + gregorio_messagef("gabc_score_determination_lex", VERBOSITY_ERROR, 0, \ + _("style not started: %s"), gabc_score_determination_text); \ + } + +#define RETURN_CHARACTERS \ + gabc_score_determination_lval.text = \ + gregorio_strdup(gabc_score_determination_text); \ + return CHARACTERS + +#define RETURN_SPACE \ + gabc_score_determination_lval.text = gregorio_strdup(" "); \ + return CHARACTERS + #define YY_NO_INPUT #define YY_INPUT(buf,result,max_size) \ @@ -827,13 +859,13 @@ static bool eof_found = false; for (a) single-line values, ending with a semicolon at end of line or a double semicolon, (b) multi-line values, which end at a double semicolon. */ -#line 831 "gabc/gabc-score-determination-l.c" +#line 863 "gabc/gabc-score-determination-l.c" #define INITIAL 0 #define attribute 1 #define score 2 #define notes 3 -#define style 4 +#define sp 4 #define verb 5 #define comments 6 #define inicomments 7 @@ -1058,9 +1090,9 @@ YY_DECL } { -#line 108 "gabc/gabc-score-determination.l" +#line 134 "gabc/gabc-score-determination.l" -#line 1064 "gabc/gabc-score-determination-l.c" +#line 1096 "gabc/gabc-score-determination-l.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -1088,13 +1120,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 292 ) + if ( yy_current_state >= 296 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 651 ); + while ( yy_base[yy_current_state] != 678 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1120,7 +1152,7 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 109 "gabc/gabc-score-determination.l" +#line 135 "gabc/gabc-score-determination.l" { /* BOM written by a lot of windows softwares when they write UTF-8 */ } @@ -1128,14 +1160,14 @@ YY_RULE_SETUP case 2: /* rule 2 can match eol */ YY_RULE_SETUP -#line 112 "gabc/gabc-score-determination.l" +#line 138 "gabc/gabc-score-determination.l" { /* ignoring empty lines */ } YY_BREAK case 3: YY_RULE_SETUP -#line 115 "gabc/gabc-score-determination.l" +#line 141 "gabc/gabc-score-determination.l" { BEGIN(inicomments); } @@ -1143,21 +1175,21 @@ YY_RULE_SETUP case 4: /* rule 4 can match eol */ YY_RULE_SETUP -#line 118 "gabc/gabc-score-determination.l" +#line 144 "gabc/gabc-score-determination.l" { BEGIN(INITIAL); } YY_BREAK case 5: YY_RULE_SETUP -#line 121 "gabc/gabc-score-determination.l" +#line 147 "gabc/gabc-score-determination.l" { /* ignored */ } YY_BREAK case 6: YY_RULE_SETUP -#line 124 "gabc/gabc-score-determination.l" +#line 150 "gabc/gabc-score-determination.l" { BEGIN(attribute); return COLON; @@ -1166,7 +1198,7 @@ YY_RULE_SETUP case 7: /* rule 7 can match eol */ YY_RULE_SETUP -#line 128 "gabc/gabc-score-determination.l" +#line 154 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1176,7 +1208,7 @@ YY_RULE_SETUP case 8: /* rule 8 can match eol */ YY_RULE_SETUP -#line 133 "gabc/gabc-score-determination.l" +#line 159 "gabc/gabc-score-determination.l" { BEGIN(INITIAL); return SEMICOLON; @@ -1184,7 +1216,7 @@ YY_RULE_SETUP YY_BREAK case 9: YY_RULE_SETUP -#line 137 "gabc/gabc-score-determination.l" +#line 163 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.character = gabc_score_determination_text[5]; return DEF_MACRO; @@ -1192,7 +1224,7 @@ YY_RULE_SETUP YY_BREAK case 10: YY_RULE_SETUP -#line 141 "gabc/gabc-score-determination.l" +#line 167 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1201,7 +1233,7 @@ YY_RULE_SETUP YY_BREAK case 11: YY_RULE_SETUP -#line 146 "gabc/gabc-score-determination.l" +#line 172 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1210,7 +1242,7 @@ YY_RULE_SETUP YY_BREAK case 12: YY_RULE_SETUP -#line 151 "gabc/gabc-score-determination.l" +#line 177 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1219,15 +1251,15 @@ YY_RULE_SETUP YY_BREAK case 13: YY_RULE_SETUP -#line 156 "gabc/gabc-score-determination.l" +#line 182 "gabc/gabc-score-determination.l" { - /* DEPRECATED by 4.1 */ + /* DEPRECATED for removal in 5.0 */ return INITIAL_STYLE; } YY_BREAK case 14: YY_RULE_SETUP -#line 160 "gabc/gabc-score-determination.l" +#line 186 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1236,7 +1268,7 @@ YY_RULE_SETUP YY_BREAK case 15: YY_RULE_SETUP -#line 165 "gabc/gabc-score-determination.l" +#line 191 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1245,7 +1277,7 @@ YY_RULE_SETUP YY_BREAK case 16: YY_RULE_SETUP -#line 170 "gabc/gabc-score-determination.l" +#line 196 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1254,7 +1286,7 @@ YY_RULE_SETUP YY_BREAK case 17: YY_RULE_SETUP -#line 175 "gabc/gabc-score-determination.l" +#line 201 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1263,7 +1295,7 @@ YY_RULE_SETUP YY_BREAK case 18: YY_RULE_SETUP -#line 180 "gabc/gabc-score-determination.l" +#line 206 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1272,7 +1304,7 @@ YY_RULE_SETUP YY_BREAK case 19: YY_RULE_SETUP -#line 185 "gabc/gabc-score-determination.l" +#line 211 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1281,7 +1313,7 @@ YY_RULE_SETUP YY_BREAK case 20: YY_RULE_SETUP -#line 190 "gabc/gabc-score-determination.l" +#line 216 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1290,7 +1322,7 @@ YY_RULE_SETUP YY_BREAK case 21: YY_RULE_SETUP -#line 195 "gabc/gabc-score-determination.l" +#line 221 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1299,7 +1331,7 @@ YY_RULE_SETUP YY_BREAK case 22: YY_RULE_SETUP -#line 200 "gabc/gabc-score-determination.l" +#line 226 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1308,7 +1340,7 @@ YY_RULE_SETUP YY_BREAK case 23: YY_RULE_SETUP -#line 205 "gabc/gabc-score-determination.l" +#line 231 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1318,7 +1350,7 @@ YY_RULE_SETUP case 24: /* rule 24 can match eol */ YY_RULE_SETUP -#line 210 "gabc/gabc-score-determination.l" +#line 236 "gabc/gabc-score-determination.l" { BEGIN(score); return END_OF_DEFINITIONS; @@ -1326,7 +1358,7 @@ YY_RULE_SETUP YY_BREAK case 25: YY_RULE_SETUP -#line 214 "gabc/gabc-score-determination.l" +#line 240 "gabc/gabc-score-determination.l" { gregorio_messagef("det_score", VERBOSITY_ERROR, 0, _("unrecognized character: \"%c\" in definition part"), @@ -1336,377 +1368,323 @@ YY_RULE_SETUP case 26: /* rule 26 can match eol */ YY_RULE_SETUP -#line 219 "gabc/gabc-score-determination.l" +#line 245 "gabc/gabc-score-determination.l" { - gabc_score_determination_lval.text = - gregorio_strdup(gabc_score_determination_text); - return CHARACTERS; + RETURN_SPACE; } YY_BREAK case 27: YY_RULE_SETUP -#line 224 "gabc/gabc-score-determination.l" +#line 248 "gabc/gabc-score-determination.l" { - return HYPHEN; + RETURN_CHARACTERS; } YY_BREAK case 28: YY_RULE_SETUP -#line 227 "gabc/gabc-score-determination.l" +#line 251 "gabc/gabc-score-determination.l" { - return NLBA_B; + return HYPHEN; } YY_BREAK case 29: YY_RULE_SETUP -#line 230 "gabc/gabc-score-determination.l" +#line 254 "gabc/gabc-score-determination.l" { - return NLBA_E; + return NLBA_B; } YY_BREAK case 30: YY_RULE_SETUP -#line 233 "gabc/gabc-score-determination.l" +#line 257 "gabc/gabc-score-determination.l" { - BEGIN(style); - style_stack ++; - return I_BEGIN; + return NLBA_E; } YY_BREAK case 31: YY_RULE_SETUP -#line 238 "gabc/gabc-score-determination.l" +#line 260 "gabc/gabc-score-determination.l" { - style_stack --; - if (style_stack == 0) { - BEGIN(score); - } - return I_END; + START_STYLE(I); } YY_BREAK case 32: YY_RULE_SETUP -#line 245 "gabc/gabc-score-determination.l" +#line 263 "gabc/gabc-score-determination.l" { - BEGIN(style); - style_stack ++; - return TT_BEGIN; + END_STYLE(I); } YY_BREAK case 33: YY_RULE_SETUP -#line 250 "gabc/gabc-score-determination.l" +#line 266 "gabc/gabc-score-determination.l" { - style_stack --; - if (style_stack == 0) { - BEGIN(score); - } - return TT_END; + START_STYLE(TT); } YY_BREAK case 34: YY_RULE_SETUP -#line 257 "gabc/gabc-score-determination.l" +#line 269 "gabc/gabc-score-determination.l" { - BEGIN(style); - style_stack ++; - return UL_BEGIN; + END_STYLE(TT); } YY_BREAK case 35: YY_RULE_SETUP -#line 262 "gabc/gabc-score-determination.l" +#line 272 "gabc/gabc-score-determination.l" { - style_stack --; - if (style_stack == 0) { - BEGIN(score); - } - return UL_END; + START_STYLE(UL); } YY_BREAK case 36: YY_RULE_SETUP -#line 269 "gabc/gabc-score-determination.l" +#line 275 "gabc/gabc-score-determination.l" { - BEGIN(style); - style_stack ++; - return C_BEGIN; + END_STYLE(UL); } YY_BREAK case 37: YY_RULE_SETUP -#line 274 "gabc/gabc-score-determination.l" +#line 278 "gabc/gabc-score-determination.l" { - style_stack --; - if (style_stack == 0) { - BEGIN(score); - } - return C_END; + START_STYLE(C); } YY_BREAK case 38: YY_RULE_SETUP #line 281 "gabc/gabc-score-determination.l" { - BEGIN(style); - style_stack ++; - return B_BEGIN; + END_STYLE(C); } YY_BREAK case 39: YY_RULE_SETUP -#line 286 "gabc/gabc-score-determination.l" +#line 284 "gabc/gabc-score-determination.l" { - style_stack --; - if (style_stack == 0) { - BEGIN(score); - } - return B_END; + START_STYLE(B); } YY_BREAK case 40: YY_RULE_SETUP -#line 293 "gabc/gabc-score-determination.l" +#line 287 "gabc/gabc-score-determination.l" { - BEGIN(style); - style_stack ++; - return SC_BEGIN; + END_STYLE(B); } YY_BREAK case 41: YY_RULE_SETUP -#line 298 "gabc/gabc-score-determination.l" +#line 290 "gabc/gabc-score-determination.l" { - style_stack --; - if (style_stack == 0) { - BEGIN(score); - } - return SC_END; + START_STYLE(SC); } YY_BREAK case 42: YY_RULE_SETUP -#line 305 "gabc/gabc-score-determination.l" +#line 293 "gabc/gabc-score-determination.l" { - BEGIN(style); - style_stack ++; - return ELISION_BEGIN; + END_STYLE(SC); } YY_BREAK case 43: YY_RULE_SETUP -#line 310 "gabc/gabc-score-determination.l" +#line 296 "gabc/gabc-score-determination.l" { - style_stack --; - if (style_stack == 0) { - BEGIN(score); - } - return ELISION_END; + START_STYLE(ELISION); } YY_BREAK case 44: YY_RULE_SETUP -#line 317 "gabc/gabc-score-determination.l" +#line 299 "gabc/gabc-score-determination.l" { - BEGIN(style); - style_stack ++; - return SP_BEGIN; + END_STYLE(ELISION); } YY_BREAK case 45: YY_RULE_SETUP -#line 322 "gabc/gabc-score-determination.l" +#line 302 "gabc/gabc-score-determination.l" { - style_stack --; - if (style_stack == 0) { - BEGIN(score); - } - return SP_END; + BEGIN(sp); + return SP_BEGIN; } YY_BREAK case 46: -/* rule 46 can match eol */ YY_RULE_SETUP -#line 329 "gabc/gabc-score-determination.l" +#line 306 "gabc/gabc-score-determination.l" { - gabc_score_determination_lval.text = - gregorio_strdup(gabc_score_determination_text); - return CHARACTERS; + BEGIN(score); + return SP_END; } YY_BREAK case 47: +/* rule 47 can match eol */ YY_RULE_SETUP -#line 334 "gabc/gabc-score-determination.l" +#line 310 "gabc/gabc-score-determination.l" { - BEGIN(comments); + RETURN_SPACE; } YY_BREAK case 48: -/* rule 48 can match eol */ YY_RULE_SETUP -#line 337 "gabc/gabc-score-determination.l" +#line 313 "gabc/gabc-score-determination.l" { - BEGIN(score); + RETURN_CHARACTERS; } YY_BREAK case 49: YY_RULE_SETUP -#line 340 "gabc/gabc-score-determination.l" +#line 316 "gabc/gabc-score-determination.l" { - /* ignored */ + BEGIN(comments); } YY_BREAK case 50: +/* rule 50 can match eol */ YY_RULE_SETUP -#line 343 "gabc/gabc-score-determination.l" +#line 319 "gabc/gabc-score-determination.l" { - BEGIN(verb); - return VERB_BEGIN; + BEGIN(score); } YY_BREAK case 51: YY_RULE_SETUP -#line 347 "gabc/gabc-score-determination.l" +#line 322 "gabc/gabc-score-determination.l" { - if (style_stack == 0) { - BEGIN(score); - } else { - BEGIN(style); - } - return VERB_END; + /* ignored */ } YY_BREAK case 52: -/* rule 52 can match eol */ YY_RULE_SETUP -#line 355 "gabc/gabc-score-determination.l" +#line 325 "gabc/gabc-score-determination.l" { - gabc_score_determination_lval.text = - gregorio_strdup(gabc_score_determination_text); - return CHARACTERS; + BEGIN(verb); + return VERB_BEGIN; } YY_BREAK case 53: YY_RULE_SETUP -#line 360 "gabc/gabc-score-determination.l" +#line 329 "gabc/gabc-score-determination.l" { - gabc_score_determination_lval.text = - gregorio_strdup(gabc_score_determination_text); - return CHARACTERS; + BEGIN(score); + return VERB_END; } YY_BREAK case 54: +/* rule 54 can match eol */ YY_RULE_SETUP -#line 365 "gabc/gabc-score-determination.l" +#line 333 "gabc/gabc-score-determination.l" { - return CENTER_BEGIN; + RETURN_CHARACTERS; } YY_BREAK case 55: YY_RULE_SETUP -#line 368 "gabc/gabc-score-determination.l" +#line 336 "gabc/gabc-score-determination.l" { - return CENTER_END; + RETURN_CHARACTERS; } YY_BREAK case 56: YY_RULE_SETUP -#line 371 "gabc/gabc-score-determination.l" +#line 339 "gabc/gabc-score-determination.l" { - BEGIN(alt); - return ALT_BEGIN; + return CENTER_BEGIN; } YY_BREAK case 57: -/* rule 57 can match eol */ YY_RULE_SETUP -#line 375 "gabc/gabc-score-determination.l" +#line 342 "gabc/gabc-score-determination.l" { - gabc_score_determination_lval.text = - gregorio_strdup(gabc_score_determination_text); - return CHARACTERS; + return CENTER_END; } YY_BREAK case 58: YY_RULE_SETUP -#line 380 "gabc/gabc-score-determination.l" +#line 345 "gabc/gabc-score-determination.l" +{ + BEGIN(alt); + return ALT_BEGIN; + } + YY_BREAK +case 59: +YY_RULE_SETUP +#line 349 "gabc/gabc-score-determination.l" { BEGIN(score); return ALT_END; } YY_BREAK -case 59: +case 60: YY_RULE_SETUP -#line 384 "gabc/gabc-score-determination.l" +#line 353 "gabc/gabc-score-determination.l" { return EUOUAE_B; } YY_BREAK -case 60: +case 61: YY_RULE_SETUP -#line 387 "gabc/gabc-score-determination.l" +#line 356 "gabc/gabc-score-determination.l" { return EUOUAE_E; } YY_BREAK -case 61: +case 62: YY_RULE_SETUP -#line 390 "gabc/gabc-score-determination.l" +#line 359 "gabc/gabc-score-determination.l" { return TRANSLATION_CENTER_END; } YY_BREAK -case 62: +case 63: YY_RULE_SETUP -#line 393 "gabc/gabc-score-determination.l" +#line 362 "gabc/gabc-score-determination.l" { return TRANSLATION_BEGIN; } YY_BREAK -case 63: +case 64: YY_RULE_SETUP -#line 396 "gabc/gabc-score-determination.l" +#line 365 "gabc/gabc-score-determination.l" { return TRANSLATION_END; } YY_BREAK -case 64: +case 65: YY_RULE_SETUP -#line 399 "gabc/gabc-score-determination.l" +#line 368 "gabc/gabc-score-determination.l" { BEGIN(notes); return OPENING_BRACKET; } YY_BREAK -case 65: -/* rule 65 can match eol */ +case 66: +/* rule 66 can match eol */ YY_RULE_SETUP -#line 403 "gabc/gabc-score-determination.l" +#line 372 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); return NOTES; } YY_BREAK -case 66: +case 67: YY_RULE_SETUP -#line 408 "gabc/gabc-score-determination.l" +#line 377 "gabc/gabc-score-determination.l" { return NABC_CUT; } YY_BREAK -case 67: +case 68: YY_RULE_SETUP -#line 411 "gabc/gabc-score-determination.l" +#line 380 "gabc/gabc-score-determination.l" { BEGIN(score); return CLOSING_BRACKET; } YY_BREAK -case 68: -/* rule 68 can match eol */ +case 69: +/* rule 69 can match eol */ YY_RULE_SETUP -#line 415 "gabc/gabc-score-determination.l" +#line 384 "gabc/gabc-score-determination.l" { BEGIN(score); return CLOSING_BRACKET_WITH_SPACE; @@ -1716,12 +1694,12 @@ case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(attribute): case YY_STATE_EOF(score): case YY_STATE_EOF(notes): -case YY_STATE_EOF(style): +case YY_STATE_EOF(sp): case YY_STATE_EOF(verb): case YY_STATE_EOF(comments): case YY_STATE_EOF(inicomments): case YY_STATE_EOF(alt): -#line 419 "gabc/gabc-score-determination.l" +#line 388 "gabc/gabc-score-determination.l" { if (!eof_found) { eof_found = true; @@ -1731,22 +1709,22 @@ case YY_STATE_EOF(alt): } } YY_BREAK -case 69: -/* rule 69 can match eol */ +case 70: +/* rule 70 can match eol */ YY_RULE_SETUP -#line 427 "gabc/gabc-score-determination.l" +#line 396 "gabc/gabc-score-determination.l" { gregorio_messagef("gabc_score_determination_lex", VERBOSITY_ERROR, 0, _("unrecognized character: \"%c\""), gabc_score_determination_text[0]); } YY_BREAK -case 70: +case 71: YY_RULE_SETUP -#line 432 "gabc/gabc-score-determination.l" +#line 401 "gabc/gabc-score-determination.l" ECHO; YY_BREAK -#line 1750 "gabc/gabc-score-determination-l.c" +#line 1728 "gabc/gabc-score-determination-l.c" case YY_END_OF_BUFFER: { @@ -2038,7 +2016,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 292 ) + if ( yy_current_state >= 296 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2066,11 +2044,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 292 ) + if ( yy_current_state >= 296 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 291); + yy_is_jam = (yy_current_state == 295); return yy_is_jam ? 0 : yy_current_state; } @@ -2719,7 +2697,7 @@ void gabc_score_determination_free (void * ptr ) #define YYTABLES_NAME "yytables" -#line 432 "gabc/gabc-score-determination.l" +#line 401 "gabc/gabc-score-determination.l" diff --git a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-l.h b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-l.h index 9991c67f3e0..411b56732a4 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-l.h +++ b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-l.h @@ -225,7 +225,7 @@ extern char *gabc_score_determination_text; #define attribute 1 #define score 2 #define notes 3 -#define style 4 +#define sp 4 #define verb 5 #define comments 6 #define inicomments 7 @@ -338,7 +338,7 @@ extern int gabc_score_determination_lex (void); #undef YY_DECL #endif -#line 432 "gabc/gabc-score-determination.l" +#line 401 "gabc/gabc-score-determination.l" #line 345 "gabc/gabc-score-determination-l.h" diff --git a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-y.c b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-y.c index c4704c95811..82e4d2dc37a 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-y.c +++ b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-y.c @@ -77,8 +77,8 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This file implements the score parser. * - * Gregorio score determination in gabc input. - * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Gregorio score determination from gabc. + * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -134,6 +134,12 @@ #include "gabc-score-determination.h" #include "gabc-score-determination-l.h" +/* workaround for bison issue passing pointer to a "local" variable */ +#define STYLE_BITS &styles + +/* forward declaration of the flex/bison process function */ +static int gabc_score_determination_parse(void); + /* uncomment it if you want to have an interactive shell to understand the * details on how bison works for a certain input */ /* int gabc_score_determination_debug=1; */ @@ -152,8 +158,6 @@ static gregorio_element **elements; gregorio_element *current_element; /* a table containing the macros to use in gabc file */ static char *macros[10]; -/* forward declaration of the flex/bison process function */ -static int gabc_score_determination_parse(void); /* other variables that we will have to use */ static gregorio_character *current_character; static gregorio_character *first_text_character; @@ -169,10 +173,28 @@ static gregorio_center_determination center_is_determined; /* current_key is... the current key... updated by each notes determination * (for key changes) */ static int current_key; -static bool got_language = false; -static bool got_staff_lines = false; -static bool started_first_word = false; +static bool got_language; +static bool got_staff_lines; +static bool started_first_word; static struct sha1_ctx digester; +static gabc_style_bits styles; + +/* punctum_inclinatum_orientation maintains the running punctum inclinatum + * orientation in order to decide if the glyph needs to be cut when a punctum + * inclinatum with forced orientation is encountered. This should be set to + * the shape of a non-liquescent punctum inclinatum with forced orientation + * when one is encountered, be left alone when a non-liquescent punctum + * inclinatum with undetermined orientation is encountered, or be reset to + * S_PUNCTUM_INCLINATUM_UNDETERMINED otherwise (because such ends any previous + * run of punctum inclinatum notes). Based on the assumption that a punctum + * inclinatum with forced orientation changes all the punctum inclinatum shapes + * with undetermined orientation in the same run of notes before and after it + * unless influenced by an earlier punctum inclinatum with forced orientation, + * the value of punctum_inclinatum_orientation can be used to determine if a + * punctum inclinatum with a forced orientation will have a different + * orientation than the punctum inclinatum immediately before it, which would + * require a cut of the glyph. */ +static gregorio_shape punctum_inclinatum_orientation; static __inline void check_multiple(const char *name, bool exists) { if (exists) { @@ -188,128 +210,6 @@ static void gabc_score_determination_error(const char *error_str) VERBOSITY_ERROR, 0); } -static void fix_custos(gregorio_score *score_to_check) -{ - gregorio_syllable *current_syllable; - gregorio_element *current_element; - gregorio_element *custo_element; - char pitch = 0; - char pitch_difference = 0; - int newkey; - int current_key; - if (!score_to_check || !score_to_check->first_syllable - || !score_to_check->first_voice_info) { - return; - } - current_key = gregorio_calculate_new_key( - score_to_check->first_voice_info->initial_clef); - current_syllable = score_to_check->first_syllable; - while (current_syllable) { - current_element = (current_syllable->elements)[0]; - while (current_element) { - if (current_element->type == GRE_CUSTOS) { - custo_element = current_element; - pitch = custo_element->u.misc.pitched.pitch; - /* we look for the key */ - while (current_element) { - if (current_element->type == GRE_CLEF) { - pitch = gregorio_determine_next_pitch( current_syllable, - current_element, NULL); - newkey = gregorio_calculate_new_key( - current_element->u.misc.clef); - pitch_difference = (char) newkey - (char) current_key; - pitch -= pitch_difference; - current_key = newkey; - } - if (!custo_element->u.misc.pitched.force_pitch) { - while (pitch < LOWEST_PITCH) { - pitch += 7; - } - while (pitch > score_to_check->highest_pitch) { - pitch -= 7; - } - custo_element->u.misc.pitched.pitch = pitch; - } - assert(custo_element->u.misc.pitched.pitch >= LOWEST_PITCH - && custo_element->u.misc.pitched.pitch - <= score_to_check->highest_pitch); - current_element = current_element->next; - } - } - if (current_element) { - if (current_element->type == GRE_CLEF) { - current_key = gregorio_calculate_new_key( - current_element->u.misc.clef); - } - current_element = current_element->next; - } - } - current_syllable = current_syllable->next_syllable; - } -} - -/* - * A function that checks the score integrity. - */ - -static bool check_score_integrity(gregorio_score *score_to_check) -{ - bool good = true; - - gregorio_assert(score_to_check, check_score_integrity, "score is NULL", - return false); - - if (score_to_check->first_syllable - && score_to_check->first_syllable->elements - && *(score_to_check->first_syllable->elements)) { - gregorio_character *ch; - if ((score_to_check->first_syllable->elements)[0]->type - == GRE_END_OF_LINE) { - gregorio_message( - "line break is not supported on the first syllable", - "check_score_integrity", VERBOSITY_ERROR, 0); - good = false; - } - if (gregorio_get_clef_change(score_to_check->first_syllable)) { - gregorio_message( - "clef change is not supported on the first syllable", - "check_score_integrity", VERBOSITY_ERROR, 0); - good = false; - } - /* check first syllable for elision at the beginning */ - for (ch = score_to_check->first_syllable->text; ch; - ch = ch->next_character) { - if (ch->is_character) { - break; - } else if (ch->cos.s.style == ST_VERBATIM - || ch->cos.s.style == ST_SPECIAL_CHAR) { - break; - } else if (ch->cos.s.style == ST_ELISION) { - gregorio_message( - _("score initial may not be in an elision"), - "check_score_integrity", VERBOSITY_ERROR, 0); - break; - } - } - } - - return good; -} - -/* - * Another function to be improved: this one checks the validity of the voice_infos. - */ - -static bool check_infos_integrity(gregorio_score *score_to_check) -{ - if (!score_to_check->name) { - gregorio_message(_("no name specified, put `name:...;' at the " - "beginning of the file, can be dangerous with some output " - "formats"), "det_score", VERBOSITY_WARNING, 0); - } - return true; -} - /* * The function that will initialize the variables. */ @@ -340,6 +240,8 @@ static void initialize_variables(void) got_language = false; got_staff_lines = false; started_first_word = false; + styles = 0; + punctum_inclinatum_orientation = S_PUNCTUM_INCLINATUM_UNDETERMINED; } /* @@ -586,13 +488,51 @@ static void end_translation(void) } /* - * gregorio_gabc_add_text is the function called when lex returns a char *. In + * + * The two functions called when lex returns a style, we simply add it. All the + * complex things will be done by the function after... + * + */ + +static void add_style(unsigned char style) +{ + gregorio_begin_style(¤t_character, style); +} + +static void end_style(unsigned char style) +{ + gregorio_end_style(¤t_character, style); +} + +/* + * add_text is the function called when lex returns a char *. In * this function we convert it into grewchar, and then we add the corresponding * gregorio_characters in the list of gregorio_characters. */ -static void gregorio_gabc_add_text(char *mbcharacters) +static void add_text(char *mbcharacters) { + if (!current_character) { + /* insert open styles, leaving out ELISION on purpose */ + if (styles & SB_I) { + add_style(ST_ITALIC); + } + if (styles & SB_B) { + add_style(ST_BOLD); + } + if (styles & SB_TT) { + add_style(ST_TT); + } + if (styles & SB_SC) { + add_style(ST_SMALL_CAPS); + } + if (styles & SB_UL) { + add_style(ST_UNDERLINED); + } + if (styles & SB_C) { + add_style(ST_COLORED); + } + } if (current_character) { current_character->next_character = gregorio_build_char_list_from_buf( mbcharacters); @@ -607,140 +547,11 @@ static void gregorio_gabc_add_text(char *mbcharacters) free(mbcharacters); } -/* - * - * The two functions called when lex returns a style, we simply add it. All the - * complex things will be done by the function after... - * - */ - -static void gregorio_gabc_add_style(unsigned char style) -{ - gregorio_begin_style(¤t_character, style); -} - -static void gregorio_gabc_end_style(unsigned char style) -{ - gregorio_end_style(¤t_character, style); -} - void gabc_digest(const void *const buf, const size_t size) { sha1_process_bytes(buf, size, &digester); } -static void determine_oriscus_orientation(gregorio_score *score) { - gregorio_syllable *syllable; - gregorio_element *element; - gregorio_glyph *glyph; - gregorio_note *note; - gregorio_note *oriscus = NULL; - - for (syllable = score->first_syllable; syllable; - syllable = syllable->next_syllable) { - for (element = syllable->elements[0]; element; - element = element->next) { - if (element->type == GRE_ELEMENT) { - for (glyph = element->u.first_glyph; glyph; - glyph = glyph->next) { - if (glyph->type == GRE_GLYPH) { - for (note = glyph->u.notes.first_note; note; - note = note->next) { - if (note->type == GRE_NOTE) { - if (oriscus) { - if (note->u.note.pitch - < oriscus->u.note.pitch) { - switch(oriscus->u.note.shape) { - case S_ORISCUS_UNDETERMINED: - oriscus->u.note.shape = - S_ORISCUS_DESCENDENS; - break; - case S_ORISCUS_SCAPUS_UNDETERMINED: - oriscus->u.note.shape = - S_ORISCUS_SCAPUS_DESCENDENS; - break; - case S_ORISCUS_CAVUM_UNDETERMINED: - oriscus->u.note.shape = - S_ORISCUS_CAVUM_DESCENDENS; - break; - default: - /* not reachable unless there's a - * programming error */ - /* LCOV_EXCL_START */ - gregorio_fail( - determine_oriscus_orientation, - "bad_shape"); - break; - /* LCOV_EXCL_STOP */ - } - } else { /* ascending or the same */ - switch(oriscus->u.note.shape) { - case S_ORISCUS_UNDETERMINED: - oriscus->u.note.shape = - S_ORISCUS_ASCENDENS; - break; - case S_ORISCUS_SCAPUS_UNDETERMINED: - oriscus->u.note.shape = - S_ORISCUS_SCAPUS_ASCENDENS; - break; - case S_ORISCUS_CAVUM_UNDETERMINED: - oriscus->u.note.shape = - S_ORISCUS_CAVUM_ASCENDENS; - break; - default: - /* not reachable unless there's a - * programming error */ - /* LCOV_EXCL_START */ - gregorio_fail( - determine_oriscus_orientation, - "bad_shape"); - break; - /* LCOV_EXCL_STOP */ - } - } - oriscus = NULL; - } - - switch (note->u.note.shape) { - case S_ORISCUS_UNDETERMINED: - case S_ORISCUS_SCAPUS_UNDETERMINED: - case S_ORISCUS_CAVUM_UNDETERMINED: - oriscus = note; - break; - - default: - break; - } - } - } - } - } - } - } - } - - if (oriscus) { - /* oriscus at the end of the score */ - switch(oriscus->u.note.shape) { - case S_ORISCUS_UNDETERMINED: - oriscus->u.note.shape = S_ORISCUS_DESCENDENS; - break; - case S_ORISCUS_SCAPUS_UNDETERMINED: - oriscus->u.note.shape = S_ORISCUS_SCAPUS_DESCENDENS; - break; - case S_ORISCUS_CAVUM_UNDETERMINED: - oriscus->u.note.shape = S_ORISCUS_CAVUM_DESCENDENS; - break; - default: - /* not reachable unless there's a programming error */ - /* LCOV_EXCL_START */ - gregorio_fail(determine_oriscus_orientation, "bad_shape"); - break; - /* LCOV_EXCL_STOP */ - } - } -} - /* * The "main" function. It is the function that is called when we have to read * a gabc file. It takes a file descriptor, that is to say a file that is @@ -765,6 +576,7 @@ gregorio_score *gabc_read_score(FILE *f_in) if (!score->legacy_oriscus_orientation) { determine_oriscus_orientation(score); } + determine_punctum_inclinatum_orientation(score); gregorio_fix_initial_keys(score, gregorio_default_clef); rebuild_score_characters(); fix_custos(score); @@ -785,12 +597,13 @@ size_t nabc_lines = 0; static void gabc_y_add_notes(char *notes, YYLTYPE loc) { if (nabc_state == 0) { if (!elements[voice]) { - elements[voice] = gabc_det_elements_from_string(notes, - ¤t_key, macros, &loc, score); + elements[voice] = gabc_det_elements_from_string(notes, ¤t_key, + macros, &loc, &punctum_inclinatum_orientation, score); current_element = elements[voice]; } else { gregorio_element *new_elements = gabc_det_elements_from_string( - notes, ¤t_key, macros, &loc, score); + notes, ¤t_key, macros, &loc, + &punctum_inclinatum_orientation, score); gregorio_element *last_element = elements[voice]; while (last_element->next) { last_element = last_element->next; @@ -816,7 +629,7 @@ static void gabc_y_add_notes(char *notes, YYLTYPE loc) { } } -#line 820 "gabc/gabc-score-determination-y.c" /* yacc.c:339 */ +#line 633 "gabc/gabc-score-determination-y.c" /* yacc.c:339 */ # ifndef YY_NULLPTR # if defined __cplusplus && 201103L <= __cplusplus @@ -1001,7 +814,7 @@ int gabc_score_determination_parse (void); /* Copy the second part of user declarations. */ -#line 1005 "gabc/gabc-score-determination-y.c" /* yacc.c:358 */ +#line 818 "gabc/gabc-score-determination-y.c" /* yacc.c:358 */ #ifdef short # undef short @@ -1306,15 +1119,15 @@ static const yytype_uint8 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 782, 782, 786, 791, 792, 796, 800, 806, 811, - 820, 826, 831, 836, 841, 846, 851, 859, 867, 877, - 886, 891, 895, 900, 901, 905, 910, 916, 927, 931, - 939, 940, 941, 945, 948, 951, 954, 957, 960, 963, - 966, 969, 972, 981, 984, 987, 990, 993, 996, 999, - 1002, 1005, 1008, 1017, 1020, 1026, 1029, 1035, 1036, 1039, - 1040, 1041, 1042, 1046, 1049, 1054, 1055, 1056, 1060, 1066, - 1069, 1075, 1081, 1086, 1094, 1097, 1106, 1109, 1115, 1116, - 1119, 1120 + 0, 597, 597, 601, 606, 607, 611, 615, 621, 626, + 635, 641, 646, 651, 656, 661, 666, 674, 682, 692, + 701, 706, 710, 715, 716, 720, 725, 731, 742, 746, + 754, 755, 756, 760, 763, 766, 769, 772, 775, 778, + 781, 784, 787, 796, 799, 802, 805, 808, 811, 814, + 817, 820, 823, 832, 835, 841, 844, 850, 851, 854, + 855, 856, 857, 861, 864, 869, 870, 871, 875, 881, + 884, 890, 896, 901, 909, 912, 921, 924, 930, 931, + 934, 935 }; #endif @@ -2096,7 +1909,7 @@ yyparse (void) yychar = YYEMPTY; /* Cause a token to be read. */ /* User initialization code. */ -#line 746 "gabc/gabc-score-determination.y" /* yacc.c:1429 */ +#line 559 "gabc/gabc-score-determination.y" /* yacc.c:1429 */ { yylloc.first_line = 1; yylloc.first_column = 0; @@ -2106,7 +1919,7 @@ yyparse (void) yylloc.last_offset = 0; } -#line 2110 "gabc/gabc-score-determination-y.c" /* yacc.c:1429 */ +#line 1923 "gabc/gabc-score-determination-y.c" /* yacc.c:1429 */ yylsp[0] = yylloc; goto yysetstate; @@ -2213,7 +2026,7 @@ yybackup: if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); - yychar = yylex (); + yychar = yylex (STYLE_BITS); } if (yychar <= YYEOF) @@ -2293,41 +2106,41 @@ yyreduce: switch (yyn) { case 3: -#line 786 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 601 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { end_definitions(); } -#line 2301 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2114 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 6: -#line 796 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 611 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { (yyval).text = (yyvsp[-1]).text; } -#line 2309 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2122 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 7: -#line 800 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 615 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { (yyval).text = NULL; } -#line 2317 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2130 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 8: -#line 806 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 621 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { /* these definitions are not passed through */ free(macros[(yyvsp[-1]).character - '0']); macros[(yyvsp[-1]).character - '0'] = (yyvsp[0]).text; } -#line 2327 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2140 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 9: -#line 811 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 626 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { if ((yyvsp[0]).text == NULL) { gregorio_message("name can't be empty","det_score", @@ -2337,72 +2150,72 @@ yyreduce: gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text); score->name = (yyvsp[0]).text; } -#line 2341 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2154 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 10: -#line 820 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 635 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { check_multiple("language", got_language); gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text); gregorio_set_centering_language((yyvsp[0]).text); got_language = true; } -#line 2352 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2165 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 11: -#line 826 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 641 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { check_multiple("gabc-copyright", score->gabc_copyright != NULL); gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text); score->gabc_copyright = (yyvsp[0]).text; } -#line 2362 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2175 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 12: -#line 831 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 646 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { check_multiple("score_copyright", score->score_copyright != NULL); gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text); score->score_copyright = (yyvsp[0]).text; } -#line 2372 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2185 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 13: -#line 836 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 651 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { check_multiple("mode", score->mode != 0); gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text); score->mode = (yyvsp[0]).text; } -#line 2382 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2195 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 14: -#line 841 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 656 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { check_multiple("mode-modifier", score->mode_modifier != NULL); gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text); score->mode_modifier = (yyvsp[0]).text; } -#line 2392 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2205 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 15: -#line 846 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 661 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { check_multiple("mode-differentia", score->mode_differentia != NULL); gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text); score->mode_differentia = (yyvsp[0]).text; } -#line 2402 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2215 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 16: -#line 851 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 666 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { check_multiple("staff-lines", got_staff_lines); if ((yyvsp[0]).text) { @@ -2411,11 +2224,11 @@ yyreduce: got_staff_lines = true; } } -#line 2415 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2228 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 17: -#line 859 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 674 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { check_multiple("nabc lines", score->nabc_lines != 0); if ((yyvsp[0]).text) { @@ -2424,14 +2237,14 @@ yyreduce: score->nabc_lines=nabc_lines; } } -#line 2428 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2241 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 18: -#line 867 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 682 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { if ((yyvsp[0]).text) { - /* DEPRECATED by 4.1 */ + /* DEPRECATED for removal in 5.0 */ gregorio_message("\"initial-style\" header is deprecated. Please " "use \\gresetinitiallines in TeX instead.", "gabc_score_determination_parse", VERBOSITY_DEPRECATION, 0); @@ -2439,11 +2252,11 @@ yyreduce: free((yyvsp[0]).text); } } -#line 2443 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2256 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 19: -#line 877 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 692 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { if (score->annotation [MAX_ANNOTATIONS - 1]) { gregorio_messagef("det_score", VERBOSITY_WARNING, 0, @@ -2453,59 +2266,59 @@ yyreduce: gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text); gregorio_set_score_annotation(score, (yyvsp[0]).text); } -#line 2457 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2270 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 20: -#line 886 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 701 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { check_multiple("author", score->author != NULL); gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text); score->author = (yyvsp[0]).text; } -#line 2467 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2280 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 21: -#line 891 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 706 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text); score->legacy_oriscus_orientation = (strcmp((yyvsp[0]).text, "legacy") == 0); } -#line 2476 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2289 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 22: -#line 895 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 710 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text); } -#line 2484 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2297 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 25: -#line 905 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 720 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { gabc_y_add_notes((yyvsp[-1]).text, (yylsp[-1])); free((yyvsp[-1]).text); nabc_state=0; } -#line 2494 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2307 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 26: -#line 910 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 725 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { gabc_y_add_notes((yyvsp[-1]).text, (yylsp[-1])); free((yyvsp[-1]).text); nabc_state=0; update_position_with_space(); } -#line 2505 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2318 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 27: -#line 916 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 731 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { if (!nabc_lines) { gregorio_message(_("You used character \"|\" in gabc without " @@ -2517,342 +2330,342 @@ yyreduce: free((yyvsp[-1]).text); nabc_state = (nabc_state + 1) % (nabc_lines+1); } -#line 2521 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2334 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 28: -#line 927 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 742 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { elements[voice]=NULL; nabc_state=0; } -#line 2530 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2343 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 29: -#line 931 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 746 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { elements[voice]=NULL; nabc_state=0; update_position_with_space(); } -#line 2540 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2353 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 33: -#line 945 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 760 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_add_style(ST_ITALIC); + add_style(ST_ITALIC); } -#line 2548 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2361 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 34: -#line 948 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 763 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_add_style(ST_TT); + add_style(ST_TT); } -#line 2556 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2369 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 35: -#line 951 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 766 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_add_style(ST_UNDERLINED); + add_style(ST_UNDERLINED); } -#line 2564 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2377 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 36: -#line 954 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 769 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_add_style(ST_COLORED); + add_style(ST_COLORED); } -#line 2572 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2385 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 37: -#line 957 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 772 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_add_style(ST_BOLD); + add_style(ST_BOLD); } -#line 2580 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2393 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 38: -#line 960 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 775 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_add_style(ST_SMALL_CAPS); + add_style(ST_SMALL_CAPS); } -#line 2588 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2401 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 39: -#line 963 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 778 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_add_style(ST_VERBATIM); + add_style(ST_VERBATIM); } -#line 2596 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2409 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 40: -#line 966 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 781 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_add_style(ST_SPECIAL_CHAR); + add_style(ST_SPECIAL_CHAR); } -#line 2604 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2417 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 41: -#line 969 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 784 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_add_style(ST_ELISION); + add_style(ST_ELISION); } -#line 2612 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2425 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 42: -#line 972 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 787 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { if (!center_is_determined) { - gregorio_gabc_add_style(ST_FORCED_CENTER); + add_style(ST_FORCED_CENTER); center_is_determined=CENTER_HALF_DETERMINED; } } -#line 2623 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2436 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 43: -#line 981 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 796 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_end_style(ST_ITALIC); + end_style(ST_ITALIC); } -#line 2631 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2444 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 44: -#line 984 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 799 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_end_style(ST_TT); + end_style(ST_TT); } -#line 2639 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2452 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 45: -#line 987 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 802 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_end_style(ST_UNDERLINED); + end_style(ST_UNDERLINED); } -#line 2647 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2460 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 46: -#line 990 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 805 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_end_style(ST_COLORED); + end_style(ST_COLORED); } -#line 2655 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2468 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 47: -#line 993 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 808 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_end_style(ST_BOLD); + end_style(ST_BOLD); } -#line 2663 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2476 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 48: -#line 996 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 811 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_end_style(ST_SMALL_CAPS); + end_style(ST_SMALL_CAPS); } -#line 2671 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2484 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 49: -#line 999 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 814 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_end_style(ST_VERBATIM); + end_style(ST_VERBATIM); } -#line 2679 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2492 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 50: -#line 1002 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 817 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_end_style(ST_SPECIAL_CHAR); + end_style(ST_SPECIAL_CHAR); } -#line 2687 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2500 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 51: -#line 1005 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 820 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_end_style(ST_ELISION); + end_style(ST_ELISION); } -#line 2695 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2508 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 52: -#line 1008 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 823 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { if (center_is_determined==CENTER_HALF_DETERMINED) { - gregorio_gabc_end_style(ST_FORCED_CENTER); + end_style(ST_FORCED_CENTER); center_is_determined=CENTER_FULLY_DETERMINED; } } -#line 2706 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2519 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 53: -#line 1017 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 832 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { euouae = EUOUAE_BEGINNING; } -#line 2714 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2527 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 54: -#line 1020 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 835 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { euouae = EUOUAE_END; } -#line 2722 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2535 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 55: -#line 1026 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 841 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { no_linebreak_area = NLBA_BEGINNING; } -#line 2730 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2543 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 56: -#line 1029 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 844 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { no_linebreak_area = NLBA_END; } -#line 2738 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2551 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 58: -#line 1036 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 851 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_add_text((yyvsp[0]).text); + add_text((yyvsp[0]).text); } -#line 2746 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2559 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 63: -#line 1046 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 861 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_add_text(gregorio_strdup("-")); + add_text(gregorio_strdup("-")); } -#line 2754 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2567 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 64: -#line 1049 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 864 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_add_text(gregorio_strdup("-")); + add_text(gregorio_strdup("-")); } -#line 2762 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2575 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 68: -#line 1060 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 875 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { start_translation(TR_NORMAL); } -#line 2770 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2583 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 69: -#line 1066 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 881 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { end_translation(); } -#line 2778 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2591 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 70: -#line 1069 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 884 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { start_translation(TR_WITH_CENTER_END); } -#line 2786 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2599 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 71: -#line 1075 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 890 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { abovelinestext = (yyvsp[-1]).text; } -#line 2794 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2607 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 72: -#line 1081 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 896 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { ready_characters(); first_text_character = current_character; close_syllable(&(yylsp[-2])); } -#line 2804 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2617 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 73: -#line 1086 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 901 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_add_style(ST_VERBATIM); - gregorio_gabc_add_text(gregorio_strdup("\\GreForceHyphen")); - gregorio_gabc_end_style(ST_VERBATIM); + add_style(ST_VERBATIM); + add_text(gregorio_strdup("\\GreForceHyphen")); + end_style(ST_VERBATIM); ready_characters(); first_text_character = current_character; close_syllable(&(yylsp[-3])); } -#line 2817 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2630 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 74: -#line 1094 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 909 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { close_syllable(&(yylsp[-3])); } -#line 2825 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2638 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 75: -#line 1097 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 912 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - gregorio_gabc_add_style(ST_VERBATIM); - gregorio_gabc_add_text(gregorio_strdup("\\GreForceHyphen")); - gregorio_gabc_end_style(ST_VERBATIM); + add_style(ST_VERBATIM); + add_text(gregorio_strdup("\\GreForceHyphen")); + end_style(ST_VERBATIM); close_syllable(&(yylsp[-4])); } -#line 2836 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2649 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 76: -#line 1106 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 921 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { close_syllable(NULL); } -#line 2844 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2657 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 77: -#line 1109 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 924 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { close_syllable(NULL); } -#line 2852 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2665 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; -#line 2856 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2669 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires diff --git a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.c b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.c new file mode 100644 index 00000000000..b6659c18499 --- /dev/null +++ b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.c @@ -0,0 +1,373 @@ +/* + * Gregorio is a program that translates gabc files to GregorioTeX + * This file implements the score parser. + * + * Gregorio score determination from gabc utilities. + * Copyright (C) 2016 The Gregorio Project (see CONTRIBUTORS.md) + * + * This file is part of Gregorio. + * + * 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/>. + */ + +#include "config.h" +#include <stdio.h> +#include <stdlib.h> +#include <assert.h> +#include "bool.h" +#include "struct.h" +#include "struct_iter.h" +#include "gabc.h" +#include "gabc-score-determination.h" +#include "messages.h" + +void fix_custos(gregorio_score *score_to_check) +{ + gregorio_syllable *current_syllable; + gregorio_element *current_element; + gregorio_element *custo_element; + char pitch = 0; + char pitch_difference = 0; + int newkey; + int current_key; + if (!score_to_check || !score_to_check->first_syllable + || !score_to_check->first_voice_info) { + return; + } + current_key = gregorio_calculate_new_key( + score_to_check->first_voice_info->initial_clef); + current_syllable = score_to_check->first_syllable; + while (current_syllable) { + current_element = (current_syllable->elements)[0]; + while (current_element) { + if (current_element->type == GRE_CUSTOS) { + custo_element = current_element; + pitch = custo_element->u.misc.pitched.pitch; + /* we look for the key */ + while (current_element) { + if (current_element->type == GRE_CLEF) { + pitch = gregorio_determine_next_pitch(current_syllable, + current_element, NULL, NULL); + newkey = gregorio_calculate_new_key( + current_element->u.misc.clef); + pitch_difference = (char) newkey - (char) current_key; + pitch -= pitch_difference; + current_key = newkey; + } + if (!custo_element->u.misc.pitched.force_pitch) { + while (pitch < LOWEST_PITCH) { + pitch += 7; + } + while (pitch > score_to_check->highest_pitch) { + pitch -= 7; + } + custo_element->u.misc.pitched.pitch = pitch; + } + assert(custo_element->u.misc.pitched.pitch >= LOWEST_PITCH + && custo_element->u.misc.pitched.pitch + <= score_to_check->highest_pitch); + current_element = current_element->next; + } + } + if (current_element) { + if (current_element->type == GRE_CLEF) { + current_key = gregorio_calculate_new_key( + current_element->u.misc.clef); + } + current_element = current_element->next; + } + } + current_syllable = current_syllable->next_syllable; + } +} + +/* + * A function that checks the score integrity. + */ + +bool check_score_integrity(gregorio_score *score_to_check) +{ + bool good = true; + + gregorio_assert(score_to_check, check_score_integrity, "score is NULL", + return false); + + if (score_to_check->first_syllable + && score_to_check->first_syllable->elements + && *(score_to_check->first_syllable->elements)) { + gregorio_character *ch; + if ((score_to_check->first_syllable->elements)[0]->type + == GRE_END_OF_LINE) { + gregorio_message( + "line break is not supported on the first syllable", + "check_score_integrity", VERBOSITY_ERROR, 0); + good = false; + } + if (gregorio_get_clef_change(score_to_check->first_syllable)) { + gregorio_message( + "clef change is not supported on the first syllable", + "check_score_integrity", VERBOSITY_ERROR, 0); + good = false; + } + /* check first syllable for elision at the beginning */ + for (ch = score_to_check->first_syllable->text; ch; + ch = ch->next_character) { + if (ch->is_character) { + break; + } else if (ch->cos.s.style == ST_VERBATIM + || ch->cos.s.style == ST_SPECIAL_CHAR) { + break; + } else if (ch->cos.s.style == ST_ELISION) { + gregorio_message( + _("score initial may not be in an elision"), + "check_score_integrity", VERBOSITY_ERROR, 0); + break; + } + } + } + + return good; +} + +/* + * Another function to be improved: this one checks the validity of the voice_infos. + */ + +bool check_infos_integrity(gregorio_score *score_to_check) +{ + if (!score_to_check->name) { + gregorio_message(_("no name specified, put `name:...;' at the " + "beginning of the file, can be dangerous with some output " + "formats"), "det_score", VERBOSITY_WARNING, 0); + } + return true; +} + +/* data must be (gregorio_note **) */ +static void oriscus_orientation_visit( + const gregorio_note_iter_position *const p, void *const data) +{ + gregorio_note *const note = p->note; + gregorio_note **const oriscus_ptr = (gregorio_note **const)data; + gregorio_note *const oriscus = *oriscus_ptr; + /* making oriscus const ensures we don't attempt to change *oriscus_ptr + * via oriscus */ + + if (oriscus) { + if (note->u.note.pitch <= oriscus->u.note.pitch) { + /* descending or unison */ + switch(oriscus->u.note.shape) { + case S_ORISCUS_UNDETERMINED: + oriscus->u.note.shape = S_ORISCUS_DESCENDENS; + break; + case S_ORISCUS_SCAPUS_UNDETERMINED: + oriscus->u.note.shape = S_ORISCUS_SCAPUS_DESCENDENS; + break; + case S_ORISCUS_CAVUM_UNDETERMINED: + oriscus->u.note.shape = S_ORISCUS_CAVUM_DESCENDENS; + break; + default: + /* not reachable unless there's a + * programming error */ + /* LCOV_EXCL_START */ + gregorio_fail(oriscus_orientation_visit, "bad_shape"); + break; + /* LCOV_EXCL_STOP */ + } + } else { /* ascending */ + switch(oriscus->u.note.shape) { + case S_ORISCUS_UNDETERMINED: + oriscus->u.note.shape = S_ORISCUS_ASCENDENS; + break; + case S_ORISCUS_SCAPUS_UNDETERMINED: + oriscus->u.note.shape = S_ORISCUS_SCAPUS_ASCENDENS; + break; + case S_ORISCUS_CAVUM_UNDETERMINED: + oriscus->u.note.shape = S_ORISCUS_CAVUM_ASCENDENS; + break; + default: + /* not reachable unless there's a + * programming error */ + /* LCOV_EXCL_START */ + gregorio_fail(oriscus_orientation_visit, "bad_shape"); + break; + /* LCOV_EXCL_STOP */ + } + } + *oriscus_ptr = NULL; + } + + switch (note->u.note.shape) { + case S_ORISCUS_UNDETERMINED: + case S_ORISCUS_SCAPUS_UNDETERMINED: + case S_ORISCUS_CAVUM_UNDETERMINED: + *oriscus_ptr = note; + break; + + default: + break; + } +} + +void determine_oriscus_orientation(const gregorio_score *const score) +{ + gregorio_note *oriscus = NULL; + + gregorio_for_each_note(score, oriscus_orientation_visit, &oriscus); + + if (oriscus) { + /* oriscus at the end of the score */ + switch(oriscus->u.note.shape) { + case S_ORISCUS_UNDETERMINED: + oriscus->u.note.shape = S_ORISCUS_DESCENDENS; + break; + case S_ORISCUS_SCAPUS_UNDETERMINED: + oriscus->u.note.shape = S_ORISCUS_SCAPUS_DESCENDENS; + break; + case S_ORISCUS_CAVUM_UNDETERMINED: + oriscus->u.note.shape = S_ORISCUS_CAVUM_DESCENDENS; + break; + default: + /* not reachable unless there's a programming error */ + /* LCOV_EXCL_START */ + gregorio_fail(determine_oriscus_orientation, "bad_shape"); + break; + /* LCOV_EXCL_STOP */ + } + } +} + +typedef struct { + gregorio_note_iter_position first, previous; + gregorio_shape orientation; + int running; +} punctum_inclinatum_vars; + +/* data must be (gregorio_shape *) */ +static void set_shape(const gregorio_note_iter_position *const p, + void *const data) +{ + p->note->u.note.shape = *((gregorio_shape *)data); +} + +/* data must be (punctum_inclinatum_vars *) */ +static void punctum_inclinatum_orientation_visit( + const gregorio_note_iter_position *const p, void *const data) +{ + const gregorio_shape shape = p->note->u.note.shape; + punctum_inclinatum_vars *const v = (punctum_inclinatum_vars *)data; + if (shape == S_PUNCTUM_INCLINATUM_UNDETERMINED) { + if (v->orientation) { + p->note->u.note.shape = v->orientation; + } else { + /* any cases not covered here will not change running */ + if (v->previous.note + && (v->first.note || v->previous.syllable == p->syllable)) { + if (v->previous.note->u.note.pitch + < p->note->u.note.pitch) { + ++ v->running; + } else if (v->previous.note->u.note.pitch + > p->note->u.note.pitch) { + -- v->running; + } + } + if (!v->first.note) { + v->first = *p; + } + } + } else { /* non-inclinatum or determined inclinatum */ + bool is_punctum_inclinatum; + + /* shape can't be S_PUNCTUM_INCLINATUM_UNDETERMINED here */ + switch (shape) { + case S_PUNCTUM_INCLINATUM_ASCENDENS: + v->orientation = S_PUNCTUM_INCLINATUM_ASCENDENS; + is_punctum_inclinatum = true; + break; + case S_PUNCTUM_INCLINATUM_DESCENDENS: + case S_PUNCTUM_INCLINATUM_DEMINUTUS: + case S_PUNCTUM_INCLINATUM_AUCTUS: + case S_PUNCTUM_CAVUM_INCLINATUM: + case S_PUNCTUM_CAVUM_INCLINATUM_AUCTUS: + v->orientation = S_PUNCTUM_INCLINATUM_DESCENDENS; + is_punctum_inclinatum = true; + break; + default: + is_punctum_inclinatum = false; + break; + } + + if (v->first.note) { + if (!is_punctum_inclinatum) { + /* if v->first.note is not null, + * then v->previous.note is not null */ + if (v->previous.note->u.note.pitch + < p->note->u.note.pitch + && v->previous.syllable == p->syllable) { + ++ v->running; + } else if (v->previous.note->u.note.pitch + > p->note->u.note.pitch) { + -- v->running; + } + v->orientation = (v->running > 0) + ? S_PUNCTUM_INCLINATUM_ASCENDENS + : S_PUNCTUM_INCLINATUM_DESCENDENS; + } + gregorio_from_note_to_note(&v->first, &v->previous, set_shape, + &v->orientation); + v->first.syllable = NULL; + v->first.element = NULL; + v->first.glyph = NULL; + v->first.note = NULL; + v->running = 0; + } + + if (!is_punctum_inclinatum) { + v->orientation = S_UNDETERMINED; + } /* otherwise, leave orientation alone */ + } + + v->previous = *p; +} + +void determine_punctum_inclinatum_orientation( + const gregorio_score *const score) +{ + punctum_inclinatum_vars v = { + /* .first = */ { + /* .syllable = */ NULL, + /* .element = */ NULL, + /* .glyph = */ NULL, + /* .note = */ NULL + }, + /* .previous = */ { + /* .syllable = */ NULL, + /* .element = */ NULL, + /* .glyph = */ NULL, + /* .note = */ NULL + }, + /* .orientation = */ S_UNDETERMINED, /* because it's 0 */ + /* .running = */ 0, + }; + + gregorio_for_each_note(score, punctum_inclinatum_orientation_visit, &v); + + if (v.first.note) { + v.orientation = (v.running > 0) + ? S_PUNCTUM_INCLINATUM_ASCENDENS + : S_PUNCTUM_INCLINATUM_DESCENDENS; + gregorio_from_note_to_note(&v.first, &v.previous, set_shape, + &v.orientation); + } +} diff --git a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.h b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.h index 3098ec17766..3400e100465 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.h +++ b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.h @@ -2,8 +2,8 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This header shares definitions between the score parser and lexer. * - * Gregorio score determination in gabc input. - * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Gregorio score determination from gabc. + * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -21,8 +21,24 @@ * this program. If not, see <http://www.gnu.org/licenses/>. */ +#ifndef GABC_SCORE_DETERMINATION_H +#define GABC_SCORE_DETERMINATION_H + +#include "bool.h" +#include "struct.h" #include "gabc.h" +/* The bits in this enum are named to correspond with the _BEGIN/_END tokens */ +typedef enum { + SB_I = 0x01, + SB_B = 0x02, + SB_TT = 0x04, + SB_SC = 0x08, + SB_UL = 0x10, + SB_C = 0x20, + SB_ELISION = 0x40 +} gabc_style_bits; + typedef union gabc_score_determination_lval_t { char *text; char character; @@ -31,7 +47,16 @@ typedef union gabc_score_determination_lval_t { #define YYSTYPE gabc_score_determination_lval_t #define YYSTYPE_IS_DECLARED 1 -int gabc_score_determination_lex(void); -#define YY_DECL int gabc_score_determination_lex(void) +#define YY_DECL \ + int gabc_score_determination_lex(gabc_style_bits *const styles) +YY_DECL; #define YYLTYPE gregorio_scanner_location + +void fix_custos(gregorio_score *score_to_check); +bool check_score_integrity(gregorio_score *score_to_check); +bool check_infos_integrity(gregorio_score *score_to_check); +void determine_oriscus_orientation(const gregorio_score *score); +void determine_punctum_inclinatum_orientation(const gregorio_score *score); + +#endif diff --git a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.l b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.l index a660443dc8d..e35fc27fff6 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.l +++ b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.l @@ -4,22 +4,22 @@ * This file implements the score lexer. * * Gregorio score determination in gabc input. - * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. - * + * * 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/>. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see <http://www.gnu.org/licenses/>. */ #include "config.h" @@ -35,9 +35,35 @@ #include "gabc-score-determination.h" #include "gabc-score-determination-y.h" -static unsigned char style_stack = 0; static bool eof_found = false; +#define START_STYLE(STYLE) \ + if (*styles & SB_ ## STYLE) { \ + gregorio_messagef("gabc_score_determination_lex", VERBOSITY_ERROR, 0, \ + _("style already started: %s"), gabc_score_determination_text); \ + } else { \ + *styles ^= SB_ ## STYLE; \ + return STYLE ## _BEGIN; \ + } + +#define END_STYLE(STYLE) \ + if (*styles & SB_ ## STYLE) { \ + *styles ^= SB_ ## STYLE; \ + return STYLE ## _END; \ + } else { \ + gregorio_messagef("gabc_score_determination_lex", VERBOSITY_ERROR, 0, \ + _("style not started: %s"), gabc_score_determination_text); \ + } + +#define RETURN_CHARACTERS \ + gabc_score_determination_lval.text = \ + gregorio_strdup(gabc_score_determination_text); \ + return CHARACTERS + +#define RETURN_SPACE \ + gabc_score_determination_lval.text = gregorio_strdup(" "); \ + return CHARACTERS + #define YY_NO_INPUT #define YY_INPUT(buf,result,max_size) \ @@ -78,7 +104,7 @@ static bool eof_found = false; %x attribute %x score %x notes -%x style +%x sp %x verb %x comments %x inicomments @@ -106,7 +132,7 @@ double semicolon, (b) multi-line values, which end at a double semicolon. */ %% -<INITIAL>^(\xBB|\xEF|\xBF)* { +<INITIAL>^(\xBB|\xEF|\xBF)+ { /* BOM written by a lot of windows softwares when they write UTF-8 */ } <INITIAL>^[\n\r]+ { @@ -118,7 +144,7 @@ semicolon. */ <inicomments>(\n|\r)+ { BEGIN(INITIAL); } -<inicomments>[^\n\r]* { +<inicomments>[^\n\r]+ { /* ignored */ } <INITIAL>:(\ )? { @@ -154,7 +180,7 @@ semicolon. */ return GABC_COPYRIGHT; } <INITIAL>initial-style { - /* DEPRECATED by 4.1 */ + /* DEPRECATED for removal in 5.0 */ return INITIAL_STYLE; } <INITIAL>mode { @@ -216,120 +242,76 @@ semicolon. */ _("unrecognized character: \"%c\" in definition part"), gabc_score_determination_text[0]); } -<score>[^-\{\}\(\[\]<%]+ { - gabc_score_determination_lval.text = - gregorio_strdup(gabc_score_determination_text); - return CHARACTERS; +<score>[\n\r][\n\r \t]* { + RETURN_SPACE; + } +<score,sp>[^-\{\}\(\[\]<%\n\r]+ { + RETURN_CHARACTERS; } <score>- { return HYPHEN; } -<score,style><nlba> { +<score><nlba> { return NLBA_B; } -<score,style><\/nlba> { +<score><\/nlba> { return NLBA_E; } -<score,style><i> { - BEGIN(style); - style_stack ++; - return I_BEGIN; +<score><i> { + START_STYLE(I); } -<style><\/i> { - style_stack --; - if (style_stack == 0) { - BEGIN(score); - } - return I_END; +<score><\/i> { + END_STYLE(I); } -<score,style><tt> { - BEGIN(style); - style_stack ++; - return TT_BEGIN; +<score><tt> { + START_STYLE(TT); } -<style><\/tt> { - style_stack --; - if (style_stack == 0) { - BEGIN(score); - } - return TT_END; +<score><\/tt> { + END_STYLE(TT); } -<score,style><ul> { - BEGIN(style); - style_stack ++; - return UL_BEGIN; +<score><ul> { + START_STYLE(UL); } -<style><\/ul> { - style_stack --; - if (style_stack == 0) { - BEGIN(score); - } - return UL_END; +<score><\/ul> { + END_STYLE(UL); } -<score,style><c> { - BEGIN(style); - style_stack ++; - return C_BEGIN; +<score><c> { + START_STYLE(C); } -<style><\/c> { - style_stack --; - if (style_stack == 0) { - BEGIN(score); - } - return C_END; +<score><\/c> { + END_STYLE(C); } -<score,style><b> { - BEGIN(style); - style_stack ++; - return B_BEGIN; +<score><b> { + START_STYLE(B); } -<style><\/b> { - style_stack --; - if (style_stack == 0) { - BEGIN(score); - } - return B_END; +<score><\/b> { + END_STYLE(B); } -<score,style><sc> { - BEGIN(style); - style_stack ++; - return SC_BEGIN; +<score><sc> { + START_STYLE(SC); } -<style><\/sc> { - style_stack --; - if (style_stack == 0) { - BEGIN(score); - } - return SC_END; +<score><\/sc> { + END_STYLE(SC); } -<score,style><e> { - BEGIN(style); - style_stack ++; - return ELISION_BEGIN; +<score><e> { + START_STYLE(ELISION); } -<style><\/e> { - style_stack --; - if (style_stack == 0) { - BEGIN(score); - } - return ELISION_END; +<score><\/e> { + END_STYLE(ELISION); } -<score,style><sp> { - BEGIN(style); - style_stack ++; +<score><sp> { + BEGIN(sp); return SP_BEGIN; } -<style><\/sp> { - style_stack --; - if (style_stack == 0) { - BEGIN(score); - } +<sp><\/sp> { + BEGIN(score); return SP_END; } -<style>[^<\{\}]* { - gabc_score_determination_lval.text = - gregorio_strdup(gabc_score_determination_text); - return CHARACTERS; +<sp>[\n\r][\n\r \t]* { + RETURN_SPACE; + } +<sp>[^<\{\}\n\r]+ { + RETURN_CHARACTERS; } <score>\% { BEGIN(comments); @@ -337,46 +319,33 @@ semicolon. */ <comments>(\n|\r)+ { BEGIN(score); } -<comments>[^\n\r]* { +<comments>[^\n\r]+ { /* ignored */ } -<style,score><v> { +<score><v> { BEGIN(verb); return VERB_BEGIN; } <verb><\/v> { - if (style_stack == 0) { - BEGIN(score); - } else { - BEGIN(style); - } + BEGIN(score); return VERB_END; } -<verb>[^<]* { - gabc_score_determination_lval.text = - gregorio_strdup(gabc_score_determination_text); - return CHARACTERS; +<verb,alt>[^<]+ { + RETURN_CHARACTERS; } -<verb,style,score,alt>< { - gabc_score_determination_lval.text = - gregorio_strdup(gabc_score_determination_text); - return CHARACTERS; +<verb,sp,score,alt>< { + RETURN_CHARACTERS; } -<score,style>\{ { +<score>\{ { return CENTER_BEGIN; } -<score,style>\} { +<score>\} { return CENTER_END; } <score><alt> { BEGIN(alt); return ALT_BEGIN; } -<alt>[^<]* { - gabc_score_determination_lval.text = - gregorio_strdup(gabc_score_determination_text); - return CHARACTERS; - } <alt><\/alt> { BEGIN(score); return ALT_END; @@ -400,7 +369,7 @@ semicolon. */ BEGIN(notes); return OPENING_BRACKET; } -<notes>[^|\)]* { +<notes>[^|\)]+ { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); return NOTES; diff --git a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.y b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.y index 0cd8db317fb..71642f23bc3 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.y +++ b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.y @@ -3,8 +3,8 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This file implements the score parser. * - * Gregorio score determination in gabc input. - * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Gregorio score determination from gabc. + * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -60,6 +60,12 @@ #include "gabc-score-determination.h" #include "gabc-score-determination-l.h" +/* workaround for bison issue passing pointer to a "local" variable */ +#define STYLE_BITS &styles + +/* forward declaration of the flex/bison process function */ +static int gabc_score_determination_parse(void); + /* uncomment it if you want to have an interactive shell to understand the * details on how bison works for a certain input */ /* int gabc_score_determination_debug=1; */ @@ -78,8 +84,6 @@ static gregorio_element **elements; gregorio_element *current_element; /* a table containing the macros to use in gabc file */ static char *macros[10]; -/* forward declaration of the flex/bison process function */ -static int gabc_score_determination_parse(void); /* other variables that we will have to use */ static gregorio_character *current_character; static gregorio_character *first_text_character; @@ -95,10 +99,28 @@ static gregorio_center_determination center_is_determined; /* current_key is... the current key... updated by each notes determination * (for key changes) */ static int current_key; -static bool got_language = false; -static bool got_staff_lines = false; -static bool started_first_word = false; +static bool got_language; +static bool got_staff_lines; +static bool started_first_word; static struct sha1_ctx digester; +static gabc_style_bits styles; + +/* punctum_inclinatum_orientation maintains the running punctum inclinatum + * orientation in order to decide if the glyph needs to be cut when a punctum + * inclinatum with forced orientation is encountered. This should be set to + * the shape of a non-liquescent punctum inclinatum with forced orientation + * when one is encountered, be left alone when a non-liquescent punctum + * inclinatum with undetermined orientation is encountered, or be reset to + * S_PUNCTUM_INCLINATUM_UNDETERMINED otherwise (because such ends any previous + * run of punctum inclinatum notes). Based on the assumption that a punctum + * inclinatum with forced orientation changes all the punctum inclinatum shapes + * with undetermined orientation in the same run of notes before and after it + * unless influenced by an earlier punctum inclinatum with forced orientation, + * the value of punctum_inclinatum_orientation can be used to determine if a + * punctum inclinatum with a forced orientation will have a different + * orientation than the punctum inclinatum immediately before it, which would + * require a cut of the glyph. */ +static gregorio_shape punctum_inclinatum_orientation; static __inline void check_multiple(const char *name, bool exists) { if (exists) { @@ -114,128 +136,6 @@ static void gabc_score_determination_error(const char *error_str) VERBOSITY_ERROR, 0); } -static void fix_custos(gregorio_score *score_to_check) -{ - gregorio_syllable *current_syllable; - gregorio_element *current_element; - gregorio_element *custo_element; - char pitch = 0; - char pitch_difference = 0; - int newkey; - int current_key; - if (!score_to_check || !score_to_check->first_syllable - || !score_to_check->first_voice_info) { - return; - } - current_key = gregorio_calculate_new_key( - score_to_check->first_voice_info->initial_clef); - current_syllable = score_to_check->first_syllable; - while (current_syllable) { - current_element = (current_syllable->elements)[0]; - while (current_element) { - if (current_element->type == GRE_CUSTOS) { - custo_element = current_element; - pitch = custo_element->u.misc.pitched.pitch; - /* we look for the key */ - while (current_element) { - if (current_element->type == GRE_CLEF) { - pitch = gregorio_determine_next_pitch( current_syllable, - current_element, NULL); - newkey = gregorio_calculate_new_key( - current_element->u.misc.clef); - pitch_difference = (char) newkey - (char) current_key; - pitch -= pitch_difference; - current_key = newkey; - } - if (!custo_element->u.misc.pitched.force_pitch) { - while (pitch < LOWEST_PITCH) { - pitch += 7; - } - while (pitch > score_to_check->highest_pitch) { - pitch -= 7; - } - custo_element->u.misc.pitched.pitch = pitch; - } - assert(custo_element->u.misc.pitched.pitch >= LOWEST_PITCH - && custo_element->u.misc.pitched.pitch - <= score_to_check->highest_pitch); - current_element = current_element->next; - } - } - if (current_element) { - if (current_element->type == GRE_CLEF) { - current_key = gregorio_calculate_new_key( - current_element->u.misc.clef); - } - current_element = current_element->next; - } - } - current_syllable = current_syllable->next_syllable; - } -} - -/* - * A function that checks the score integrity. - */ - -static bool check_score_integrity(gregorio_score *score_to_check) -{ - bool good = true; - - gregorio_assert(score_to_check, check_score_integrity, "score is NULL", - return false); - - if (score_to_check->first_syllable - && score_to_check->first_syllable->elements - && *(score_to_check->first_syllable->elements)) { - gregorio_character *ch; - if ((score_to_check->first_syllable->elements)[0]->type - == GRE_END_OF_LINE) { - gregorio_message( - "line break is not supported on the first syllable", - "check_score_integrity", VERBOSITY_ERROR, 0); - good = false; - } - if (gregorio_get_clef_change(score_to_check->first_syllable)) { - gregorio_message( - "clef change is not supported on the first syllable", - "check_score_integrity", VERBOSITY_ERROR, 0); - good = false; - } - /* check first syllable for elision at the beginning */ - for (ch = score_to_check->first_syllable->text; ch; - ch = ch->next_character) { - if (ch->is_character) { - break; - } else if (ch->cos.s.style == ST_VERBATIM - || ch->cos.s.style == ST_SPECIAL_CHAR) { - break; - } else if (ch->cos.s.style == ST_ELISION) { - gregorio_message( - _("score initial may not be in an elision"), - "check_score_integrity", VERBOSITY_ERROR, 0); - break; - } - } - } - - return good; -} - -/* - * Another function to be improved: this one checks the validity of the voice_infos. - */ - -static bool check_infos_integrity(gregorio_score *score_to_check) -{ - if (!score_to_check->name) { - gregorio_message(_("no name specified, put `name:...;' at the " - "beginning of the file, can be dangerous with some output " - "formats"), "det_score", VERBOSITY_WARNING, 0); - } - return true; -} - /* * The function that will initialize the variables. */ @@ -266,6 +166,8 @@ static void initialize_variables(void) got_language = false; got_staff_lines = false; started_first_word = false; + styles = 0; + punctum_inclinatum_orientation = S_PUNCTUM_INCLINATUM_UNDETERMINED; } /* @@ -512,13 +414,51 @@ static void end_translation(void) } /* - * gregorio_gabc_add_text is the function called when lex returns a char *. In + * + * The two functions called when lex returns a style, we simply add it. All the + * complex things will be done by the function after... + * + */ + +static void add_style(unsigned char style) +{ + gregorio_begin_style(¤t_character, style); +} + +static void end_style(unsigned char style) +{ + gregorio_end_style(¤t_character, style); +} + +/* + * add_text is the function called when lex returns a char *. In * this function we convert it into grewchar, and then we add the corresponding * gregorio_characters in the list of gregorio_characters. */ -static void gregorio_gabc_add_text(char *mbcharacters) +static void add_text(char *mbcharacters) { + if (!current_character) { + /* insert open styles, leaving out ELISION on purpose */ + if (styles & SB_I) { + add_style(ST_ITALIC); + } + if (styles & SB_B) { + add_style(ST_BOLD); + } + if (styles & SB_TT) { + add_style(ST_TT); + } + if (styles & SB_SC) { + add_style(ST_SMALL_CAPS); + } + if (styles & SB_UL) { + add_style(ST_UNDERLINED); + } + if (styles & SB_C) { + add_style(ST_COLORED); + } + } if (current_character) { current_character->next_character = gregorio_build_char_list_from_buf( mbcharacters); @@ -533,140 +473,11 @@ static void gregorio_gabc_add_text(char *mbcharacters) free(mbcharacters); } -/* - * - * The two functions called when lex returns a style, we simply add it. All the - * complex things will be done by the function after... - * - */ - -static void gregorio_gabc_add_style(unsigned char style) -{ - gregorio_begin_style(¤t_character, style); -} - -static void gregorio_gabc_end_style(unsigned char style) -{ - gregorio_end_style(¤t_character, style); -} - void gabc_digest(const void *const buf, const size_t size) { sha1_process_bytes(buf, size, &digester); } -static void determine_oriscus_orientation(gregorio_score *score) { - gregorio_syllable *syllable; - gregorio_element *element; - gregorio_glyph *glyph; - gregorio_note *note; - gregorio_note *oriscus = NULL; - - for (syllable = score->first_syllable; syllable; - syllable = syllable->next_syllable) { - for (element = syllable->elements[0]; element; - element = element->next) { - if (element->type == GRE_ELEMENT) { - for (glyph = element->u.first_glyph; glyph; - glyph = glyph->next) { - if (glyph->type == GRE_GLYPH) { - for (note = glyph->u.notes.first_note; note; - note = note->next) { - if (note->type == GRE_NOTE) { - if (oriscus) { - if (note->u.note.pitch - < oriscus->u.note.pitch) { - switch(oriscus->u.note.shape) { - case S_ORISCUS_UNDETERMINED: - oriscus->u.note.shape = - S_ORISCUS_DESCENDENS; - break; - case S_ORISCUS_SCAPUS_UNDETERMINED: - oriscus->u.note.shape = - S_ORISCUS_SCAPUS_DESCENDENS; - break; - case S_ORISCUS_CAVUM_UNDETERMINED: - oriscus->u.note.shape = - S_ORISCUS_CAVUM_DESCENDENS; - break; - default: - /* not reachable unless there's a - * programming error */ - /* LCOV_EXCL_START */ - gregorio_fail( - determine_oriscus_orientation, - "bad_shape"); - break; - /* LCOV_EXCL_STOP */ - } - } else { /* ascending or the same */ - switch(oriscus->u.note.shape) { - case S_ORISCUS_UNDETERMINED: - oriscus->u.note.shape = - S_ORISCUS_ASCENDENS; - break; - case S_ORISCUS_SCAPUS_UNDETERMINED: - oriscus->u.note.shape = - S_ORISCUS_SCAPUS_ASCENDENS; - break; - case S_ORISCUS_CAVUM_UNDETERMINED: - oriscus->u.note.shape = - S_ORISCUS_CAVUM_ASCENDENS; - break; - default: - /* not reachable unless there's a - * programming error */ - /* LCOV_EXCL_START */ - gregorio_fail( - determine_oriscus_orientation, - "bad_shape"); - break; - /* LCOV_EXCL_STOP */ - } - } - oriscus = NULL; - } - - switch (note->u.note.shape) { - case S_ORISCUS_UNDETERMINED: - case S_ORISCUS_SCAPUS_UNDETERMINED: - case S_ORISCUS_CAVUM_UNDETERMINED: - oriscus = note; - break; - - default: - break; - } - } - } - } - } - } - } - } - - if (oriscus) { - /* oriscus at the end of the score */ - switch(oriscus->u.note.shape) { - case S_ORISCUS_UNDETERMINED: - oriscus->u.note.shape = S_ORISCUS_DESCENDENS; - break; - case S_ORISCUS_SCAPUS_UNDETERMINED: - oriscus->u.note.shape = S_ORISCUS_SCAPUS_DESCENDENS; - break; - case S_ORISCUS_CAVUM_UNDETERMINED: - oriscus->u.note.shape = S_ORISCUS_CAVUM_DESCENDENS; - break; - default: - /* not reachable unless there's a programming error */ - /* LCOV_EXCL_START */ - gregorio_fail(determine_oriscus_orientation, "bad_shape"); - break; - /* LCOV_EXCL_STOP */ - } - } -} - /* * The "main" function. It is the function that is called when we have to read * a gabc file. It takes a file descriptor, that is to say a file that is @@ -691,6 +502,7 @@ gregorio_score *gabc_read_score(FILE *f_in) if (!score->legacy_oriscus_orientation) { determine_oriscus_orientation(score); } + determine_punctum_inclinatum_orientation(score); gregorio_fix_initial_keys(score, gregorio_default_clef); rebuild_score_characters(); fix_custos(score); @@ -711,12 +523,13 @@ size_t nabc_lines = 0; static void gabc_y_add_notes(char *notes, YYLTYPE loc) { if (nabc_state == 0) { if (!elements[voice]) { - elements[voice] = gabc_det_elements_from_string(notes, - ¤t_key, macros, &loc, score); + elements[voice] = gabc_det_elements_from_string(notes, ¤t_key, + macros, &loc, &punctum_inclinatum_orientation, score); current_element = elements[voice]; } else { gregorio_element *new_elements = gabc_det_elements_from_string( - notes, ¤t_key, macros, &loc, score); + notes, ¤t_key, macros, &loc, + &punctum_inclinatum_orientation, score); gregorio_element *last_element = elements[voice]; while (last_element->next) { last_element = last_element->next; @@ -752,11 +565,13 @@ static void gabc_y_add_notes(char *notes, YYLTYPE loc) { @$.last_offset = 0; } +%lex-param { gabc_style_bits *STYLE_BITS } + %token NAME AUTHOR GABC_COPYRIGHT SCORE_COPYRIGHT %token LANGUAGE STAFF_LINES ORISCUS_ORIENTATION %token DEF_MACRO OTHER_HEADER %token ANNOTATION MODE MODE_MODIFIER MODE_DIFFERENTIA -%token INITIAL_STYLE /* DEPRECATED by 4.1 */ +%token INITIAL_STYLE /* DEPRECATED for removal in 5.0 */ %token END_OF_DEFINITIONS END_OF_FILE %token COLON SEMICOLON SPACE CHARACTERS NOTES HYPHEN ATTRIBUTE %token OPENING_BRACKET CLOSING_BRACKET CLOSING_BRACKET_WITH_SPACE @@ -866,7 +681,7 @@ definition: } | INITIAL_STYLE attribute { if ($2.text) { - /* DEPRECATED by 4.1 */ + /* DEPRECATED for removal in 5.0 */ gregorio_message("\"initial-style\" header is deprecated. Please " "use \\gresetinitiallines in TeX instead.", "gabc_score_determination_parse", VERBOSITY_DEPRECATION, 0); @@ -943,35 +758,35 @@ closing_bracket_with_space: style_beginning: I_BEGIN { - gregorio_gabc_add_style(ST_ITALIC); + add_style(ST_ITALIC); } | TT_BEGIN { - gregorio_gabc_add_style(ST_TT); + add_style(ST_TT); } | UL_BEGIN { - gregorio_gabc_add_style(ST_UNDERLINED); + add_style(ST_UNDERLINED); } | C_BEGIN { - gregorio_gabc_add_style(ST_COLORED); + add_style(ST_COLORED); } | B_BEGIN { - gregorio_gabc_add_style(ST_BOLD); + add_style(ST_BOLD); } | SC_BEGIN { - gregorio_gabc_add_style(ST_SMALL_CAPS); + add_style(ST_SMALL_CAPS); } | VERB_BEGIN { - gregorio_gabc_add_style(ST_VERBATIM); + add_style(ST_VERBATIM); } | SP_BEGIN { - gregorio_gabc_add_style(ST_SPECIAL_CHAR); + add_style(ST_SPECIAL_CHAR); } | ELISION_BEGIN { - gregorio_gabc_add_style(ST_ELISION); + add_style(ST_ELISION); } | CENTER_BEGIN { if (!center_is_determined) { - gregorio_gabc_add_style(ST_FORCED_CENTER); + add_style(ST_FORCED_CENTER); center_is_determined=CENTER_HALF_DETERMINED; } } @@ -979,35 +794,35 @@ style_beginning: style_end: I_END { - gregorio_gabc_end_style(ST_ITALIC); + end_style(ST_ITALIC); } | TT_END { - gregorio_gabc_end_style(ST_TT); + end_style(ST_TT); } | UL_END { - gregorio_gabc_end_style(ST_UNDERLINED); + end_style(ST_UNDERLINED); } | C_END { - gregorio_gabc_end_style(ST_COLORED); + end_style(ST_COLORED); } | B_END { - gregorio_gabc_end_style(ST_BOLD); + end_style(ST_BOLD); } | SC_END { - gregorio_gabc_end_style(ST_SMALL_CAPS); + end_style(ST_SMALL_CAPS); } | VERB_END { - gregorio_gabc_end_style(ST_VERBATIM); + end_style(ST_VERBATIM); } | SP_END { - gregorio_gabc_end_style(ST_SPECIAL_CHAR); + end_style(ST_SPECIAL_CHAR); } | ELISION_END { - gregorio_gabc_end_style(ST_ELISION); + end_style(ST_ELISION); } | CENTER_END { if (center_is_determined==CENTER_HALF_DETERMINED) { - gregorio_gabc_end_style(ST_FORCED_CENTER); + end_style(ST_FORCED_CENTER); center_is_determined=CENTER_FULLY_DETERMINED; } } @@ -1034,7 +849,7 @@ linebreak_area: character: above_line_text | CHARACTERS { - gregorio_gabc_add_text($1.text); + add_text($1.text); } | style_beginning | style_end @@ -1044,10 +859,10 @@ character: text_hyphen: HYPHEN { - gregorio_gabc_add_text(gregorio_strdup("-")); + add_text(gregorio_strdup("-")); } | text_hyphen HYPHEN { - gregorio_gabc_add_text(gregorio_strdup("-")); + add_text(gregorio_strdup("-")); } ; @@ -1084,9 +899,9 @@ syllable_with_notes: close_syllable(&@1); } | text HYPHEN OPENING_BRACKET notes { - gregorio_gabc_add_style(ST_VERBATIM); - gregorio_gabc_add_text(gregorio_strdup("\\GreForceHyphen")); - gregorio_gabc_end_style(ST_VERBATIM); + add_style(ST_VERBATIM); + add_text(gregorio_strdup("\\GreForceHyphen")); + end_style(ST_VERBATIM); ready_characters(); first_text_character = current_character; close_syllable(&@1); @@ -1095,9 +910,9 @@ syllable_with_notes: close_syllable(&@1); } | text HYPHEN translation OPENING_BRACKET notes { - gregorio_gabc_add_style(ST_VERBATIM); - gregorio_gabc_add_text(gregorio_strdup("\\GreForceHyphen")); - gregorio_gabc_end_style(ST_VERBATIM); + add_style(ST_VERBATIM); + add_text(gregorio_strdup("\\GreForceHyphen")); + end_style(ST_VERBATIM); close_syllable(&@1); } ; diff --git a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-write.c b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-write.c index e29a5be4602..31e75ccce3c 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-write.c +++ b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-write.c @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This file provides functions for writing gabc from Gregorio structures. * - * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -480,8 +480,11 @@ static void gabc_write_gregorio_note(FILE *f, gregorio_note *note, fprintf(f, "%c", pitch_letter(note->u.note.pitch)); } break; - case S_PUNCTUM_INCLINATUM: - fprintf(f, "%c", toupper((unsigned char)pitch_letter(note->u.note.pitch))); + case S_PUNCTUM_INCLINATUM_ASCENDENS: + fprintf(f, "%c1", toupper((unsigned char)pitch_letter(note->u.note.pitch))); + break; + case S_PUNCTUM_INCLINATUM_DESCENDENS: + fprintf(f, "%c0", toupper((unsigned char)pitch_letter(note->u.note.pitch))); break; case S_PUNCTUM_INCLINATUM_DEMINUTUS: if (note->next) { diff --git a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc.h b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc.h index fcb672e7bb4..d2375a5fdde 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc.h +++ b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc.h @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This header prototypes gabc-format handling data structures and entry points. * - * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -23,8 +23,6 @@ #ifndef GABC_H #define GABC_H -#define GABC_CURRENT_VERSION "0.9.3" - #include "struct.h" /* functions to read gabc */ @@ -33,9 +31,11 @@ gregorio_note *gabc_det_notes_from_string(char *str, char *macros[10], void gabc_det_notes_finish(void); gregorio_element *gabc_det_elements_from_string(char *str, int *current_key, char *macros[10], gregorio_scanner_location *loc, + gregorio_shape *punctum_inclinatum_orientation, const gregorio_score *const score); gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, - int *current_key, const gregorio_score *score); + int *current_key, gregorio_shape *punctum_inclinatum_orientation, + const gregorio_score *score); void gabc_digest(const void *buf, size_t size); int gabc_score_determination_lex_destroy(void); int gabc_notes_determination_lex_destroy(void); diff --git a/Build/source/texk/gregorio/gregorio-src/src/gregorio-utils.c b/Build/source/texk/gregorio/gregorio-src/src/gregorio-utils.c index d143fe50590..18ef2f945b2 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/gregorio-utils.c +++ b/Build/source/texk/gregorio/gregorio-src/src/gregorio-utils.c @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This file implements the command line interface of Gregorio. * - * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -139,8 +139,8 @@ static char *get_base_filename(char *fbasename) int l; char *ret; p = strrchr(fbasename, '.'); - if (!p) { - return NULL; + if (!p || strchr(p, '/') || strchr(p, '\\')) { + return gregorio_strdup(fbasename); } l = strlen(fbasename) - strlen(p); ret = (char *) gregorio_malloc(l + 1); @@ -202,6 +202,7 @@ printf(_(" -f, --input-format FORMAT\n\ -L, --license print licence\n\ -v, --verbose verbose mode\n\ -W, --all-warnings output warnings\n\ + -D, --deprecation-errors treat deprecation warnings as errors\n\ -d, --debug output debug information\n\ \n\ Formats:\n\ @@ -324,6 +325,7 @@ int main(int argc, char **argv) gregorio_file_format input_format = FORMAT_UNSET; gregorio_file_format output_format = FORMAT_UNSET; gregorio_verbosity verb_mode = 0; + bool deprecation_errors = false; bool point_and_click = false; char *point_and_click_filename = NULL; bool debug = false; @@ -341,6 +343,7 @@ int main(int argc, char **argv) {"licence", 0, 0, 'L'}, {"verbose", 0, 0, 'v'}, {"all-warnings", 0, 0, 'W'}, + {"deprecation-errors", 0, 0, 'D'}, {"point-and-click", 0, 0, 'p'}, {"debug", 0, 0, 'd'}, }; @@ -356,7 +359,7 @@ int main(int argc, char **argv) setlocale(LC_CTYPE, "C"); while (1) { - c = getopt_long(argc, argv, "o:SF:l:f:shOLVvWpd", + c = getopt_long(argc, argv, "o:SF:l:f:shOLVvWDpd", long_options, &option_index); if (c == -1) break; @@ -481,6 +484,15 @@ int main(int argc, char **argv) verb_mode = VERBOSITY_WARNING; } break; + case 'D': + if (deprecation_errors) { + fprintf(stderr, "warning: deprecation-errors option passed " + "several times\n"); + must_print_short_usage = true; + break; + } + deprecation_errors = true; + break; case 'L': print_licence(); gregorio_exit(0); @@ -548,6 +560,7 @@ int main(int argc, char **argv) } gregorio_set_debug_messages(debug); + gregorio_set_deprecation_errors(deprecation_errors); if (!input_format) { input_format = DEFAULT_INPUT_FORMAT; diff --git a/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-position.c b/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-position.c index 151cae35f49..3d21580727d 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-position.c +++ b/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-position.c @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This file contains the logic for positioning signs on neumes. * - * Copyright (C) 2008-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2008-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -909,7 +909,8 @@ static gregorio_vposition advise_positioning(const gregorio_glyph *const glyph, note->gtex_offset_case = FinalInclinatumDeminutus; break; case S_PUNCTUM_INCLINATUM_AUCTUS: - case S_PUNCTUM_INCLINATUM: + case S_PUNCTUM_INCLINATUM_ASCENDENS: + case S_PUNCTUM_INCLINATUM_DESCENDENS: case S_PUNCTUM_CAVUM_INCLINATUM_AUCTUS: case S_PUNCTUM_CAVUM_INCLINATUM: note->gtex_offset_case = FinalInclinatum; @@ -1336,7 +1337,8 @@ static __inline bool is_connectable_interglyph_ambitus( static __inline bool has_space_to_left(const gregorio_note *const note) { switch (note->u.note.shape) { - case S_PUNCTUM_INCLINATUM: + case S_PUNCTUM_INCLINATUM_ASCENDENS: + case S_PUNCTUM_INCLINATUM_DESCENDENS: case S_PUNCTUM_INCLINATUM_DEMINUTUS: case S_PUNCTUM_INCLINATUM_AUCTUS: return !is_connectable_interglyph_ambitus(note->previous, note); @@ -1610,51 +1612,33 @@ static __inline int compute_fused_shift(const gregorio_glyph *glyph) return 0; } - /* the FLEXA check below checks for a porrectus-like flexus, which is not - * fusible from above */ - if (shift < 0 && ((next_is_fused && glyph->u.notes.glyph_type == G_FLEXA) - || glyph->u.notes.glyph_type == G_PORRECTUS - || (glyph->u.notes.glyph_type == G_PODATUS - && !(glyph->u.notes.liquescentia & L_DEMINUTUS)) - || (previous->u.notes.glyph_type == G_PUNCTUM - && is_initio_debilis(previous->u.notes.liquescentia)))) { - /* may not be fused from above */ - return 0; - } - - /* Special cases for oriscus */ - switch (first_note->u.note.shape) { - gregorio_note *next_note; - const gregorio_glyph *next_glyph; - case S_ORISCUS_ASCENDENS: - case S_ORISCUS_DESCENDENS: - case S_ORISCUS_SCAPUS_ASCENDENS: - case S_ORISCUS_SCAPUS_DESCENDENS: - next_note = first_note->next; - if (!next_note && (next_glyph = gregorio_next_non_texverb_glyph(glyph)) - && next_glyph->type == GRE_GLYPH - && is_fused(next_glyph->u.notes.liquescentia)) { - next_note = next_glyph->u.notes.first_note; - } - if (next_note) { - if (next_note->u.note.pitch < first_note->u.note.pitch) { - /* then this note should be an down-up-down oriscus */ - if (shift > 0) { - /* down-up-down oricus cannot be fused from below */ - return 0; - } - } else { - /* then this note should be an up-down-up oriscus */ - if (shift < 0) { - /* up-down-up oricus cannot be fused from above */ - return 0; - } + if (shift < 0) { + if (glyph->u.notes.glyph_type == G_PODATUS) { + if (glyph->u.notes.liquescentia & L_DEMINUTUS) { + /* podatus deminutus may be fused from above */ + return shift; + } + switch (first_note->u.note.shape) { + case S_ORISCUS_ASCENDENS: + case S_ORISCUS_DESCENDENS: + case S_ORISCUS_SCAPUS_ASCENDENS: + case S_ORISCUS_SCAPUS_DESCENDENS: + return shift; + default: + /* otherwise, podatus may not be fused from above */ + return 0; } } - break; - default: - break; + /* the FLEXA check below checks for a porrectus-like flexus, which is + * not fusible from above */ + if ((next_is_fused && glyph->u.notes.glyph_type == G_FLEXA) + || glyph->u.notes.glyph_type == G_PORRECTUS + || (previous->u.notes.glyph_type == G_PUNCTUM + && is_initio_debilis(previous->u.notes.liquescentia))) { + /* may not be fused from above */ + return 0; + } } return shift; diff --git a/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-write.c b/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-write.c index c221d903e39..d34af2eaade 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-write.c +++ b/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-write.c @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This file contains functions for writing GregorioTeX from Gregorio structures. * - * Copyright (C) 2008-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2008-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -72,38 +72,49 @@ static const char *tex_ambitus[] = { #define SHAPE(NAME) static const char *const SHAPE_##NAME = #NAME SHAPE(Ancus); SHAPE(AncusLongqueue); +SHAPE(AscendensOriscus); +SHAPE(AscendensOriscusCavum); +SHAPE(AscendensOriscusLineBL); +SHAPE(AscendensOriscusLineTL); +SHAPE(AscendensOriscusScapus); +SHAPE(AscendensOriscusScapusLongqueue); +SHAPE(AscendensOriscusScapusOpenqueue); +SHAPE(AscendensPunctumInclinatum); +SHAPE(DescendensOriscus); +SHAPE(DescendensOriscusCavum); +SHAPE(DescendensOriscusLineBL); +SHAPE(DescendensOriscusLineTL); +SHAPE(DescendensOriscusScapus); +SHAPE(DescendensOriscusScapusLongqueue); +SHAPE(DescendensOriscusScapusOpenqueue); +SHAPE(DescendensPunctumInclinatum); SHAPE(Flat); SHAPE(Flexus); SHAPE(FlexusLongqueue); SHAPE(FlexusNobar); SHAPE(FlexusOpenqueue); SHAPE(FlexusOriscus); +SHAPE(FlexusOriscusInusitatus); SHAPE(FlexusOriscusScapus); +SHAPE(FlexusOriscusScapusInusitatus); +SHAPE(FlexusOriscusScapusInusitatusLongqueue); +SHAPE(FlexusOriscusScapusInusitatusOpenqueue); SHAPE(FlexusOriscusScapusLongqueue); SHAPE(FlexusOriscusScapusOpenqueue); SHAPE(Linea); SHAPE(LineaPunctum); SHAPE(LineaPunctumCavum); SHAPE(Natural); -SHAPE(Oriscus); -SHAPE(OriscusCavum); -SHAPE(OriscusCavumAuctus); SHAPE(OriscusCavumDeminutus); SHAPE(OriscusDeminutus); -SHAPE(OriscusLineBL); -SHAPE(OriscusReversus); -SHAPE(OriscusReversusLineTL); -SHAPE(OriscusScapus); -SHAPE(OriscusScapusLongqueue); -SHAPE(OriscusScapusOpenqueue); -SHAPE(OriscusScapusReversus); -SHAPE(OriscusScapusReversusLongqueue); -SHAPE(OriscusScapusReversusOpenqueue); SHAPE(Pes); SHAPE(PesQuadratum); SHAPE(PesQuadratumLongqueue); SHAPE(PesQuadratumOpenqueue); SHAPE(PesQuassus); +SHAPE(PesQuassusInusitatus); +SHAPE(PesQuassusInusitatusLongqueue); +SHAPE(PesQuassusInusitatusOpenqueue); SHAPE(PesQuassusLongqueue); SHAPE(PesQuassusOpenqueue); SHAPE(PesQuilisma); @@ -123,7 +134,6 @@ SHAPE(PunctumCavumInclinatum); SHAPE(PunctumCavumInclinatumAuctus); SHAPE(PunctumDeminutus); SHAPE(PunctumDescendens); -SHAPE(PunctumInclinatum); SHAPE(PunctumInclinatumAuctus); SHAPE(PunctumInclinatumDeminutus); SHAPE(PunctumLineBL); @@ -169,7 +179,9 @@ LIQ(Nothing); #define FUSE(NAME) static const char *const FUSE_##NAME = #NAME FUSE(Lower); +FUSE(LowerOblatus); FUSE(Upper); +FUSE(UpperOblatus); FUSE(Down); FUSE(Up); @@ -312,7 +324,7 @@ static const char *compute_glyph_name(const gregorio_glyph *const glyph, static char buf[BUFSIZE]; const char *liquescentia = gregoriotex_determine_liquescentia(ltype, glyph); - gregorio_note *current_note; + const gregorio_note *current_note; int ambitus1, ambitus2, ambitus3, fuse_ambitus = 0; const char *fuse_head = "", *fuse_tail = ""; const gregorio_glyph *previous = gregorio_previous_non_texverb_glyph(glyph); @@ -330,33 +342,33 @@ static const char *compute_glyph_name(const gregorio_glyph *const glyph, switch (glyph->u.notes.glyph_type) { case G_PODATUS: - gregorio_assert(is_tail_liquescentia(glyph->u.notes.liquescentia) - || fuse_from_previous_note >= 0, compute_glyph_name, - "unexpected fusible podatus", break); - /* else fall through */ case G_PUNCTUM: case G_FLEXA: /* directionally head-fusible */ - if (fuse_from_previous_note < -1 - && glyph->u.notes.first_note->u.note.shape != S_QUILISMA + if (fuse_from_previous_note < 0) { + if (glyph->u.notes.first_note->u.note.shape != S_QUILISMA && glyph->u.notes.first_note->u.note.shape != S_QUILISMA_QUADRATUM) { - fuse_head = FUSE_Lower; - } else if (fuse_from_previous_note < 0) { - gregorio_note *previous_note = gregorio_glyph_last_note( - gregorio_previous_non_texverb_glyph(glyph)); - switch (previous_note->u.note.shape) { - case S_ORISCUS_ASCENDENS: - case S_ORISCUS_DESCENDENS: - case S_ORISCUS_SCAPUS_ASCENDENS: - case S_ORISCUS_SCAPUS_DESCENDENS: - fuse_head = FUSE_Lower; - break; - default: - break; + if (fuse_from_previous_note < -1) { + fuse_head = FUSE_Lower; + } else if (glyph->u.notes.first_note->u.note.shape + == S_ORISCUS_DESCENDENS + || glyph->u.notes.first_note->u.note.shape + == S_ORISCUS_SCAPUS_DESCENDENS) { + /* fuse_from_previous_note will be -1 here */ + fuse_head = FUSE_LowerOblatus; + } + } + } else if (fuse_from_previous_note > 0) { + if (fuse_from_previous_note > 1) { + fuse_head = FUSE_Upper; + } else if (glyph->u.notes.first_note->u.note.shape + == S_ORISCUS_ASCENDENS + || glyph->u.notes.first_note->u.note.shape + == S_ORISCUS_SCAPUS_ASCENDENS) { + /* fuse_from_previous_note will be 1 here */ + fuse_head = FUSE_UpperOblatus; } - } else if (fuse_from_previous_note > 1) { - fuse_head = FUSE_Upper; } break; @@ -393,29 +405,23 @@ static const char *compute_glyph_name(const gregorio_glyph *const glyph, break; } - if ((*fuse_tail && shape == SHAPE_OriscusReversus) - || ((shape == SHAPE_OriscusReversus || shape == SHAPE_OriscusScapus - || shape == SHAPE_OriscusScapusLongqueue - || shape == SHAPE_OriscusScapusOpenqueue) - && is_fused(glyph->u.notes.liquescentia))) { - shape = SHAPE_Oriscus; - } - - if (*fuse_tail) { - if (is_fused(glyph->u.notes.liquescentia)) { - if (shape == SHAPE_OriscusScapusReversus - || shape == SHAPE_OriscusScapusReversusLongqueue - || shape == SHAPE_OriscusScapusReversusOpenqueue) { - shape = SHAPE_Oriscus; - } - } else { - if (shape == SHAPE_OriscusScapusReversus) { - shape = SHAPE_OriscusScapus; - } else if (shape == SHAPE_OriscusScapusReversusLongqueue) { - shape = SHAPE_OriscusScapusLongqueue; - } else if (shape == SHAPE_OriscusScapusReversusOpenqueue) { - shape = SHAPE_OriscusScapusOpenqueue; - } + if (is_fused(glyph->u.notes.liquescentia)) { + if (shape == SHAPE_AscendensOriscusScapus + || shape == SHAPE_AscendensOriscusScapusLongqueue + || shape == SHAPE_AscendensOriscusScapusOpenqueue) { + shape = SHAPE_AscendensOriscus; + } else if (shape == SHAPE_DescendensOriscusScapus + || shape == SHAPE_DescendensOriscusScapusLongqueue + || shape == SHAPE_DescendensOriscusScapusOpenqueue) { + shape = SHAPE_DescendensOriscus; + } else if (shape == SHAPE_FlexusOriscusScapus + || shape == SHAPE_FlexusOriscusScapusLongqueue + || shape == SHAPE_FlexusOriscusScapusOpenqueue) { + shape = SHAPE_FlexusOriscus; + } else if (shape == SHAPE_FlexusOriscusScapusInusitatus + || shape == SHAPE_FlexusOriscusScapusInusitatusLongqueue + || shape == SHAPE_FlexusOriscusScapusInusitatusOpenqueue) { + shape = SHAPE_FlexusOriscusInusitatus; } } @@ -424,19 +430,24 @@ static const char *compute_glyph_name(const gregorio_glyph *const glyph, if (liquescentia == LIQ_Nothing) { liquescentia = ""; } - if (!(*fuse_tail)) { + if (!(*fuse_tail) && fuse_head != FUSE_UpperOblatus + && fuse_head != FUSE_LowerOblatus) { /* single note fused shapes have weird names */ if (fuse_head == FUSE_Upper) { if (shape == SHAPE_Punctum) { shape = SHAPE_PunctumLineBL; - } else if (shape == SHAPE_Oriscus) { - shape = SHAPE_OriscusLineBL; + } else if (shape == SHAPE_AscendensOriscus) { + shape = SHAPE_AscendensOriscusLineBL; + } else if (shape == SHAPE_DescendensOriscus) { + shape = SHAPE_DescendensOriscusLineBL; } } else if (fuse_head == FUSE_Lower) { if (shape == SHAPE_Punctum) { shape = SHAPE_PunctumLineTL; - } else if (shape == SHAPE_Oriscus) { - shape = SHAPE_OriscusReversusLineTL; + } else if (shape == SHAPE_AscendensOriscus) { + shape = SHAPE_AscendensOriscusLineTL; + } else if (shape == SHAPE_DescendensOriscus) { + shape = SHAPE_DescendensOriscusLineTL; } } fuse_head = ""; @@ -567,20 +578,23 @@ static const char *fusible_queued_shape(const gregorio_note *const note, return compute_glyph_name(glyph, name, LG_NONE, true); } -static const char *gregoriotex_determine_note_glyph_name(gregorio_note *note, - gregorio_glyph *glyph, gtex_alignment *type) +static const char *determine_note_glyph_name(const gregorio_note *const note, + const gregorio_glyph *glyph, gtex_alignment *type) { static char buf[128]; const char *name = ""; - gregorio_assert(note, gregoriotex_determine_note_glyph_name, - "called with NULL pointer", return ""); + gregorio_assert(note, determine_note_glyph_name, "called with NULL pointer", + return ""); *type = AT_ONE_NOTE; switch (note->u.note.shape) { - case S_PUNCTUM_INCLINATUM: + case S_PUNCTUM_INCLINATUM_ASCENDENS: *type = AT_PUNCTUM_INCLINATUM; - return SHAPE_PunctumInclinatum; + return SHAPE_AscendensPunctumInclinatum; + case S_PUNCTUM_INCLINATUM_DESCENDENS: + *type = AT_PUNCTUM_INCLINATUM; + return SHAPE_DescendensPunctumInclinatum; case S_PUNCTUM_INCLINATUM_DEMINUTUS: return SHAPE_PunctumInclinatumDeminutus; case S_PUNCTUM_INCLINATUM_AUCTUS: @@ -649,10 +663,10 @@ static const char *gregoriotex_determine_note_glyph_name(gregorio_note *note, } case S_ORISCUS_ASCENDENS: *type = AT_ORISCUS; - return compute_glyph_name(glyph, SHAPE_Oriscus, LG_NONE, true); + return compute_glyph_name(glyph, SHAPE_AscendensOriscus, LG_NONE, true); case S_ORISCUS_DESCENDENS: *type = AT_ORISCUS; - return compute_glyph_name(glyph, SHAPE_OriscusReversus, LG_NONE, true); + return compute_glyph_name(glyph, SHAPE_DescendensOriscus, LG_NONE, true); case S_ORISCUS_DEMINUTUS: *type = AT_ORISCUS; return SHAPE_OriscusDeminutus; @@ -660,12 +674,13 @@ static const char *gregoriotex_determine_note_glyph_name(gregorio_note *note, *type = AT_QUILISMA; return compute_glyph_name(glyph, SHAPE_Quilisma, LG_NONE, true); case S_ORISCUS_SCAPUS_ASCENDENS: - return fusible_queued_shape(note, glyph, SHAPE_OriscusScapus, - SHAPE_OriscusScapusLongqueue, SHAPE_OriscusScapusOpenqueue); + return fusible_queued_shape(note, glyph, SHAPE_AscendensOriscusScapus, + SHAPE_AscendensOriscusScapusLongqueue, + SHAPE_AscendensOriscusScapusOpenqueue); case S_ORISCUS_SCAPUS_DESCENDENS: - return fusible_queued_shape(note, glyph, SHAPE_OriscusScapusReversus, - SHAPE_OriscusScapusReversusLongqueue, - SHAPE_OriscusScapusReversusOpenqueue); + return fusible_queued_shape(note, glyph, SHAPE_DescendensOriscusScapus, + SHAPE_DescendensOriscusScapusLongqueue, + SHAPE_DescendensOriscusScapusOpenqueue); case S_STROPHA: *type = AT_STROPHA; if (!(note->u.note.liquescentia & @@ -691,10 +706,10 @@ static const char *gregoriotex_determine_note_glyph_name(gregorio_note *note, return SHAPE_PunctumCavumInclinatumAuctus; case S_ORISCUS_CAVUM_ASCENDENS: *type = AT_ORISCUS; - return SHAPE_OriscusCavum; + return SHAPE_AscendensOriscusCavum; case S_ORISCUS_CAVUM_DESCENDENS: *type = AT_ORISCUS; - return SHAPE_OriscusCavumAuctus; + return SHAPE_DescendensOriscusCavum; case S_ORISCUS_CAVUM_DEMINUTUS: *type = AT_ORISCUS; return SHAPE_OriscusCavumDeminutus; @@ -707,7 +722,7 @@ static const char *gregoriotex_determine_note_glyph_name(gregorio_note *note, default: /* not reachable unless there's a programming error */ /* LCOV_EXCL_START */ - gregorio_fail2(gregoriotex_determine_note_glyph_name, + gregorio_fail2(determine_note_glyph_name, "called with unknown shape: %s", gregorio_shape_to_string(note->u.note.shape)); return ""; @@ -853,7 +868,7 @@ const char *gregoriotex_determine_glyph_name(const gregorio_glyph *const glyph, const char *shape = NULL; gtex_glyph_liquescentia ltype; signed char ambitus; - gregorio_note *second_note; + const gregorio_note *second_note; gregorio_assert(glyph, gregoriotex_determine_glyph_name, "called with NULL pointer", return ""); gregorio_assert(glyph->u.notes.first_note, gregoriotex_determine_glyph_name, @@ -877,15 +892,22 @@ const char *gregoriotex_determine_glyph_name(const gregorio_glyph *const glyph, ltype = LG_NO_INITIO; break; case S_ORISCUS_ASCENDENS: - case S_ORISCUS_DESCENDENS: case S_ORISCUS_SCAPUS_ASCENDENS: - case S_ORISCUS_SCAPUS_DESCENDENS: *type = AT_ORISCUS; *gtype = T_PESQUASSUS; shape = quadratum_shape(glyph, SHAPE_PesQuassus, SHAPE_PesQuassusLongqueue, SHAPE_PesQuassusOpenqueue); ltype = LG_NO_INITIO; break; + case S_ORISCUS_DESCENDENS: + case S_ORISCUS_SCAPUS_DESCENDENS: + *type = AT_ORISCUS; + *gtype = T_PESQUASSUS; + shape = quadratum_shape(glyph, SHAPE_PesQuassusInusitatus, + SHAPE_PesQuassusInusitatusLongqueue, + SHAPE_PesQuassusInusitatusOpenqueue); + ltype = LG_NO_INITIO; + break; default: *type = AT_ONE_NOTE; if (glyph->u.notes.liquescentia @@ -938,6 +960,11 @@ const char *gregoriotex_determine_glyph_name(const gregorio_glyph *const glyph, } switch (glyph->u.notes.first_note->u.note.shape) { case S_ORISCUS_ASCENDENS: + *gtype = T_FLEXUS_ORISCUS; + shape = SHAPE_FlexusOriscusInusitatus; + ltype = LG_NO_INITIO; + break; + case S_ORISCUS_DESCENDENS: *gtype = T_FLEXUS_ORISCUS; shape = SHAPE_FlexusOriscus; @@ -945,6 +972,14 @@ const char *gregoriotex_determine_glyph_name(const gregorio_glyph *const glyph, break; case S_ORISCUS_SCAPUS_ASCENDENS: + *gtype = T_FLEXUS_ORISCUS_SCAPUS; + shape = flexus_shape(glyph, ambitus, + SHAPE_FlexusOriscusScapusInusitatus, + SHAPE_FlexusOriscusScapusInusitatusLongqueue, + SHAPE_FlexusOriscusScapusInusitatusOpenqueue); + ltype = LG_NO_INITIO; + break; + case S_ORISCUS_SCAPUS_DESCENDENS: *gtype = T_FLEXUS_ORISCUS_SCAPUS; shape = flexus_shape(glyph, ambitus, SHAPE_FlexusOriscusScapus, @@ -1146,43 +1181,6 @@ static bool is_last_of_line(gregorio_syllable *syllable) return false; } -static __inline bool has_notes(const gregorio_element *const element) -{ - if (element->type == GRE_CUSTOS) { - return true; - } - if (element->type == GRE_ELEMENT) { - const gregorio_glyph *glyph; - for (glyph = element->u.first_glyph; glyph; glyph = glyph->next) { - if (glyph->type == GRE_GLYPH) { - return true; - } - } - } - return false; -} - -/* determines if there are more GRE_GLYPHs */ -static __inline bool has_more_notes(const gregorio_element *element) -{ - for (element = element->next; element; element = element->next) { - if (has_notes(element)) { - return true; - } - } - return false; -} - -static __inline void handle_last_of_score(FILE *const f, - const gregorio_syllable *const syllable, - const gregorio_element *const element) -{ - if (!syllable->next_syllable && !has_more_notes(element) - && has_notes(element)) { - fprintf(f, "\\GreLastOfScore"); - } -} - /* * ! @brief Prints the beginning of each text style */ @@ -1599,13 +1597,25 @@ static char clef_flat_height(gregorio_clef clef, signed char line, bool flatted) return pitch_value(LOWEST_PITCH + offset); } +static __inline bool is_manual_custos(const gregorio_element *const element) +{ + return element->type == GRE_CUSTOS && element->u.misc.pitched.force_pitch; +} + OFFSET_CASE(BarStandard); OFFSET_CASE(BarVirgula); OFFSET_CASE(BarDivisioFinalis); -static void write_bar(FILE *f, gregorio_bar type, - gregorio_sign signs, bool is_inside_bar, bool has_text, unsigned char first_of_disc) +static void write_bar(FILE *f, const gregorio_score *const score, + const gregorio_syllable *const syllable, + const gregorio_element *const element, + const unsigned char first_of_disc) { + const gregorio_bar type = element->u.misc.unpitched.info.bar; + const gregorio_sign signs = element->u.misc.unpitched.special_sign; + const bool is_inside_bar = element->next && !is_manual_custos(element->next) + && element->next->type != GRE_END_OF_LINE; + const bool has_text = !element->previous && syllable->text; /* the type number of function vepisemaorrare */ const char *offset_case = BarStandard; /* don't use "In" version of bars in the first argument of a GreDiscretionary */ @@ -1666,20 +1676,98 @@ static void write_bar(FILE *f, gregorio_bar type, fprintf(f, "{%c}", has_text? '1' : '0'); switch (signs) { case _V_EPISEMA: - fprintf(f, "{\\GreBarVEpisema{\\GreOCase%s}}%%\n", offset_case); + fprintf(f, "{\\GreBarVEpisema{\\GreOCase%s}}", offset_case); break; case _BAR_H_EPISEMA: - fprintf(f, "{\\GreBarBrace{\\GreOCase%s}}%%\n", offset_case); + fprintf(f, "{\\GreBarBrace{\\GreOCase%s}}", offset_case); break; case _V_EPISEMA_BAR_H_EPISEMA: fprintf(f, "{\\GreBarBrace{\\GreOCase%s}" - "\\GreBarVEpisema{\\GreOCase%s}}%%\n", + "\\GreBarVEpisema{\\GreOCase%s}}", offset_case, offset_case); break; default: - fprintf(f, "{}%%\n"); + fprintf(f, "{}"); break; } + if (type == B_VIRGULA || type == B_DIVISIO_MINIMA) { + char result = '0'; + const gregorio_element *e; + const gregorio_syllable *s; + const gregorio_glyph *g; + const gregorio_note *n; + signed char pitch; + /* find the prior element */ + e = element->previous; + if (!e) { + for (s = syllable->previous_syllable; s; s = s->previous_syllable) { + /* loop to find the previous syllable with elements */ + if (s->elements && *s->elements) { + for (e = *s->elements; e->next; e = e->next) { + /* just loop to find the last element */ + } + break; + } + } + } + if (e && e->type == GRE_ELEMENT) { + g = e->u.first_glyph; + if (g) { + while (g->next) { + /* loop to find the last glyph in the prior element */ + g = g->next; + } + } + if (g && g->type == GRE_GLYPH && (n = g->u.notes.first_note)) { + while (n->next) { + /* loop to find the last note */ + n = n->next; + } + pitch = n->u.note.pitch; + if (g->u.notes.liquescentia & L_DEMINUTUS && n->previous + && n->previous->u.note.pitch > pitch) { + pitch = n->previous->u.note.pitch; + } + if (pitch < score->virgula_far_pitch) { + /* find next element */ + e = element->next; + if (!e) { + for (s = syllable->next_syllable; s; + s = s->next_syllable) { + /* loop to find the next syllable with elements */ + if (s->elements && *s->elements) { + e = *s->elements; + break; + } + } + } + if (e) { + if (e->type == GRE_END_OF_LINE) { + result = '1'; + } else if (e->type == GRE_ELEMENT) { + g = e->u.first_glyph; + if (g && g->type == GRE_GLYPH) { + n = g->u.notes.first_note; + if (n) { + if (g->u.notes.glyph_type == G_PODATUS + && n->next) { + n = n->next; + } + if (n->u.note.pitch + < score->virgula_far_pitch) { + result = '1'; + } + } + } + } + } + } + } + } + fprintf(f, "{%c}%%\n", result); + } else { + fprintf(f, "%%\n"); + } } static __inline char *suppose_high_ledger_line(const gregorio_note *const note) @@ -1700,8 +1788,8 @@ static __inline char *suppose_low_ledger_line(const gregorio_note *const note) * glyph, which would be weird but sure why not, we just typeset two puncta * spaced of 2. */ -static void gregoriotex_write_auctum_duplex(FILE *f, - gregorio_note *current_note) +static void write_auctum_duplex(FILE *f, + const gregorio_note *const current_note) { char pitch = current_note->u.note.pitch; char previous_pitch = 0; @@ -1748,8 +1836,8 @@ static void gregoriotex_write_auctum_duplex(FILE *f, * Writes \c \\GrePunctumMora in the gtex file, with the appropriate arguments. You might think this function * more straightforward than it actually is... */ -static void gregoriotex_write_punctum_mora(FILE *f, gregorio_glyph *glyph, - gregorio_note *current_note, int fuse_to_next_note) +static void write_punctum_mora(FILE *f, const gregorio_glyph *glyph, + const gregorio_note *current_note, const int fuse_to_next_note) { /* in this if we consider that the puncta are only on the last two notes * (maybe it would be useful to consider it more entirely, but it would be @@ -1767,7 +1855,7 @@ static void gregoriotex_write_punctum_mora(FILE *f, gregorio_glyph *glyph, /* a variable to know if we are on a punctum inclinatum or not */ unsigned char punctum_inclinatum = 0; /* a temp variable */ - gregorio_note *tmpnote; + const gregorio_note *tmpnote; /* we go into this switch only if it is the note before the last note */ if (current_note->next) { switch (glyph->u.notes.glyph_type) { @@ -1847,7 +1935,8 @@ static void gregoriotex_write_punctum_mora(FILE *f, gregorio_glyph *glyph, break; } switch (current_note->u.note.shape) { - case S_PUNCTUM_INCLINATUM: + case S_PUNCTUM_INCLINATUM_ASCENDENS: + case S_PUNCTUM_INCLINATUM_DESCENDENS: case S_PUNCTUM_INCLINATUM_DEMINUTUS: punctum_inclinatum = 1; break; @@ -1935,7 +2024,31 @@ static __inline int get_punctum_inclinatum_space_case( char temp; switch (note->u.note.shape) { - case S_PUNCTUM_INCLINATUM: + case S_PUNCTUM_INCLINATUM_ASCENDENS: + if (note->previous) { + /* means that it is the first note of the puncta inclinata + * sequence */ + temp = note->previous->u.note.pitch - note->u.note.pitch; + /* negative values = ascending ambitus */ + /* not sure we ever need to consider a larger ambitus here */ + switch (temp) { + case 1: + case 2: + case 3: + case 4: + return 25; + case -1: + default: + return 12; + case -2: + return 14; + case -3: + case -4: + return 15; + } + } + break; + case S_PUNCTUM_INCLINATUM_DESCENDENS: case S_PUNCTUM_CAVUM_INCLINATUM: if (note->previous) { /* means that it is the first note of the puncta inclinata @@ -1953,12 +2066,10 @@ static __inline int get_punctum_inclinatum_space_case( case 4: return 11; case -1: - return 12; case -2: - return 14; case -3: case -4: - return 15; + return 24; } } break; @@ -2033,7 +2144,7 @@ static __inline int get_punctum_inclinatum_to_nobar_space_case( || (next->u.notes.glyph_type == G_FLEXA && !next->u.notes.fuse_to_next_glyph))) { int descent; - gregorio_note *note = gregorio_glyph_last_note(glyph); + const gregorio_note *note = gregorio_glyph_last_note(glyph); descent = note->u.note.pitch - glyph->next->u.notes.first_note->u.note.pitch; /* a negative descent is an ascent */ @@ -2114,7 +2225,10 @@ static __inline void write_single_hepisema(FILE *const f, int hepisema_case, suppose_low_ledger_line(note), adj->nudge? adj->nudge : "", adj->vbasepos); } else if (note->next - && (note->next->u.note.shape == S_PUNCTUM_INCLINATUM + && (note->next->u.note.shape + == S_PUNCTUM_INCLINATUM_ASCENDENS + || note->next->u.note.shape + == S_PUNCTUM_INCLINATUM_DESCENDENS || note->next->u.note.shape == S_PUNCTUM_INCLINATUM_DEMINUTUS || note->next->u.note.shape @@ -2176,7 +2290,7 @@ static void gregoriotex_write_hepisema(FILE *const f, /* a macro to write an additional line */ static void write_additional_line(FILE *f, int i, gtex_type type, bool bottom, - gregorio_note *current_note, const gregorio_score *const score) + const gregorio_note *current_note, const gregorio_score *const score) { char ambitus = 0; gregorio_assert(current_note, write_additional_line, "called with no note", @@ -2260,7 +2374,7 @@ static void write_additional_line(FILE *f, int i, gtex_type type, bool bottom, * */ -static void gregoriotex_write_vepisema(FILE *f, gregorio_note *note) +static void write_vepisema(FILE *f, const gregorio_note *const note) { fprintf(f, "\\GreVEpisema{%d}{\\GreOCase%s}%%\n", pitch_value(note->v_episema_height), note->gtex_offset_case); @@ -2270,8 +2384,8 @@ static void gregoriotex_write_vepisema(FILE *f, gregorio_note *note) * a function that writes the rare signs in GregorioTeX. i is the position of * the note in the glyph */ -static void gregoriotex_write_rare(FILE *f, gregorio_note *current_note, - gregorio_sign rare) +static void write_rare_sign(FILE *f, const gregorio_note *const current_note, + const gregorio_sign rare) { switch (rare) { case _ACCENTUS: @@ -2310,19 +2424,47 @@ static void gregoriotex_write_rare(FILE *f, gregorio_note *current_note, } } +static __inline const char *alteration_name( + const gregorio_shape next_note_alteration) +{ + switch (next_note_alteration) { + case S_FLAT: + return "Flat"; + case S_SHARP: + return "Sharp"; + case S_NATURAL: + return "Natural"; + default: + return ""; + } +} + +static const char *next_custos(const signed char next_note_pitch, + const gregorio_shape next_note_alteration) +{ + static char buf[30]; + + gregorio_snprintf(buf, sizeof buf, "\\GreNextCustos{%d}{%s}", + pitch_value(next_note_pitch), + alteration_name(next_note_alteration)); + + return buf; +} + /* * function used when the glyph is only one note long */ -static void gregoriotex_write_note(FILE *f, gregorio_note *note, - gregorio_glyph *glyph, char next_note_pitch) +static void write_note(FILE *f, gregorio_note *note, + const gregorio_glyph *glyph, const char next_note_pitch, + const gregorio_shape next_note_alteration) { unsigned int initial_shape = note->u.note.shape; const char *shape; int space_case; /* type in the sense of GregorioTeX alignment type */ gtex_alignment type = AT_ONE_NOTE; - gregorio_assert(note, gregoriotex_write_note, "called with NULL pointer", + gregorio_assert(note, write_note, "called with NULL pointer", return); if (note->u.note.shape == S_PUNCTUM) { switch (note->u.note.liquescentia) { @@ -2347,7 +2489,7 @@ static void gregoriotex_write_note(FILE *f, gregorio_note *note, break; } } - shape = gregoriotex_determine_note_glyph_name(note, glyph, &type); + shape = determine_note_glyph_name(note, glyph, &type); note->u.note.shape = initial_shape; /* special things for puncta inclinata */ space_case = get_punctum_inclinatum_space_case(note); @@ -2357,43 +2499,43 @@ static void gregoriotex_write_note(FILE *f, gregorio_note *note, switch (note->u.note.shape) { case S_PUNCTUM_CAVUM: - fprintf(f, "\\GrePunctumCavum{%d}{%d}{%d}", - pitch_value(note->u.note.pitch), pitch_value(next_note_pitch), - type); + fprintf(f, "\\GrePunctumCavum{%d}{%s}{%d}", + pitch_value(note->u.note.pitch), + next_custos(next_note_pitch, next_note_alteration), type); break; case S_PUNCTUM_CAVUM_INCLINATUM: - fprintf(f, "\\GrePunctumCavumInclinatum{%d}{%d}{%d}", - pitch_value(note->u.note.pitch), pitch_value(next_note_pitch), - type); + fprintf(f, "\\GrePunctumCavumInclinatum{%d}{%s}{%d}", + pitch_value(note->u.note.pitch), + next_custos(next_note_pitch, next_note_alteration), type); break; case S_PUNCTUM_CAVUM_INCLINATUM_AUCTUS: - fprintf(f, "\\GrePunctumCavumInclinatumAuctus{%d}{%d}{%d}", - pitch_value(note->u.note.pitch), pitch_value(next_note_pitch), - type); + fprintf(f, "\\GrePunctumCavumInclinatumAuctus{%d}{%s}{%d}", + pitch_value(note->u.note.pitch), + next_custos(next_note_pitch, next_note_alteration), type); break; case S_ORISCUS_CAVUM_ASCENDENS: - fprintf(f, "\\GreOriscusCavum{%d}{%d}{%d}", - pitch_value(note->u.note.pitch), pitch_value(next_note_pitch), - type); + fprintf(f, "\\GreAscendensOriscusCavum{%d}{%s}{%d}", + pitch_value(note->u.note.pitch), + next_custos(next_note_pitch, next_note_alteration), type); break; case S_ORISCUS_CAVUM_DESCENDENS: - fprintf(f, "\\GreOriscusCavumAuctus{%d}{%d}{%d}", - pitch_value(note->u.note.pitch), pitch_value(next_note_pitch), - type); + fprintf(f, "\\GreDescendensOriscusCavum{%d}{%s}{%d}", + pitch_value(note->u.note.pitch), + next_custos(next_note_pitch, next_note_alteration), type); break; case S_ORISCUS_CAVUM_DEMINUTUS: - fprintf(f, "\\GreOriscusCavumDeminutus{%d}{%d}{%d}", - pitch_value(note->u.note.pitch), pitch_value(next_note_pitch), - type); + fprintf(f, "\\GreOriscusCavumDeminutus{%d}{%s}{%d}", + pitch_value(note->u.note.pitch), + next_custos(next_note_pitch, next_note_alteration), type); break; case S_LINEA_PUNCTUM_CAVUM: - fprintf(f, "\\GreLineaPunctumCavum{%d}{%d}{%d}", - pitch_value(note->u.note.pitch), pitch_value(next_note_pitch), - type); + fprintf(f, "\\GreLineaPunctumCavum{%d}{%s}{%d}", + pitch_value(note->u.note.pitch), + next_custos(next_note_pitch, next_note_alteration), type); break; case S_LINEA: - fprintf(f, "\\GreLinea{%d}{%d}{%d}", pitch_value(note->u.note.pitch), - pitch_value(next_note_pitch), type); + fprintf(f, "\\GreLinea{%d}{%s}{%d}", pitch_value(note->u.note.pitch), + next_custos(next_note_pitch, next_note_alteration), type); break; case S_FLAT: fprintf(f, "\\GreFlat{%d}{0}", pitch_value(note->u.note.pitch)); @@ -2405,9 +2547,9 @@ static void gregoriotex_write_note(FILE *f, gregorio_note *note, fprintf(f, "\\GreSharp{%d}{0}", pitch_value(note->u.note.pitch)); break; default: - fprintf(f, "\\GreGlyph{\\GreCP%s}{%d}{%d}{%d}", shape, - pitch_value(note->u.note.pitch), pitch_value(next_note_pitch), - type); + fprintf(f, "\\GreGlyph{\\GreCP%s}{%d}{%s}{%d}", shape, + pitch_value(note->u.note.pitch), + next_custos(next_note_pitch, next_note_alteration), type); break; } } @@ -2510,7 +2652,7 @@ static int gregoriotex_syllable_first_type(gregorio_syllable *syllable) case G_TRISTROPHA_AUCTA: case G_BIVIRGA: case G_TRIVIRGA: - gregoriotex_determine_note_glyph_name + determine_note_glyph_name (glyph->u.notes.first_note, glyph, &type); break; default: @@ -2561,8 +2703,8 @@ static __inline void write_high_choral_sign(FILE *const f, } } -static void gregoriotex_write_choral_sign(FILE *f, gregorio_glyph *glyph, - gregorio_note *current_note, bool low) +static void write_choral_sign(FILE *f, const gregorio_glyph *glyph, + const gregorio_note *current_note, bool low) { bool kind_of_pes; /* false in the normal case (sign above the note), true in the case of it's @@ -2676,14 +2818,14 @@ static __inline void fixup_height_extrema(signed char *const top_height, } } -static void gregoriotex_write_signs(FILE *f, gtex_type type, - gregorio_glyph *glyph, gregorio_note *note, +static void write_signs(FILE *f, gtex_type type, + const gregorio_glyph *glyph, const gregorio_note *note, int fuse_to_next_note, gregoriotex_status *const status, const gregorio_score *const score) { /* i is the number of the note for which we are typesetting the sign. */ int i; - gregorio_note *current_note; + const gregorio_note *current_note; signed char high_pitch = UNDETERMINED_HEIGHT; signed char low_pitch = UNDETERMINED_HEIGHT; bool found = false; @@ -2716,7 +2858,7 @@ static void gregoriotex_write_signs(FILE *f, gtex_type type, current_note = current_note->next, ++i) { if (current_note->choral_sign) { found = _found(f, found); - gregoriotex_write_choral_sign(f, glyph, current_note, false); + write_choral_sign(f, glyph, current_note, false); } if (type == T_ONE_NOTE) { break; @@ -2730,10 +2872,10 @@ static void gregoriotex_write_signs(FILE *f, gtex_type type, found = _found(f, found); gregoriotex_write_hepisema(f, current_note, i, type, glyph); } - /* write_rare also writes the vepisema */ + /* write_rare_sign also writes the vepisema */ if (current_note->special_sign) { found = _found(f, found); - gregoriotex_write_rare(f, current_note, current_note->special_sign); + write_rare_sign(f, current_note, current_note->special_sign); } if (current_note->signs != _NO_SIGN) { found = _found(f, found); @@ -2742,7 +2884,7 @@ static void gregoriotex_write_signs(FILE *f, gtex_type type, case _V_EPISEMA: case _V_EPISEMA_PUNCTUM_MORA: case _V_EPISEMA_AUCTUM_DUPLEX: - gregoriotex_write_vepisema(f, current_note); + write_vepisema(f, current_note); break; default: /* do nothing */ @@ -2758,19 +2900,18 @@ static void gregoriotex_write_signs(FILE *f, gtex_type type, switch (current_note->signs) { case _PUNCTUM_MORA: case _V_EPISEMA_PUNCTUM_MORA: - gregoriotex_write_punctum_mora(f, glyph, current_note, - fuse_to_next_note); + write_punctum_mora(f, glyph, current_note, fuse_to_next_note); break; case _AUCTUM_DUPLEX: case _V_EPISEMA_AUCTUM_DUPLEX: - gregoriotex_write_auctum_duplex(f, current_note); + write_auctum_duplex(f, current_note); break; default: break; } if (current_note->choral_sign) { found = _found(f, found); - gregoriotex_write_choral_sign(f, glyph, current_note, true); + write_choral_sign(f, glyph, current_note, true); } if (type == T_ONE_NOTE) { break; @@ -2814,6 +2955,31 @@ static char *determine_leading_shape(gregorio_glyph *glyph) return buf; } +static __inline void write_composed_multinote_glyph(FILE *const f, + gregorio_note *current_note, const gregorio_glyph *glyph, + const signed char next_note_pitch, + const gregorio_shape next_note_alteration, + const int fuse_to_next_note, gregoriotex_status *const status, + const gregorio_score *const score, const char *glyph_end_between_notes) +{ + while (current_note) { + const bool has_next = current_note->next != NULL; + if (has_next) { + write_note(f, current_note, glyph, current_note->next->u.note.pitch, + S_UNDETERMINED); + } else { + write_note(f, current_note, glyph, next_note_pitch, + next_note_alteration); + } + write_signs(f, T_ONE_NOTE, glyph, current_note, + has_next ? 0 : fuse_to_next_note, status, score); + current_note = current_note->next; + if (current_note && glyph_end_between_notes) { + fputs(glyph_end_between_notes, f); + } + } +} + static void write_glyph(FILE *f, gregorio_syllable *syllable, gregorio_element *element, gregorio_glyph *glyph, gregoriotex_status *const status, const gregorio_score *const score) @@ -2834,6 +3000,7 @@ static void write_glyph(FILE *f, gregorio_syllable *syllable, int fuse_to_next_note, fuse_from_previous_note = (prev_glyph && prev_glyph->type == GRE_GLYPH) ? prev_glyph->u.notes.fuse_to_next_glyph : 0; + gregorio_shape next_note_alteration; gregorio_assert(glyph, write_glyph, "called with NULL pointer", return); gregorio_assert(glyph->type == GRE_GLYPH && glyph->u.notes.first_note, write_glyph, "called with glyph without note", return); @@ -2841,7 +3008,8 @@ static void write_glyph(FILE *f, gregorio_syllable *syllable, if (fuse_from_previous_note) { fprintf(f, "\\GreFuse"); } - next_note_pitch = gregorio_determine_next_pitch(syllable, element, glyph); + next_note_pitch = gregorio_determine_next_pitch(syllable, element, glyph, + &next_note_alteration); current_note = glyph->u.notes.first_note; /* first we check if it is really a unique glyph in gregoriotex... the * glyphs that are not a unique glyph are : trigonus and pucta inclinata @@ -2857,48 +3025,34 @@ static void write_glyph(FILE *f, gregorio_syllable *syllable, case G_3_PUNCTA_INCLINATA_ASCENDENS: case G_4_PUNCTA_INCLINATA_ASCENDENS: case G_5_PUNCTA_INCLINATA_ASCENDENS: - while (current_note) { - gregoriotex_write_note(f, current_note, glyph, next_note_pitch); - gregoriotex_write_signs(f, T_ONE_NOTE, glyph, current_note, - current_note->next ? 0 : fuse_to_next_note, status, score); - current_note = current_note->next; - } - /* TODO: handle fusion to next note */ + write_composed_multinote_glyph(f, current_note, glyph, + next_note_pitch, next_note_alteration, fuse_to_next_note, + status, score, NULL); break; case G_SCANDICUS: if ((glyph->u.notes.liquescentia & L_DEMINUTUS) || glyph->u.notes.liquescentia == L_NO_LIQUESCENTIA || glyph->u.notes.liquescentia == L_FUSED) { shape = gregoriotex_determine_glyph_name(glyph, &type, >ype); - fprintf(f, "\\GreGlyph{\\GreCP%s}{%d}{%d}{%d}", shape, + fprintf(f, "\\GreGlyph{\\GreCP%s}{%d}{%s}{%d}", shape, pitch_value(glyph->u.notes.first_note->u.note.pitch), - pitch_value(next_note_pitch), type); - gregoriotex_write_signs(f, gtype, glyph, glyph->u.notes.first_note, + next_custos(next_note_pitch, next_note_alteration), type); + write_signs(f, gtype, glyph, glyph->u.notes.first_note, fuse_to_next_note, status, score); } else { - while (current_note) { - if (current_note->next) { - gregoriotex_write_note(f, current_note, glyph, - current_note->next->u.note.pitch); - } else { - gregoriotex_write_note(f, current_note, glyph, - next_note_pitch); - } - gregoriotex_write_signs(f, T_ONE_NOTE, glyph, current_note, - current_note->next ? 0 : fuse_to_next_note, status, - score); - current_note = current_note->next; - } + write_composed_multinote_glyph(f, current_note, glyph, + next_note_pitch, next_note_alteration, fuse_to_next_note, + status, score, NULL); } break; case G_ANCUS: gregorio_assert(glyph->u.notes.liquescentia & L_DEMINUTUS, write_glyph, "encountered a non-deminutus ancus", break); shape = gregoriotex_determine_glyph_name(glyph, &type, >ype); - fprintf(f, "\\GreGlyph{\\GreCP%s}{%d}{%d}{%d}", shape, + fprintf(f, "\\GreGlyph{\\GreCP%s}{%d}{%s}{%d}", shape, pitch_value(glyph->u.notes.first_note->u.note.pitch), - pitch_value(next_note_pitch), type); - gregoriotex_write_signs(f, gtype, glyph, glyph->u.notes.first_note, + next_custos(next_note_pitch, next_note_alteration), type); + write_signs(f, gtype, glyph, glyph->u.notes.first_note, fuse_to_next_note, status, score); break; case G_TORCULUS_RESUPINUS_FLEXUS: @@ -2909,40 +3063,28 @@ static void write_glyph(FILE *f, gregorio_syllable *syllable, glyph->u.notes.glyph_type = G_PORRECTUS_FLEXUS_NO_BAR; glyph->u.notes.first_note = current_note->next; shape = gregoriotex_determine_glyph_name(glyph, &type, >ype); - fprintf(f, "\\GreGlyph{\\GreFuseTwo{\\GreCP%s}{\\GreCP%s}}{%d}{%d}{%d}", - leading_shape, shape, + fprintf(f, "\\GreGlyph{\\GreFuseTwo{\\GreCP%s}{\\GreCP%s}}{%d}" + "{%s}{%d}", leading_shape, shape, pitch_value(glyph->u.notes.first_note->u.note.pitch), - pitch_value(next_note_pitch), type); + next_custos(next_note_pitch, next_note_alteration), type); glyph->u.notes.first_note = current_note; glyph->u.notes.glyph_type = G_TORCULUS_RESUPINUS_FLEXUS; - gregoriotex_write_signs(f, gtype, glyph, glyph->u.notes.first_note, + write_signs(f, gtype, glyph, glyph->u.notes.first_note, fuse_to_next_note, status, score); break; case G_BIVIRGA: case G_TRIVIRGA: - while (current_note) { - gregoriotex_write_note(f, current_note, glyph, next_note_pitch); - gregoriotex_write_signs(f, T_ONE_NOTE, glyph, current_note, - current_note->next ? 0 : fuse_to_next_note, status, score); - current_note = current_note->next; - if (current_note) { - fprintf(f, "\\GreEndOfGlyph{4}%%\n"); - } - } + write_composed_multinote_glyph(f, current_note, glyph, + next_note_pitch, next_note_alteration, fuse_to_next_note, + status, score, "\\GreEndOfGlyph{4}%%\n"); break; case G_TRISTROPHA: case G_TRISTROPHA_AUCTA: case G_DISTROPHA: case G_DISTROPHA_AUCTA: - while (current_note) { - gregoriotex_write_note(f, current_note, glyph, next_note_pitch); - gregoriotex_write_signs(f, T_ONE_NOTE, glyph, current_note, - current_note->next ? 0 : fuse_to_next_note, status, score); - current_note = current_note->next; - if (current_note) { - fprintf(f, "\\GreEndOfGlyph{5}%%\n"); - } - } + write_composed_multinote_glyph(f, current_note, glyph, + next_note_pitch, next_note_alteration, fuse_to_next_note, + status, score, "\\GreEndOfGlyph{5}%%\n"); break; case G_PUNCTUM: @@ -2988,10 +3130,10 @@ static void write_glyph(FILE *f, gregorio_syllable *syllable, case G_STROPHA: case G_STROPHA_AUCTA: case G_ALTERATION: - gregoriotex_write_note(f, glyph->u.notes.first_note, glyph, - next_note_pitch); - gregoriotex_write_signs(f, T_ONE_NOTE, glyph, current_note, - fuse_to_next_note, status, score); + write_note(f, glyph->u.notes.first_note, glyph, next_note_pitch, + next_note_alteration); + write_signs(f, T_ONE_NOTE, glyph, current_note, fuse_to_next_note, + status, score); break; default: /* we retain this "old-style" fusion as it does look marginally better @@ -3007,33 +3149,46 @@ static void write_glyph(FILE *f, gregorio_syllable *syllable, glyph->u.notes.first_note = current_note->next; shape = gregoriotex_determine_glyph_name(glyph, &type, >ype); fprintf(f, "\\GreGlyph{\\GreFuseTwo{\\GreCP%s}{\\GreCP%s}}" - "{%d}{%d}{%d}", leading_shape, shape, + "{%d}{%s}{%d}", leading_shape, shape, pitch_value(glyph->u.notes.first_note->u.note.pitch), - pitch_value(next_note_pitch), type); + next_custos(next_note_pitch, next_note_alteration), type); glyph->u.notes.first_note = current_note; glyph->u.notes.glyph_type = G_TORCULUS_RESUPINUS; - gregoriotex_write_signs(f, gtype, glyph, glyph->u.notes.first_note, + write_signs(f, gtype, glyph, glyph->u.notes.first_note, fuse_to_next_note, status, score); break; } else { shape = gregoriotex_determine_glyph_name(glyph, &type, >ype); - fprintf(f, "\\GreGlyph{\\GreCP%s}{%d}{%d}{%d}", shape, - pitch_value(glyph->u.notes.first_note->u.note.pitch), - pitch_value(next_note_pitch), type); - gregoriotex_write_signs(f, gtype, glyph, glyph->u.notes.first_note, + fprintf(f, "\\GreGlyph{\\GreCP%s}{%d}{%s}{%d}", + shape, pitch_value(glyph->u.notes.first_note->u.note.pitch), + next_custos(next_note_pitch, next_note_alteration), type); + write_signs(f, gtype, glyph, glyph->u.notes.first_note, fuse_to_next_note, status, score); break; } } } +static __inline unsigned int glyph_note_units(const gregorio_glyph *glyph) +{ + unsigned int count = 0; + const gregorio_note *note; + if (glyph->u.notes.glyph_type != G_ALTERATION) { + for (note = glyph->u.notes.first_note; note; note = note->next) { + ++count; + } + } + return count; +} + /* here we absolutely need to pass the syllable as an argument, because we * will need the next note, that may be contained in the next syllable */ -static void write_element(FILE *f, gregorio_syllable *syllable, +static unsigned int write_element(FILE *f, gregorio_syllable *syllable, gregorio_element *element, gregoriotex_status *status, const gregorio_score *const score) { + unsigned int note_unit_count = 0; if (element->type == GRE_ELEMENT) { gregorio_glyph *glyph; for (glyph = element->u.first_glyph; glyph; glyph = glyph->next) { @@ -3070,6 +3225,7 @@ static void write_element(FILE *f, gregorio_syllable *syllable, /* at this point glyph->type is GRE_GLYPH */ assert(glyph->type == GRE_GLYPH); write_glyph(f, syllable, element, glyph, status, score); + note_unit_count += glyph_note_units(glyph); if (glyph->next && glyph->next->type == GRE_GLYPH && glyph->next->u.notes.glyph_type != G_ALTERATION) { if (is_fused(glyph->next->u.notes.liquescentia)) { @@ -3083,9 +3239,18 @@ static void write_element(FILE *f, gregorio_syllable *syllable, } } else if (is_puncta_inclinata( glyph->next->u.notes.glyph_type) - || glyph->next->u.notes.glyph_type == - G_PUNCTA_INCLINATA) { - fprintf(f, "\\GreEndOfGlyph{9}%%\n"); + || glyph->next->u.notes.glyph_type + == G_PUNCTA_INCLINATA) { + if ((is_puncta_inclinata(glyph->u.notes.glyph_type) + || glyph->u.notes.glyph_type + == G_PUNCTA_INCLINATA) + && glyph->next->u.notes.first_note->u.note.pitch + == gregorio_glyph_last_note(glyph)->u.note.pitch) { + /* special case for unison puncta inclinata */ + fprintf(f, "\\GreEndOfGlyph{23}%%\n"); + } else { + fprintf(f, "\\GreEndOfGlyph{9}%%\n"); + } } else if (glyph->u.notes.glyph_type != G_ALTERATION || !glyph->next) { fprintf(f, "\\GreEndOfGlyph{0}%%\n"); @@ -3095,6 +3260,7 @@ static void write_element(FILE *f, gregorio_syllable *syllable, } } } + return note_unit_count; } static void write_fixed_text_styles(FILE *f, gregorio_character *syllable_text, @@ -3165,11 +3331,6 @@ static void gregoriotex_print_change_line_clef(FILE *f, } } -static __inline bool is_manual_custos(const gregorio_element *const element) -{ - return element->type == GRE_CUSTOS && element->u.misc.pitched.force_pitch; -} - static __inline bool next_is_bar(const gregorio_syllable *syllable, const gregorio_element *element) { @@ -3239,10 +3400,14 @@ static void handle_final_bar(FILE *f, const char *type, gregorio_syllable *sylla case GRE_CUSTOS: assert(element->u.misc.pitched.force_pitch); - fprintf(f, "\\GreFinalCustos{%d}%%\n", + fprintf(f, "\\GreFinalCustos{%d}{}%%\n", pitch_value(element->u.misc.pitched.pitch)); break; + case GRE_END_OF_LINE: + fprintf(f, "\\GreFinalNewLine%%\n"); + break; + default: /* do nothing */ break; @@ -3380,7 +3545,6 @@ static __inline void anticipate_event(gregorio_syllable *syllable, char *const euouae_follows, char *const eol_forces_custos, unsigned short *const next_euouae_id) { - static unsigned short euouae_id = 0; bool has_intervening_linebreak = false; *euouae_follows = '\0'; @@ -3400,7 +3564,7 @@ static __inline void anticipate_event(gregorio_syllable *syllable, scan_syllable_for_eol(syllable, eol_forces_custos); if (syllable->euouae == EUOUAE_BEGINNING) { - *next_euouae_id = syllable->euouae_id = ++euouae_id; + *next_euouae_id = syllable->euouae_id = ++tex_position_id; *euouae_follows = has_intervening_linebreak? '1' : '0'; } } @@ -3420,6 +3584,50 @@ static __inline void write_anticipated_event(FILE *f, const char euouae_follows, } } +static __inline unsigned int count_note_units(const gregorio_element *element) +{ + unsigned int count = 0; + for (; element; element = element->next) { + if (element->type == GRE_ELEMENT) { + const gregorio_glyph *glyph; + for (glyph = element->u.first_glyph; glyph; glyph = glyph->next) { + if (glyph->type == GRE_GLYPH) { + count += glyph_note_units(glyph); + } + } + } + } + return count; +} + +static __inline void handle_last_of_voice(FILE *const f, + const gregorio_syllable *syllable, + const gregorio_element *const element, + const gregorio_element *const last_of_voice) +{ + if (element == last_of_voice) { + if (syllable->next_syllable) { + /* check for no-element syllables that follow */ + for (syllable = syllable->next_syllable; + syllable && (!syllable->elements || !*(syllable->elements)); + syllable = syllable->next_syllable) { + /* just loop */ + } + /* if syllable is NULL here, then all syllables that follow + * have no elements */ + } + /* emit GreLastOfScore if we are either on the last syllable (and + * thus the loop above is not executed, leaving syllable at the + * current syllable) or if a syllable which follows the current + * syllable has an element of some sort (and thus the loop above + * stopped before running out of syllables); in any case, the check + * is that syllable, at this point, is not NULL */ + if (syllable) { + fprintf(f, "\\GreLastOfScore"); + } + } +} + /* * Arguments are relatively obvious. The most obscure is certainly first_of_disc * which is 0 all the time, except in the case of a "clef change syllable". In @@ -3436,6 +3644,7 @@ static __inline void write_anticipated_event(FILE *f, const char euouae_follows, static void write_syllable(FILE *f, gregorio_syllable *syllable, unsigned char first_of_disc, gregoriotex_status *const status, const gregorio_score *const score, + const gregorio_element *const *const last_of_voice, void (*const write_this_syllable_text) (FILE *, const char *, bool, const gregorio_character *, bool)) { @@ -3447,6 +3656,7 @@ static void write_syllable(FILE *f, gregorio_syllable *syllable, char euouae_follows; char eol_forces_custos; unsigned short next_euouae_id; + unsigned int note_unit_count; gregorio_not_null(syllable, write_syllable, return); end_of_word = syllable->position == WORD_END @@ -3498,10 +3708,10 @@ static void write_syllable(FILE *f, gregorio_syllable *syllable, */ gregoriotex_print_change_line_clef(f, clef_change_element); fprintf(f, "\\GreDiscretionary{0}{%%\n"); - write_syllable(f, syllable, 1, status, score, + write_syllable(f, syllable, 1, status, score, last_of_voice, write_syllable_text); fprintf(f, "}{%%\n"); - write_syllable(f, syllable, 2, status, score, + write_syllable(f, syllable, 2, status, score, last_of_voice, write_syllable_text); fprintf(f, "}%%\n"); write_this_syllable_text(f, NULL, syllable->forced_center, @@ -3534,7 +3744,7 @@ static void write_syllable(FILE *f, gregorio_syllable *syllable, * bar syllable */ syllable_type = "\\GreBarSyllable"; } else { - if (first_of_disc == 1) { + if (first_of_disc != 0) { syllable_type = "\\GreBarSyllable"; } else { syllable_type = "\\GreSyllable"; @@ -3561,7 +3771,7 @@ static void write_syllable(FILE *f, gregorio_syllable *syllable, syllable->next_syllable->forced_center? "\\GreGABCNextForceCenters" : ""); write_text(f, syllable->next_syllable->text); - if (end_of_line) { + if (end_of_line || first_of_disc == 1) { fprintf(f, "\\GreLastOfLine"); } else if (euouae_follows) { fprintf(f, "\\GreLastSyllableBeforeEUOUAE{%hu}{%c}", @@ -3573,7 +3783,7 @@ static void write_syllable(FILE *f, gregorio_syllable *syllable, gregoriotex_syllable_first_type(syllable->next_syllable)); } else { fprintf(f, "{\\GreSetNextSyllable{}{}{}{}{}"); - if (end_of_line) { + if (end_of_line || first_of_disc == 1) { fprintf(f, "\\GreLastOfLine"); } fprintf(f, "}{"); @@ -3599,6 +3809,10 @@ static void write_syllable(FILE *f, gregorio_syllable *syllable, } fprintf(f, "}{%%\n"); + fprintf(f, "\\GreSyllableNoteCount{%u}%%\n", syllable->elements? + count_note_units(*syllable->elements) : 0); + + note_unit_count = 0; if (syllable->elements) { for (element = *syllable->elements; element; element = element->next) { if (element->nabc_lines && element->nabc) { @@ -3615,30 +3829,38 @@ static void write_syllable(FILE *f, gregorio_syllable *syllable, case GRE_SPACE: switch (element->u.misc.unpitched.info.space) { case SP_LARGER_SPACE: - fprintf(f, "\\GreEndOfElement{1}{0}%%\n"); + fprintf(f, "\\GreEndOfElement{1}{0}{%u}%%\n", + note_unit_count); break; case SP_GLYPH_SPACE: - fprintf(f, "\\GreEndOfElement{2}{0}%%\n"); + fprintf(f, "\\GreEndOfElement{2}{0}{%u}%%\n", + note_unit_count); break; case SP_NEUMATIC_CUT: - fprintf(f, "\\GreEndOfElement{0}{0}%%\n"); + fprintf(f, "\\GreEndOfElement{0}{0}{%u}%%\n", + note_unit_count); break; case SP_AD_HOC_SPACE: - fprintf(f, "\\GreAdHocSpaceEndOfElement{%s}{0}%%\n", - element->u.misc.unpitched.info.ad_hoc_space_factor); + fprintf(f, "\\GreAdHocSpaceEndOfElement{%s}{0}{%u}%%\n", + element->u.misc.unpitched.info.ad_hoc_space_factor, + note_unit_count); break; case SP_GLYPH_SPACE_NB: - fprintf(f, "\\GreEndOfElement{2}{1}%%\n"); + fprintf(f, "\\GreEndOfElement{2}{1}{%u}%%\n", + note_unit_count); break; case SP_LARGER_SPACE_NB: - fprintf(f, "\\GreEndOfElement{1}{1}%%\n"); + fprintf(f, "\\GreEndOfElement{1}{1}{%u}%%\n", + note_unit_count); break; case SP_NEUMATIC_CUT_NB: - fprintf(f, "\\GreEndOfElement{0}{1}%%\n"); + fprintf(f, "\\GreEndOfElement{0}{1}{%u}%%\n", + note_unit_count); break; case SP_AD_HOC_SPACE_NB: - fprintf(f, "\\GreAdHocSpaceEndOfElement{%s}{1}%%\n", - element->u.misc.unpitched.info.ad_hoc_space_factor); + fprintf(f, "\\GreAdHocSpaceEndOfElement{%s}{1}{%u}%%\n", + element->u.misc.unpitched.info.ad_hoc_space_factor, + note_unit_count); break; default: /* not reachable unless there's a programming error */ @@ -3680,7 +3902,7 @@ static void write_syllable(FILE *f, gregorio_syllable *syllable, fprintf(f, "\\GreChangeClef{%c}{%d}{%c}{%d}{%c}{%d}{%d}%%\n", gregorio_clef_to_char(element->u.misc.clef.clef), element->u.misc.clef.line, - (element->previous && element->previous->type + (!element->previous || element->previous->type == GRE_BAR)? '0' : '1', clef_flat_height(element->u.misc.clef.clef, element->u.misc.clef.line, @@ -3696,25 +3918,29 @@ static void write_syllable(FILE *f, gregorio_syllable *syllable, case GRE_CUSTOS: if (first_of_disc != 1) { + signed char next_note_pitch; + gregorio_shape next_note_alteration; + const char *alteration = ""; /* * We don't print custos before a bar at the end of a line */ /* we also print an unbreakable larger space before the custo */ - handle_last_of_score(f, syllable, element); - fprintf(f, "\\GreEndOfElement{1}{1}%%\n\\GreCustos{%d}" - "\\GreNextCustos{%d}%%\n", - pitch_value(element->u.misc.pitched.pitch), - pitch_value(gregorio_determine_next_pitch(syllable, - element, NULL))); + handle_last_of_voice(f, syllable, element, *last_of_voice); + next_note_pitch = gregorio_determine_next_pitch(syllable, + element, NULL, &next_note_alteration); + if (!element->u.misc.pitched.force_pitch) { + alteration = alteration_name(next_note_alteration); + } + fprintf(f, "\\GreCustos{%d}{%s}%s%%\n", + pitch_value(element->u.misc.pitched.pitch), alteration, + next_custos(next_note_pitch, next_note_alteration)); + ++note_unit_count; } break; case GRE_BAR: - write_bar(f, element->u.misc.unpitched.info.bar, - element->u.misc.unpitched.special_sign, - element->next && !is_manual_custos(element->next) - && element->next->type != GRE_END_OF_LINE, - !element->previous && syllable->text, first_of_disc); + handle_last_of_voice(f, syllable, element, *last_of_voice); + write_bar(f, score, syllable, element, first_of_disc); break; case GRE_END_OF_LINE: @@ -3735,14 +3961,16 @@ static void write_syllable(FILE *f, gregorio_syllable *syllable, default: /* here current_element->type is GRE_ELEMENT */ assert(element->type == GRE_ELEMENT); - handle_last_of_score(f, syllable, element); - write_element(f, syllable, element, status, score); + handle_last_of_voice(f, syllable, element, *last_of_voice); + note_unit_count += write_element(f, syllable, element, status, + score); if (element->next && (element->next->type == GRE_ELEMENT || (element->next->next && element->next->type == GRE_ALT && element->next->next->type == GRE_ELEMENT))) { - fprintf(f, "\\GreEndOfElement{0}{0}%%\n"); + fprintf(f, "\\GreEndOfElement{0}{0}{%u}%%\n", + note_unit_count); } break; } @@ -3782,7 +4010,8 @@ static char *digest_to_hex(const unsigned char digest[SHA1_DIGEST_SIZE]) } static void initialize_score(gregoriotex_status *const status, - gregorio_score *score, const bool point_and_click) + gregorio_score *score, const bool point_and_click, + const gregorio_element **const last_of_voice) { gregorio_syllable *syllable; @@ -3814,6 +4043,8 @@ static void initialize_score(gregoriotex_status *const status, status->abovelinestext = true; } + /* simultaneously compute height extrema and determine the last "real" + * element in each voice */ for (voice = 0; voice < score->number_of_voices; ++voice) { gregorio_element *element; @@ -3826,10 +4057,15 @@ static void initialize_score(gregoriotex_status *const status, status->abovelinestext = true; break; + case GRE_CUSTOS: + last_of_voice[voice] = element; + break; + case GRE_ELEMENT: for (glyph = element->u.first_glyph; glyph; glyph = glyph->next) { if (glyph->type == GRE_GLYPH) { + last_of_voice[voice] = element; compute_height_extrema(glyph, glyph->u.notes.first_note, &(status->top_height), @@ -3838,6 +4074,10 @@ static void initialize_score(gregoriotex_status *const status, } break; + case GRE_BAR: + last_of_voice[voice] = element; + break; + default: /* to eliminate the warning */ break; @@ -3888,6 +4128,50 @@ static void suppress_expansion(FILE *const f, const char *text) } } +static int first_note_near_clef(const gregorio_score *const score) { + gregorio_clef_info clef = gregorio_default_clef; + if (score->first_voice_info) { + clef = score->first_voice_info->initial_clef; + if (!clef.secondary_line && !clef.flatted && score->first_syllable + && score->first_syllable->elements) { + const gregorio_element *element = score->first_syllable->elements[0]; + if (element && element->type == GRE_ELEMENT) { + const gregorio_glyph *glyph = element->u.first_glyph; + if (glyph && glyph->type == GRE_GLYPH) { + const signed char clef_pitch = LOW_LINE_PITCH + + ((clef.line - 1) * 2); + const gregorio_note *low_note = glyph->u.notes.first_note; + const gregorio_note *high_note = low_note; + switch (glyph->u.notes.glyph_type) { + case G_PODATUS: + /* next note is above the previous */ + if (low_note->next) { + high_note = low_note->next; + } + break; + case G_FLEXA: + case G_PORRECTUS: + case G_PORRECTUS_FLEXUS: + /* there is a stem the size of the ambitus */ + if (high_note->next) { + low_note = high_note->next; + } + break; + default: + /* to prevent the enum warning */ + break; + } + if (high_note->u.note.pitch < clef_pitch - 3 + || low_note->u.note.pitch > clef_pitch + 3) { + return 0; + } + } + } + } + } + return 1; +} + void gregoriotex_write_score(FILE *const f, gregorio_score *const score, const char *const point_and_click_filename) { @@ -3895,8 +4179,11 @@ void gregoriotex_write_score(FILE *const f, gregorio_score *const score, gregorio_syllable *current_syllable; int annotation_num; gregoriotex_status status; + const gregorio_element *last_of_voice[MAX_NUMBER_OF_VOICES]; - initialize_score(&status, score, point_and_click_filename != NULL); + memset(last_of_voice, 0, sizeof last_of_voice); + initialize_score(&status, score, point_and_click_filename != NULL, + last_of_voice); gregorio_assert(f, gregoriotex_write_score, "call with NULL file", return); @@ -3960,10 +4247,10 @@ void gregoriotex_write_score(FILE *const f, gregorio_score *const score, fprintf(f, "}%%\n"); } - /* DEPRECATED by 4.1 */ + /* DEPRECATED for removal in 5.0 */ /* LCOV_EXCL_START */ - if (score->initial_style != INITIAL_NOT_SPECIFIED) { /* DEPRECATED by 4.1 */ - fprintf(f, "\\GreSetInitialStyle{%d}%%\n", score->initial_style); /* DEPRECATED by 4.1 */ + if (score->initial_style != INITIAL_NOT_SPECIFIED) { /* DEPRECATED for removal in 5.0 */ + fprintf(f, "\\GreSetInitialStyle{%d}%%\n", score->initial_style); /* DEPRECATED for removal in 5.0 */ } /* LCOV_EXCL_STOP */ @@ -3975,16 +4262,17 @@ void gregoriotex_write_score(FILE *const f, gregorio_score *const score, if (score->first_voice_info) { clef = score->first_voice_info->initial_clef; } - fprintf(f, "\\GreSetInitialClef{%c}{%d}{%d}{%c}{%d}{%d}%%\n", + fprintf(f, "\\GreSetInitialClef{%c}{%d}{%d}{%c}{%d}{%d}{%d}%%\n", gregorio_clef_to_char(clef.clef), clef.line, clef_flat_height(clef.clef, clef.line, clef.flatted), gregorio_clef_to_char(clef.secondary_clef), clef.secondary_line, clef_flat_height(clef.secondary_clef, clef.secondary_line, - clef.secondary_flatted)); + clef.secondary_flatted), + first_note_near_clef(score)); fprintf(f, "}{%%\n"); /* GreScoreOpening#3 */ current_syllable = score->first_syllable; if (current_syllable) { - write_syllable(f, current_syllable, 0, &status, score, + write_syllable(f, current_syllable, 0, &status, score, last_of_voice, write_first_syllable_text); current_syllable = current_syllable->next_syllable; } else { @@ -3992,7 +4280,7 @@ void gregoriotex_write_score(FILE *const f, gregorio_score *const score, fprintf(f, "}{}{\\GreSetNoFirstSyllableText}%%\n"); } while (current_syllable) { - write_syllable(f, current_syllable, 0, &status, score, + write_syllable(f, current_syllable, 0, &status, score, last_of_voice, write_syllable_text); current_syllable = current_syllable->next_syllable; } diff --git a/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex.h b/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex.h index 65c2caaeb6c..3a2ca07bde5 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex.h +++ b/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex.h @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This header prototypes GregorioTeX writing data structures and entry points. * - * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * diff --git a/Build/source/texk/gregorio/gregorio-src/src/messages.c b/Build/source/texk/gregorio/gregorio-src/src/messages.c index 0aada3b802f..5033a9e7152 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/messages.c +++ b/Build/source/texk/gregorio/gregorio-src/src/messages.c @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This file contains functions for logging messages, warnings, and errors. * - * Copyright (C) 2009-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2009-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -31,6 +31,7 @@ static FILE *error_out; static gregorio_verbosity verbosity_mode = 0; static bool debug_messages = false; +static bool deprecation_is_warning = true; static int return_value = 0; int gregorio_get_return_value(void) @@ -53,6 +54,11 @@ void gregorio_set_debug_messages(bool debug) debug_messages = debug; } +void gregorio_set_deprecation_errors(bool deprecation_errors) +{ + deprecation_is_warning = !deprecation_errors; +} + static const char *verbosity_to_str(const gregorio_verbosity verbosity) { const char *str; @@ -132,6 +138,11 @@ void gregorio_messagef(const char *function_name, fprintf(error_out, "\n"); switch (verbosity) { + case VERBOSITY_DEPRECATION: + if (deprecation_is_warning) { + break; + } + /* else fall through */ case VERBOSITY_ERROR: case VERBOSITY_ASSERTION: return_value = 1; diff --git a/Build/source/texk/gregorio/gregorio-src/src/messages.h b/Build/source/texk/gregorio/gregorio-src/src/messages.h index 7b0282946b8..0939b6beff3 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/messages.h +++ b/Build/source/texk/gregorio/gregorio-src/src/messages.h @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This header prototypes the message logging functions. * - * Copyright (C) 2009-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2009-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -54,6 +54,7 @@ void gregorio_messagef(const char *function_name, __attribute__ ((__format__ (__printf__, 4, 5))); void gregorio_set_verbosity_mode(gregorio_verbosity verbosity); void gregorio_set_debug_messages(bool debug); +void gregorio_set_deprecation_errors(bool deprecation_errors); void gregorio_set_error_out(FILE *f); int gregorio_get_return_value(void); diff --git a/Build/source/texk/gregorio/gregorio-src/src/plugins.h b/Build/source/texk/gregorio/gregorio-src/src/plugins.h index 3363d491b22..bdfb4fa0566 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/plugins.h +++ b/Build/source/texk/gregorio/gregorio-src/src/plugins.h @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This header prototypes the "main" entry points for reading and writing data. * - * Copyright (C) 2008-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2008-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * diff --git a/Build/source/texk/gregorio/gregorio-src/src/struct.c b/Build/source/texk/gregorio/gregorio-src/src/struct.c index cd260b4886c..f7ec4f2db0e 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/struct.c +++ b/Build/source/texk/gregorio/gregorio-src/src/struct.c @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This file implements the Gregorio data structures. * - * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -53,6 +53,8 @@ #include "characters.h" #include "support.h" +unsigned short tex_position_id = 0; + gregorio_clef_info gregorio_default_clef = { /*.line =*/ 3, /*.secondary_line =*/ 0, @@ -430,7 +432,9 @@ void gregorio_change_shape(gregorio_note *const note, case S_PUNCTUM_CAVUM: /* S_PUNCTUM_CAVUM morphs other shapes */ switch (old_shape) { - case S_PUNCTUM_INCLINATUM: + case S_PUNCTUM_INCLINATUM_UNDETERMINED: + case S_PUNCTUM_INCLINATUM_ASCENDENS: + case S_PUNCTUM_INCLINATUM_DESCENDENS: note->u.note.shape = S_PUNCTUM_CAVUM_INCLINATUM; fix_punctum_cavum_inclinatum_liquescentia(note); break; @@ -1260,6 +1264,11 @@ void gregorio_set_score_staff_lines(gregorio_score *const score, score->staff_lines = staff_lines; score->highest_pitch = LOWEST_PITCH + 4 + (2 * staff_lines); score->high_ledger_line_pitch = score->highest_pitch - 1; + score->virgula_far_pitch = score->highest_pitch - 6; + + gregorio_assert(score->highest_pitch <= MAX_PITCH, + gregorio_set_score_staff_lines, "highest pitch exceeds MAX_PITCH", + return); } void gregorio_add_score_header(gregorio_score *score, char *name, char *value) @@ -1317,11 +1326,52 @@ int gregorio_calculate_new_key(gregorio_clef_info clef) } } -static signed char gregorio_syllable_first_note(gregorio_syllable *syllable) +/* shape is an output parameter */ +static __inline signed char next_pitch_from_glyph(const gregorio_glyph *glyph, + gregorio_shape *const alterations, gregorio_shape *const shape) +{ + while (glyph) { + if (glyph->type == GRE_GLYPH) { + if (glyph->u.notes.glyph_type == G_ALTERATION) { + const gregorio_note *note; + for (note = glyph->u.notes.first_note; note; + note = note->next) { + switch (note->u.note.shape) { + case S_FLAT: + case S_SHARP: + case S_NATURAL: + if (note->u.note.pitch >= LOWEST_PITCH && + note->u.note.pitch <= MAX_PITCH) { + alterations[note->u.note.pitch] = + note->u.note.shape; + } + break; + default: + break; + } + } + } else if (glyph->u.notes.first_note) { + assert(glyph->u.notes.first_note->type == GRE_NOTE); + if (shape) { + *shape = alterations[ + glyph->u.notes.first_note->u.note.pitch]; + } + return glyph->u.notes.first_note->u.note.pitch; + } + } + glyph = glyph->next; + } + return 0; +} + +/* shape is an output parameter */ +static signed char syllable_first_note(const gregorio_syllable *syllable, + gregorio_shape *const alterations, gregorio_shape *const shape) { gregorio_element *element; gregorio_glyph *glyph; - gregorio_not_null(syllable, gregorio_syllable_first_note, return 0); + signed char pitch; + gregorio_not_null(syllable, syllable_first_note, return 0); element = syllable->elements[0]; while (element) { if (element->type == GRE_CUSTOS) { @@ -1329,14 +1379,9 @@ static signed char gregorio_syllable_first_note(gregorio_syllable *syllable) } if (element->type == GRE_ELEMENT && element->u.first_glyph) { glyph = element->u.first_glyph; - while (glyph) { - if (glyph->type == GRE_GLYPH - && glyph->u.notes.glyph_type != G_ALTERATION - && glyph->u.notes.first_note) { - assert(glyph->u.notes.first_note->type == GRE_NOTE); - return glyph->u.notes.first_note->u.note.pitch; - } - glyph = glyph->next; + pitch = next_pitch_from_glyph(glyph, alterations, shape); + if (pitch) { + return pitch; } } element = element->next; @@ -1344,10 +1389,19 @@ static signed char gregorio_syllable_first_note(gregorio_syllable *syllable) return 0; } -signed char gregorio_determine_next_pitch(gregorio_syllable *syllable, - gregorio_element *element, gregorio_glyph *glyph) +/* shape is an output parameter */ +signed char gregorio_determine_next_pitch(const gregorio_syllable *syllable, + const gregorio_element *element, const gregorio_glyph *glyph, + gregorio_shape *const shape) { - signed char temp; + signed char pitch; + gregorio_shape alterations[MAX_PITCH + 1]; + + memset(alterations, 0, sizeof alterations); + + if (shape) { + *shape = S_UNDETERMINED; + } gregorio_not_null(element, gregorio_determine_next_pitch, return DUMMY_PITCH); gregorio_not_null(syllable, gregorio_determine_next_pitch, @@ -1355,14 +1409,9 @@ signed char gregorio_determine_next_pitch(gregorio_syllable *syllable, /* we first explore the next glyphs to find a note, if there is one */ if (glyph) { glyph = glyph->next; - while (glyph) { - if (glyph->type == GRE_GLYPH - && glyph->u.notes.glyph_type != G_ALTERATION - && glyph->u.notes.first_note) { - assert(glyph->u.notes.first_note->type == GRE_NOTE); - return glyph->u.notes.first_note->u.note.pitch; - } - glyph = glyph->next; + pitch = next_pitch_from_glyph(glyph, alterations, shape); + if (pitch) { + return pitch; } } /* then we do the same with the elements */ @@ -1373,14 +1422,9 @@ signed char gregorio_determine_next_pitch(gregorio_syllable *syllable, } if (element->type == GRE_ELEMENT && element->u.first_glyph) { glyph = element->u.first_glyph; - while (glyph) { - if (glyph->type == GRE_GLYPH - && glyph->u.notes.glyph_type != G_ALTERATION - && glyph->u.notes.first_note) { - assert(glyph->u.notes.first_note->type == GRE_NOTE); - return glyph->u.notes.first_note->u.note.pitch; - } - glyph = glyph->next; + pitch = next_pitch_from_glyph(glyph, alterations, shape); + if (pitch) { + return pitch; } } /* I think this is optimized out; LCOV_EXCL_LINE */ element = element->next; @@ -1391,14 +1435,17 @@ signed char gregorio_determine_next_pitch(gregorio_syllable *syllable, while (syllable) { /* we call another function that will return the pitch of the first * note if syllable has a note, and 0 else */ - temp = gregorio_syllable_first_note(syllable); - if (temp) { - return temp; + pitch = syllable_first_note(syllable, alterations, shape); + if (pitch) { + return pitch; } syllable = syllable->next_syllable; } /* here it means that there is no next note, so we return a stupid value, * but it won' t be used */ + if (shape) { + *shape = S_UNDETERMINED; + } return DUMMY_PITCH; } diff --git a/Build/source/texk/gregorio/gregorio-src/src/struct.h b/Build/source/texk/gregorio/gregorio-src/src/struct.h index 2511375dfba..d634fe59b9c 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/struct.h +++ b/Build/source/texk/gregorio/gregorio-src/src/struct.h @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This header defines the Gregorio data structures and functions. * - * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -98,7 +98,8 @@ ENUM(gregorio_clef, GREGORIO_CLEF); A(S_UNDETERMINED, 0) \ E(S_PUNCTUM) \ E(S_PUNCTUM_END_OF_GLYPH) \ - E(S_PUNCTUM_INCLINATUM) \ + E(S_PUNCTUM_INCLINATUM_ASCENDENS) \ + E(S_PUNCTUM_INCLINATUM_DESCENDENS) \ E(S_PUNCTUM_INCLINATUM_DEMINUTUS) \ E(S_PUNCTUM_INCLINATUM_AUCTUS) \ E(S_VIRGA) \ @@ -134,6 +135,7 @@ ENUM(gregorio_clef, GREGORIO_CLEF); E(S_ORISCUS_SCAPUS_UNDETERMINED) \ E(S_ORISCUS_CAVUM_UNDETERMINED) \ E(S_QUADRATUM) \ + E(S_PUNCTUM_INCLINATUM_UNDETERMINED) \ /* those shapes are for now used only in gregoriotex */ \ E(S_QUILISMA_QUADRATUM) \ E(S_PUNCTUM_AUCTUS_ASCENDENS) \ @@ -283,7 +285,6 @@ ENUM(gregorio_vposition, GREGORIO_VPOSITION); E(G_SALICUS_FLEXUS) \ E(G_VIRGA_STRATA) \ E(G_TORCULUS_LIQUESCENS) \ - E(G_PES_QUILISMA) \ /* additional glyph types, necessary for determination */ \ E(G_PORRECTUS_NO_BAR) \ E(G_PORRECTUS_FLEXUS_NO_BAR) \ @@ -403,7 +404,7 @@ typedef union gregorio_misc_element_info { struct { /* The pitch of the glyph. */ signed char pitch; - /* boolean indicating a clef with a B-flat */ + /* boolean indicating whether the pitch is forced */ bool force_pitch:1; } pitched; /* clef is used for GRE_CLEF */ @@ -692,7 +693,7 @@ typedef struct gregorio_score { char *annotation[MAX_ANNOTATIONS]; /* field giving informations on the initial (no initial, normal initial * or two lines initial) */ - signed char initial_style; /* DEPRECATED */ + signed char initial_style; /* DEPRECATED for removal in 5.0 */ size_t nabc_lines; char *user_notes; /* the determination method (maximal ambitus, etc.) */ @@ -705,6 +706,7 @@ typedef struct gregorio_score { unsigned char staff_lines; signed char highest_pitch; signed char high_ledger_line_pitch; + signed char virgula_far_pitch; bool legacy_oriscus_orientation; } gregorio_score; @@ -739,11 +741,12 @@ typedef struct gregorio_hepisema_adjustment { #define F_KEY 'f' #define NO_KEY -5 +extern unsigned short tex_position_id; extern gregorio_clef_info gregorio_default_clef; #define MONOPHONY 0 -/* the different initial styles - DEPRECATED by 4.1 */ +/* the different initial styles - DEPRECATED for removal in 5.0 */ #define INITIAL_NOT_SPECIFIED -1 #define USELESS_VALUE 0 @@ -779,6 +782,8 @@ static __inline bool is_fused(char liquescentia) #define LOWEST_PITCH 3 #define DUMMY_PITCH (LOWEST_PITCH + 6) #define LOW_LEDGER_LINE_PITCH (LOWEST_PITCH + 1) +#define LOW_LINE_PITCH (LOWEST_PITCH + 3) +#define MAX_PITCH (LOWEST_PITCH + 4 + (2 * 5)) #define NO_PITCH -128 @@ -880,8 +885,9 @@ void gregorio_begin_style(gregorio_character **current_character, void gregorio_end_style(gregorio_character **current_character, grestyle_style style); gregorio_character *gregorio_clone_characters(const gregorio_character *source); -signed char gregorio_determine_next_pitch(gregorio_syllable *syllable, - gregorio_element *element, gregorio_glyph *glyph); +signed char gregorio_determine_next_pitch(const gregorio_syllable *syllable, + const gregorio_element *element, const gregorio_glyph *glyph, + gregorio_shape *next_pitch_alteration); const char *gregorio_unknown(int value); gregorio_element *gregorio_get_clef_change(gregorio_syllable *syllable); unsigned short gregorio_add_hepisema_adjustment( diff --git a/Build/source/texk/gregorio/gregorio-src/src/struct_iter.h b/Build/source/texk/gregorio/gregorio-src/src/struct_iter.h new file mode 100644 index 00000000000..33ed7ec924e --- /dev/null +++ b/Build/source/texk/gregorio/gregorio-src/src/struct_iter.h @@ -0,0 +1,101 @@ +/* + * Gregorio is a program that translates gabc files to GregorioTeX + * This header defines the Gregorio data structures and functions. + * + * Copyright (C) 2016 The Gregorio Project (see CONTRIBUTORS.md) + * + * This file is part of Gregorio. + * + * Gregorio 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. + * + * Gregorio 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 Gregorio. If not, see <http://www.gnu.org/licenses/>. + */ + +/** + * @file + * The file starts by the definition of all the structures used in + * gregorio. As it is certainly the most important file for + * understanding, read it carefully. + */ + +#ifndef STRUCT_ITER_H +#define STRUCT_ITER_H + +#include "struct.h" + +typedef struct { + gregorio_syllable *syllable; + gregorio_element *element; + gregorio_glyph *glyph; + gregorio_note *note; +} gregorio_note_iter_position; + +static __inline void gregorio_from_note_to_note( + const gregorio_note_iter_position *const start, + const gregorio_note_iter_position *const end, + void (*const visit)(const gregorio_note_iter_position *, void *), + void *data) +{ + gregorio_note_iter_position p = *start; + + while (p.syllable) { + if (!p.element) { + p.element = p.syllable->elements[0]; + } + while (p.element) { + if (p.element->type == GRE_ELEMENT) { + if (!p.glyph) { + p.glyph = p.element->u.first_glyph; + } + while (p.glyph) { + if (p.glyph->type == GRE_GLYPH) { + if (!p.note) { + p.note = p.glyph->u.notes.first_note; + } + while (p.note) { + if (p.note->type == GRE_NOTE) { + visit(&p, data); + } + + if (end && p.note == end->note) { + return; + } + + p.note = p.note->next; + } /* note */ + } + p.glyph = p.glyph->next; + } /* glyph */ + } + p.element = p.element->next; + } /* element */ + p.syllable = p.syllable->next_syllable; + } /* syllable */ +} + +static __inline void gregorio_for_each_note(const gregorio_score *score, + void (*const visit)(const gregorio_note_iter_position *, void *), + void *data) +{ + gregorio_note_iter_position p = { + /* .syllable = */ NULL, + /* .element = */ NULL, + /* .glyph = */ NULL, + /* .note = */ NULL + }; + + p.syllable = score->first_syllable; + + gregorio_from_note_to_note(&p, NULL, visit, data); +} + +#endif diff --git a/Build/source/texk/gregorio/gregorio-src/src/unicode.c b/Build/source/texk/gregorio/gregorio-src/src/unicode.c index 82b581eea0e..1cc381d2a4d 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/unicode.c +++ b/Build/source/texk/gregorio/gregorio-src/src/unicode.c @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This file contains functions providing UTF-8 support. * - * Copyright (C) 2008-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2008-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * diff --git a/Build/source/texk/gregorio/gregorio-src/src/unicode.h b/Build/source/texk/gregorio/gregorio-src/src/unicode.h index 7af434a28fb..0d0d5aac1ba 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/unicode.h +++ b/Build/source/texk/gregorio/gregorio-src/src/unicode.h @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This header prototypes the UTF-8 support functions. * - * Copyright (C) 2008-2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2008-2016 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * diff --git a/Build/source/texk/gregorio/gregorio-src/windows/gregorio-resources.rc b/Build/source/texk/gregorio/gregorio-src/windows/gregorio-resources.rc index 501af717d5a..9ce686a5304 100644 --- a/Build/source/texk/gregorio/gregorio-src/windows/gregorio-resources.rc +++ b/Build/source/texk/gregorio/gregorio-src/windows/gregorio-resources.rc @@ -1,7 +1,7 @@ IDI_ICON1 ICON DISCARDABLE "gregorio.ico" 1 VERSIONINFO -FILEVERSION 4,1,4,30 -PRODUCTVERSION 4,1,4,30 +FILEVERSION 4,2,0,30 +PRODUCTVERSION 4,2,0,30 BEGIN BLOCK "StringFileInfo" BEGIN @@ -9,12 +9,12 @@ BEGIN BEGIN VALUE "CompanyName", "Gregorio project" VALUE "FileDescription", "Gregorio" - VALUE "FileVersion", "4.1.4" + VALUE "FileVersion", "4.2.0" VALUE "InternalName", "gregorio" VALUE "LegalCopyright", "See COPYING in the installation directory." VALUE "OriginalFilename", "gregorio.exe" VALUE "ProductName", "Gregorio" - VALUE "ProductVersion", "4.1.4" + VALUE "ProductVersion", "4.2.0" END END diff --git a/Build/source/texk/gregorio/gregorio.test b/Build/source/texk/gregorio/gregorio.test index 676a3e14450..494f81668be 100755 --- a/Build/source/texk/gregorio/gregorio.test +++ b/Build/source/texk/gregorio/gregorio.test @@ -9,25 +9,27 @@ export TEXMFCNF DOCSRC=$srcdir/$GREGORIO_TREE/doc +gregorio=gregorio-$FILENAME_VERSION + failed= echo "*** gregorio --version" \ - && ./gregorio --version \ + && ./$gregorio --version \ && echo && echo "gregorio-version tests OK" && echo \ || failed="$failed gregorio-version" echo "*** gregorio --help" \ - && ./gregorio --help \ + && ./$gregorio --help \ && echo && echo "gregorio-help tests OK" && echo \ || failed="$failed gregorio-help" echo "*** gregorio -o factus.gtex factus.gabc" \ - && ./gregorio -o factus.gtex $DOCSRC/factus.gabc \ + && ./$gregorio -o factus.gtex $DOCSRC/factus.gabc \ && echo && echo "gregorio-factus tests OK" && echo \ || failed="$failed gregorio-factus" echo "*** gregorio -o veni.gtex veni.gabc" \ - && ./gregorio -o veni.gtex $DOCSRC/veni.gabc \ + && ./$gregorio -o veni.gtex $DOCSRC/veni.gabc \ && echo && echo "gregorio-veni tests OK" && echo \ || failed="$failed gregorio-veni" @@ -35,4 +37,3 @@ test -z "$failed" && exit 0 echo echo "failed tests:$failed" exit 1 - diff --git a/Build/source/texk/gregorio/version.ac b/Build/source/texk/gregorio/version.ac index e4b28c92dfd..80ddca1e5fd 100644 --- a/Build/source/texk/gregorio/version.ac +++ b/Build/source/texk/gregorio/version.ac @@ -8,4 +8,4 @@ dnl dnl -------------------------------------------------------- dnl dnl m4-include this file to define the current gregorio version -m4_define([gregorio_version], [4.1.4]) +m4_define([gregorio_version], [4.2.0]) |