diff options
author | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2017-04-06 05:08:53 +0000 |
---|---|---|
committer | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2017-04-06 05:08:53 +0000 |
commit | 5fedb5d6169efecebd0dfbb1da555805573d14e5 (patch) | |
tree | 1f2654660ca658b3d06ee656be81e9735684bf5d /Build/source/texk/gregorio/gregorio-src/src | |
parent | 3c806bd4ccf248e9411683a41ef534d1a909bc99 (diff) |
gregorio 5.0.0-rc1
git-svn-id: svn://tug.org/texlive/trunk@43706 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/gregorio/gregorio-src/src')
47 files changed, 5988 insertions, 3932 deletions
diff --git a/Build/source/texk/gregorio/gregorio-src/src/Makefile.am b/Build/source/texk/gregorio/gregorio-src/src/Makefile.am index f0c275215b4..58e3f47617b 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-2016 The Gregorio Project (see CONTRIBUTORS.md) +# Copyright (C) 2006-2017 The Gregorio Project (see CONTRIBUTORS.md) # # This file is part of Gregorio. # @@ -35,9 +35,13 @@ gregorio___FILENAME_VERSION__SOURCES = \ @MK@else @MK@ ifneq ($(wildcard ../.hg/git),) @MK@ _gitnode_ = $(shell hg log --template='{gitnode}' -r .) -@MK@ _tag_ = $(shell git --git-dir=../.hg/git describe --exact-match $(_gitnode_) 2>/dev/null) -@MK@ ifeq ($(_tag_),) -@MK@ DEFS += -DBRANCH_VERSION='"$(shell cat ../.hg/bookmarks.current)-$(shell git --git-dir=../.hg/git rev-parse --short '$(_gitnode_)')-$(shell git --git-dir=../.hg/git rev-list '$(_gitnode_)' --count)"' +@MK@ ifeq ($(_gitnode_),) +@MK@ DEFS += -DBRANCH_VERSION='"$(shell hg log --template='{activebookmark}-hg:{manifest}' -r .)"' +@MK@ else +@MK@ _tag_ = $(shell git --git-dir=../.hg/git describe --exact-match '$(_gitnode_)' 2>/dev/null) +@MK@ ifeq ($(_tag_),) +@MK@ DEFS += -DBRANCH_VERSION='"$(shell hg log --template='{activebookmark}' -r .)-$(shell git --git-dir=../.hg/git rev-parse --short '$(_gitnode_)')-$(shell git --git-dir=../.hg/git rev-list '$(_gitnode_)' --count)"' +@MK@ endif @MK@ endif @MK@ endif @MK@endif @@ -73,7 +77,7 @@ LDADD += gregorio-resources.o endif gabc/gabc-score-determination-y.c: gabc/gabc-score-determination.y - $(YACC) -d -p "gabc_score_determination_" -o $@ $< + $(YACC) -v -d -p "gabc_score_determination_" -o $@ $< gabc/gabc-score-determination-y.h: gabc/gabc-score-determination-y.c ## Recover from the removal of gabc/gabc-score-determination-y.h, see ## https://www.gnu.org/software/automake/manual/html_node/Multiple-Outputs.html @@ -96,7 +100,7 @@ gabc/gabc-notes-determination-l.c: gabc/gabc-notes-determination.l $(LEX) -o $@ $< vowel/vowel-rules-y.c: vowel/vowel-rules.y - $(YACC) -d -o $@ $< + $(YACC) -v -d -o $@ $< vowel/vowel-rules-y.h: vowel/vowel-rules-y.c ## Recover from the removal of vowel/vowel-rules-y.h, see ## https://www.gnu.org/software/automake/manual/html_node/Multiple-Outputs.html diff --git a/Build/source/texk/gregorio/gregorio-src/src/bool.h b/Build/source/texk/gregorio/gregorio-src/src/bool.h index d40d0b4412c..0d6070990fa 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/bool.h +++ b/Build/source/texk/gregorio/gregorio-src/src/bool.h @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This header provides a minimum of C11-like bool functionality. * - * Copyright (C) 2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2015-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * diff --git a/Build/source/texk/gregorio/gregorio-src/src/characters.c b/Build/source/texk/gregorio/gregorio-src/src/characters.c index b82e25e809f..1e530d6514d 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-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2008-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -120,8 +120,8 @@ void gregorio_set_centering_language(char *const language) } } -static __inline gregorio_character *skip_verbatim_or_special( - gregorio_character *ch) +static __inline const gregorio_character *skip_verbatim_or_special( + const gregorio_character *ch) { /* skip past verbatim and special characters */ if (ch->cos.s.type == ST_T_BEGIN && (ch->cos.s.style == ST_VERBATIM @@ -160,43 +160,66 @@ static __inline bool handle_elision(const gregorio_character *const ch, return true; } -static void determine_center(gregorio_character *character, int *start, - int *end) +static __inline int for_each_centerable_character( + const gregorio_character *const character, + void (*capture)(grewchar *, int, grewchar), grewchar *buffer) { int count; - grewchar *subject; - gregorio_character *ch; - bool in_elision; - - *start = *end = -1; + const gregorio_character *ch; + bool in_elision = false; - in_elision = false; for (count = 0, ch = character; ch; ch = ch->next_character) { if (ch->is_character) { if (!in_elision) { + if (capture) { + capture(buffer, count, ch->cos.character); + } + ++count; + } + } else { + if (ch->cos.s.style == ST_PROTRUSION_FACTOR) { + /* if there is a protrusion, we will always encounter the + * protrusion factor first */ + break; + } + if (ch->cos.s.type == ST_T_BEGIN && ch->cos.s.style == ST_ELISION) { + /* put in a special character at the beginning of an elision + * that represents the elision */ + if (capture) { + capture(buffer, count, GREVOWEL_ELISION_MARK); + } ++count; } - } else if (!handle_elision(ch, &in_elision)) { - ch = skip_verbatim_or_special(ch); + if (!handle_elision(ch, &in_elision)) { + ch = skip_verbatim_or_special(ch); + } } } + return count; +} + +/* this function assumes subject is sized correctly */ +static void capture_subject(grewchar *const subject, const int count, + const grewchar character) +{ + subject[count] = character; +} + +static void determine_center(gregorio_character *character, int *start, + int *end) +{ + const int count = for_each_centerable_character(character, NULL, NULL); + grewchar *subject; + if (count == 0) { return; } - in_elision = false; subject = (grewchar *)gregorio_malloc((count + 1) * sizeof(grewchar)); - for (count = 0, ch = character; ch; ch = ch->next_character) { - if (ch->is_character) { - if (!in_elision) { - subject[count ++] = ch->cos.character; - } - } else if (!handle_elision(ch, &in_elision)) { - ch = skip_verbatim_or_special(ch); - } - } + for_each_centerable_character(character, capture_subject, subject); subject[count] = (grewchar)0; + *start = *end = -1; gregorio_find_vowel_group(subject, start, end); free(subject); @@ -913,6 +936,12 @@ void gregorio_rebuild_characters(gregorio_character **const param_character, } } + if (style == ST_ELISION) { + /* skip over the elision marker in the vowel determination + * buffer */ + ++index; + } + switch (style) { case ST_VERBATIM: case ST_SPECIAL_CHAR: @@ -960,8 +989,15 @@ void gregorio_rebuild_characters(gregorio_character **const param_character, /* just loop */ } if (current_style) { + /* repeated styles should already have been filtered out + * during parsing, so if this is hit, it's a programming + * error */ + /* LCOV_EXCL_START */ + gregorio_fail(gregorio_rebuild_characters, + "encountered repeated style"); current_character = suppress_character(current_character); continue; + /* LCOV_EXCL_STOP */ } /* if it is something to add then we just push the style in the * stack and continue. */ @@ -1126,9 +1162,13 @@ void gregorio_rebuild_first_syllable(gregorio_character **param_character, /* now we are going to place the two INITIAL styles (begin and end) */ while (current_character) { if (!current_character->is_character - && current_character->cos.s.style == ST_FORCED_CENTER) { + && (current_character->cos.s.style == ST_FORCED_CENTER + || current_character->cos.s.style == ST_PROTRUSION_FACTOR)) { /* we don't touch anything after a FORCED_CENTER, so we put an - * empty INITIAL style just before */ + * empty INITIAL style just before; we handle the weird case of + * a protrusion (manual or automatic) at the initial the same way + * (we need only check for PROTRUSION_FACTOR since that will come + * before PROTRUSION) */ current_character = first_character; insert_style_before(ST_T_BEGIN, ST_INITIAL, current_character); current_character = current_character->previous_character; @@ -1219,13 +1259,26 @@ void gregorio_rebuild_first_syllable(gregorio_character **param_character, insert_style_after(ST_T_END, ST_FIRST_SYLLABLE_INITIAL, ¤t_character); } - if (!current_character->is_character - && (current_character->cos.s.style == ST_CENTER - || current_character->cos.s.style == ST_FORCED_CENTER)) { - insert_style_before(ST_T_END, ST_FIRST_SYLLABLE, - current_character); - insert_style_after(ST_T_BEGIN, ST_FIRST_SYLLABLE, - ¤t_character); + if (!current_character->is_character) { + switch (current_character->cos.s.style) { + case ST_CENTER: + case ST_FORCED_CENTER: + insert_style_before(ST_T_END, ST_FIRST_SYLLABLE, + current_character); + insert_style_after(ST_T_BEGIN, ST_FIRST_SYLLABLE, + ¤t_character); + break; + + case ST_PROTRUSION_FACTOR: + /* protrusion is not allowed to be the syllable initial; + * we only need to check PROTRUSION_FACTOR since that will + * come before PROTRUSION */ + marked_syllable_initial = true; + break; + + default: + break; + } } if (!current_character->next_character) { insert_style_after(ST_T_END, ST_FIRST_SYLLABLE, @@ -1269,7 +1322,7 @@ void gregorio_set_first_word(gregorio_character **const character) } } /* else there are no more characters here */ - + if (*character) { gregorio_go_to_first_character_c(character); } diff --git a/Build/source/texk/gregorio/gregorio-src/src/characters.h b/Build/source/texk/gregorio/gregorio-src/src/characters.h index 01fa80180ba..96bf292a309 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-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2008-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * diff --git a/Build/source/texk/gregorio/gregorio-src/src/config.h b/Build/source/texk/gregorio/gregorio-src/src/config.h index 9519115cbb8..f394001613f 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/config.h +++ b/Build/source/texk/gregorio/gregorio-src/src/config.h @@ -4,7 +4,7 @@ * * Gregorio configuration headers. * - * Copyright (C) 2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2015-2017 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 db7e5a5f0c0..9022bfdc13f 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-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2007-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -215,6 +215,9 @@ void dump_write_score(FILE *f, gregorio_score *score) fprintf(f, " euouae %s\n", gregorio_euouae_to_string(syllable->euouae)); } + if (syllable->clear) { + fprintf(f, " clear true\n"); + } if (syllable->text) { if (syllable->translation) { fprintf(f, "\n Text\n"); @@ -256,6 +259,9 @@ void dump_write_score(FILE *f, gregorio_score *score) fprintf(f, " force_pitch true\n"); } break; + case GRE_SUPPRESS_CUSTOS: + /* not handling this would generate an error below */ + break; case GRE_SPACE: if (element->u.misc.unpitched.info.space) { char *factor = element->u.misc.unpitched.info. @@ -269,7 +275,7 @@ void dump_write_score(FILE *f, gregorio_score *score) break; case GRE_TEXVERB_ELEMENT: fprintf(f, " TeX string \"%s\"\n", - element->texverb); + gregorio_texverb(element->texverb)); break; case GRE_NLBA: fprintf(f, " nlba %d (%s)\n", @@ -279,7 +285,7 @@ void dump_write_score(FILE *f, gregorio_score *score) break; case GRE_ALT: fprintf(f, " Above lines text \"%s\"\n", - element->texverb); + gregorio_texverb(element->texverb)); break; case GRE_BAR: if (element->u.misc.unpitched.info.bar) { @@ -338,7 +344,7 @@ void dump_write_score(FILE *f, gregorio_score *score) switch (glyph->type) { case GRE_TEXVERB_GLYPH: fprintf(f, " TeX string \"%s\"\n", - glyph->texverb); + gregorio_texverb(glyph->texverb)); break; case GRE_SPACE: @@ -353,6 +359,9 @@ void dump_write_score(FILE *f, gregorio_score *score) glyph->u.notes.glyph_type, gregorio_glyph_type_to_string(glyph->u.notes. glyph_type)); + if (glyph->u.notes.is_cavum) { + fprintf(f, " is_cavum true\n"); + } if (glyph->u.notes.liquescentia) { fprintf(f, " liquescentia %d (%s)\n", glyph->u.notes.liquescentia, @@ -391,6 +400,9 @@ void dump_write_score(FILE *f, gregorio_score *score) gregorio_shape_to_string( note->u.note.shape)); } + if (note->u.note.is_cavum) { + fprintf(f, " is_cavum true\n"); + } if (note->u.note.liquescentia) { fprintf(f, " liquescentia %d (%s)\n", note->u.note.liquescentia, @@ -409,7 +421,7 @@ void dump_write_score(FILE *f, gregorio_score *score) } if (note->texverb) { fprintf(f, " TeX string \"%s\"\n", - note->texverb); + gregorio_texverb(note->texverb)); } if (note->choral_sign) { fprintf(f, " Choral Sign \"%s\"\n", @@ -471,13 +483,37 @@ void dump_write_score(FILE *f, gregorio_score *score) dump_hepisema_adjustment(f, note, SO_OVER, "above"); dump_hepisema_adjustment(f, note, SO_UNDER, "below"); - if (note->explicit_high_ledger_line) { + switch (note->high_ledger_specificity) { + case LEDGER_SUPPOSED: + break; + case LEDGER_EXPLICIT: fprintf(f, " explicit high line %s\n", - dump_bool(note->supposed_high_ledger_line)); + dump_bool(note->high_ledger_line)); + break; + case LEDGER_DRAWN: + fprintf(f, " drawn high line %s\n", + dump_bool(note->high_ledger_line)); + break; + case LEDGER_EXPLICITLY_DRAWN: + fprintf(f, " forced drawn high line %s\n", + dump_bool(note->high_ledger_line)); + break; } - if (note->explicit_low_ledger_line) { + switch (note->low_ledger_specificity) { + case LEDGER_SUPPOSED: + break; + case LEDGER_EXPLICIT: fprintf(f, " explicit low line %s\n", - dump_bool(note->supposed_low_ledger_line)); + dump_bool(note->low_ledger_line)); + break; + case LEDGER_DRAWN: + fprintf(f, " drawn low line %s\n", + dump_bool(note->low_ledger_line)); + break; + case LEDGER_EXPLICITLY_DRAWN: + fprintf(f, " forced drawn low line %s\n", + dump_bool(note->low_ledger_line)); + break; } } } diff --git a/Build/source/texk/gregorio/gregorio-src/src/encode_utf8strings.c b/Build/source/texk/gregorio/gregorio-src/src/encode_utf8strings.c index d932a9aeb4a..c24db479715 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/encode_utf8strings.c +++ b/Build/source/texk/gregorio/gregorio-src/src/encode_utf8strings.c @@ -1,7 +1,7 @@ /* * Utility program to convert utf8strings.h.in into utf8strings.h * - * Copyright (C) 2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2015-2017 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 7ea576e1cd8..96c362787ce 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-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2017 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 b6e914e5546..277b2b39e42 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-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -175,7 +175,7 @@ static gregorio_element *gabc_det_elements_from_glyphs( } first_glyph = current_glyph->next; previous_glyph = NULL; - current_glyph->texverb = NULL; + current_glyph->texverb = 0; gregorio_free_one_glyph(¤t_glyph); continue; } 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 0569dec78e2..8fc80157700 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-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -41,6 +41,12 @@ static __inline gregorio_scanner_location *copy_note_location( return loc; } +static __inline bool is_normal_punctum(const gregorio_note *const note) +{ + return note->u.note.shape == S_PUNCTUM + && note->u.note.liquescentia != L_INITIO_DEBILIS; +} + /**************************** * * This function is the basis of all the determination of glyphs. The @@ -88,6 +94,10 @@ static char add_note_to_a_glyph(gregorio_glyph_type current_glyph_type, gabc_determination *end_of_glyph, gregorio_shape *punctum_inclinatum_orientation) { + #define this_note_starts_new_glyph { \ + next_glyph_type = G_PUNCTUM; \ + *end_of_glyph = DET_END_OF_PREVIOUS; \ + } /* next glyph type is the type of the glyph that will be returned (the * new type of the glyph with the note added to it, or the type of the @@ -106,9 +116,7 @@ static char add_note_to_a_glyph(gregorio_glyph_type current_glyph_type, } switch (shape) { - case S_PUNCTUM_CAVUM: case S_LINEA_PUNCTUM: - case S_LINEA_PUNCTUM_CAVUM: case S_LINEA: next_glyph_type = G_PUNCTUM; *end_of_glyph = DET_END_OF_BOTH; @@ -124,8 +132,7 @@ static char add_note_to_a_glyph(gregorio_glyph_type current_glyph_type, * we determine here the shape of the thing if it is made of puncta */ if (current_pitch == last_pitch) { - next_glyph_type = G_PUNCTUM; - *end_of_glyph = DET_END_OF_PREVIOUS; + this_note_starts_new_glyph; break; } switch (current_glyph_type) { @@ -138,14 +145,11 @@ static char add_note_to_a_glyph(gregorio_glyph_type current_glyph_type, break; case G_PODATUS: if (current_pitch > last_pitch) { - if (current_glyph_first_note->u.note.shape == S_PUNCTUM && - current_glyph_first_note->u.note.liquescentia != - L_INITIO_DEBILIS) { + if (is_normal_punctum(current_glyph_first_note)) { next_glyph_type = G_SCANDICUS; *end_of_glyph = DET_END_OF_CURRENT; } else { - next_glyph_type = G_PUNCTUM; - *end_of_glyph = DET_END_OF_PREVIOUS; + this_note_starts_new_glyph; } } else { next_glyph_type = G_TORCULUS; @@ -164,16 +168,15 @@ static char add_note_to_a_glyph(gregorio_glyph_type current_glyph_type, next_glyph_type = G_PES_QUADRATUM; *end_of_glyph = DET_END_OF_CURRENT; } else { - next_glyph_type = G_PUNCTUM; - *end_of_glyph = DET_END_OF_PREVIOUS; + this_note_starts_new_glyph; } break; - case G_VIRGA_STRATA: /* really a pes stratus */ + case G_PES_ASCENDENS_ORISCUS: + case G_PES_DESCENDENS_ORISCUS: if (current_pitch > last_pitch) { next_glyph_type = G_SALICUS; } else { - next_glyph_type = G_PUNCTUM; - *end_of_glyph = DET_END_OF_PREVIOUS; + this_note_starts_new_glyph; } break; case G_SALICUS: @@ -181,20 +184,22 @@ static char add_note_to_a_glyph(gregorio_glyph_type current_glyph_type, next_glyph_type = G_SALICUS_FLEXUS; *end_of_glyph = DET_END_OF_CURRENT; } else { - next_glyph_type = G_PUNCTUM; - *end_of_glyph = DET_END_OF_PREVIOUS; + this_note_starts_new_glyph; } break; case G_FLEXA: if (current_pitch > last_pitch) { - next_glyph_type = G_PORRECTUS; + if (is_normal_punctum(current_glyph_first_note)) { + next_glyph_type = G_PORRECTUS; + } else { + this_note_starts_new_glyph; + } } else { if (liquescentia & L_DEMINUTUS) { *end_of_glyph = DET_END_OF_CURRENT; next_glyph_type = G_ANCUS; } else { - *end_of_glyph = DET_END_OF_PREVIOUS; - next_glyph_type = G_PUNCTUM; + this_note_starts_new_glyph; } } break; @@ -205,14 +210,12 @@ static char add_note_to_a_glyph(gregorio_glyph_type current_glyph_type, *end_of_glyph = DET_END_OF_CURRENT; next_glyph_type = G_TORCULUS_LIQUESCENS; } else { - *end_of_glyph = DET_END_OF_PREVIOUS; - next_glyph_type = G_PUNCTUM; + this_note_starts_new_glyph; } break; case G_TORCULUS_RESUPINUS: if (current_pitch > last_pitch) { - *end_of_glyph = DET_END_OF_PREVIOUS; - next_glyph_type = G_PUNCTUM; + this_note_starts_new_glyph; } else { *end_of_glyph = DET_END_OF_CURRENT; next_glyph_type = G_TORCULUS_RESUPINUS_FLEXUS; @@ -220,16 +223,14 @@ static char add_note_to_a_glyph(gregorio_glyph_type current_glyph_type, break; case G_PORRECTUS: if (current_pitch > last_pitch) { - *end_of_glyph = DET_END_OF_PREVIOUS; - next_glyph_type = G_PUNCTUM; + this_note_starts_new_glyph; } else { *end_of_glyph = DET_END_OF_CURRENT; next_glyph_type = G_PORRECTUS_FLEXUS; } break; default: - *end_of_glyph = DET_END_OF_PREVIOUS; - next_glyph_type = G_PUNCTUM; + this_note_starts_new_glyph; break; } break; @@ -237,13 +238,8 @@ static char add_note_to_a_glyph(gregorio_glyph_type current_glyph_type, case S_ORISCUS_ASCENDENS: case S_ORISCUS_DESCENDENS: case S_ORISCUS_DEMINUTUS: - case S_ORISCUS_CAVUM_UNDETERMINED: - case S_ORISCUS_CAVUM_ASCENDENS: - case S_ORISCUS_CAVUM_DESCENDENS: - case S_ORISCUS_CAVUM_DEMINUTUS: case S_QUILISMA: - *end_of_glyph = DET_END_OF_PREVIOUS; - next_glyph_type = G_PUNCTUM; + this_note_starts_new_glyph; break; case S_VIRGA: if (current_glyph_type == G_VIRGA && last_pitch == current_pitch) { @@ -284,18 +280,25 @@ static char add_note_to_a_glyph(gregorio_glyph_type current_glyph_type, break; case S_ORISCUS_SCAPUS_UNDETERMINED: case S_ORISCUS_SCAPUS_ASCENDENS: + if (current_glyph_type == G_PUNCTUM && last_pitch < current_pitch) { + next_glyph_type = G_PES_ASCENDENS_ORISCUS; + /* Therefore G_PES_ASCENDENS_ORISCUS might be fronting an + * undetermined oriscus scapus. This will be resolved during + * oriscus orientation determination */ + } else { + this_note_starts_new_glyph; + } + break; case S_ORISCUS_SCAPUS_DESCENDENS: if (current_glyph_type == G_PUNCTUM && last_pitch < current_pitch) { - next_glyph_type = G_VIRGA_STRATA; + next_glyph_type = G_PES_DESCENDENS_ORISCUS; } else { - *end_of_glyph = DET_END_OF_PREVIOUS; - next_glyph_type = G_PUNCTUM; + this_note_starts_new_glyph; } break; 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 * declarations of the header file @@ -467,10 +470,6 @@ static char 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; @@ -485,6 +484,21 @@ static char add_note_to_a_glyph(gregorio_glyph_type current_glyph_type, return next_glyph_type; } +static bool is_cavum(gregorio_note *note, gregorio_note *last_note) +{ + bool is_cavum = false; + for (; note; note = note->next) { + if (note->type == GRE_NOTE) { + is_cavum = is_cavum || note->u.note.is_cavum; + } + /* don't look past the last note */ + if (note == last_note) { + break; + } + } + return is_cavum; +} + /**************************** * * First see the comments of @@ -513,7 +527,9 @@ static gregorio_note *close_normal_glyph(gregorio_glyph **last_glyph, glyph_type = G_PUNCTUM; } - gregorio_add_glyph(last_glyph, glyph_type, *first_note, liquescentia); + gregorio_add_glyph(last_glyph, glyph_type, *first_note, liquescentia, + is_cavum(*first_note, current_note)); + if (current_note->next) { current_note->next->previous = NULL; *first_note = current_note->next; @@ -659,7 +675,7 @@ static void add_intervening_texverbs(gregorio_glyph **last_glyph, gregorio_add_unpitched_element_as_glyph(last_glyph, first_note->type, &(first_note->u.other), _NO_SIGN, first_note->texverb); - first_note->texverb = NULL; + first_note->texverb = 0; gregorio_free_one_note(&first_note); if (on_last_note) { @@ -698,7 +714,7 @@ static gregorio_note *close_fusion_glyph(gregorio_glyph **last_glyph, gregorio_add_unpitched_element_as_glyph(last_glyph, (*first_note)->type, &((*first_note)->u.other), _NO_SIGN, (*first_note)->texverb); - (*first_note)->texverb = NULL; + (*first_note)->texverb = 0; gregorio_assert(*first_note != last_note, close_fusion_glyph, "Unexpected texverb at end of fusion", return last_note); @@ -927,7 +943,8 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, bool force = false; gregorio_sign sign = _NO_SIGN; - if (current_glyph_type == G_FUSED && type == GRE_TEXVERB_GLYPH) { + if (current_glyph_type == G_FUSED + && (type == GRE_TEXVERB_GLYPH || type == GRE_TEXVERB_ELEMENT)) { current_note = next_note; continue; } @@ -1003,7 +1020,7 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, } } current_glyph_first_note = current_note->next; - current_note->texverb = NULL; + current_note->texverb = 0; gregorio_free_one_note(¤t_note); last_pitch = USELESS_VALUE; continue; @@ -1128,18 +1145,13 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, /* special cases of oriscus descendens, treated like normal * oriscus in some cases. */ if (score->legacy_oriscus_orientation) { - if ((current_note->u.note.shape == S_ORISCUS_DESCENDENS - || current_note->u.note.shape - == S_ORISCUS_CAVUM_DESCENDENS) + if (current_note->u.note.shape == S_ORISCUS_DESCENDENS && current_note->next && current_note->next->type == GRE_NOTE && current_note->next->u.note.pitch < current_note->u.note.pitch) { last_pitch = current_note->u.note.pitch; - current_note->u.note.shape = - current_note->u.note.shape - == S_ORISCUS_DESCENDENS? S_ORISCUS_ASCENDENS - : S_ORISCUS_CAVUM_ASCENDENS; + current_note->u.note.shape = S_ORISCUS_ASCENDENS; current_note->u.note.liquescentia = L_NO_LIQUESCENTIA; current_note = next_note; @@ -1181,31 +1193,6 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, continue; } } - if (current_note->u.note.shape == S_PUNCTUM_CAVUM_INCLINATUM) { - switch (current_note->u.note.liquescentia - & TAIL_LIQUESCENTIA_MASK) { - case L_AUCTUS_DESCENDENS: - case L_AUCTUS_ASCENDENS: - current_note->u.note.shape = - S_PUNCTUM_CAVUM_INCLINATUM_AUCTUS; - break; - } - - if (current_note->next - && current_note->next->type == GRE_NOTE - && (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; - } - } liquescentia |= current_note->u.note.liquescentia; /* once again, only works with the good values in the header * file */ @@ -1266,30 +1253,6 @@ gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note, continue; } } - if (current_note->u.note.shape == S_PUNCTUM_CAVUM_INCLINATUM) { - switch (current_note->u.note.liquescentia - & TAIL_LIQUESCENTIA_MASK) { - case L_AUCTUS_DESCENDENS: - case L_AUCTUS_ASCENDENS: - current_note->u.note.shape = - S_PUNCTUM_CAVUM_INCLINATUM_AUCTUS; - break; - } - - if (current_note->next - && current_note->next->type == GRE_NOTE - && (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; - continue; - } - } current_note = close_glyph(&last_glyph, current_glyph_type, ¤t_glyph_first_note, current_note->u.note.liquescentia, current_note, 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 3c17f898dff..ed25c70fe30 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 @@ -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, 135, -63, 136, - -63, 137, -63, 138, 139, -63, -63, -63, 140, -63, - 141, 142, -63, -63, -63, -63, -63, 143, -63, -63, + -63, 135, -63, -63, -63, -63, -63, 136, -63, 137, + -63, 138, -63, 139, 140, -63, -63, -63, 141, -63, + 142, 143, -63, -63, -63, -63, -63, 144, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, @@ -2415,7 +2415,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, - -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, + -64, -64, -64, 145, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, @@ -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, 144, 144, - 144, 144, 144, 144, -65, -65, -65, -65, -65, -65, + -65, -65, -65, -65, -65, -65, -65, -65, 146, 146, + 146, 146, 146, 146, -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,7 +2504,7 @@ 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, 145, -67, -67, -67, -67, -67, -67, + -67, -67, -67, 147, -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, @@ -2536,12 +2536,12 @@ 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, 145, -68, -68, -68, -68, -68, 146, - 146, 146, 146, 146, -68, -68, -68, -68, -68, -68, + -68, -68, -68, 147, -68, -68, -68, -68, -68, 148, + 148, 148, 148, 148, -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, 128, -68, -68, -68, - -68, -68, -68, -68, -68, -68, -68, -68, 147, -68, + -68, -68, -68, -68, -68, -68, -68, -68, 149, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, 129, -68, -68, 130, -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, 148, 149, + -69, -69, -69, -69, -69, -69, -69, -69, 150, 151, -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, 150, 151, - 152, 153, 154, 155, -71, -71, -71, -71, -71, -71, + -71, -71, -71, -71, -71, -71, -71, -71, 152, 153, + 154, 155, 156, 157, 158, 159, 160, -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, 156, -77, 157, -77, -77, 158, -77, + -77, -77, -77, 161, -77, 162, -77, -77, 163, -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, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 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, 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, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 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, + 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, -81, 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, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 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, 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, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159 + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164 }, { @@ -3005,168 +3005,9 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 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, -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, - - 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, 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 - }, - - { - 39, 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, 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, - 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, 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 - - }, - - { - 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, -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, - 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 - }, - - { - 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, -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, - - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163 - }, - - { - 39, 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, 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, -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, - 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, 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, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164 - }, - - { 39, 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, @@ -3174,6 +3015,7 @@ 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, -83, 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, @@ -3195,34 +3037,34 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 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, + 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, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, -89, -89, -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, -84, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 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, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166 }, @@ -3236,7 +3078,7 @@ 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, -90, 167, 167, 167, 167, 167, 167, + 167, 167, 167, -85, 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, @@ -3268,7 +3110,7 @@ static yyconst flex_int32_t yy_nxt[][256] = 168, 168, 168, 168, 168, 168, 168, 168, 168, 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, -86, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, @@ -3300,7 +3142,7 @@ static yyconst flex_int32_t yy_nxt[][256] = 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, -87, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, @@ -3322,7 +3164,7 @@ static yyconst flex_int32_t yy_nxt[][256] = { 39, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + -88, 170, 170, -88, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, @@ -3331,7 +3173,7 @@ static yyconst flex_int32_t yy_nxt[][256] = 170, 170, 170, 170, 170, 170, 170, 170, 170, 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, @@ -3353,6 +3195,164 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { + 39, -89, -89, -89, -89, -89, -89, -89, -89, -89, + 171, -89, -89, 171, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -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, 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, 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, -90, 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, + 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, 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 + }, + + { + 39, 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, 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, -91, 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, 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, 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 + }, + + { + 39, 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, 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, 174, 174, 174, 174, 174, 174, 174, + + 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, + 174, 174, 174, -92, 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, + 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, 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, 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, 174, 174, + 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, + 174, 174, 174, 174, 174, 174 + }, + + { + 39, 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, 175, 175, 175, 175, 175, 175, + 175, 175, 175, -93, 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, 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 + }, + + { 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, 171, -95, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, -95, -95, + -95, -95, -95, -95, -95, -95, 176, -95, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, -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, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, -96, -96, + -96, -96, -96, -96, -96, -96, -96, -96, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, -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, 174, -97, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, -97, -97, + -97, -97, -97, -97, -97, -97, 179, -97, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, -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, 175, -97, -97, -97, -97, -97, -97, + -97, -97, -97, 180, -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, 176, -98, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, -98, -98, + -98, -98, -98, -98, -98, -98, 181, -98, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, -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, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, -99, -99, + -99, -99, -99, -99, -99, -99, -99, -99, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, -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, 179, -100, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, -100, -100, + -100, -100, -100, -100, -100, -100, 184, -100, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, -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, 180, -100, -100, -100, -100, -100, -100, + -100, -100, -100, 185, -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,178 +3574,20 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 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, -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, 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, 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, 181, - - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181 - }, - - { - 39, 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, 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, -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, - 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, 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, 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, -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, - - 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, 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, -101, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 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, -101, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, @@ -3764,6 +3606,164 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { + 39, 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, 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, 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, -102, 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, 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, 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, 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, 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, 187, + 187, 187, 187, 187, 187, 187 + }, + + { + 39, 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, 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, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, -103, 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, 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, + 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, 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, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188 + }, + + { + 39, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, -104, + + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, -104, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189 + + }, + + { + 39, 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, 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, -105, 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, + 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, 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 + }, + + { + 39, 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, 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, 191, 191, 191, 191, 191, 191, 191, + 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, + 191, 191, 191, -106, 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, + 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, 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, 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, 191, 191, + + 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, + 191, 191, 191, 191, 191, 191 + }, + + { 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, @@ -3863,12 +3863,12 @@ static yyconst flex_int32_t yy_nxt[][256] = -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -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, 192, 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, 188, -110, -110, -110, -110, -110, -110, -110, -110, + -110, 193, -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, 189, 189, + -113, -113, -113, -113, -113, -113, -113, -113, 194, 194, -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, @@ -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, 190, -117, -117, -117, -117, -117, -117, -117, -117, + -117, 195, -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, @@ -4218,7 +4218,7 @@ 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, - 191, -121, -121, -121, -121, -121, -121, -121, -121, -121, + 196, -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, 192, -122, + -122, -122, -122, -122, -122, -122, -122, -122, 197, -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, 193, 193, + -123, -123, -123, -123, -123, -123, -123, -123, 198, 198, -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, @@ -4369,12 +4369,12 @@ 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, 199, + 199, 199, 199, 199, -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, 200, -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, @@ -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, 196, -128, -128, -128, + -128, -128, -128, -128, -128, -128, 201, -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, 197, -129, -129, -129, -129, + -129, -129, -129, -129, -129, 202, -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, 198, -130, + -130, -130, -130, -130, -130, -130, -130, -130, 203, -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, @@ -4660,7 +4660,7 @@ 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, 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, 204, -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, -137, 202, - -137, -137, -137, -137, -137, -137, -137, -137, 203, -137, + -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, + 205, -137, -137, -137, -137, 206, -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, -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, 204, - -138, -138, -138, -138, -138, -138, -138, -138, 205, -138, + -138, -138, -138, -138, -138, -138, -138, -138, -138, 207, + -138, -138, -138, -138, -138, -138, -138, -138, 208, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, @@ -4786,8 +4786,8 @@ 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, 206, -139, - -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, + -139, -139, -139, -139, -139, -139, -139, -139, -139, 209, + -139, -139, -139, -139, -139, -139, -139, -139, 210, -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, @@ -4818,7 +4818,7 @@ 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, 207, -140, + -140, -140, -140, -140, -140, -140, -140, -140, 211, -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, @@ -4849,8 +4849,8 @@ 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, 208, - -141, -141, -141, -141, -141, -141, -141, -141, 209, -141, + -141, -141, -141, -141, -141, -141, -141, -141, 212, -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, @@ -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, 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, 213, + -142, 214, -142, -142, -142, -142, -142, -142, 215, -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, 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, 216, 217, + -143, -143, -143, -143, 218, -143, -143, -143, 219, -143, + -143, -143, -143, -143, -143, 220, -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,15 +4937,15 @@ 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, 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, -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, 221, -144, + -144, -144, -144, -144, 218, -144, -144, -144, 222, -144, + -144, -144, -144, -144, -144, 220, -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, @@ -5001,8 +5001,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, - -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, - -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, + -146, -146, -146, -146, -146, -146, -146, -146, 146, 146, + 146, 146, 146, 146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, @@ -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, 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, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, @@ -5095,8 +5095,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, - -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, - -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, + -149, -149, -149, -149, -149, -149, -149, -149, -149, 223, + 223, 223, 223, 223, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, @@ -5407,161 +5407,161 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 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, -159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 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, -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, 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 - }, - - { - 39, 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, 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, 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, - 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, 161, 161, 161 - }, - - { - 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, - 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 - }, - - { - 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 + 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, -159, -159, -159, -159, -159, -159, -159, + -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, + -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, + -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, + -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, + -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, + -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, + + -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, + -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, + -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, + -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, + -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, + -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, + -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, + -159, -159, -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, -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, -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 + }, + + { + 39, -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, -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, -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, + -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, -161, -161, -161 + }, + + { + 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, + -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 + }, + + { + 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 }, { @@ -5598,7 +5598,6 @@ 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, @@ -5607,6 +5606,7 @@ 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 }, { @@ -5756,6 +5756,7 @@ static yyconst flex_int32_t yy_nxt[][256] = { 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, @@ -5764,7 +5765,6 @@ static yyconst flex_int32_t yy_nxt[][256] = 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, -170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, @@ -5787,12 +5787,12 @@ static yyconst flex_int32_t yy_nxt[][256] = { 39, -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, -171, -171, -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, -171, -171, -171, -171, -171, -171, -171, @@ -5818,129 +5818,129 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 39, -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, 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, - -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, -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, -172, -172, -172, -172, -172, -172, -172, -172, - -172, -172, -172, -172, -172, -172 - }, - - { - 39, -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, -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, - - -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, -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, - -173, -173, -173, -173, -173, -173 - }, - - { - 39, -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, -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, 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, - -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, -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, -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, -174, -174, - -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, - -174, -174, -174, -174, -174, -174 - - }, - - { - 39, -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, -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, -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, - -175, -175, -175, -175, -175, -175 + 39, 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, 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, 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, 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, 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 + }, + + { + 39, 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, 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, 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, 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 + }, + + { + 39, 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, 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, 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, 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, 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, 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, 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, 174, 174, 174 + + }, + + { + 39, 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, 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, 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, + 175, 175, 175, 175, 175, 175 }, { @@ -6043,8 +6043,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -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, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, @@ -6102,161 +6102,161 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 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, -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, 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, 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, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181 - }, - - { - 39, 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, 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, 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, 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, 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, -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, 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 - }, - - { - 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, -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, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, -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, + -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, -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, -181, -181, -181, -181, -181, -181, + -181, -181, -181, -181, -181, -181 + }, + + { + 39, -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, 184, -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, 185, -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, + -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, -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, 185, -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, -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 + }, + + { + 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, 225, 225, + 225, 225, 225, 225, 225, 225, 225, 225, -184, -184, + + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, 185, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -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 }, { @@ -6266,14 +6266,14 @@ static yyconst flex_int32_t yy_nxt[][256] = 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, -186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - 186, 186, 186, -186, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, -186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, @@ -6292,161 +6292,161 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 39, -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, -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, -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, 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, -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, -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, - - -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, -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, -187, -187, -187, -187, -187, -187, -187, -187, - -187, -187, -187, -187, -187, -187 - }, - - { - 39, -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, -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, -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, -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, -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, -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, -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 - }, - - { - 39, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, -189, -189 - - }, - - { - 39, -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, -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, -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, -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, -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 - }, - - { - 39, -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, -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, -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, 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, - - -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, -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, -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, -191, -191, - -191, -191, -191, -191, -191, -191 + 39, 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, 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, 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, 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, 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, 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, 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, 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, 187, + 187, 187, 187, 187, 187, 187 + }, + + { + 39, 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, 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, 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, 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, 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, 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, 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 + }, + + { + 39, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, -189, + + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, -189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189 + + }, + + { + 39, 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, 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, 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, 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, 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 + }, + + { + 39, 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, 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, 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, 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, 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, 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, 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, 191, 191, 191 }, { @@ -6460,7 +6460,7 @@ 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, 222, -192, + -192, 226, -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, @@ -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, 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, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, @@ -6585,9 +6585,9 @@ 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, -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, 227, -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, @@ -6614,13 +6614,13 @@ 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, - 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, 228, -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, @@ -6651,7 +6651,7 @@ 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, @@ -6683,7 +6683,7 @@ 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, 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, @@ -6707,8 +6707,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, - -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, - -200, -200, -200, -200, -200, -200, -200, -200, 229, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, 229, + 229, 229, 229, 229, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, @@ -6740,10 +6740,10 @@ static yyconst flex_int32_t yy_nxt[][256] = -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, - -201, -201, -201, -201, -201, -201, -201, -201, 230, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, + -201, -201, -201, -201, -201, -201, 230, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, @@ -6770,15 +6770,15 @@ 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, 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, - + 231, -202, 231, -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, -202, -202, -202, -202, 232, -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, @@ -6803,13 +6803,13 @@ 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, -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, -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, -203, -203, -203, -203, -203, -203, -203, 233, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, @@ -6833,16 +6833,16 @@ 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, 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, + -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, -204, -204, + -204, -204, -204, -204, -204, -204, 234, -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, @@ -6866,7 +6866,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, - -205, -205, -205, -205, -205, -205, -205, -205, 234, -205, + -205, -205, -205, -205, -205, -205, -205, -205, 235, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, @@ -6898,7 +6898,7 @@ 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, 236, -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, @@ -6928,8 +6928,8 @@ 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, -207, -207, -207, -207, -207, -207, -207, - -207, -207, -207, -207, -207, -207, -207, -207, 236, -207, + -207, -207, -207, -207, -207, -207, -207, -207, -207, 237, + 237, 237, 237, 237, 237, 237, 237, 237, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, @@ -6960,8 +6960,8 @@ 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, 238, -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, @@ -6991,8 +6991,8 @@ 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, 239, + 239, 239, 239, 239, 239, 239, 239, 239, -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, 239, -210, + -210, -210, -210, -210, -210, -210, -210, -210, 240, -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, @@ -7056,11 +7056,11 @@ 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, 241, -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, -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, -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, 241, -212, + -212, -212, -212, -212, -212, -212, -212, -212, 242, -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, 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, -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, 243, + 243, 243, 243, 243, 243, 243, 243, 243, -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, 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, @@ -7155,8 +7155,8 @@ 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, 244, -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, 246, -215, + -215, -215, -215, -215, -215, -215, -215, -215, 245, -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, @@ -7214,12 +7214,12 @@ 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, 246, -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, -216, -216, -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, -217, -217, -217, + -217, -217, -217, -217, -217, -217, -217, -217, 247, -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,16 +7276,16 @@ 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, 248, -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, - -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, + + -218, -218, -218, 249, -218, 250, -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, @@ -7307,14 +7307,14 @@ 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, 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, 251, -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, @@ -7346,7 +7346,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, - -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, + -220, -220, -220, -220, -220, -220, -220, -220, 252, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, @@ -7372,11 +7372,11 @@ 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, + -221, -221, -221, -221, -221, -221, -221, -221, 253, -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, -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,8 +7408,8 @@ 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, 249, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, + -222, -222, -222, -222, -222, -222, -222, -222, 254, -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, @@ -7465,13 +7465,13 @@ static yyconst flex_int32_t yy_nxt[][256] = -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, - -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, - -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, + -224, -224, -224, -224, -224, -224, -224, -224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, - -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, + -224, -224, -224, 180, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, @@ -7497,12 +7497,12 @@ static yyconst flex_int32_t yy_nxt[][256] = -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, + -225, -225, -225, -225, -225, -225, -225, -225, 225, 225, + 225, 225, 225, 225, 225, 225, 225, 225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, - -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, - -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, - -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, + -225, -225, -225, 185, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, @@ -7531,7 +7531,7 @@ 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, -226, -226, -226, -226, -226, -226, -226, @@ -7566,7 +7566,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, - -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, + -227, -227, -227, -227, -227, -227, -227, -227, 255, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, @@ -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, -228, -228, -228, -228, -228, -228, 252, + -228, -228, -228, -228, -228, -228, -228, 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, @@ -7692,7 +7692,7 @@ 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, -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, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, @@ -7720,7 +7720,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, -232, -232, -232, -232, -232, -232, -232, - -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, + 257, -232, 257, -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, 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, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, @@ -7782,13 +7782,13 @@ 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, -234, -234, + -234, -234, -234, -234, -234, -234, -234, -234, 258, -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, -234, -234, -234, - -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, + -234, -234, -234, -234, -234, -234, -234, -234, -234, 259, -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,7 +7813,7 @@ 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, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, @@ -7845,7 +7845,7 @@ 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, -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, @@ -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, 259, -237, -237, -237, -237, -237, -237, + -237, -237, -237, 260, -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, @@ -7939,13 +7939,13 @@ 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, -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, 261, -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, @@ -7972,11 +7972,11 @@ 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, 262, -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, 263, -241, 263, -241, -241, -241, -241, + -241, -241, -241, -241, -241, -241, -241, -241, 262, 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, -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, @@ -8034,13 +8034,13 @@ 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, -242, -242, + -242, -242, -242, -242, -242, -242, -242, -242, 264, 265, -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, -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, 267, -243, -243, -243, -243, -243, -243, + -243, -243, -243, 266, -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,14 +8098,14 @@ 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, 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, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, + -244, -244, -244, -244, -244, -244, -244, 267, -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, 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, -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, 270, 270, + -246, -246, -246, -246, -246, -246, -246, -246, 268, 268, -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, @@ -8193,12 +8193,12 @@ 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, 271, -247, + -247, -247, -247, -247, -247, -247, -247, -247, 269, -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, -247, -247, + -247, -247, -247, -247, -247, -247, -247, 270, -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, @@ -8224,16 +8224,16 @@ 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, 271, -248, 271, -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, -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, + -248, -248, -248, -248, 272, -248, -248, -248, 272, 272, + -248, 273, -248, -248, -248, -248, -248, 273, -248, -248, - -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, + -248, -248, -248, 249, -248, 250, -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, @@ -8258,10 +8258,10 @@ 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, 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, + -249, -249, -249, 274, -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, -250, -250, -250, -250, -250, -250, -250, + -250, -250, -250, 275, -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, @@ -8320,7 +8320,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, -251, -251, -251, -251, -251, 276, -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,15 +8350,15 @@ 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, 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, -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, 277, -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, @@ -8382,7 +8382,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, -253, -253, -253, -253, -253, 278, 278, -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, @@ -8414,7 +8414,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, - -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, + -254, -254, -254, -254, -254, -254, -254, -254, 279, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, @@ -8450,7 +8450,7 @@ 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, 275, -255, -255, -255, -255, -255, -255, + -255, -255, -255, -255, -255, -255, -255, 280, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, @@ -8479,10 +8479,10 @@ 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, 281, -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, @@ -8514,7 +8514,7 @@ 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, 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, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, @@ -8545,7 +8545,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -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, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, @@ -8571,8 +8571,8 @@ 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, -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, 282, + 282, 282, 282, 282, 282, 282, 282, 282, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, @@ -8604,7 +8604,7 @@ 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, 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, @@ -8612,7 +8612,7 @@ 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, 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, -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, 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, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, @@ -8667,12 +8667,12 @@ 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, 283, -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, -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, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 39, -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, -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, -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, -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 + -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 }, { @@ -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, 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, -264, -264, -264, -264, -264, -264, -264, - -264, -264, -264, 266, -264, -264, -264, -264, -264, -264, + -264, -264, -264, 285, -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, 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, @@ -8766,9 +8766,9 @@ 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, -265, + -265, -265, -265, 286, -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, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, @@ -8832,7 +8832,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, -267, -267, -267, -267, -267, -267, -267, -267, + -267, -267, -267, -267, -267, 287, -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, @@ -8857,7 +8857,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, -268, -268, -268, -268, -268, + -268, -268, -268, -268, -268, -268, -268, -268, -268, 288, -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, @@ -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, 285, -268, -268, -268, -268, + -268, -268, -268, 289, -268, 290, -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, @@ -8887,7 +8887,7 @@ 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, -269, -269, -269, -269, -269, -269, -269, + -269, -269, -269, -269, -269, -269, -269, -269, 291, 291, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, @@ -8895,7 +8895,7 @@ 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, -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, -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, 287, + -270, -270, -270, -270, -270, -270, -270, -270, 292, -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, @@ -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, 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, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, @@ -8946,35 +8946,35 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 39, -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, + 39, 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, - -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, -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, + 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, 293, 293, 293, 293, 293, 293, + 293, 293, 293, -271, 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, -271, 293, 293, 293, 293, 293, 293, + 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, - -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, -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, - -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, + 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, 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, 293, 293, + 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, - -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, - -271, -271, -271, -271, -271, -271 + 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, + 293, 293, 293, 293, 293, 293 }, { @@ -8982,16 +8982,16 @@ 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, 271, -272, 271, -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, + -272, -272, -272, 274, -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, -272, -272, -272, -272, + -272, -272, -272, 249, -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, @@ -9020,7 +9020,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, - -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, + -273, -273, -273, -273, 272, -273, -273, -273, 272, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, @@ -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, 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, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, @@ -9109,6 +9109,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, 294, 295, -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, @@ -9116,8 +9117,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, -276, -276, -276, -276, -276, -276, -276, - -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, + -276, -276, -276, -276, -276, 296, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, @@ -9148,7 +9148,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, -277, + -277, -277, -277, -277, 297, -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, @@ -9173,7 +9173,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, -278, -278, - -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, + -278, -278, -278, -278, -278, -278, -278, -278, -278, 298, -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, @@ -9181,7 +9181,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, -278, -278, + -278, -278, -278, 299, -278, 300, -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, @@ -9203,7 +9203,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, - -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, -279, -279, -279, 301, 302, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, @@ -9212,7 +9212,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, - -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, + -279, -279, -279, -279, -279, 303, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, @@ -9237,10 +9237,10 @@ 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, 304, -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, -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, @@ -9272,7 +9272,7 @@ 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, -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, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, @@ -9299,15 +9299,15 @@ 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, 295, + -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, 305, -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,7 +9330,7 @@ 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, @@ -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, 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, 284, 284, 284, 284 + -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, + -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, + -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, + -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, + -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, + -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, + -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, + -284, -284, -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, 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, -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, 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, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, @@ -9464,7 +9464,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, - -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, + -287, -287, -287, -287, -287, -287, 306, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, @@ -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, 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, -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, 303, -289, -289, -289, -289, -289, -289, + -289, -289, -289, 307, -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, 304, -290, -290, -290, -290, -290, -290, + -290, -290, -290, 308, -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, @@ -9584,14 +9584,14 @@ 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, 309, -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, -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, 310, -291, 311, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, @@ -9614,7 +9614,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, -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, 312, 312, -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, @@ -9641,35 +9641,35 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 39, -293, -293, -293, -293, -293, -293, -293, -293, -293, - -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, + 39, 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, -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, -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, 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, 293, 293, 293, + 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, + 293, 293, 293, 274, 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, -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, -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, 313, 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, 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, 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 + 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, -294, -294, -294, -294, -294, -294, -294, + -294, -294, -294, 314, -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, @@ -9714,7 +9714,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -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, 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, -295, -295, @@ -9746,7 +9746,7 @@ 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, -296, -296, - -296, -296, -296, 305, -296, -296, -296, -296, -296, -296, + -296, -296, -296, 316, -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, @@ -9773,12 +9773,12 @@ 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, -297, -297, -297, -297, -297, -297, -297, + -297, -297, -297, -297, -297, -297, -297, -297, 317, -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, 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, -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, 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, -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, 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, -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, 266, -299, -299, -299, -299, -299, -299, + -299, -299, -299, 318, -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, @@ -9872,7 +9872,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, - -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, 319, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, @@ -9899,13 +9899,13 @@ 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, 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, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, + -301, -301, -301, 320, -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, @@ -9936,7 +9936,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, + -302, -302, -302, 321, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, @@ -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, -303, -303, -303, -303, -303, -303, -303, + -303, -303, -303, 322, -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, @@ -10064,7 +10064,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, - -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, + -306, 323, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, @@ -10125,7 +10125,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -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, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, @@ -10157,7 +10157,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, - -309, -309, -309, 312, -309, -309, -309, -309, -309, -309, + -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, @@ -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, 324, -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, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, @@ -10220,7 +10220,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, - -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, 325, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, @@ -10247,7 +10247,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, - -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, + -312, -312, -312, -312, -312, -312, -312, -312, -312, 326, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, @@ -10255,7 +10255,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, - -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, + -312, -312, -312, 327, -312, 328, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, @@ -10273,35 +10273,35 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 39, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 39, -313, -313, -313, -313, -313, -313, -313, -313, -313, + -313, -313, -313, -313, -313, -313, -313, -313, -313, -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, -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, + -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, 274, -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, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 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, -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, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 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, -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 }, { @@ -10315,7 +10315,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -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, @@ -10346,7 +10346,7 @@ static yyconst flex_int32_t yy_nxt[][256] = -315, -315, -315, -315, -315, -315, -315, -315, -315, -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, @@ -10368,35 +10368,35 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 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, + 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, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, + -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, + -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, + -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, + -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, + -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, + -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, + -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, + -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, + -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316 + -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, + -316, -316, -316, -316, -316, -316 }, { @@ -10404,8 +10404,8 @@ static yyconst flex_int32_t yy_nxt[][256] = -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, 329, 329, + 329, -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, @@ -10463,66 +10463,66 @@ static yyconst flex_int32_t yy_nxt[][256] = }, { - 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, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, + -319, -319, -319, -319, -319, -319 + + }, + + { + 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, -320, -320, -320, -320, -320, -320, -320, + + -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, + -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, + -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, + -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, + -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, + -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, + -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, + -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, + -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, + -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, + + -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, + -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, + -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, + -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, + -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, + -320, -320, -320, -320, -320, -320 }, { @@ -10557,6 +10557,669 @@ static yyconst flex_int32_t yy_nxt[][256] = -321, -321, -321, -321, -321, -321 }, + { + 39, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, + -322, -322, -322, -322, -322, -322 + }, + + { + 39, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, 330, -323, -323, -323, -323, + + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, + -323, -323, -323, -323, -323, -323 + }, + + { + 39, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, -324 + + }, + + { + 39, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, + -325, -325, -325, -325, -325, -325 + }, + + { + 39, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + + -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, + -326, -326, -326, -326, -326, -326 + }, + + { + 39, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, 331, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, + -327, -327, -327, -327, -327, -327 + }, + + { + 39, -328, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, 332, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, + -328, -328, -328, -328, -328, -328 + }, + + { + 39, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329, -329, -329, -329, 333, + + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, 334, -329, 335, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, + -329, -329, -329, -329, -329, -329 + + }, + + { + 39, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, 336, -330, -330, -330, -330, -330, -330, + + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, + -330, -330, -330, -330, -330, -330 + }, + + { + 39, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331 + }, + + { + 39, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332 + }, + + { + 39, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, -333, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337 + }, + + { + 39, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, 338, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334 + + }, + + { + 39, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, 339, -335, -335, -335, -335, -335, -335, + + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335 + }, + + { + 39, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336 + }, + + { + 39, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 340, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337 + }, + + { + 39, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, + -338, -338, -338, -338, -338, -338 + }, + + { + 39, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, + -339, -339, -339, -339, -339, -339 + + }, + + { + 39, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, -340, 341, 341, 341, 341, 341, 341, + + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341 + }, + + { + 39, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 342, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341 + }, + + { + 39, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342 + }, + } ; static yy_state_type yy_get_previous_state (void ); @@ -10577,8 +11240,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 141 -#define YY_END_OF_BUFFER 142 +#define YY_NUM_RULES 151 +#define YY_END_OF_BUFFER 152 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -10586,50 +11249,52 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int32_t yy_accept[322] = +static yyconst flex_int32_t yy_accept[343] = { 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, 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, 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, 152, 150, + 69, 107, 150, 100, 1, 128, 83, 150, 130, 104, + 86, 85, 133, 113, 132, 150, 125, 138, 89, 144, + 142, 75, 150, 29, 129, 82, 122, 122, 135, 134, + 88, 145, 143, 141, 99, 101, 72, 66, 67, 131, + 36, 58, 37, 38, 34, 35, 39, 3, 2, 30, + 31, 32, 33, 151, 151, 151, 151, 151, 151, 151, + + 48, 151, 151, 55, 151, 151, 69, 112, 111, 108, + 128, 84, 126, 123, 130, 103, 106, 102, 40, 87, + 0, 0, 127, 28, 124, 124, 125, 0, 0, 0, + 139, 140, 76, 77, 64, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 65, 129, 68, 78, 0, 136, + 137, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 73, 74, 71, 36, 37, 38, 34, 35, 39, 3, + 2, 30, 31, 32, 33, 0, 0, 0, 0, 41, + 0, 0, 0, 0, 43, 48, 49, 50, 55, 56, + 57, 110, 42, 126, 105, 0, 0, 127, 80, 0, + + 116, 118, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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 + 0, 0, 79, 0, 0, 109, 0, 0, 81, 117, + 119, 120, 115, 0, 5, 4, 0, 24, 0, 23, + 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 121, 25, 0, 20, + 19, 0, 0, 0, 0, 18, 0, 0, 0, 0, + 0, 0, 0, 62, 63, 47, 0, 0, 54, 0, + 26, 0, 147, 146, 149, 148, 0, 6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, + + 0, 0, 0, 27, 21, 0, 10, 14, 8, 0, + 0, 0, 0, 45, 44, 46, 0, 11, 15, 52, + 51, 53, 0, 12, 16, 9, 0, 0, 0, 0, + 13, 17, 0, 0, 0, 70, 0, 60, 61, 0, + 0, 59 } ; static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; -static yyconst yy_state_type yy_NUL_trans[322] = +static yyconst yy_state_type yy_NUL_trans[343] = { 0, 40, 40, 81, 81, 83, 83, 84, 84, 85, 85, 86, 86, 87, 87, 88, 88, 90, 90, 91, 91, @@ -10639,19 +11304,19 @@ static yyconst yy_state_type yy_NUL_trans[322] = 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, 0, 160, 161, 162, 163, 164, 165, 0, 167, - 168, 169, 170, 0, 0, 0, 0, 0, 0, 0, + 164, 0, 165, 166, 167, 168, 169, 170, 0, 172, + 173, 174, 175, 0, 0, 0, 0, 0, 0, 0, - 181, 182, 183, 184, 185, 186, 0, 0, 0, 0, + 186, 187, 188, 189, 190, 191, 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, - 181, 182, 183, 184, 185, 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 164, 165, 166, 167, 168, 169, 170, + 0, 172, 173, 174, 175, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 186, 187, 188, 189, 190, + 191, 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, @@ -10659,14 +11324,16 @@ static yyconst yy_state_type yy_NUL_trans[322] = 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, 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, + 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 316, 0, 0, 316, 0, 0, 320, 320, - 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 337, 0, 0, 0, 337, 0, 0, 341, + 341, 0 } ; extern int gabc_notes_determination__flex_debug; @@ -10686,7 +11353,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-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -10732,8 +11399,17 @@ static char *before_ledger_length = NULL; static unsigned short ledger_var[2] = { 0, 0 }; static unsigned char staff_lines; static signed char highest_pitch; +static signed char high_ledger_line_pitch; static bool legacy_oriscus_orientation; static unsigned short he_adjustment_index[2] = { 0, 0 }; +static signed char bracket_low_pitch, bracket_high_pitch; +static unsigned short left_bracket_texverb = 0; + +#define LEDGER(WHICH, SPECIFICITY, VALUE) \ + if (LEDGER_##SPECIFICITY > current_note->WHICH##_ledger_specificity) { \ + current_note->WHICH##_ledger_line = VALUE; \ + current_note->WHICH##_ledger_specificity = LEDGER_##SPECIFICITY; \ + } typedef struct slur_info { unsigned short var; @@ -10774,7 +11450,7 @@ static __inline int letter_to_pitch_adjustment(const char letter) { /* LCOV_EXCL_STOP */ } -static __inline char pitch_letter_to_height(const char pitch) { +static __inline signed char pitch_letter_to_height(const char pitch) { char result = pitch - 'a' + LOWEST_PITCH; if (pitch == 'p') { --result; @@ -10784,6 +11460,14 @@ static __inline char pitch_letter_to_height(const char pitch) { _("invalid pitch for %u lines: %c"), (unsigned int)staff_lines, pitch); } + if (left_bracket_texverb) { + if (result < bracket_low_pitch) { + bracket_low_pitch = result; + } + if (result > bracket_high_pitch) { + bracket_high_pitch = result; + } + } return result; } @@ -10803,21 +11487,25 @@ static gregorio_shape punctum_inclinatum(const char orientation) static __inline void lex_add_note(int i, gregorio_shape shape, char signs, char liquescentia) { + signed char height = pitch_letter_to_height(tolower( + (unsigned char)gabc_notes_determination_text[i])); + nbof_isolated_episema = 0; - gregorio_add_note(¤t_note, pitch_letter_to_height( - tolower((unsigned char)gabc_notes_determination_text[i])), - shape, signs, liquescentia, NULL, ¬es_lloc); + gregorio_add_note(¤t_note, height, shape, signs, liquescentia, NULL, + ¬es_lloc); current_note->he_adjustment_index[SO_OVER] = he_adjustment_index[SO_OVER]; current_note->he_adjustment_index[SO_UNDER] = he_adjustment_index[SO_UNDER]; - if (ledger_var[SO_OVER]) { - current_note->supposed_high_ledger_line = true; - current_note->explicit_high_ledger_line = true; + if (height >= high_ledger_line_pitch) { + LEDGER(high, DRAWN, true); + } else if (ledger_var[SO_OVER]) { + LEDGER(high, EXPLICIT, true); } - if (ledger_var[SO_UNDER]) { - current_note->supposed_low_ledger_line = true; - current_note->explicit_low_ledger_line = true; + if (height <= LOW_LEDGER_LINE_PITCH) { + LEDGER(low, DRAWN, true); + } else if (ledger_var[SO_UNDER]) { + LEDGER(low, EXPLICIT, true); } } @@ -11174,15 +11862,88 @@ static void end_var_slur(void) slur[index].start = NULL; } -void parse_hepisema_adjustment(void) +static void left_bracket(void) { - /* [xh:yz{] - * - x indicates l(ow) or h(igh) episema - * - y (optional) for l(ow), m(iddle), or h(igh) vertical position in space - * - z (optional) nudge dimension that starts with + or - - * - { (optional) starts a group - * - at least one of y, z, or w must be provided - * - if y and z are omitted, : may be omitted + if (left_bracket_texverb) { + gregorio_message( + _("cannot add a left bracket before closing the previous one"), + "left_bracket", VERBOSITY_ERROR, 0); + return; + } + + /* when setting the left bracket, temporarily store the point-and-click + * information in the texverb */ + if (notes_lloc.generate_point_and_click) { + gregorio_snprintf(tempstr, sizeof tempstr, "%u:%u:%u", + notes_lloc.first_line, notes_lloc.first_offset, + notes_lloc.first_column + 1); + } else { + tempstr[0] = '\0'; + } + left_bracket_texverb = gregorio_add_texverb_as_note(¤t_note, + gregorio_strdup(tempstr), GRE_TEXVERB_GLYPH, ¬es_lloc); + bracket_low_pitch = MAX_PITCH; + bracket_high_pitch = LOWEST_PITCH; +} + +static void right_bracket(void) +{ + if (!left_bracket_texverb) { + gregorio_message( + _("cannot add a right bracket without a matching left bracket"), + "right_bracket", VERBOSITY_ERROR, 0); + return; + } + + if (bracket_high_pitch < bracket_low_pitch) { + gregorio_message( + _("cannot add brackets without notes between them"), + "right_bracket", VERBOSITY_ERROR, 0); + return; + } + + gregorio_snprintf(tempstr, sizeof tempstr, "\\GreBracket{0}{%d}{%d}{%s}", + bracket_low_pitch, bracket_high_pitch, + gregorio_texverb(left_bracket_texverb)); + gregorio_change_texverb(left_bracket_texverb, gregorio_strdup(tempstr)); + + if (notes_lloc.generate_point_and_click) { + gregorio_snprintf(tempstr, sizeof tempstr, + "\\GreBracket{1}{%d}{%d}{%u:%u:%u}", bracket_low_pitch, + bracket_high_pitch, notes_lloc.first_line, + notes_lloc.first_offset, notes_lloc.first_column + 1); + } else { + gregorio_snprintf(tempstr, sizeof tempstr, + "\\GreBracket{1}{%d}{%d}{}", bracket_low_pitch, + bracket_high_pitch); + } + gregorio_add_texverb_as_note(¤t_note, gregorio_strdup(tempstr), + GRE_TEXVERB_GLYPH, ¬es_lloc); + + left_bracket_texverb = 0; +} + +static void parse_hepisema_adjustment(void) +{ + /* See https://github.com/gregorio-project/gregorio/issues/872 + * + * [xh:yzw] + * + * - x is o(ver) or u(under) + * - y is optional and is + * - l for low in the space (chooses ol or ul depending on x) + * - m for middle of the space + * - h for high in the space (chooses oh or uh depending on x) + * - ol for low in the space as if the episema were over the note + * - oh for high in the space as if the episema were over the note + * - ul for low in the space as if the episema were under the note + * - uh for high in the space as if the episema were under the note + * - z is an optional nudge and must start with + or - + * - w is optional and may be { to start a range or } to end a range. + * + * at least one of y, z, or w must be provided + * if y and z are omitted, the : may be omitted + * y and z are not permitted when w is } */ const gregorio_sign_orientation index = letter_to_sign_orientation( @@ -11270,7 +12031,7 @@ void parse_hepisema_adjustment(void) } } -void end_hepisema_adjustment(void) +static void end_hepisema_adjustment(void) { /* [xh:}] * - x indicates l(ow) or h(igh) episema @@ -11324,6 +12085,11 @@ void gabc_det_notes_finish(void) ledger_var[orientation] = 0; } } + if (left_bracket_texverb) { + gregorio_message(_("unclosed left bracket"), + "gabc_det_notes_finish", VERBOSITY_ERROR, 0); + left_bracket_texverb = 0; + } } @@ -11342,7 +12108,7 @@ void gabc_det_notes_finish(void) -#line 11346 "gabc/gabc-notes-determination-l.c" +#line 12112 "gabc/gabc-notes-determination-l.c" #define INITIAL 0 #define texverbnote 1 @@ -11580,9 +12346,9 @@ YY_DECL } { -#line 680 "gabc/gabc-notes-determination.l" +#line 779 "gabc/gabc-notes-determination.l" -#line 11586 "gabc/gabc-notes-determination-l.c" +#line 12352 "gabc/gabc-notes-determination-l.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -11629,7 +12395,7 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 681 "gabc/gabc-notes-determination.l" +#line 780 "gabc/gabc-notes-determination.l" { BEGIN(comments); } @@ -11637,35 +12403,35 @@ YY_RULE_SETUP case 2: /* rule 2 can match eol */ YY_RULE_SETUP -#line 684 "gabc/gabc-notes-determination.l" +#line 783 "gabc/gabc-notes-determination.l" { BEGIN(INITIAL); } YY_BREAK case 3: YY_RULE_SETUP -#line 687 "gabc/gabc-notes-determination.l" +#line 786 "gabc/gabc-notes-determination.l" { /* ignored */ } YY_BREAK case 4: YY_RULE_SETUP -#line 690 "gabc/gabc-notes-determination.l" +#line 789 "gabc/gabc-notes-determination.l" { BEGIN(choralsign); } YY_BREAK case 5: YY_RULE_SETUP -#line 693 "gabc/gabc-notes-determination.l" +#line 792 "gabc/gabc-notes-determination.l" { BEGIN(choralnabc); } YY_BREAK case 6: YY_RULE_SETUP -#line 696 "gabc/gabc-notes-determination.l" +#line 795 "gabc/gabc-notes-determination.l" { char_for_brace = gabc_notes_determination_text[4]-'0'; BEGIN(overbrace); @@ -11673,7 +12439,7 @@ YY_RULE_SETUP YY_BREAK case 7: YY_RULE_SETUP -#line 700 "gabc/gabc-notes-determination.l" +#line 799 "gabc/gabc-notes-determination.l" { char_for_brace = gabc_notes_determination_text[4]-'0'; BEGIN(underbrace); @@ -11681,7 +12447,7 @@ YY_RULE_SETUP YY_BREAK case 8: YY_RULE_SETUP -#line 704 "gabc/gabc-notes-determination.l" +#line 803 "gabc/gabc-notes-determination.l" { char_for_brace = gabc_notes_determination_text[5]-'0'; BEGIN(overcurlybrace); @@ -11689,7 +12455,7 @@ YY_RULE_SETUP YY_BREAK case 9: YY_RULE_SETUP -#line 708 "gabc/gabc-notes-determination.l" +#line 807 "gabc/gabc-notes-determination.l" { char_for_brace = gabc_notes_determination_text[6]-'0'; BEGIN(overcurlyaccentusbrace); @@ -11697,7 +12463,7 @@ YY_RULE_SETUP YY_BREAK case 10: YY_RULE_SETUP -#line 712 "gabc/gabc-notes-determination.l" +#line 811 "gabc/gabc-notes-determination.l" { if (overbrace_var) { gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0, @@ -11717,7 +12483,7 @@ YY_RULE_SETUP YY_BREAK case 11: YY_RULE_SETUP -#line 728 "gabc/gabc-notes-determination.l" +#line 827 "gabc/gabc-notes-determination.l" { if (underbrace_var) { gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0, @@ -11736,7 +12502,7 @@ YY_RULE_SETUP YY_BREAK case 12: YY_RULE_SETUP -#line 743 "gabc/gabc-notes-determination.l" +#line 842 "gabc/gabc-notes-determination.l" { if (overbrace_var) { gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0, @@ -11756,7 +12522,7 @@ YY_RULE_SETUP YY_BREAK case 13: YY_RULE_SETUP -#line 759 "gabc/gabc-notes-determination.l" +#line 858 "gabc/gabc-notes-determination.l" { if (overbrace_var) { gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0, @@ -11776,7 +12542,7 @@ YY_RULE_SETUP YY_BREAK case 14: YY_RULE_SETUP -#line 775 "gabc/gabc-notes-determination.l" +#line 874 "gabc/gabc-notes-determination.l" { if (!overbrace_var) { gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0, @@ -11799,7 +12565,7 @@ YY_RULE_SETUP YY_BREAK case 15: YY_RULE_SETUP -#line 794 "gabc/gabc-notes-determination.l" +#line 893 "gabc/gabc-notes-determination.l" { if (!underbrace_var) { gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0, @@ -11817,7 +12583,7 @@ YY_RULE_SETUP YY_BREAK case 16: YY_RULE_SETUP -#line 808 "gabc/gabc-notes-determination.l" +#line 907 "gabc/gabc-notes-determination.l" { if (!overbrace_var) { gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0, @@ -11840,7 +12606,7 @@ YY_RULE_SETUP YY_BREAK case 17: YY_RULE_SETUP -#line 827 "gabc/gabc-notes-determination.l" +#line 926 "gabc/gabc-notes-determination.l" { if (!overbrace_var) { gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0, @@ -11863,99 +12629,99 @@ YY_RULE_SETUP YY_BREAK case 18: YY_RULE_SETUP -#line 846 "gabc/gabc-notes-determination.l" +#line 945 "gabc/gabc-notes-determination.l" { if (notesmacros[gabc_notes_determination_text[3]-'0']) { - gregorio_add_texverb_to_note(current_note, - gregorio_strdup(notesmacros[gabc_notes_determination_text[3]-'0'])); + gregorio_add_texverb_to_note(current_note, gregorio_strdup( + notesmacros[gabc_notes_determination_text[3]-'0'])); } else error(); } YY_BREAK case 19: YY_RULE_SETUP -#line 852 "gabc/gabc-notes-determination.l" +#line 951 "gabc/gabc-notes-determination.l" { if (notesmacros[gabc_notes_determination_text[3]-'0']) { - gregorio_add_texverb_as_note(¤t_note, - gregorio_strdup(notesmacros[gabc_notes_determination_text[3]-'0']), - GRE_TEXVERB_GLYPH, ¬es_lloc); + gregorio_add_texverb_as_note(¤t_note, gregorio_strdup( + notesmacros[gabc_notes_determination_text[3]-'0']), + GRE_TEXVERB_GLYPH, ¬es_lloc); } else error(); } YY_BREAK case 20: YY_RULE_SETUP -#line 859 "gabc/gabc-notes-determination.l" +#line 958 "gabc/gabc-notes-determination.l" { if (notesmacros[gabc_notes_determination_text[3]-'0']) { - gregorio_add_texverb_as_note(¤t_note, - gregorio_strdup(notesmacros[gabc_notes_determination_text[3]-'0']), - GRE_TEXVERB_ELEMENT, ¬es_lloc); + gregorio_add_texverb_as_note(¤t_note, gregorio_strdup( + notesmacros[gabc_notes_determination_text[3]-'0']), + GRE_TEXVERB_ELEMENT, ¬es_lloc); } else error(); } YY_BREAK case 21: YY_RULE_SETUP -#line 866 "gabc/gabc-notes-determination.l" +#line 965 "gabc/gabc-notes-determination.l" { if (notesmacros[gabc_notes_determination_text[5]-'0']) { - gregorio_add_texverb_as_note(¤t_note, - gregorio_strdup(notesmacros[gabc_notes_determination_text[5]-'0']), - GRE_TEXVERB_ELEMENT, ¬es_lloc); + gregorio_add_texverb_as_note(¤t_note, gregorio_strdup( + notesmacros[gabc_notes_determination_text[5]-'0']), + GRE_TEXVERB_ELEMENT, ¬es_lloc); } else error(); } YY_BREAK case 22: YY_RULE_SETUP -#line 873 "gabc/gabc-notes-determination.l" +#line 972 "gabc/gabc-notes-determination.l" { BEGIN(texverbnote); } YY_BREAK case 23: YY_RULE_SETUP -#line 876 "gabc/gabc-notes-determination.l" +#line 975 "gabc/gabc-notes-determination.l" { BEGIN(texverbglyph); } YY_BREAK case 24: YY_RULE_SETUP -#line 879 "gabc/gabc-notes-determination.l" +#line 978 "gabc/gabc-notes-determination.l" { BEGIN(texverbelement); } YY_BREAK case 25: YY_RULE_SETUP -#line 882 "gabc/gabc-notes-determination.l" +#line 981 "gabc/gabc-notes-determination.l" { BEGIN(alt); } YY_BREAK case 26: YY_RULE_SETUP -#line 885 "gabc/gabc-notes-determination.l" +#line 984 "gabc/gabc-notes-determination.l" { gregorio_add_nlba_as_note(¤t_note, NLBA_BEGINNING, ¬es_lloc); } YY_BREAK case 27: YY_RULE_SETUP -#line 888 "gabc/gabc-notes-determination.l" +#line 987 "gabc/gabc-notes-determination.l" { gregorio_add_nlba_as_note(¤t_note, NLBA_END, ¬es_lloc); } YY_BREAK case 28: YY_RULE_SETUP -#line 891 "gabc/gabc-notes-determination.l" +#line 990 "gabc/gabc-notes-determination.l" { gregorio_start_autofuse(¤t_note, ¬es_lloc); } YY_BREAK case 29: YY_RULE_SETUP -#line 894 "gabc/gabc-notes-determination.l" +#line 993 "gabc/gabc-notes-determination.l" { gregorio_end_autofuse(¤t_note, ¬es_lloc); } @@ -11963,7 +12729,7 @@ YY_RULE_SETUP case 30: /* rule 30 can match eol */ YY_RULE_SETUP -#line 897 "gabc/gabc-notes-determination.l" +#line 996 "gabc/gabc-notes-determination.l" { gregorio_snprintf(tempstr, sizeof tempstr, "\\GreOverBrace{%s}{0pt}{0pt}{%d}", @@ -11974,7 +12740,7 @@ YY_RULE_SETUP case 31: /* rule 31 can match eol */ YY_RULE_SETUP -#line 903 "gabc/gabc-notes-determination.l" +#line 1002 "gabc/gabc-notes-determination.l" { gregorio_snprintf(tempstr, sizeof tempstr, "\\GreUnderBrace{%s}{0pt}{0pt}{%d}", @@ -11985,7 +12751,7 @@ YY_RULE_SETUP case 32: /* rule 32 can match eol */ YY_RULE_SETUP -#line 909 "gabc/gabc-notes-determination.l" +#line 1008 "gabc/gabc-notes-determination.l" { gregorio_snprintf(tempstr, sizeof tempstr, "\\GreOverCurlyBrace{%s}{0pt}{0pt}{%d}{0}", @@ -11996,7 +12762,7 @@ YY_RULE_SETUP case 33: /* rule 33 can match eol */ YY_RULE_SETUP -#line 915 "gabc/gabc-notes-determination.l" +#line 1014 "gabc/gabc-notes-determination.l" { gregorio_snprintf(tempstr, sizeof tempstr, "\\GreOverCurlyBrace{%s}{0pt}{0pt}{%d}{1}", @@ -12007,7 +12773,7 @@ YY_RULE_SETUP case 34: /* rule 34 can match eol */ YY_RULE_SETUP -#line 921 "gabc/gabc-notes-determination.l" +#line 1020 "gabc/gabc-notes-determination.l" { gregorio_add_cs_to_note(¤t_note, gregorio_strdup(gabc_notes_determination_text), false); @@ -12016,7 +12782,7 @@ YY_RULE_SETUP case 35: /* rule 35 can match eol */ YY_RULE_SETUP -#line 925 "gabc/gabc-notes-determination.l" +#line 1024 "gabc/gabc-notes-determination.l" { gregorio_add_cs_to_note(¤t_note, gregorio_strdup(gabc_notes_determination_text), true); @@ -12025,7 +12791,7 @@ YY_RULE_SETUP case 36: /* rule 36 can match eol */ YY_RULE_SETUP -#line 929 "gabc/gabc-notes-determination.l" +#line 1028 "gabc/gabc-notes-determination.l" { gregorio_add_texverb_to_note(current_note, gregorio_strdup(gabc_notes_determination_text)); @@ -12034,7 +12800,7 @@ YY_RULE_SETUP case 37: /* rule 37 can match eol */ YY_RULE_SETUP -#line 933 "gabc/gabc-notes-determination.l" +#line 1032 "gabc/gabc-notes-determination.l" { gregorio_add_texverb_as_note(¤t_note, gregorio_strdup(gabc_notes_determination_text), @@ -12044,7 +12810,7 @@ YY_RULE_SETUP case 38: /* rule 38 can match eol */ YY_RULE_SETUP -#line 938 "gabc/gabc-notes-determination.l" +#line 1037 "gabc/gabc-notes-determination.l" { gregorio_add_texverb_as_note(¤t_note, gregorio_strdup(gabc_notes_determination_text), @@ -12054,7 +12820,7 @@ YY_RULE_SETUP case 39: /* rule 39 can match eol */ YY_RULE_SETUP -#line 943 "gabc/gabc-notes-determination.l" +#line 1042 "gabc/gabc-notes-determination.l" { gregorio_add_texverb_as_note(¤t_note, gregorio_strdup(gabc_notes_determination_text), GRE_ALT, @@ -12063,7 +12829,7 @@ YY_RULE_SETUP YY_BREAK case 40: YY_RULE_SETUP -#line 948 "gabc/gabc-notes-determination.l" +#line 1047 "gabc/gabc-notes-determination.l" { BEGIN(space); } @@ -12073,7 +12839,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 951 "gabc/gabc-notes-determination.l" +#line 1050 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_AD_HOC_SPACE, gregorio_strdup(gabc_notes_determination_text), ¬es_lloc); @@ -12081,7 +12847,7 @@ YY_RULE_SETUP YY_BREAK case 42: YY_RULE_SETUP -#line 955 "gabc/gabc-notes-determination.l" +#line 1054 "gabc/gabc-notes-determination.l" { BEGIN(nbspace); } @@ -12091,7 +12857,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 958 "gabc/gabc-notes-determination.l" +#line 1057 "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); @@ -12099,221 +12865,270 @@ YY_RULE_SETUP YY_BREAK case 44: YY_RULE_SETUP -#line 962 "gabc/gabc-notes-determination.l" +#line 1061 "gabc/gabc-notes-determination.l" { - end_variable_ledger(SO_OVER); + LEDGER(high, EXPLICITLY_DRAWN, true); } YY_BREAK case 45: YY_RULE_SETUP -#line 965 "gabc/gabc-notes-determination.l" +#line 1064 "gabc/gabc-notes-determination.l" { - BEGIN(overledger); + LEDGER(high, EXPLICITLY_DRAWN, false); } YY_BREAK case 46: -/* rule 46 can match eol */ YY_RULE_SETUP -#line 968 "gabc/gabc-notes-determination.l" +#line 1067 "gabc/gabc-notes-determination.l" +{ + end_variable_ledger(SO_OVER); + } + YY_BREAK +case 47: +YY_RULE_SETUP +#line 1070 "gabc/gabc-notes-determination.l" +{ + BEGIN(overledger); + } + YY_BREAK +case 48: +/* rule 48 can match eol */ +YY_RULE_SETUP +#line 1073 "gabc/gabc-notes-determination.l" { save_before_ledger(gabc_notes_determination_text); BEGIN(overledger2); } YY_BREAK -case 47: -/* rule 47 can match eol */ +case 49: +/* rule 49 can match eol */ YY_RULE_SETUP -#line 972 "gabc/gabc-notes-determination.l" +#line 1077 "gabc/gabc-notes-determination.l" { add_static_ledger(SO_OVER, gabc_notes_determination_text); BEGIN(endledger); } YY_BREAK -case 48: -/* rule 48 can match eol */ +case 50: +/* rule 50 can match eol */ YY_RULE_SETUP -#line 976 "gabc/gabc-notes-determination.l" +#line 1081 "gabc/gabc-notes-determination.l" { add_variable_ledger(SO_OVER, gabc_notes_determination_text); BEGIN(endledger); } YY_BREAK -case 49: +case 51: +YY_RULE_SETUP +#line 1085 "gabc/gabc-notes-determination.l" +{ + LEDGER(low, EXPLICITLY_DRAWN, true); + } + YY_BREAK +case 52: +YY_RULE_SETUP +#line 1088 "gabc/gabc-notes-determination.l" +{ + LEDGER(low, EXPLICITLY_DRAWN, false); + } + YY_BREAK +case 53: YY_RULE_SETUP -#line 980 "gabc/gabc-notes-determination.l" +#line 1091 "gabc/gabc-notes-determination.l" { end_variable_ledger(SO_UNDER); } YY_BREAK -case 50: +case 54: YY_RULE_SETUP -#line 983 "gabc/gabc-notes-determination.l" +#line 1094 "gabc/gabc-notes-determination.l" { BEGIN(underledger); } YY_BREAK -case 51: -/* rule 51 can match eol */ +case 55: +/* rule 55 can match eol */ YY_RULE_SETUP -#line 986 "gabc/gabc-notes-determination.l" +#line 1097 "gabc/gabc-notes-determination.l" { save_before_ledger(gabc_notes_determination_text); BEGIN(underledger2); } YY_BREAK -case 52: -/* rule 52 can match eol */ +case 56: +/* rule 56 can match eol */ YY_RULE_SETUP -#line 990 "gabc/gabc-notes-determination.l" +#line 1101 "gabc/gabc-notes-determination.l" { add_static_ledger(SO_UNDER, gabc_notes_determination_text); BEGIN(endledger); } YY_BREAK -case 53: -/* rule 53 can match eol */ +case 57: +/* rule 57 can match eol */ YY_RULE_SETUP -#line 994 "gabc/gabc-notes-determination.l" +#line 1105 "gabc/gabc-notes-determination.l" { add_variable_ledger(SO_UNDER, gabc_notes_determination_text); BEGIN(endledger); } YY_BREAK -case 54: +case 58: YY_RULE_SETUP -#line 998 "gabc/gabc-notes-determination.l" +#line 1109 "gabc/gabc-notes-determination.l" { BEGIN(INITIAL); } YY_BREAK -case 55: -/* rule 55 can match eol */ +case 59: +/* rule 59 can match eol */ YY_RULE_SETUP -#line 1001 "gabc/gabc-notes-determination.l" +#line 1112 "gabc/gabc-notes-determination.l" { parse_slur(); } YY_BREAK -case 56: +case 60: YY_RULE_SETUP -#line 1004 "gabc/gabc-notes-determination.l" +#line 1115 "gabc/gabc-notes-determination.l" { start_var_slur(); } YY_BREAK -case 57: +case 61: YY_RULE_SETUP -#line 1007 "gabc/gabc-notes-determination.l" +#line 1118 "gabc/gabc-notes-determination.l" { end_var_slur(); } YY_BREAK -case 58: -/* rule 58 can match eol */ +case 62: +/* rule 62 can match eol */ YY_RULE_SETUP -#line 1014 "gabc/gabc-notes-determination.l" +#line 1125 "gabc/gabc-notes-determination.l" { parse_hepisema_adjustment(); } YY_BREAK -case 59: +case 63: YY_RULE_SETUP -#line 1017 "gabc/gabc-notes-determination.l" +#line 1128 "gabc/gabc-notes-determination.l" { end_hepisema_adjustment(); } YY_BREAK -case 60: +case 64: YY_RULE_SETUP -#line 1020 "gabc/gabc-notes-determination.l" +#line 1131 "gabc/gabc-notes-determination.l" +{ + left_bracket(); + } + YY_BREAK +case 65: +YY_RULE_SETUP +#line 1134 "gabc/gabc-notes-determination.l" +{ + right_bracket(); + } + YY_BREAK +case 66: +YY_RULE_SETUP +#line 1137 "gabc/gabc-notes-determination.l" { gregorio_add_texverb_as_note(¤t_note, gregorio_strdup("\\hbox to 0pt{"), GRE_TEXVERB_ELEMENT, ¬es_lloc); } YY_BREAK -case 61: +case 67: YY_RULE_SETUP -#line 1025 "gabc/gabc-notes-determination.l" +#line 1142 "gabc/gabc-notes-determination.l" { gregorio_add_texverb_as_note(¤t_note, gregorio_strdup("\\hss%\n}%\n\\GreNoBreak\\relax "), GRE_TEXVERB_ELEMENT, ¬es_lloc); } YY_BREAK -case 62: +case 68: YY_RULE_SETUP -#line 1030 "gabc/gabc-notes-determination.l" +#line 1147 "gabc/gabc-notes-determination.l" { gregorio_add_manual_custos_as_note(¤t_note, pitch_letter_to_height(gabc_notes_determination_text[0]), ¬es_lloc); } YY_BREAK -case 63: -/* rule 63 can match eol */ +case 69: +/* rule 69 can match eol */ YY_RULE_SETUP -#line 1035 "gabc/gabc-notes-determination.l" +#line 1152 "gabc/gabc-notes-determination.l" /* ignore ends of line and tabs */; YY_BREAK -case 64: +case 70: YY_RULE_SETUP -#line 1036 "gabc/gabc-notes-determination.l" +#line 1153 "gabc/gabc-notes-determination.l" { - gregorio_add_custo_as_note(¤t_note, ¬es_lloc); + gregorio_add_suppress_custos_as_note(¤t_note, ¬es_lloc); } YY_BREAK -case 65: +case 71: +YY_RULE_SETUP +#line 1156 "gabc/gabc-notes-determination.l" +{ + gregorio_add_custos_as_note(¤t_note, ¬es_lloc); + } + YY_BREAK +case 72: YY_RULE_SETUP -#line 1039 "gabc/gabc-notes-determination.l" +#line 1159 "gabc/gabc-notes-determination.l" { gregorio_add_end_of_line_as_note(¤t_note, false, false, false, ¬es_lloc); } YY_BREAK -case 66: +case 73: YY_RULE_SETUP -#line 1043 "gabc/gabc-notes-determination.l" +#line 1163 "gabc/gabc-notes-determination.l" { gregorio_add_end_of_line_as_note(¤t_note, false, true, true, ¬es_lloc); } YY_BREAK -case 67: +case 74: YY_RULE_SETUP -#line 1047 "gabc/gabc-notes-determination.l" +#line 1167 "gabc/gabc-notes-determination.l" { gregorio_add_end_of_line_as_note(¤t_note, false, true, false, ¬es_lloc); } YY_BREAK -case 68: +case 75: YY_RULE_SETUP -#line 1051 "gabc/gabc-notes-determination.l" +#line 1171 "gabc/gabc-notes-determination.l" { gregorio_add_end_of_line_as_note(¤t_note, true, false, false, ¬es_lloc); } YY_BREAK -case 69: +case 76: YY_RULE_SETUP -#line 1055 "gabc/gabc-notes-determination.l" +#line 1175 "gabc/gabc-notes-determination.l" { gregorio_add_end_of_line_as_note(¤t_note, true, true, true, ¬es_lloc); } YY_BREAK -case 70: +case 77: YY_RULE_SETUP -#line 1059 "gabc/gabc-notes-determination.l" +#line 1179 "gabc/gabc-notes-determination.l" { gregorio_add_end_of_line_as_note(¤t_note, true, true, false, ¬es_lloc); } YY_BREAK -case 71: +case 78: YY_RULE_SETUP -#line 1063 "gabc/gabc-notes-determination.l" +#line 1183 "gabc/gabc-notes-determination.l" { gregorio_add_clef_as_note(¤t_note, letter_to_clef(gabc_notes_determination_text[0]), @@ -12321,9 +13136,9 @@ YY_RULE_SETUP ¬es_lloc); } YY_BREAK -case 72: +case 79: YY_RULE_SETUP -#line 1069 "gabc/gabc-notes-determination.l" +#line 1189 "gabc/gabc-notes-determination.l" { gregorio_add_clef_as_note(¤t_note, letter_to_clef(gabc_notes_determination_text[0]), @@ -12331,545 +13146,562 @@ YY_RULE_SETUP ¬es_lloc); } YY_BREAK -case 73: +case 80: YY_RULE_SETUP -#line 1075 "gabc/gabc-notes-determination.l" +#line 1195 "gabc/gabc-notes-determination.l" { gregorio_add_secondary_clef_to_note(current_note, letter_to_clef(gabc_notes_determination_text[1]), parse_clef_line(gabc_notes_determination_text[2]), false); } YY_BREAK -case 74: +case 81: YY_RULE_SETUP -#line 1080 "gabc/gabc-notes-determination.l" +#line 1200 "gabc/gabc-notes-determination.l" { gregorio_add_secondary_clef_to_note(current_note, letter_to_clef(gabc_notes_determination_text[1]), parse_clef_line(gabc_notes_determination_text[3]), true); } YY_BREAK -case 75: +case 82: YY_RULE_SETUP -#line 1085 "gabc/gabc-notes-determination.l" +#line 1205 "gabc/gabc-notes-determination.l" { add_bar_as_note(B_VIRGULA); } YY_BREAK -case 76: +case 83: YY_RULE_SETUP -#line 1088 "gabc/gabc-notes-determination.l" +#line 1208 "gabc/gabc-notes-determination.l" { add_bar_as_note(B_DIVISIO_MINIMA); } YY_BREAK -case 77: +case 84: YY_RULE_SETUP -#line 1091 "gabc/gabc-notes-determination.l" +#line 1211 "gabc/gabc-notes-determination.l" { add_bar_as_note(parse_dominican_bar(gabc_notes_determination_text[1])); } YY_BREAK -case 78: +case 85: YY_RULE_SETUP -#line 1094 "gabc/gabc-notes-determination.l" +#line 1214 "gabc/gabc-notes-determination.l" { add_bar_as_note(B_DIVISIO_MINOR); } YY_BREAK -case 79: +case 86: YY_RULE_SETUP -#line 1097 "gabc/gabc-notes-determination.l" +#line 1217 "gabc/gabc-notes-determination.l" { add_bar_as_note(B_DIVISIO_MAIOR); } YY_BREAK -case 80: +case 87: YY_RULE_SETUP -#line 1100 "gabc/gabc-notes-determination.l" +#line 1220 "gabc/gabc-notes-determination.l" { add_bar_as_note(B_DIVISIO_FINALIS); } YY_BREAK -case 81: +case 88: YY_RULE_SETUP -#line 1103 "gabc/gabc-notes-determination.l" +#line 1223 "gabc/gabc-notes-determination.l" { - gregorio_change_shape(current_note, S_PUNCTUM_CAVUM, - legacy_oriscus_orientation); + gregorio_add_cavum(current_note); } YY_BREAK -case 82: +case 89: YY_RULE_SETUP -#line 1107 "gabc/gabc-notes-determination.l" +#line 1226 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_LINEA_PUNCTUM, legacy_oriscus_orientation); } YY_BREAK -case 83: +case 90: YY_RULE_SETUP -#line 1111 "gabc/gabc-notes-determination.l" +#line 1230 "gabc/gabc-notes-determination.l" { - gregorio_change_shape(current_note, S_LINEA_PUNCTUM_CAVUM, + gregorio_change_shape(current_note, S_LINEA_PUNCTUM, legacy_oriscus_orientation); + gregorio_add_cavum(current_note); } YY_BREAK -case 84: +case 91: YY_RULE_SETUP -#line 1115 "gabc/gabc-notes-determination.l" +#line 1235 "gabc/gabc-notes-determination.l" { gregorio_add_special_sign(current_note, _ACCENTUS); } YY_BREAK -case 85: +case 92: YY_RULE_SETUP -#line 1118 "gabc/gabc-notes-determination.l" +#line 1238 "gabc/gabc-notes-determination.l" { gregorio_add_special_sign(current_note, _ACCENTUS_REVERSUS); } YY_BREAK -case 86: +case 93: YY_RULE_SETUP -#line 1121 "gabc/gabc-notes-determination.l" +#line 1241 "gabc/gabc-notes-determination.l" { gregorio_add_special_sign(current_note, _CIRCULUS); } YY_BREAK -case 87: +case 94: YY_RULE_SETUP -#line 1124 "gabc/gabc-notes-determination.l" +#line 1244 "gabc/gabc-notes-determination.l" { gregorio_add_special_sign(current_note, _SEMI_CIRCULUS); } YY_BREAK -case 88: +case 95: YY_RULE_SETUP -#line 1127 "gabc/gabc-notes-determination.l" +#line 1247 "gabc/gabc-notes-determination.l" { gregorio_add_special_sign(current_note, _SEMI_CIRCULUS_REVERSUS); } YY_BREAK -case 89: +case 96: YY_RULE_SETUP -#line 1130 "gabc/gabc-notes-determination.l" +#line 1250 "gabc/gabc-notes-determination.l" +{ + gregorio_add_special_sign(current_note, _MUSICA_FICTA_FLAT); + } + YY_BREAK +case 97: +YY_RULE_SETUP +#line 1253 "gabc/gabc-notes-determination.l" +{ + gregorio_add_special_sign(current_note, _MUSICA_FICTA_NATURAL); + } + YY_BREAK +case 98: +YY_RULE_SETUP +#line 1256 "gabc/gabc-notes-determination.l" +{ + gregorio_add_special_sign(current_note, _MUSICA_FICTA_SHARP); + } + YY_BREAK +case 99: +YY_RULE_SETUP +#line 1259 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_FLAT, legacy_oriscus_orientation); } YY_BREAK -case 90: +case 100: YY_RULE_SETUP -#line 1133 "gabc/gabc-notes-determination.l" +#line 1262 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_SHARP, legacy_oriscus_orientation); } YY_BREAK -case 91: +case 101: YY_RULE_SETUP -#line 1137 "gabc/gabc-notes-determination.l" +#line 1266 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_NATURAL, legacy_oriscus_orientation); } YY_BREAK -case 92: +case 102: YY_RULE_SETUP -#line 1141 "gabc/gabc-notes-determination.l" +#line 1270 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_HALF_SPACE, NULL, ¬es_lloc); } YY_BREAK -case 93: +case 103: YY_RULE_SETUP -#line 1145 "gabc/gabc-notes-determination.l" +#line 1274 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_INTERGLYPH_SPACE, NULL, ¬es_lloc); } YY_BREAK -case 94: +case 104: YY_RULE_SETUP -#line 1149 "gabc/gabc-notes-determination.l" +#line 1278 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_NEUMATIC_CUT, NULL, ¬es_lloc); } YY_BREAK -case 95: +case 105: *yy_cp = (yy_hold_char); /* undo effects of setting up gabc_notes_determination_text */ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up gabc_notes_determination_text again */ YY_RULE_SETUP -#line 1153 "gabc/gabc-notes-determination.l" +#line 1282 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_NEUMATIC_CUT, NULL, ¬es_lloc); } YY_BREAK -case 96: +case 106: YY_RULE_SETUP -#line 1157 "gabc/gabc-notes-determination.l" +#line 1286 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_LARGER_SPACE, NULL, ¬es_lloc); } YY_BREAK -case 97: +case 107: YY_RULE_SETUP -#line 1161 "gabc/gabc-notes-determination.l" +#line 1290 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_GLYPH_SPACE, NULL, ¬es_lloc); } YY_BREAK -case 98: +case 108: YY_RULE_SETUP -#line 1165 "gabc/gabc-notes-determination.l" +#line 1294 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_NEUMATIC_CUT_NB, NULL, ¬es_lloc); } YY_BREAK -case 99: +case 109: *yy_cp = (yy_hold_char); /* undo effects of setting up gabc_notes_determination_text */ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up gabc_notes_determination_text again */ YY_RULE_SETUP -#line 1169 "gabc/gabc-notes-determination.l" +#line 1298 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_NEUMATIC_CUT_NB, NULL, ¬es_lloc); } YY_BREAK -case 100: +case 110: YY_RULE_SETUP -#line 1173 "gabc/gabc-notes-determination.l" +#line 1302 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_LARGER_SPACE_NB, NULL, ¬es_lloc); } YY_BREAK -case 101: +case 111: YY_RULE_SETUP -#line 1177 "gabc/gabc-notes-determination.l" +#line 1306 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_GLYPH_SPACE_NB, NULL, ¬es_lloc); } YY_BREAK -case 102: -/* rule 102 can match eol */ +case 112: +/* rule 112 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up gabc_notes_determination_text */ 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 1181 "gabc/gabc-notes-determination.l" +#line 1310 "gabc/gabc-notes-determination.l" { gregorio_add_space_as_note(¤t_note, SP_ZERO_WIDTH, NULL, ¬es_lloc); } YY_BREAK -case 103: +case 113: YY_RULE_SETUP -#line 1185 "gabc/gabc-notes-determination.l" +#line 1314 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_LINEA, legacy_oriscus_orientation); } YY_BREAK -case 104: +case 114: YY_RULE_SETUP -#line 1189 "gabc/gabc-notes-determination.l" +#line 1318 "gabc/gabc-notes-determination.l" { lex_add_note(0, S_BIVIRGA, _NO_SIGN, L_NO_LIQUESCENTIA); } YY_BREAK -case 105: +case 115: YY_RULE_SETUP -#line 1192 "gabc/gabc-notes-determination.l" +#line 1321 "gabc/gabc-notes-determination.l" { lex_add_note(0, S_TRIVIRGA, _NO_SIGN, L_NO_LIQUESCENTIA); } YY_BREAK -case 106: +case 116: YY_RULE_SETUP -#line 1195 "gabc/gabc-notes-determination.l" +#line 1324 "gabc/gabc-notes-determination.l" { lex_add_note(0, S_BIVIRGA, _NO_SIGN, L_NO_LIQUESCENTIA); } YY_BREAK -case 107: +case 117: YY_RULE_SETUP -#line 1198 "gabc/gabc-notes-determination.l" +#line 1327 "gabc/gabc-notes-determination.l" { lex_add_note(0, S_TRIVIRGA, _NO_SIGN, L_NO_LIQUESCENTIA); } YY_BREAK -case 108: +case 118: YY_RULE_SETUP -#line 1201 "gabc/gabc-notes-determination.l" +#line 1330 "gabc/gabc-notes-determination.l" { lex_add_note(0, S_DISTROPHA, _NO_SIGN, L_NO_LIQUESCENTIA); } YY_BREAK -case 109: +case 119: YY_RULE_SETUP -#line 1204 "gabc/gabc-notes-determination.l" +#line 1333 "gabc/gabc-notes-determination.l" { lex_add_note(0, S_DISTROPHA, _NO_SIGN, L_AUCTUS_ASCENDENS); } YY_BREAK -case 110: +case 120: YY_RULE_SETUP -#line 1207 "gabc/gabc-notes-determination.l" +#line 1336 "gabc/gabc-notes-determination.l" { lex_add_note(0, S_TRISTROPHA, _NO_SIGN, L_NO_LIQUESCENTIA); } YY_BREAK -case 111: +case 121: YY_RULE_SETUP -#line 1210 "gabc/gabc-notes-determination.l" +#line 1339 "gabc/gabc-notes-determination.l" { lex_add_note(0, S_TRISTROPHA, _NO_SIGN, L_AUCTUS_ASCENDENS); } YY_BREAK -case 112: +case 122: YY_RULE_SETUP -#line 1213 "gabc/gabc-notes-determination.l" +#line 1342 "gabc/gabc-notes-determination.l" { lex_add_note(0, S_PUNCTUM, _NO_SIGN, L_NO_LIQUESCENTIA); } YY_BREAK -case 113: +case 123: YY_RULE_SETUP -#line 1216 "gabc/gabc-notes-determination.l" +#line 1345 "gabc/gabc-notes-determination.l" { lex_add_note(1, S_PUNCTUM, _NO_SIGN, L_INITIO_DEBILIS); } YY_BREAK -case 114: +case 124: YY_RULE_SETUP -#line 1219 "gabc/gabc-notes-determination.l" +#line 1348 "gabc/gabc-notes-determination.l" { lex_add_note(1, S_PUNCTUM, _NO_SIGN, L_FUSED); } YY_BREAK -case 115: +case 125: YY_RULE_SETUP -#line 1222 "gabc/gabc-notes-determination.l" +#line 1351 "gabc/gabc-notes-determination.l" { lex_add_note(0, punctum_inclinatum(gabc_notes_determination_text[1]), _NO_SIGN, L_NO_LIQUESCENTIA); } YY_BREAK -case 116: +case 126: YY_RULE_SETUP -#line 1226 "gabc/gabc-notes-determination.l" +#line 1355 "gabc/gabc-notes-determination.l" { lex_add_note(1, punctum_inclinatum(gabc_notes_determination_text[2]), _NO_SIGN, L_INITIO_DEBILIS); } YY_BREAK -case 117: +case 127: YY_RULE_SETUP -#line 1230 "gabc/gabc-notes-determination.l" +#line 1359 "gabc/gabc-notes-determination.l" { lex_add_note(1, punctum_inclinatum(gabc_notes_determination_text[2]), _NO_SIGN, L_FUSED); } YY_BREAK -case 118: +case 128: YY_RULE_SETUP -#line 1234 "gabc/gabc-notes-determination.l" +#line 1363 "gabc/gabc-notes-determination.l" { add_sign(_V_EPISEMA); } YY_BREAK -case 119: +case 129: YY_RULE_SETUP -#line 1237 "gabc/gabc-notes-determination.l" +#line 1366 "gabc/gabc-notes-determination.l" { add_h_episema(); } YY_BREAK -case 120: +case 130: YY_RULE_SETUP -#line 1240 "gabc/gabc-notes-determination.l" +#line 1369 "gabc/gabc-notes-determination.l" { add_sign(_PUNCTUM_MORA); } YY_BREAK -case 121: +case 131: YY_RULE_SETUP -#line 1243 "gabc/gabc-notes-determination.l" +#line 1372 "gabc/gabc-notes-determination.l" { gregorio_add_tail_liquescentia(current_note, L_DEMINUTUS, legacy_oriscus_orientation); } YY_BREAK -case 122: +case 132: YY_RULE_SETUP -#line 1247 "gabc/gabc-notes-determination.l" +#line 1376 "gabc/gabc-notes-determination.l" { gregorio_add_tail_liquescentia(current_note, L_AUCTUS_DESCENDENS, legacy_oriscus_orientation); } YY_BREAK -case 123: +case 133: YY_RULE_SETUP -#line 1251 "gabc/gabc-notes-determination.l" +#line 1380 "gabc/gabc-notes-determination.l" { gregorio_add_tail_liquescentia(current_note, L_AUCTUS_ASCENDENS, legacy_oriscus_orientation); } YY_BREAK -case 124: +case 134: YY_RULE_SETUP -#line 1255 "gabc/gabc-notes-determination.l" +#line 1384 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_QUADRATUM, legacy_oriscus_orientation); } YY_BREAK -case 125: +case 135: YY_RULE_SETUP -#line 1259 "gabc/gabc-notes-determination.l" +#line 1388 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_ORISCUS_UNDETERMINED, legacy_oriscus_orientation); } YY_BREAK -case 126: +case 136: YY_RULE_SETUP -#line 1263 "gabc/gabc-notes-determination.l" +#line 1392 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_ORISCUS_DESCENDENS, legacy_oriscus_orientation); } YY_BREAK -case 127: +case 137: YY_RULE_SETUP -#line 1267 "gabc/gabc-notes-determination.l" +#line 1396 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_ORISCUS_ASCENDENS, legacy_oriscus_orientation); } YY_BREAK -case 128: +case 138: YY_RULE_SETUP -#line 1271 "gabc/gabc-notes-determination.l" +#line 1400 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_ORISCUS_SCAPUS_UNDETERMINED, legacy_oriscus_orientation); } YY_BREAK -case 129: +case 139: YY_RULE_SETUP -#line 1275 "gabc/gabc-notes-determination.l" +#line 1404 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_ORISCUS_SCAPUS_DESCENDENS, legacy_oriscus_orientation); } YY_BREAK -case 130: +case 140: YY_RULE_SETUP -#line 1279 "gabc/gabc-notes-determination.l" +#line 1408 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_ORISCUS_SCAPUS_ASCENDENS, legacy_oriscus_orientation); } YY_BREAK -case 131: +case 141: YY_RULE_SETUP -#line 1283 "gabc/gabc-notes-determination.l" +#line 1412 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_QUILISMA, legacy_oriscus_orientation); } YY_BREAK -case 132: +case 142: YY_RULE_SETUP -#line 1287 "gabc/gabc-notes-determination.l" +#line 1416 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_QUILISMA_QUADRATUM, legacy_oriscus_orientation); } YY_BREAK -case 133: +case 143: YY_RULE_SETUP -#line 1291 "gabc/gabc-notes-determination.l" +#line 1420 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_VIRGA, legacy_oriscus_orientation); } YY_BREAK -case 134: +case 144: YY_RULE_SETUP -#line 1295 "gabc/gabc-notes-determination.l" +#line 1424 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_VIRGA_REVERSA, legacy_oriscus_orientation); } YY_BREAK -case 135: +case 145: YY_RULE_SETUP -#line 1299 "gabc/gabc-notes-determination.l" +#line 1428 "gabc/gabc-notes-determination.l" { gregorio_change_shape(current_note, S_STROPHA, legacy_oriscus_orientation); } YY_BREAK -case 136: +case 146: YY_RULE_SETUP -#line 1303 "gabc/gabc-notes-determination.l" +#line 1432 "gabc/gabc-notes-determination.l" { - current_note->supposed_high_ledger_line = true; - current_note->explicit_high_ledger_line = true; + LEDGER(high, EXPLICIT, true); } YY_BREAK -case 137: +case 147: YY_RULE_SETUP -#line 1307 "gabc/gabc-notes-determination.l" +#line 1435 "gabc/gabc-notes-determination.l" { - current_note->supposed_high_ledger_line = false; - current_note->explicit_high_ledger_line = true; + LEDGER(high, EXPLICIT, false); } YY_BREAK -case 138: +case 148: YY_RULE_SETUP -#line 1311 "gabc/gabc-notes-determination.l" +#line 1438 "gabc/gabc-notes-determination.l" { - current_note->supposed_low_ledger_line = true; - current_note->explicit_low_ledger_line = true; + LEDGER(low, EXPLICIT, true); } YY_BREAK -case 139: +case 149: YY_RULE_SETUP -#line 1315 "gabc/gabc-notes-determination.l" +#line 1441 "gabc/gabc-notes-determination.l" { - current_note->supposed_low_ledger_line = false; - current_note->explicit_low_ledger_line = true; + LEDGER(low, EXPLICIT, false); } YY_BREAK -case 140: -/* rule 140 can match eol */ +case 150: +/* rule 150 can match eol */ YY_RULE_SETUP -#line 1319 "gabc/gabc-notes-determination.l" +#line 1444 "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 141: +case 151: YY_RULE_SETUP -#line 1325 "gabc/gabc-notes-determination.l" +#line 1450 "gabc/gabc-notes-determination.l" ECHO; YY_BREAK -#line 12873 "gabc/gabc-notes-determination-l.c" +#line 13705 "gabc/gabc-notes-determination-l.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(texverbnote): case YY_STATE_EOF(texverbglyph): @@ -13854,7 +14686,7 @@ void gabc_notes_determination_free (void * ptr ) #define YYTABLES_NAME "yytables" -#line 1325 "gabc/gabc-notes-determination.l" +#line 1450 "gabc/gabc-notes-determination.l" @@ -13871,9 +14703,11 @@ gregorio_note *gabc_det_notes_from_string(char *str, char *newmacros[10], notes_lloc.last_line = loc->first_line; notes_lloc.last_column = loc->first_column; notes_lloc.last_offset = loc->first_offset; + notes_lloc.generate_point_and_click = loc->generate_point_and_click; staff_lines = score->staff_lines; highest_pitch = score->highest_pitch; + high_ledger_line_pitch = score->high_ledger_line_pitch; legacy_oriscus_orientation = score->legacy_oriscus_orientation; /* a small optimization could uccur here: we could do it only once at the 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 b5a53d1f094..dd02ffe1a21 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-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -49,8 +49,17 @@ static char *before_ledger_length = NULL; static unsigned short ledger_var[2] = { 0, 0 }; static unsigned char staff_lines; static signed char highest_pitch; +static signed char high_ledger_line_pitch; static bool legacy_oriscus_orientation; static unsigned short he_adjustment_index[2] = { 0, 0 }; +static signed char bracket_low_pitch, bracket_high_pitch; +static unsigned short left_bracket_texverb = 0; + +#define LEDGER(WHICH, SPECIFICITY, VALUE) \ + if (LEDGER_##SPECIFICITY > current_note->WHICH##_ledger_specificity) { \ + current_note->WHICH##_ledger_line = VALUE; \ + current_note->WHICH##_ledger_specificity = LEDGER_##SPECIFICITY; \ + } typedef struct slur_info { unsigned short var; @@ -91,7 +100,7 @@ static __inline int letter_to_pitch_adjustment(const char letter) { /* LCOV_EXCL_STOP */ } -static __inline char pitch_letter_to_height(const char pitch) { +static __inline signed char pitch_letter_to_height(const char pitch) { char result = pitch - 'a' + LOWEST_PITCH; if (pitch == 'p') { --result; @@ -101,6 +110,14 @@ static __inline char pitch_letter_to_height(const char pitch) { _("invalid pitch for %u lines: %c"), (unsigned int)staff_lines, pitch); } + if (left_bracket_texverb) { + if (result < bracket_low_pitch) { + bracket_low_pitch = result; + } + if (result > bracket_high_pitch) { + bracket_high_pitch = result; + } + } return result; } @@ -120,21 +137,25 @@ static gregorio_shape punctum_inclinatum(const char orientation) static __inline void lex_add_note(int i, gregorio_shape shape, char signs, char liquescentia) { + signed char height = pitch_letter_to_height(tolower( + (unsigned char)gabc_notes_determination_text[i])); + nbof_isolated_episema = 0; - gregorio_add_note(¤t_note, pitch_letter_to_height( - tolower((unsigned char)gabc_notes_determination_text[i])), - shape, signs, liquescentia, NULL, ¬es_lloc); + gregorio_add_note(¤t_note, height, shape, signs, liquescentia, NULL, + ¬es_lloc); current_note->he_adjustment_index[SO_OVER] = he_adjustment_index[SO_OVER]; current_note->he_adjustment_index[SO_UNDER] = he_adjustment_index[SO_UNDER]; - if (ledger_var[SO_OVER]) { - current_note->supposed_high_ledger_line = true; - current_note->explicit_high_ledger_line = true; + if (height >= high_ledger_line_pitch) { + LEDGER(high, DRAWN, true); + } else if (ledger_var[SO_OVER]) { + LEDGER(high, EXPLICIT, true); } - if (ledger_var[SO_UNDER]) { - current_note->supposed_low_ledger_line = true; - current_note->explicit_low_ledger_line = true; + if (height <= LOW_LEDGER_LINE_PITCH) { + LEDGER(low, DRAWN, true); + } else if (ledger_var[SO_UNDER]) { + LEDGER(low, EXPLICIT, true); } } @@ -491,15 +512,88 @@ static void end_var_slur(void) slur[index].start = NULL; } -void parse_hepisema_adjustment(void) +static void left_bracket(void) { - /* [xh:yz{] - * - x indicates l(ow) or h(igh) episema - * - y (optional) for l(ow), m(iddle), or h(igh) vertical position in space - * - z (optional) nudge dimension that starts with + or - - * - { (optional) starts a group - * - at least one of y, z, or w must be provided - * - if y and z are omitted, : may be omitted + if (left_bracket_texverb) { + gregorio_message( + _("cannot add a left bracket before closing the previous one"), + "left_bracket", VERBOSITY_ERROR, 0); + return; + } + + /* when setting the left bracket, temporarily store the point-and-click + * information in the texverb */ + if (notes_lloc.generate_point_and_click) { + gregorio_snprintf(tempstr, sizeof tempstr, "%u:%u:%u", + notes_lloc.first_line, notes_lloc.first_offset, + notes_lloc.first_column + 1); + } else { + tempstr[0] = '\0'; + } + left_bracket_texverb = gregorio_add_texverb_as_note(¤t_note, + gregorio_strdup(tempstr), GRE_TEXVERB_GLYPH, ¬es_lloc); + bracket_low_pitch = MAX_PITCH; + bracket_high_pitch = LOWEST_PITCH; +} + +static void right_bracket(void) +{ + if (!left_bracket_texverb) { + gregorio_message( + _("cannot add a right bracket without a matching left bracket"), + "right_bracket", VERBOSITY_ERROR, 0); + return; + } + + if (bracket_high_pitch < bracket_low_pitch) { + gregorio_message( + _("cannot add brackets without notes between them"), + "right_bracket", VERBOSITY_ERROR, 0); + return; + } + + gregorio_snprintf(tempstr, sizeof tempstr, "\\GreBracket{0}{%d}{%d}{%s}", + bracket_low_pitch, bracket_high_pitch, + gregorio_texverb(left_bracket_texverb)); + gregorio_change_texverb(left_bracket_texverb, gregorio_strdup(tempstr)); + + if (notes_lloc.generate_point_and_click) { + gregorio_snprintf(tempstr, sizeof tempstr, + "\\GreBracket{1}{%d}{%d}{%u:%u:%u}", bracket_low_pitch, + bracket_high_pitch, notes_lloc.first_line, + notes_lloc.first_offset, notes_lloc.first_column + 1); + } else { + gregorio_snprintf(tempstr, sizeof tempstr, + "\\GreBracket{1}{%d}{%d}{}", bracket_low_pitch, + bracket_high_pitch); + } + gregorio_add_texverb_as_note(¤t_note, gregorio_strdup(tempstr), + GRE_TEXVERB_GLYPH, ¬es_lloc); + + left_bracket_texverb = 0; +} + +static void parse_hepisema_adjustment(void) +{ + /* See https://github.com/gregorio-project/gregorio/issues/872 + * + * [xh:yzw] + * + * - x is o(ver) or u(under) + * - y is optional and is + * - l for low in the space (chooses ol or ul depending on x) + * - m for middle of the space + * - h for high in the space (chooses oh or uh depending on x) + * - ol for low in the space as if the episema were over the note + * - oh for high in the space as if the episema were over the note + * - ul for low in the space as if the episema were under the note + * - uh for high in the space as if the episema were under the note + * - z is an optional nudge and must start with + or - + * - w is optional and may be { to start a range or } to end a range. + * + * at least one of y, z, or w must be provided + * if y and z are omitted, the : may be omitted + * y and z are not permitted when w is } */ const gregorio_sign_orientation index = letter_to_sign_orientation( @@ -587,7 +681,7 @@ void parse_hepisema_adjustment(void) } } -void end_hepisema_adjustment(void) +static void end_hepisema_adjustment(void) { /* [xh:}] * - x indicates l(ow) or h(igh) episema @@ -641,6 +735,11 @@ void gabc_det_notes_finish(void) ledger_var[orientation] = 0; } } + if (left_bracket_texverb) { + gregorio_message(_("unclosed left bracket"), + "gabc_det_notes_finish", VERBOSITY_ERROR, 0); + left_bracket_texverb = 0; + } } %} @@ -845,29 +944,29 @@ void gabc_det_notes_finish(void) } <INITIAL>\[nm[1-9]\] { if (notesmacros[gabc_notes_determination_text[3]-'0']) { - gregorio_add_texverb_to_note(current_note, - gregorio_strdup(notesmacros[gabc_notes_determination_text[3]-'0'])); + gregorio_add_texverb_to_note(current_note, gregorio_strdup( + notesmacros[gabc_notes_determination_text[3]-'0'])); } else error(); } <INITIAL>\[gm[1-9]\] { if (notesmacros[gabc_notes_determination_text[3]-'0']) { - gregorio_add_texverb_as_note(¤t_note, - gregorio_strdup(notesmacros[gabc_notes_determination_text[3]-'0']), - GRE_TEXVERB_GLYPH, ¬es_lloc); + gregorio_add_texverb_as_note(¤t_note, gregorio_strdup( + notesmacros[gabc_notes_determination_text[3]-'0']), + GRE_TEXVERB_GLYPH, ¬es_lloc); } else error(); } <INITIAL>\[em[1-9]\] { if (notesmacros[gabc_notes_determination_text[3]-'0']) { - gregorio_add_texverb_as_note(¤t_note, - gregorio_strdup(notesmacros[gabc_notes_determination_text[3]-'0']), - GRE_TEXVERB_ELEMENT, ¬es_lloc); + gregorio_add_texverb_as_note(¤t_note, gregorio_strdup( + notesmacros[gabc_notes_determination_text[3]-'0']), + GRE_TEXVERB_ELEMENT, ¬es_lloc); } else error(); } <INITIAL>\[altm[1-9]\] { if (notesmacros[gabc_notes_determination_text[5]-'0']) { - gregorio_add_texverb_as_note(¤t_note, - gregorio_strdup(notesmacros[gabc_notes_determination_text[5]-'0']), - GRE_TEXVERB_ELEMENT, ¬es_lloc); + gregorio_add_texverb_as_note(¤t_note, gregorio_strdup( + notesmacros[gabc_notes_determination_text[5]-'0']), + GRE_TEXVERB_ELEMENT, ¬es_lloc); } else error(); } <INITIAL>\[nv: { @@ -959,6 +1058,12 @@ void gabc_det_notes_finish(void) gregorio_add_space_as_note(¤t_note, SP_AD_HOC_SPACE_NB, gregorio_strdup(gabc_notes_determination_text), ¬es_lloc); } +<INITIAL>\[oll:1\] { + LEDGER(high, EXPLICITLY_DRAWN, true); + } +<INITIAL>\[oll:0\] { + LEDGER(high, EXPLICITLY_DRAWN, false); + } <INITIAL>\[oll:\}\] { end_variable_ledger(SO_OVER); } @@ -977,6 +1082,12 @@ void gabc_det_notes_finish(void) add_variable_ledger(SO_OVER, gabc_notes_determination_text); BEGIN(endledger); } +<INITIAL>\[ull:1\] { + LEDGER(low, EXPLICITLY_DRAWN, true); + } +<INITIAL>\[ull:0\] { + LEDGER(low, EXPLICITLY_DRAWN, false); + } <INITIAL>\[ull:\}\] { end_variable_ledger(SO_UNDER); } @@ -1017,6 +1128,12 @@ void gabc_det_notes_finish(void) <INITIAL>\[[ou]h:?\}\] { end_hepisema_adjustment(); } +<INITIAL>\[\[ { + left_bracket(); + } +<INITIAL>\]\] { + right_bracket(); + } \{ { gregorio_add_texverb_as_note(¤t_note, gregorio_strdup("\\hbox to 0pt{"), GRE_TEXVERB_ELEMENT, @@ -1033,8 +1150,11 @@ void gabc_det_notes_finish(void) ¬es_lloc); } [\t\r\n]+ /* ignore ends of line and tabs */; +<INITIAL>\[nocustos\] { + gregorio_add_suppress_custos_as_note(¤t_note, ¬es_lloc); + } z0 { - gregorio_add_custo_as_note(¤t_note, ¬es_lloc); + gregorio_add_custos_as_note(¤t_note, ¬es_lloc); } z { gregorio_add_end_of_line_as_note(¤t_note, false, false, false, @@ -1101,16 +1221,16 @@ Z- { add_bar_as_note(B_DIVISIO_FINALIS); } r { - gregorio_change_shape(current_note, S_PUNCTUM_CAVUM, - legacy_oriscus_orientation); + gregorio_add_cavum(current_note); } R { gregorio_change_shape(current_note, S_LINEA_PUNCTUM, legacy_oriscus_orientation); } r0 { - gregorio_change_shape(current_note, S_LINEA_PUNCTUM_CAVUM, + gregorio_change_shape(current_note, S_LINEA_PUNCTUM, legacy_oriscus_orientation); + gregorio_add_cavum(current_note); } r1 { gregorio_add_special_sign(current_note, _ACCENTUS); @@ -1127,6 +1247,15 @@ r4 { r5 { gregorio_add_special_sign(current_note, _SEMI_CIRCULUS_REVERSUS); } +r6 { + gregorio_add_special_sign(current_note, _MUSICA_FICTA_FLAT); + } +r7 { + gregorio_add_special_sign(current_note, _MUSICA_FICTA_NATURAL); + } +r8 { + gregorio_add_special_sign(current_note, _MUSICA_FICTA_SHARP); + } x { gregorio_change_shape(current_note, S_FLAT, legacy_oriscus_orientation); } @@ -1301,20 +1430,16 @@ s { legacy_oriscus_orientation); } \[hl:1\] { - current_note->supposed_high_ledger_line = true; - current_note->explicit_high_ledger_line = true; + LEDGER(high, EXPLICIT, true); } \[hl:0\] { - current_note->supposed_high_ledger_line = false; - current_note->explicit_high_ledger_line = true; + LEDGER(high, EXPLICIT, false); } \[ll:1\] { - current_note->supposed_low_ledger_line = true; - current_note->explicit_low_ledger_line = true; + LEDGER(low, EXPLICIT, true); } \[ll:0\] { - current_note->supposed_low_ledger_line = false; - current_note->explicit_low_ledger_line = true; + LEDGER(low, EXPLICIT, false); } .|\n { gregorio_messagef("det_notes_from_string", VERBOSITY_ERROR, 0, @@ -1337,9 +1462,11 @@ gregorio_note *gabc_det_notes_from_string(char *str, char *newmacros[10], notes_lloc.last_line = loc->first_line; notes_lloc.last_column = loc->first_column; notes_lloc.last_offset = loc->first_offset; + notes_lloc.generate_point_and_click = loc->generate_point_and_click; staff_lines = score->staff_lines; highest_pitch = score->highest_pitch; + high_ledger_line_pitch = score->high_ledger_line_pitch; legacy_oriscus_orientation = score->legacy_oriscus_orientation; /* a small optimization could uccur here: we could do it only once at the 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 42c089a3dea..5a3953c2ad6 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 71 -#define YY_END_OF_BUFFER 72 +#define YY_NUM_RULES 77 +#define YY_END_OF_BUFFER 78 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -407,41 +407,42 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int32_t yy_accept[296] = +static yyconst flex_int32_t yy_accept[309] = { 0, - 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, - 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, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 78, 25, 76, 25, 23, 6, 23, 23, + 23, 23, 23, 23, 23, 23, 2, 2, 3, 3, + 1, 8, 9, 27, 26, 50, 71, 29, 28, 56, + 64, 65, 57, 58, 72, 74, 73, 49, 48, 77, + 77, 55, 56, 52, 51, 5, 4, 56, 77, 69, + 77, 77, 70, 0, 0, 23, 6, 23, 23, 23, + 23, 23, 23, 23, 23, 23, 23, 2, 1, 8, + 0, 7, 0, 27, 26, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, + 75, 49, 48, 0, 55, 0, 52, 51, 5, 4, + 0, 69, 69, 69, 0, 0, 70, 0, 24, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 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, - 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 40, 38, 0, 44, 0, 32, 0, 0, 0, + 0, 0, 0, 53, 63, 0, 0, 0, 23, 23, + 0, 23, 23, 14, 23, 11, 23, 23, 23, 41, + 39, 45, 0, 33, 0, 0, 0, 0, 0, 0, + 61, 0, 0, 0, 68, 67, 42, 46, 34, 36, + + 0, 54, 0, 23, 23, 23, 0, 23, 0, 0, + 23, 23, 23, 62, 0, 43, 35, 37, 59, 0, + 0, 0, 68, 47, 0, 23, 18, 10, 23, 23, + 23, 23, 23, 23, 0, 0, 0, 0, 30, 60, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 31, + 0, 0, 66, 23, 23, 19, 23, 23, 23, 0, 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 + 23, 17, 23, 23, 23, 21, 23, 23, 23, 23, + 23, 23, 23, 23, 20, 23, 23, 23, 23, 23, + 23, 23, 15, 23, 23, 13, 23, 23, 23, 23, + 23, 12, 16, 23, 23, 23, 22, 0 } ; static yyconst YY_CHAR yy_ec[256] = @@ -450,285 +451,297 @@ static yyconst YY_CHAR yy_ec[256] = 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 1, 6, 1, 7, 1, 1, 8, - 9, 1, 1, 1, 10, 1, 11, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 13, 14, 15, - 1, 16, 1, 1, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 18, 1, 19, 1, 17, 1, 20, 21, 22, 23, - - 24, 25, 26, 27, 28, 17, 17, 29, 30, 31, - 32, 33, 17, 34, 35, 36, 37, 38, 17, 17, - 39, 17, 40, 41, 42, 1, 1, 1, 1, 1, + 9, 1, 1, 10, 11, 12, 13, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 15, 16, 17, + 1, 18, 1, 1, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 20, 1, 21, 1, 19, 1, 22, 23, 24, 25, + + 26, 27, 28, 29, 30, 19, 19, 31, 32, 33, + 34, 35, 19, 36, 37, 38, 39, 40, 19, 19, + 41, 19, 42, 43, 44, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 43, 1, 1, 1, - 44, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 45, 1, 1, 1, + 46, 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, 1, 1, 45, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 47, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst YY_CHAR yy_meta[46] = +static yyconst YY_CHAR yy_meta[48] = { 0, - 1, 1, 2, 2, 1, 1, 3, 3, 4, 5, - 1, 6, 1, 7, 8, 1, 6, 3, 3, 6, + 1, 1, 2, 2, 1, 1, 3, 3, 4, 3, + 5, 3, 1, 6, 3, 7, 8, 1, 6, 3, + 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 9, - 4, 9, 1, 1, 1 + 6, 9, 4, 9, 1, 1, 1 } ; -static yyconst flex_uint32_t yy_base[316] = +static yyconst flex_uint32_t yy_base[326] = { 0, - 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 + 0, 45, 707, 706, 90, 132, 41, 44, 71, 78, + 704, 703, 51, 53, 55, 57, 702, 701, 50, 51, + 65, 152, 717, 724, 724, 709, 704, 709, 75, 78, + 55, 74, 65, 101, 92, 107, 68, 76, 724, 706, + 79, 0, 156, 0, 164, 724, 724, 724, 724, 175, + 699, 724, 724, 724, 0, 179, 724, 0, 187, 698, + 724, 0, 697, 0, 113, 0, 126, 696, 694, 107, + 191, 214, 724, 134, 0, 696, 724, 140, 164, 135, + 200, 152, 139, 210, 176, 192, 209, 221, 182, 0, + 232, 236, 241, 0, 245, 249, 262, 675, 687, 237, + + 168, 686, 672, 666, 232, 663, 669, 681, 677, 0, + 255, 0, 259, 660, 0, 656, 0, 262, 0, 266, + 673, 680, 679, 260, 276, 300, 724, 304, 272, 681, + 276, 98, 680, 266, 285, 271, 287, 301, 280, 303, + 304, 659, 671, 670, 298, 669, 655, 661, 646, 652, + 644, 724, 724, 655, 724, 662, 724, 656, 330, 660, + 659, 658, 657, 724, 724, 639, 655, 641, 282, 308, + 639, 659, 310, 658, 657, 656, 312, 314, 317, 724, + 724, 724, 648, 724, 642, 646, 645, 644, 643, 638, + 724, 637, 348, 352, 369, 724, 724, 724, 724, 724, + + 633, 724, 604, 319, 347, 315, 615, 353, 335, 595, + 348, 608, 603, 724, 590, 724, 724, 724, 724, 575, + 589, 374, 386, 724, 507, 327, 510, 509, 313, 357, + 351, 335, 369, 371, 495, 487, 497, 391, 724, 724, + 373, 375, 386, 387, 390, 189, 503, 389, 391, 724, + 414, 426, 724, 400, 394, 500, 395, 396, 413, 476, + 402, 409, 443, 422, 414, 425, 427, 429, 432, 430, + 438, 498, 442, 441, 445, 495, 446, 447, 448, 451, + 452, 454, 456, 458, 491, 462, 459, 463, 470, 473, + 449, 475, 272, 478, 479, 260, 482, 483, 484, 485, + + 486, 219, 160, 487, 489, 493, 122, 724, 526, 535, + 544, 553, 562, 571, 580, 589, 594, 600, 609, 615, + 624, 631, 640, 649, 67 } ; -static yyconst flex_int32_t yy_def[316] = +static yyconst flex_int32_t yy_def[326] = { 0, - 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 + 308, 1, 309, 309, 310, 310, 311, 311, 312, 312, + 313, 313, 314, 314, 315, 315, 313, 313, 316, 316, + 316, 316, 308, 308, 308, 308, 317, 308, 317, 317, + 317, 317, 317, 317, 317, 317, 308, 308, 308, 308, + 308, 318, 308, 319, 308, 308, 308, 308, 308, 308, + 308, 308, 308, 308, 320, 308, 308, 321, 308, 308, + 308, 322, 308, 323, 308, 324, 308, 308, 308, 308, + 308, 308, 308, 308, 325, 317, 308, 317, 317, 317, + 317, 317, 317, 317, 317, 317, 317, 308, 308, 318, + 308, 308, 308, 319, 308, 308, 308, 308, 308, 308, + + 308, 308, 308, 308, 308, 308, 308, 308, 308, 320, + 308, 321, 308, 308, 322, 308, 323, 308, 324, 308, + 308, 308, 308, 308, 308, 308, 308, 308, 308, 325, + 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, + 317, 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, 317, 317, + 325, 317, 317, 317, 317, 317, 317, 317, 317, 308, + 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, + 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, + + 308, 308, 308, 317, 317, 325, 325, 317, 325, 325, + 317, 317, 317, 308, 308, 308, 308, 308, 308, 308, + 308, 308, 308, 308, 308, 317, 317, 325, 325, 317, + 325, 325, 325, 317, 325, 325, 308, 308, 308, 308, + 317, 325, 317, 325, 325, 325, 317, 325, 325, 308, + 308, 308, 308, 317, 325, 317, 325, 325, 325, 325, + 325, 325, 308, 317, 325, 325, 325, 325, 325, 325, + 325, 317, 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, + + 325, 325, 325, 325, 325, 325, 325, 0, 308, 308, + 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, + 308, 308, 308, 308, 308 } ; -static yyconst flex_uint32_t yy_nxt[724] = +static yyconst flex_uint32_t yy_nxt[772] = { 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, 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, 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 + 24, 24, 25, 24, 24, 24, 26, 24, 24, 24, + 24, 24, 24, 27, 28, 24, 24, 24, 27, 24, + 24, 29, 27, 27, 30, 27, 27, 31, 27, 27, + 32, 33, 34, 35, 27, 27, 36, 27, 27, 27, + 27, 24, 24, 24, 24, 24, 24, 37, 38, 56, + 39, 40, 56, 65, 65, 65, 65, 67, 67, 67, + 67, 69, 69, 70, 70, 75, 71, 71, 71, 71, + 88, 88, 130, 59, 59, 75, 81, 72, 88, 88, + 59, 59, 73, 57, 75, 75, 57, 60, 75, 41, + 41, 41, 45, 45, 60, 82, 46, 47, 83, 48, + + 49, 48, 75, 80, 48, 48, 50, 78, 75, 51, + 52, 75, 61, 79, 61, 118, 118, 75, 123, 61, + 124, 61, 84, 89, 89, 89, 170, 85, 120, 120, + 86, 53, 75, 54, 45, 45, 129, 129, 46, 47, + 74, 48, 49, 48, 87, 75, 48, 48, 50, 75, + 75, 51, 52, 71, 71, 71, 71, 91, 92, 92, + 91, 133, 75, 136, 72, 95, 95, 95, 95, 73, + 75, 93, 131, 53, 75, 54, 96, 96, 96, 96, + 111, 111, 111, 111, 135, 155, 75, 97, 113, 113, + 113, 113, 125, 125, 125, 125, 98, 99, 100, 75, + + 101, 132, 75, 126, 102, 139, 156, 103, 127, 104, + 75, 105, 106, 107, 108, 128, 128, 128, 128, 75, + 75, 259, 134, 88, 88, 140, 89, 89, 89, 75, + 141, 127, 137, 91, 92, 92, 91, 91, 92, 92, + 91, 138, 91, 92, 92, 91, 95, 95, 95, 95, + 96, 96, 96, 96, 153, 160, 111, 111, 111, 111, + 113, 113, 113, 113, 118, 118, 161, 154, 120, 120, + 75, 123, 142, 124, 129, 129, 75, 125, 125, 125, + 125, 75, 75, 104, 143, 144, 75, 145, 126, 172, + 75, 146, 75, 127, 147, 75, 174, 75, 148, 149, + + 150, 128, 128, 128, 128, 128, 128, 128, 128, 169, + 175, 75, 173, 75, 75, 182, 177, 127, 75, 204, + 75, 127, 75, 75, 75, 75, 176, 75, 228, 75, + 179, 193, 193, 193, 193, 211, 183, 75, 178, 212, + 226, 205, 194, 213, 195, 75, 242, 196, 208, 193, + 193, 193, 193, 222, 222, 222, 222, 75, 75, 231, + 194, 75, 195, 75, 241, 196, 232, 75, 245, 196, + 223, 223, 223, 223, 230, 222, 222, 222, 222, 75, + 244, 75, 227, 75, 243, 75, 234, 223, 223, 223, + 223, 196, 251, 251, 251, 251, 75, 75, 246, 75, + + 75, 75, 254, 252, 75, 75, 75, 247, 253, 255, + 75, 256, 75, 257, 258, 251, 251, 251, 251, 75, + 262, 266, 261, 75, 75, 267, 252, 263, 263, 263, + 263, 253, 75, 264, 265, 75, 270, 75, 268, 75, + 75, 271, 75, 253, 263, 263, 263, 263, 75, 273, + 274, 75, 75, 275, 272, 75, 75, 75, 75, 75, + 253, 75, 75, 279, 75, 276, 75, 277, 75, 75, + 278, 280, 75, 75, 282, 283, 281, 287, 286, 288, + 75, 289, 284, 75, 285, 75, 296, 290, 75, 75, + 291, 292, 75, 75, 75, 75, 75, 75, 293, 75, + + 295, 75, 294, 75, 301, 75, 303, 299, 75, 269, + 75, 300, 297, 260, 250, 298, 305, 249, 248, 75, + 75, 302, 306, 304, 240, 307, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 44, 44, 44, 44, 44, + 44, 44, 44, 44, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 76, 76, + + 90, 90, 90, 90, 90, 90, 239, 90, 90, 94, + 238, 237, 94, 236, 94, 110, 110, 110, 235, 110, + 110, 110, 110, 110, 112, 233, 112, 112, 112, 112, + 112, 115, 115, 115, 115, 115, 115, 115, 229, 115, + 117, 225, 117, 117, 117, 117, 117, 117, 117, 119, + 224, 119, 119, 119, 119, 119, 119, 119, 221, 220, + 219, 218, 217, 216, 215, 214, 75, 210, 209, 207, + 206, 203, 202, 201, 200, 199, 198, 197, 192, 191, + 190, 189, 188, 187, 186, 185, 184, 181, 180, 154, + 171, 75, 122, 122, 168, 167, 166, 165, 164, 163, + + 162, 159, 158, 157, 152, 151, 75, 122, 121, 116, + 114, 109, 74, 77, 75, 74, 308, 68, 68, 63, + 63, 43, 43, 23, 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 } ; -static yyconst flex_int32_t yy_chk[724] = +static yyconst flex_int32_t yy_chk[772] = { 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, 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 + 1, 1, 1, 1, 1, 1, 1, 2, 2, 7, + 2, 2, 8, 13, 13, 14, 14, 15, 15, 16, + 16, 19, 20, 19, 20, 31, 21, 21, 21, 21, + 37, 37, 325, 9, 9, 33, 31, 21, 38, 38, + 10, 10, 21, 7, 32, 29, 8, 9, 30, 2, + 2, 2, 5, 5, 10, 32, 5, 5, 33, 5, + + 5, 5, 35, 30, 5, 5, 5, 29, 132, 5, + 5, 34, 9, 29, 9, 65, 65, 36, 70, 10, + 70, 10, 34, 41, 41, 41, 132, 35, 67, 67, + 36, 5, 307, 5, 6, 6, 74, 74, 6, 6, + 74, 6, 6, 6, 36, 80, 6, 6, 6, 83, + 78, 6, 6, 22, 22, 22, 22, 43, 43, 43, + 43, 80, 82, 83, 22, 45, 45, 45, 45, 22, + 303, 43, 78, 6, 79, 6, 50, 50, 50, 50, + 56, 56, 56, 56, 82, 101, 85, 50, 59, 59, + 59, 59, 71, 71, 71, 71, 50, 50, 50, 246, + + 50, 79, 86, 71, 50, 85, 101, 50, 71, 50, + 81, 50, 50, 50, 50, 72, 72, 72, 72, 87, + 84, 246, 81, 88, 88, 86, 89, 89, 89, 302, + 87, 72, 84, 91, 91, 91, 91, 92, 92, 92, + 92, 84, 93, 93, 93, 93, 95, 95, 95, 95, + 96, 96, 96, 96, 100, 105, 111, 111, 111, 111, + 113, 113, 113, 113, 118, 118, 105, 100, 120, 120, + 296, 124, 96, 124, 129, 129, 134, 125, 125, 125, + 125, 136, 293, 96, 97, 97, 131, 97, 125, 134, + 139, 97, 169, 125, 97, 135, 136, 137, 97, 97, + + 97, 126, 126, 126, 126, 128, 128, 128, 128, 131, + 137, 138, 135, 140, 141, 145, 139, 126, 170, 169, + 173, 128, 177, 229, 178, 206, 138, 179, 206, 204, + 141, 159, 159, 159, 159, 177, 145, 226, 140, 178, + 204, 170, 159, 179, 159, 232, 229, 159, 173, 193, + 193, 193, 193, 194, 194, 194, 194, 205, 211, 209, + 193, 231, 193, 208, 226, 193, 209, 230, 232, 194, + 195, 195, 195, 195, 208, 222, 222, 222, 222, 233, + 231, 234, 205, 241, 230, 242, 211, 223, 223, 223, + 223, 222, 238, 238, 238, 238, 243, 244, 233, 248, + + 245, 249, 241, 238, 255, 257, 258, 234, 238, 242, + 254, 243, 261, 244, 245, 251, 251, 251, 251, 262, + 249, 257, 248, 259, 265, 258, 251, 252, 252, 252, + 252, 251, 264, 254, 255, 266, 261, 267, 259, 268, + 270, 262, 269, 252, 263, 263, 263, 263, 271, 265, + 266, 274, 273, 267, 264, 275, 277, 278, 279, 291, + 263, 280, 281, 271, 282, 268, 283, 269, 284, 287, + 270, 273, 286, 288, 275, 277, 274, 281, 280, 282, + 289, 283, 278, 290, 279, 292, 291, 284, 294, 295, + 286, 287, 297, 298, 299, 300, 301, 304, 288, 305, + + 290, 285, 289, 306, 298, 276, 300, 295, 272, 260, + 256, 297, 292, 247, 237, 294, 304, 236, 235, 228, + 227, 299, 305, 301, 225, 306, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 310, 310, 310, 310, 310, + 310, 310, 310, 310, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 312, 312, 312, 312, 312, 312, 312, + 312, 312, 313, 313, 313, 313, 313, 313, 313, 313, + 313, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 317, 317, + + 318, 318, 318, 318, 318, 318, 221, 318, 318, 319, + 220, 215, 319, 213, 319, 320, 320, 320, 212, 320, + 320, 320, 320, 320, 321, 210, 321, 321, 321, 321, + 321, 322, 322, 322, 322, 322, 322, 322, 207, 322, + 323, 203, 323, 323, 323, 323, 323, 323, 323, 324, + 201, 324, 324, 324, 324, 324, 324, 324, 192, 190, + 189, 188, 187, 186, 185, 183, 176, 175, 174, 172, + 171, 168, 167, 166, 163, 162, 161, 160, 158, 156, + 154, 151, 150, 149, 148, 147, 146, 144, 143, 142, + 133, 130, 123, 122, 121, 116, 114, 109, 108, 107, + + 106, 104, 103, 102, 99, 98, 76, 69, 68, 63, + 60, 51, 40, 28, 27, 26, 23, 18, 17, 12, + 11, 4, 3, 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 } ; static yy_state_type yy_last_accepting_state; @@ -752,7 +765,7 @@ char *gabc_score_determination_text; * This file implements the score lexer. * * Gregorio score determination in gabc input. - * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -817,7 +830,7 @@ static bool eof_found = false; #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) { \ int c = '*'; \ - size_t n; \ + int n; \ for (n = 0; n < max_size \ && (c = getc(gabc_score_determination_in)) != EOF \ && c != '\n'; ++n ) { \ @@ -855,11 +868,13 @@ static bool eof_found = false; + + /* The expression for attribute below is rather messy because we allow 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 863 "gabc/gabc-score-determination-l.c" +#line 878 "gabc/gabc-score-determination-l.c" #define INITIAL 0 #define attribute 1 @@ -870,6 +885,8 @@ semicolon. */ #define comments 6 #define inicomments 7 #define alt 8 +#define protrusion_value 9 +#define protrusion_end 10 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way @@ -1090,9 +1107,9 @@ YY_DECL } { -#line 134 "gabc/gabc-score-determination.l" +#line 136 "gabc/gabc-score-determination.l" -#line 1096 "gabc/gabc-score-determination-l.c" +#line 1113 "gabc/gabc-score-determination-l.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -1120,13 +1137,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 >= 296 ) + if ( yy_current_state >= 309 ) 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] != 678 ); + while ( yy_base[yy_current_state] != 724 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1152,7 +1169,7 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 135 "gabc/gabc-score-determination.l" +#line 137 "gabc/gabc-score-determination.l" { /* BOM written by a lot of windows softwares when they write UTF-8 */ } @@ -1160,14 +1177,14 @@ YY_RULE_SETUP case 2: /* rule 2 can match eol */ YY_RULE_SETUP -#line 138 "gabc/gabc-score-determination.l" +#line 140 "gabc/gabc-score-determination.l" { /* ignoring empty lines */ } YY_BREAK case 3: YY_RULE_SETUP -#line 141 "gabc/gabc-score-determination.l" +#line 143 "gabc/gabc-score-determination.l" { BEGIN(inicomments); } @@ -1175,21 +1192,21 @@ YY_RULE_SETUP case 4: /* rule 4 can match eol */ YY_RULE_SETUP -#line 144 "gabc/gabc-score-determination.l" +#line 146 "gabc/gabc-score-determination.l" { BEGIN(INITIAL); } YY_BREAK case 5: YY_RULE_SETUP -#line 147 "gabc/gabc-score-determination.l" +#line 149 "gabc/gabc-score-determination.l" { /* ignored */ } YY_BREAK case 6: YY_RULE_SETUP -#line 150 "gabc/gabc-score-determination.l" +#line 152 "gabc/gabc-score-determination.l" { BEGIN(attribute); return COLON; @@ -1198,68 +1215,69 @@ YY_RULE_SETUP case 7: /* rule 7 can match eol */ YY_RULE_SETUP -#line 154 "gabc/gabc-score-determination.l" +#line 156 "gabc/gabc-score-determination.l" { - gabc_score_determination_lval.text = - gregorio_strdup(gabc_score_determination_text); - return ATTRIBUTE; + BEGIN(INITIAL); + return SEMICOLON; } YY_BREAK case 8: /* rule 8 can match eol */ YY_RULE_SETUP -#line 159 "gabc/gabc-score-determination.l" +#line 160 "gabc/gabc-score-determination.l" { - BEGIN(INITIAL); - return SEMICOLON; + gabc_score_determination_lval.text = + gregorio_strdup(gabc_score_determination_text); + return ATTRIBUTE; } YY_BREAK case 9: YY_RULE_SETUP -#line 163 "gabc/gabc-score-determination.l" +#line 165 "gabc/gabc-score-determination.l" { - gabc_score_determination_lval.character = gabc_score_determination_text[5]; - return DEF_MACRO; - } + gabc_score_determination_lval.text = + gregorio_strdup(gabc_score_determination_text); + return ATTRIBUTE; +} YY_BREAK case 10: YY_RULE_SETUP -#line 167 "gabc/gabc-score-determination.l" +#line 170 "gabc/gabc-score-determination.l" { - gabc_score_determination_lval.text = - gregorio_strdup(gabc_score_determination_text); - return NAME; + gabc_score_determination_lval.character = gabc_score_determination_text[5]; + return DEF_MACRO; } YY_BREAK case 11: YY_RULE_SETUP -#line 172 "gabc/gabc-score-determination.l" +#line 174 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); - return SCORE_COPYRIGHT; + return NAME; } YY_BREAK case 12: YY_RULE_SETUP -#line 177 "gabc/gabc-score-determination.l" +#line 179 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); - return GABC_COPYRIGHT; + return SCORE_COPYRIGHT; } YY_BREAK case 13: YY_RULE_SETUP -#line 182 "gabc/gabc-score-determination.l" +#line 184 "gabc/gabc-score-determination.l" { - /* DEPRECATED for removal in 5.0 */ - return INITIAL_STYLE; + gabc_score_determination_lval.text = + gregorio_strdup(gabc_score_determination_text); + return GABC_COPYRIGHT; } YY_BREAK case 14: YY_RULE_SETUP -#line 186 "gabc/gabc-score-determination.l" +#line 189 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1268,7 +1286,7 @@ YY_RULE_SETUP YY_BREAK case 15: YY_RULE_SETUP -#line 191 "gabc/gabc-score-determination.l" +#line 194 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1277,7 +1295,7 @@ YY_RULE_SETUP YY_BREAK case 16: YY_RULE_SETUP -#line 196 "gabc/gabc-score-determination.l" +#line 199 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1286,7 +1304,7 @@ YY_RULE_SETUP YY_BREAK case 17: YY_RULE_SETUP -#line 201 "gabc/gabc-score-determination.l" +#line 204 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1295,7 +1313,7 @@ YY_RULE_SETUP YY_BREAK case 18: YY_RULE_SETUP -#line 206 "gabc/gabc-score-determination.l" +#line 209 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1304,7 +1322,7 @@ YY_RULE_SETUP YY_BREAK case 19: YY_RULE_SETUP -#line 211 "gabc/gabc-score-determination.l" +#line 214 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1313,7 +1331,7 @@ YY_RULE_SETUP YY_BREAK case 20: YY_RULE_SETUP -#line 216 "gabc/gabc-score-determination.l" +#line 219 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1322,7 +1340,7 @@ YY_RULE_SETUP YY_BREAK case 21: YY_RULE_SETUP -#line 221 "gabc/gabc-score-determination.l" +#line 224 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1331,7 +1349,7 @@ YY_RULE_SETUP YY_BREAK case 22: YY_RULE_SETUP -#line 226 "gabc/gabc-score-determination.l" +#line 229 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1340,7 +1358,7 @@ YY_RULE_SETUP YY_BREAK case 23: YY_RULE_SETUP -#line 231 "gabc/gabc-score-determination.l" +#line 234 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -1350,7 +1368,7 @@ YY_RULE_SETUP case 24: /* rule 24 can match eol */ YY_RULE_SETUP -#line 236 "gabc/gabc-score-determination.l" +#line 239 "gabc/gabc-score-determination.l" { BEGIN(score); return END_OF_DEFINITIONS; @@ -1358,7 +1376,7 @@ YY_RULE_SETUP YY_BREAK case 25: YY_RULE_SETUP -#line 240 "gabc/gabc-score-determination.l" +#line 243 "gabc/gabc-score-determination.l" { gregorio_messagef("det_score", VERBOSITY_ERROR, 0, _("unrecognized character: \"%c\" in definition part"), @@ -1368,323 +1386,376 @@ YY_RULE_SETUP case 26: /* rule 26 can match eol */ YY_RULE_SETUP -#line 245 "gabc/gabc-score-determination.l" +#line 248 "gabc/gabc-score-determination.l" { RETURN_SPACE; } YY_BREAK case 27: YY_RULE_SETUP -#line 248 "gabc/gabc-score-determination.l" +#line 251 "gabc/gabc-score-determination.l" { RETURN_CHARACTERS; } YY_BREAK case 28: YY_RULE_SETUP -#line 251 "gabc/gabc-score-determination.l" +#line 254 "gabc/gabc-score-determination.l" { return HYPHEN; } YY_BREAK case 29: YY_RULE_SETUP -#line 254 "gabc/gabc-score-determination.l" +#line 257 "gabc/gabc-score-determination.l" { - return NLBA_B; + gabc_score_determination_lval.text = + gregorio_strdup(gabc_score_determination_text); + return PROTRUDING_PUNCTUATION; } YY_BREAK case 30: YY_RULE_SETUP -#line 257 "gabc/gabc-score-determination.l" +#line 262 "gabc/gabc-score-determination.l" { - return NLBA_E; + return NLBA_B; } YY_BREAK case 31: YY_RULE_SETUP -#line 260 "gabc/gabc-score-determination.l" +#line 265 "gabc/gabc-score-determination.l" { - START_STYLE(I); + return NLBA_E; } YY_BREAK case 32: YY_RULE_SETUP -#line 263 "gabc/gabc-score-determination.l" +#line 268 "gabc/gabc-score-determination.l" { - END_STYLE(I); + START_STYLE(I); } YY_BREAK case 33: YY_RULE_SETUP -#line 266 "gabc/gabc-score-determination.l" +#line 271 "gabc/gabc-score-determination.l" { - START_STYLE(TT); + END_STYLE(I); } YY_BREAK case 34: YY_RULE_SETUP -#line 269 "gabc/gabc-score-determination.l" +#line 274 "gabc/gabc-score-determination.l" { - END_STYLE(TT); + START_STYLE(TT); } YY_BREAK case 35: YY_RULE_SETUP -#line 272 "gabc/gabc-score-determination.l" +#line 277 "gabc/gabc-score-determination.l" { - START_STYLE(UL); + END_STYLE(TT); } YY_BREAK case 36: YY_RULE_SETUP -#line 275 "gabc/gabc-score-determination.l" +#line 280 "gabc/gabc-score-determination.l" { - END_STYLE(UL); + START_STYLE(UL); } YY_BREAK case 37: YY_RULE_SETUP -#line 278 "gabc/gabc-score-determination.l" +#line 283 "gabc/gabc-score-determination.l" { - START_STYLE(C); + END_STYLE(UL); } YY_BREAK case 38: YY_RULE_SETUP -#line 281 "gabc/gabc-score-determination.l" +#line 286 "gabc/gabc-score-determination.l" { - END_STYLE(C); + START_STYLE(C); } YY_BREAK case 39: YY_RULE_SETUP -#line 284 "gabc/gabc-score-determination.l" +#line 289 "gabc/gabc-score-determination.l" { - START_STYLE(B); + END_STYLE(C); } YY_BREAK case 40: YY_RULE_SETUP -#line 287 "gabc/gabc-score-determination.l" +#line 292 "gabc/gabc-score-determination.l" { - END_STYLE(B); + START_STYLE(B); } YY_BREAK case 41: YY_RULE_SETUP -#line 290 "gabc/gabc-score-determination.l" +#line 295 "gabc/gabc-score-determination.l" { - START_STYLE(SC); + END_STYLE(B); } YY_BREAK case 42: YY_RULE_SETUP -#line 293 "gabc/gabc-score-determination.l" +#line 298 "gabc/gabc-score-determination.l" { - END_STYLE(SC); + START_STYLE(SC); } YY_BREAK case 43: YY_RULE_SETUP -#line 296 "gabc/gabc-score-determination.l" +#line 301 "gabc/gabc-score-determination.l" { - START_STYLE(ELISION); + END_STYLE(SC); } YY_BREAK case 44: YY_RULE_SETUP -#line 299 "gabc/gabc-score-determination.l" +#line 304 "gabc/gabc-score-determination.l" { - END_STYLE(ELISION); + START_STYLE(ELISION); } YY_BREAK case 45: YY_RULE_SETUP -#line 302 "gabc/gabc-score-determination.l" +#line 307 "gabc/gabc-score-determination.l" +{ + END_STYLE(ELISION); + } + YY_BREAK +case 46: +YY_RULE_SETUP +#line 310 "gabc/gabc-score-determination.l" { BEGIN(sp); return SP_BEGIN; } YY_BREAK -case 46: +case 47: YY_RULE_SETUP -#line 306 "gabc/gabc-score-determination.l" +#line 314 "gabc/gabc-score-determination.l" { BEGIN(score); return SP_END; } YY_BREAK -case 47: -/* rule 47 can match eol */ +case 48: +/* rule 48 can match eol */ YY_RULE_SETUP -#line 310 "gabc/gabc-score-determination.l" +#line 318 "gabc/gabc-score-determination.l" { RETURN_SPACE; } YY_BREAK -case 48: +case 49: YY_RULE_SETUP -#line 313 "gabc/gabc-score-determination.l" +#line 321 "gabc/gabc-score-determination.l" { RETURN_CHARACTERS; } YY_BREAK -case 49: +case 50: YY_RULE_SETUP -#line 316 "gabc/gabc-score-determination.l" +#line 324 "gabc/gabc-score-determination.l" { BEGIN(comments); } YY_BREAK -case 50: -/* rule 50 can match eol */ +case 51: +/* rule 51 can match eol */ YY_RULE_SETUP -#line 319 "gabc/gabc-score-determination.l" +#line 327 "gabc/gabc-score-determination.l" { BEGIN(score); } YY_BREAK -case 51: +case 52: YY_RULE_SETUP -#line 322 "gabc/gabc-score-determination.l" +#line 330 "gabc/gabc-score-determination.l" { /* ignored */ } YY_BREAK -case 52: +case 53: YY_RULE_SETUP -#line 325 "gabc/gabc-score-determination.l" +#line 333 "gabc/gabc-score-determination.l" { BEGIN(verb); return VERB_BEGIN; } YY_BREAK -case 53: +case 54: YY_RULE_SETUP -#line 329 "gabc/gabc-score-determination.l" +#line 337 "gabc/gabc-score-determination.l" { BEGIN(score); return VERB_END; } YY_BREAK -case 54: -/* rule 54 can match eol */ +case 55: +/* rule 55 can match eol */ YY_RULE_SETUP -#line 333 "gabc/gabc-score-determination.l" +#line 341 "gabc/gabc-score-determination.l" { RETURN_CHARACTERS; } YY_BREAK -case 55: +case 56: YY_RULE_SETUP -#line 336 "gabc/gabc-score-determination.l" +#line 344 "gabc/gabc-score-determination.l" { RETURN_CHARACTERS; } YY_BREAK -case 56: +case 57: YY_RULE_SETUP -#line 339 "gabc/gabc-score-determination.l" +#line 347 "gabc/gabc-score-determination.l" { return CENTER_BEGIN; } YY_BREAK -case 57: +case 58: YY_RULE_SETUP -#line 342 "gabc/gabc-score-determination.l" +#line 350 "gabc/gabc-score-determination.l" { return CENTER_END; } YY_BREAK -case 58: +case 59: YY_RULE_SETUP -#line 345 "gabc/gabc-score-determination.l" +#line 353 "gabc/gabc-score-determination.l" { BEGIN(alt); return ALT_BEGIN; } YY_BREAK -case 59: +case 60: YY_RULE_SETUP -#line 349 "gabc/gabc-score-determination.l" +#line 357 "gabc/gabc-score-determination.l" { BEGIN(score); return ALT_END; } YY_BREAK -case 60: +case 61: YY_RULE_SETUP -#line 353 "gabc/gabc-score-determination.l" +#line 361 "gabc/gabc-score-determination.l" { return EUOUAE_B; } YY_BREAK -case 61: +case 62: YY_RULE_SETUP -#line 356 "gabc/gabc-score-determination.l" +#line 364 "gabc/gabc-score-determination.l" { return EUOUAE_E; } YY_BREAK -case 62: +case 63: YY_RULE_SETUP -#line 359 "gabc/gabc-score-determination.l" +#line 367 "gabc/gabc-score-determination.l" { return TRANSLATION_CENTER_END; } YY_BREAK -case 63: +case 64: YY_RULE_SETUP -#line 362 "gabc/gabc-score-determination.l" +#line 370 "gabc/gabc-score-determination.l" { return TRANSLATION_BEGIN; } YY_BREAK -case 64: +case 65: YY_RULE_SETUP -#line 365 "gabc/gabc-score-determination.l" +#line 373 "gabc/gabc-score-determination.l" { return TRANSLATION_END; } YY_BREAK -case 65: +case 66: +/* rule 66 can match eol */ YY_RULE_SETUP -#line 368 "gabc/gabc-score-determination.l" +#line 376 "gabc/gabc-score-determination.l" +{ + return CLEAR; + } + YY_BREAK +case 67: +/* rule 67 can match eol */ +YY_RULE_SETUP +#line 379 "gabc/gabc-score-determination.l" +{ + return PROTRUSION; + } + YY_BREAK +case 68: +/* rule 68 can match eol */ +YY_RULE_SETUP +#line 382 "gabc/gabc-score-determination.l" +{ + BEGIN(protrusion_value); + return PROTRUSION; + } + YY_BREAK +case 69: +YY_RULE_SETUP +#line 386 "gabc/gabc-score-determination.l" +{ + BEGIN(protrusion_end); + gabc_score_determination_lval.text = + gregorio_strdup(gabc_score_determination_text); + return PROTRUSION_VALUE; + } + YY_BREAK +case 70: +/* rule 70 can match eol */ +YY_RULE_SETUP +#line 392 "gabc/gabc-score-determination.l" +{ + BEGIN(score); + return PROTRUSION_END; + } + YY_BREAK +case 71: +YY_RULE_SETUP +#line 396 "gabc/gabc-score-determination.l" { BEGIN(notes); return OPENING_BRACKET; } YY_BREAK -case 66: -/* rule 66 can match eol */ +case 72: +/* rule 72 can match eol */ YY_RULE_SETUP -#line 372 "gabc/gabc-score-determination.l" +#line 400 "gabc/gabc-score-determination.l" { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); return NOTES; } YY_BREAK -case 67: +case 73: YY_RULE_SETUP -#line 377 "gabc/gabc-score-determination.l" +#line 405 "gabc/gabc-score-determination.l" { return NABC_CUT; } YY_BREAK -case 68: +case 74: YY_RULE_SETUP -#line 380 "gabc/gabc-score-determination.l" +#line 408 "gabc/gabc-score-determination.l" { BEGIN(score); return CLOSING_BRACKET; } YY_BREAK -case 69: -/* rule 69 can match eol */ +case 75: +/* rule 75 can match eol */ YY_RULE_SETUP -#line 384 "gabc/gabc-score-determination.l" +#line 412 "gabc/gabc-score-determination.l" { BEGIN(score); return CLOSING_BRACKET_WITH_SPACE; @@ -1699,7 +1770,9 @@ case YY_STATE_EOF(verb): case YY_STATE_EOF(comments): case YY_STATE_EOF(inicomments): case YY_STATE_EOF(alt): -#line 388 "gabc/gabc-score-determination.l" +case YY_STATE_EOF(protrusion_value): +case YY_STATE_EOF(protrusion_end): +#line 416 "gabc/gabc-score-determination.l" { if (!eof_found) { eof_found = true; @@ -1709,22 +1782,22 @@ case YY_STATE_EOF(alt): } } YY_BREAK -case 70: -/* rule 70 can match eol */ +case 76: +/* rule 76 can match eol */ YY_RULE_SETUP -#line 396 "gabc/gabc-score-determination.l" +#line 424 "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 71: +case 77: YY_RULE_SETUP -#line 401 "gabc/gabc-score-determination.l" +#line 429 "gabc/gabc-score-determination.l" ECHO; YY_BREAK -#line 1728 "gabc/gabc-score-determination-l.c" +#line 1801 "gabc/gabc-score-determination-l.c" case YY_END_OF_BUFFER: { @@ -2016,7 +2089,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 >= 296 ) + if ( yy_current_state >= 309 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2044,11 +2117,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 >= 296 ) + if ( yy_current_state >= 309 ) 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 == 295); + yy_is_jam = (yy_current_state == 308); return yy_is_jam ? 0 : yy_current_state; } @@ -2697,7 +2770,7 @@ void gabc_score_determination_free (void * ptr ) #define YYTABLES_NAME "yytables" -#line 401 "gabc/gabc-score-determination.l" +#line 429 "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 411b56732a4..a53d97e76c7 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 @@ -230,6 +230,8 @@ extern char *gabc_score_determination_text; #define comments 6 #define inicomments 7 #define alt 8 +#define protrusion_value 9 +#define protrusion_end 10 #endif @@ -338,9 +340,9 @@ extern int gabc_score_determination_lex (void); #undef YY_DECL #endif -#line 401 "gabc/gabc-score-determination.l" +#line 429 "gabc/gabc-score-determination.l" -#line 345 "gabc/gabc-score-determination-l.h" +#line 347 "gabc/gabc-score-determination-l.h" #undef gabc_score_determination_IN_HEADER #endif /* gabc_score_determination_HEADER_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 82e4d2dc37a..7017c6a3e07 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 @@ -78,7 +78,7 @@ * This file implements the score parser. * * Gregorio score determination from gabc. - * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -125,10 +125,13 @@ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ (Current).last_offset = YYRHSLOC (Rhs, N).last_offset; \ + (Current).generate_point_and_click = YYRHSLOC (Rhs, 1).generate_point_and_click; \ } else { \ (Current).first_line = (Current).last_line = YYRHSLOC (Rhs, 0).last_line; \ (Current).first_column = (Current).last_column = YYRHSLOC (Rhs, 0).last_column; \ (Current).first_offset = (Current).last_offset = YYRHSLOC (Rhs, 0).last_offset; \ + (Current).first_offset = (Current).last_offset = YYRHSLOC (Rhs, 0).last_offset; \ + (Current).generate_point_and_click = YYRHSLOC (Rhs, 0).generate_point_and_click; \ } #include "gabc-score-determination.h" @@ -160,6 +163,7 @@ gregorio_element *current_element; static char *macros[10]; /* other variables that we will have to use */ static gregorio_character *current_character; +static gregorio_character *suspended_character; static gregorio_character *first_text_character; static gregorio_character *first_translation_character; static gregorio_tr_centering translation_type; @@ -178,6 +182,9 @@ static bool got_staff_lines; static bool started_first_word; static struct sha1_ctx digester; static gabc_style_bits styles; +static bool generate_point_and_click; +static bool clear_syllable_text; +static bool has_protrusion; /* punctum_inclinatum_orientation maintains the running punctum inclinatum * orientation in order to decide if the glyph needs to be cut when a punctum @@ -214,7 +221,7 @@ static void gabc_score_determination_error(const char *error_str) * The function that will initialize the variables. */ -static void initialize_variables(void) +static void initialize_variables(bool point_and_click) { int i; /* build a brand new empty score */ @@ -227,6 +234,7 @@ static void initialize_variables(void) number_of_voices = 1; voice = 0; /* first (and only) voice */ current_character = NULL; + suspended_character = NULL; first_translation_character = NULL; first_text_character = NULL; translation_type = TR_NORMAL; @@ -242,6 +250,9 @@ static void initialize_variables(void) started_first_word = false; styles = 0; punctum_inclinatum_orientation = S_PUNCTUM_INCLINATUM_UNDETERMINED; + generate_point_and_click = point_and_click; + clear_syllable_text = false; + has_protrusion = false; } /* @@ -266,7 +277,7 @@ static void end_definitions(void) { int i; - gregorio_assert_only(check_infos_integrity(score), end_definitions, + gregorio_assert_only(gabc_check_infos_integrity(score), end_definitions, "can't determine valid infos on the score"); elements = (gregorio_element **) gregorio_malloc(number_of_voices * @@ -378,7 +389,159 @@ static void rebuild_score_characters(void) } /* - * Function to close a syllable and update the position. + * + * 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); +} + +static __inline void save_text(void) +{ + if (has_protrusion) { + end_style(ST_PROTRUSION); + } + ready_characters(); + first_text_character = current_character; +} + +/* a function called when we see a [, basically, all characters are added to + * the translation pointer instead of the text pointer */ +static void start_translation(unsigned char asked_translation_type) +{ + suspended_character = current_character; + /* the middle letters of the translation have no sense */ + /*center_is_determined = CENTER_FULLY_DETERMINED;*/ + current_character = NULL; + translation_type = asked_translation_type; +} + +static void end_translation(void) +{ + ready_characters(); + first_translation_character = current_character; + current_character = suspended_character; +} + +/* + * 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 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); + current_character->next_character->previous_character = + current_character; + } else { + current_character = gregorio_build_char_list_from_buf(mbcharacters); + } + while (current_character && current_character->next_character) { + current_character = current_character->next_character; + } + free(mbcharacters); +} + +static void add_protrusion(char *factor) +{ + if (has_protrusion) { + gregorio_message("syllable already has protrusion; pr tag ignored", + "det_score", VERBOSITY_WARNING, 0); + free(factor); + } else { + if (center_is_determined == CENTER_HALF_DETERMINED) { + gregorio_message("closing open syllable center before protrusion", + "det_score", VERBOSITY_WARNING, 0); + end_style(ST_FORCED_CENTER); + center_is_determined = CENTER_FULLY_DETERMINED; + } + + add_style(ST_PROTRUSION_FACTOR); + add_text(factor); + end_style(ST_PROTRUSION_FACTOR); + add_style(ST_PROTRUSION); + has_protrusion = true; + } +} + +static void add_auto_protrusion(char *protrusion) +{ + if (has_protrusion) { + add_text(protrusion); + } else { + add_style(ST_PROTRUSION_FACTOR); + add_style(ST_VERBATIM); + add_text(gregorio_strdup("\\GreProtrusionFactor{")); + + switch (*protrusion) { + case ',': + add_text(gregorio_strdup("comma")); + break; + case ';': + add_text(gregorio_strdup("semicolon")); + break; + case ':': + add_text(gregorio_strdup("colon")); + break; + case '.': + add_text(gregorio_strdup("period")); + break; + default: + /* not reachable unless there's a programming error */ + /* LCOV_EXCL_START */ + gregorio_fail2(add_auto_protrusion, + "unsupported protruding punctuation: %c", *protrusion); + break; + /* LCOV_EXCL_STOP */ + } + + add_text(gregorio_strdup("}")); + end_style(ST_VERBATIM); + end_style(ST_PROTRUSION_FACTOR); + + add_style(ST_PROTRUSION); + add_text(protrusion); + end_style(ST_PROTRUSION); + + has_protrusion = true; + } +} + +/* + * Function to close a syllable and update the position. */ static void close_syllable(YYLTYPE *loc) @@ -394,10 +557,9 @@ static void close_syllable(YYLTYPE *loc) switch (ch->cos.s.type) { case ST_T_BEGIN: ++i; - if (i > 1) { - gregorio_message(_("elisions may not be nested"), - "close_syllable", VERBOSITY_ERROR, 0); - } + /* the parser precludes this from falling here */ + gregorio_assert_only(i <= 1, close_syllable, + "elisions may not be nested"); break; case ST_T_END: @@ -436,7 +598,7 @@ static void close_syllable(YYLTYPE *loc) gregorio_add_syllable(¤t_syllable, number_of_voices, elements, first_text_character, first_translation_character, position, abovelinestext, translation_type, no_linebreak_area, euouae, loc, - started_first_word); + started_first_word, clear_syllable_text); if (!score->first_syllable) { /* we rebuild the first syllable if we have to */ score->first_syllable = current_syllable; @@ -457,6 +619,7 @@ static void close_syllable(YYLTYPE *loc) } center_is_determined = CENTER_NOT_DETERMINED; current_character = NULL; + suspended_character = NULL; first_text_character = NULL; first_translation_character = NULL; translation_type = TR_NORMAL; @@ -467,84 +630,8 @@ static void close_syllable(YYLTYPE *loc) elements[i] = NULL; } current_element = NULL; -} - -/* a function called when we see a [, basically, all characters are added to - * the translation pointer instead of the text pointer */ -static void start_translation(unsigned char asked_translation_type) -{ - ready_characters(); - first_text_character = current_character; - /* the middle letters of the translation have no sense */ - center_is_determined = CENTER_FULLY_DETERMINED; - current_character = NULL; - translation_type = asked_translation_type; -} - -static void end_translation(void) -{ - ready_characters(); - first_translation_character = current_character; -} - -/* - * - * 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 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); - current_character->next_character->previous_character = - current_character; - } else { - current_character = gregorio_build_char_list_from_buf(mbcharacters); - } - while (current_character && current_character->next_character) { - current_character = current_character->next_character; - } - free(mbcharacters); + clear_syllable_text = false; + has_protrusion = false; } void gabc_digest(const void *const buf, const size_t size) @@ -558,7 +645,7 @@ void gabc_digest(const void *const buf, const size_t size) * aleady open. It returns a valid gregorio_score */ -gregorio_score *gabc_read_score(FILE *f_in) +gregorio_score *gabc_read_score(FILE *f_in, bool point_and_click) { /* compute the SHA-1 digest while parsing, for I/O efficiency */ sha1_init_ctx(&digester); @@ -569,21 +656,23 @@ gregorio_score *gabc_read_score(FILE *f_in) gabc_score_determination_in = f_in; gregorio_assert(f_in, gabc_read_score, "can't read stream from NULL", return NULL); - initialize_variables(); + initialize_variables(point_and_click); /* the flex/bison main call, it will build the score (that we have * initialized) */ gabc_score_determination_parse(); if (!score->legacy_oriscus_orientation) { - determine_oriscus_orientation(score); + gabc_determine_oriscus_orientation(score); } - determine_punctum_inclinatum_orientation(score); + gabc_determine_punctum_inclinatum_orientation(score); + gabc_determine_ledger_lines(score); gregorio_fix_initial_keys(score, gregorio_default_clef); rebuild_score_characters(); - fix_custos(score); + gabc_suppress_extra_custos_at_linebreak(score); + gabc_fix_custos_pitches(score); gabc_det_notes_finish(); free_variables(); /* then we check the validity and integrity of the score we have built. */ - if (!check_score_integrity(score)) { + if (!gabc_check_score_integrity(score)) { gregorio_message(_("unable to determine a valid score from file"), "gabc_read_score", VERBOSITY_ERROR, 0); } @@ -629,7 +718,14 @@ static void gabc_y_add_notes(char *notes, YYLTYPE loc) { } } -#line 633 "gabc/gabc-score-determination-y.c" /* yacc.c:339 */ +static char *concatenate(char *first, char *const second) { + first = (char *)gregorio_realloc(first, strlen(first) + strlen(second) + 1); + strcat(first, second); + free(second); + return first; +} + +#line 729 "gabc/gabc-score-determination-y.c" /* yacc.c:339 */ # ifndef YY_NULLPTR # if defined __cplusplus && 201103L <= __cplusplus @@ -677,51 +773,53 @@ extern int gabc_score_determination_debug; MODE = 268, MODE_MODIFIER = 269, MODE_DIFFERENTIA = 270, - INITIAL_STYLE = 271, - END_OF_DEFINITIONS = 272, - END_OF_FILE = 273, - COLON = 274, - SEMICOLON = 275, - SPACE = 276, - CHARACTERS = 277, - NOTES = 278, - HYPHEN = 279, - ATTRIBUTE = 280, - OPENING_BRACKET = 281, - CLOSING_BRACKET = 282, - CLOSING_BRACKET_WITH_SPACE = 283, - I_BEGIN = 284, - I_END = 285, - TT_BEGIN = 286, - TT_END = 287, - UL_BEGIN = 288, - UL_END = 289, - C_BEGIN = 290, - C_END = 291, - B_BEGIN = 292, - B_END = 293, - SC_BEGIN = 294, - SC_END = 295, - SP_BEGIN = 296, - SP_END = 297, - VERB_BEGIN = 298, - VERB = 299, - VERB_END = 300, - CENTER_BEGIN = 301, - CENTER_END = 302, - ELISION_BEGIN = 303, - ELISION_END = 304, - TRANSLATION_BEGIN = 305, - TRANSLATION_END = 306, - TRANSLATION_CENTER_END = 307, - ALT_BEGIN = 308, - ALT_END = 309, - NLBA_B = 310, - NLBA_E = 311, - EUOUAE_B = 312, - EUOUAE_E = 313, - NABC_CUT = 314, - NABC_LINES = 315 + END_OF_DEFINITIONS = 271, + END_OF_FILE = 272, + COLON = 273, + SEMICOLON = 274, + CHARACTERS = 275, + NOTES = 276, + HYPHEN = 277, + ATTRIBUTE = 278, + OPENING_BRACKET = 279, + CLOSING_BRACKET = 280, + CLOSING_BRACKET_WITH_SPACE = 281, + I_BEGIN = 282, + I_END = 283, + TT_BEGIN = 284, + TT_END = 285, + UL_BEGIN = 286, + UL_END = 287, + C_BEGIN = 288, + C_END = 289, + B_BEGIN = 290, + B_END = 291, + SC_BEGIN = 292, + SC_END = 293, + SP_BEGIN = 294, + SP_END = 295, + VERB_BEGIN = 296, + VERB_END = 297, + CENTER_BEGIN = 298, + CENTER_END = 299, + ELISION_BEGIN = 300, + ELISION_END = 301, + TRANSLATION_BEGIN = 302, + TRANSLATION_END = 303, + TRANSLATION_CENTER_END = 304, + ALT_BEGIN = 305, + ALT_END = 306, + NLBA_B = 307, + NLBA_E = 308, + EUOUAE_B = 309, + EUOUAE_E = 310, + NABC_CUT = 311, + NABC_LINES = 312, + CLEAR = 313, + PROTRUSION = 314, + PROTRUSION_VALUE = 315, + PROTRUSION_END = 316, + PROTRUDING_PUNCTUATION = 317 }; #endif /* Tokens. */ @@ -738,51 +836,53 @@ extern int gabc_score_determination_debug; #define MODE 268 #define MODE_MODIFIER 269 #define MODE_DIFFERENTIA 270 -#define INITIAL_STYLE 271 -#define END_OF_DEFINITIONS 272 -#define END_OF_FILE 273 -#define COLON 274 -#define SEMICOLON 275 -#define SPACE 276 -#define CHARACTERS 277 -#define NOTES 278 -#define HYPHEN 279 -#define ATTRIBUTE 280 -#define OPENING_BRACKET 281 -#define CLOSING_BRACKET 282 -#define CLOSING_BRACKET_WITH_SPACE 283 -#define I_BEGIN 284 -#define I_END 285 -#define TT_BEGIN 286 -#define TT_END 287 -#define UL_BEGIN 288 -#define UL_END 289 -#define C_BEGIN 290 -#define C_END 291 -#define B_BEGIN 292 -#define B_END 293 -#define SC_BEGIN 294 -#define SC_END 295 -#define SP_BEGIN 296 -#define SP_END 297 -#define VERB_BEGIN 298 -#define VERB 299 -#define VERB_END 300 -#define CENTER_BEGIN 301 -#define CENTER_END 302 -#define ELISION_BEGIN 303 -#define ELISION_END 304 -#define TRANSLATION_BEGIN 305 -#define TRANSLATION_END 306 -#define TRANSLATION_CENTER_END 307 -#define ALT_BEGIN 308 -#define ALT_END 309 -#define NLBA_B 310 -#define NLBA_E 311 -#define EUOUAE_B 312 -#define EUOUAE_E 313 -#define NABC_CUT 314 -#define NABC_LINES 315 +#define END_OF_DEFINITIONS 271 +#define END_OF_FILE 272 +#define COLON 273 +#define SEMICOLON 274 +#define CHARACTERS 275 +#define NOTES 276 +#define HYPHEN 277 +#define ATTRIBUTE 278 +#define OPENING_BRACKET 279 +#define CLOSING_BRACKET 280 +#define CLOSING_BRACKET_WITH_SPACE 281 +#define I_BEGIN 282 +#define I_END 283 +#define TT_BEGIN 284 +#define TT_END 285 +#define UL_BEGIN 286 +#define UL_END 287 +#define C_BEGIN 288 +#define C_END 289 +#define B_BEGIN 290 +#define B_END 291 +#define SC_BEGIN 292 +#define SC_END 293 +#define SP_BEGIN 294 +#define SP_END 295 +#define VERB_BEGIN 296 +#define VERB_END 297 +#define CENTER_BEGIN 298 +#define CENTER_END 299 +#define ELISION_BEGIN 300 +#define ELISION_END 301 +#define TRANSLATION_BEGIN 302 +#define TRANSLATION_END 303 +#define TRANSLATION_CENTER_END 304 +#define ALT_BEGIN 305 +#define ALT_END 306 +#define NLBA_B 307 +#define NLBA_E 308 +#define EUOUAE_B 309 +#define EUOUAE_E 310 +#define NABC_CUT 311 +#define NABC_LINES 312 +#define CLEAR 313 +#define PROTRUSION 314 +#define PROTRUSION_VALUE 315 +#define PROTRUSION_END 316 +#define PROTRUDING_PUNCTUATION 317 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -814,7 +914,7 @@ int gabc_score_determination_parse (void); /* Copy the second part of user declarations. */ -#line 818 "gabc/gabc-score-determination-y.c" /* yacc.c:358 */ +#line 918 "gabc/gabc-score-determination-y.c" /* yacc.c:358 */ #ifdef short # undef short @@ -1058,21 +1158,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 4 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 166 +#define YYLAST 247 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 61 +#define YYNTOKENS 63 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 23 +#define YYNNTS 28 /* YYNRULES -- Number of rules. */ -#define YYNRULES 81 +#define YYNRULES 101 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 115 +#define YYNSTATES 145 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 315 +#define YYMAXUTOK 317 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -1112,22 +1212,24 @@ static const yytype_uint8 yytranslate[] = 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60 + 55, 56, 57, 58, 59, 60, 61, 62 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 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 + 0, 700, 700, 704, 709, 710, 714, 717, 723, 726, + 732, 737, 746, 752, 757, 762, 767, 772, 777, 785, + 793, 802, 807, 811, 816, 817, 821, 826, 832, 843, + 847, 855, 856, 857, 861, 864, 867, 870, 873, 876, + 879, 882, 888, 891, 894, 897, 900, 903, 906, 909, + 915, 918, 935, 938, 951, 954, 960, 963, 969, 972, + 978, 979, 982, 983, 984, 985, 986, 987, 988, 991, + 992, 995, 1001, 1002, 1006, 1009, 1010, 1011, 1014, 1020, + 1021, 1025, 1031, 1034, 1037, 1044, 1050, 1054, 1061, 1068, + 1073, 1078, 1082, 1089, 1096, 1101, 1109, 1112, 1118, 1119, + 1122, 1123 }; #endif @@ -1139,19 +1241,21 @@ static const char *const yytname[] = "$end", "error", "$undefined", "NAME", "AUTHOR", "GABC_COPYRIGHT", "SCORE_COPYRIGHT", "LANGUAGE", "STAFF_LINES", "ORISCUS_ORIENTATION", "DEF_MACRO", "OTHER_HEADER", "ANNOTATION", "MODE", "MODE_MODIFIER", - "MODE_DIFFERENTIA", "INITIAL_STYLE", "END_OF_DEFINITIONS", "END_OF_FILE", - "COLON", "SEMICOLON", "SPACE", "CHARACTERS", "NOTES", "HYPHEN", - "ATTRIBUTE", "OPENING_BRACKET", "CLOSING_BRACKET", - "CLOSING_BRACKET_WITH_SPACE", "I_BEGIN", "I_END", "TT_BEGIN", "TT_END", - "UL_BEGIN", "UL_END", "C_BEGIN", "C_END", "B_BEGIN", "B_END", "SC_BEGIN", - "SC_END", "SP_BEGIN", "SP_END", "VERB_BEGIN", "VERB", "VERB_END", - "CENTER_BEGIN", "CENTER_END", "ELISION_BEGIN", "ELISION_END", - "TRANSLATION_BEGIN", "TRANSLATION_END", "TRANSLATION_CENTER_END", - "ALT_BEGIN", "ALT_END", "NLBA_B", "NLBA_E", "EUOUAE_B", "EUOUAE_E", - "NABC_CUT", "NABC_LINES", "$accept", "score", "all_definitions", - "definitions", "attribute", "definition", "notes", "note", - "closing_bracket_with_space", "style_beginning", "style_end", "euouae", - "linebreak_area", "character", "text_hyphen", "text", + "MODE_DIFFERENTIA", "END_OF_DEFINITIONS", "END_OF_FILE", "COLON", + "SEMICOLON", "CHARACTERS", "NOTES", "HYPHEN", "ATTRIBUTE", + "OPENING_BRACKET", "CLOSING_BRACKET", "CLOSING_BRACKET_WITH_SPACE", + "I_BEGIN", "I_END", "TT_BEGIN", "TT_END", "UL_BEGIN", "UL_END", + "C_BEGIN", "C_END", "B_BEGIN", "B_END", "SC_BEGIN", "SC_END", "SP_BEGIN", + "SP_END", "VERB_BEGIN", "VERB_END", "CENTER_BEGIN", "CENTER_END", + "ELISION_BEGIN", "ELISION_END", "TRANSLATION_BEGIN", "TRANSLATION_END", + "TRANSLATION_CENTER_END", "ALT_BEGIN", "ALT_END", "NLBA_B", "NLBA_E", + "EUOUAE_B", "EUOUAE_E", "NABC_CUT", "NABC_LINES", "CLEAR", "PROTRUSION", + "PROTRUSION_VALUE", "PROTRUSION_END", "PROTRUDING_PUNCTUATION", + "$accept", "score", "all_definitions", "definitions", "attribute_value", + "attribute", "definition", "notes", "note", "closing_bracket_with_space", + "style_beginning", "style_end", "special_style_beginning", + "special_style_end", "euouae", "linebreak_area", "protrusion", + "character", "text", "translation_character", "translation_text", "translation_beginning", "translation", "above_line_text", "syllable_with_notes", "notes_without_word", "syllable", "syllables", YY_NULLPTR }; @@ -1168,36 +1272,39 @@ static const yytype_uint16 yytoknum[] = 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315 + 315, 316, 317 }; # endif -#define YYPACT_NINF -52 +#define YYPACT_NINF -85 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-52))) + (!!((Yystate) == (-85))) -#define YYTABLE_NINF -3 +#define YYTABLE_NINF -1 #define yytable_value_is_error(Yytable_value) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -static const yytype_int8 yypact[] = +static const yytype_int16 yypact[] = { - -52, 17, -52, -2, -52, 16, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - -52, 18, -52, -52, -52, -52, 41, -52, 12, -52, - -52, -52, 28, -52, -52, -52, -52, -52, -52, -52, - -52, -52, -52, -52, -52, -52, -52, -52, 24, -52, - -6, -52, -52, -52, -52, -52, -52, -52, -52, -52, - -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, - -52, -52, 19, -52, -52, -52, -52, -52, -52, -52, - -52, -52, 108, 13, -52, 78, -52, -52, 20, -9, - 36, 37, -52, -52, -52, 30, 24, 3, -52, -52, - -52, -52, -52, 24, -52, 36, -52, -52, -52, -52, - 24, -52, -52, 24, 24 + -85, 11, -85, 69, -85, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -85, + 0, -85, -85, -20, -85, -85, -85, -85, -85, -85, + -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, + -85, -85, -85, -85, -85, -85, -85, 4, -85, -85, + -85, -85, -85, -41, -19, -85, -85, -85, -85, -85, + -85, -85, -85, 107, 148, -4, -85, -85, -85, -85, + -7, -85, -85, -85, -85, -85, -85, -85, -85, -85, + -85, -85, -85, -85, -85, -85, 1, -11, -17, -29, + -85, 9, -2, -85, -1, -85, 13, -85, -85, -85, + -85, -85, -85, -85, 184, -85, -85, -85, -6, -11, + -85, -18, 27, 32, -85, -85, -85, -85, -11, -85, + -85, 26, -11, -85, 28, -85, -85, -85, -11, -85, + -85, -11, 27, -85, -85, -85, -85, -11, -11, -85, + -11, -85, -11, -11, -11 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1205,124 +1312,150 @@ static const yytype_int8 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 4, 0, 80, 0, 1, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 5, 23, 68, 70, 0, 65, 0, 78, - 79, 81, 0, 9, 20, 11, 12, 10, 16, 21, - 8, 22, 19, 13, 14, 15, 18, 17, 76, 58, - 63, 23, 33, 43, 34, 44, 35, 45, 36, 46, - 37, 47, 38, 48, 40, 50, 39, 49, 42, 52, - 41, 51, 0, 55, 56, 53, 54, 59, 60, 62, - 61, 66, 0, 0, 57, 0, 23, 7, 0, 0, - 28, 30, 24, 29, 23, 0, 72, 0, 64, 67, - 23, 63, 69, 77, 6, 25, 27, 26, 32, 31, - 73, 23, 71, 74, 75 + 4, 0, 100, 0, 1, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 0, 5, 61, 70, 24, 34, 42, 35, 43, 36, + 44, 37, 45, 38, 46, 39, 47, 41, 49, 40, + 48, 51, 53, 50, 52, 81, 84, 0, 56, 57, + 54, 55, 68, 59, 71, 62, 63, 64, 65, 67, + 66, 69, 72, 0, 0, 0, 60, 98, 99, 101, + 0, 11, 21, 13, 14, 12, 18, 22, 10, 23, + 20, 15, 16, 17, 19, 24, 0, 96, 0, 0, + 24, 0, 70, 24, 71, 73, 0, 74, 77, 82, + 78, 75, 76, 79, 0, 24, 9, 6, 0, 87, + 24, 0, 29, 31, 25, 30, 85, 58, 89, 24, + 24, 0, 86, 24, 0, 24, 83, 80, 97, 8, + 7, 92, 26, 28, 27, 33, 32, 94, 88, 24, + 90, 24, 91, 93, 95 }; /* YYPGOTO[NTERM-NUM]. */ -static const yytype_int8 yypgoto[] = +static const yytype_int16 yypgoto[] = { - -52, -52, -52, -52, 15, -52, -51, -52, -30, -52, - -52, -52, -52, -21, -52, 35, -52, -5, -52, -52, - -52, -52, -52 + -85, -85, -85, -85, -85, 227, -85, -84, -85, -60, + -62, -61, -85, -85, -85, -85, -85, -10, -85, -50, + -85, -85, -23, -85, -85, -85, -85, -85 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { - -1, 1, 2, 3, 33, 22, 48, 92, 93, 77, - 78, 79, 80, 81, 82, 26, 27, 28, 84, 29, - 30, 31, 5 + -1, 1, 2, 3, 108, 71, 21, 87, 114, 115, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 103, + 104, 64, 65, 66, 67, 68, 69, 5 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule whose number is the opposite. If YYTABLE_NINF, syntax error. */ -static const yytype_int8 yytable[] = +static const yytype_uint8 yytable[] = { - 96, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, -2, 4, 105, 91, - 94, 83, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 103, 47, 32, 86, 100, - 104, 97, 23, 110, 24, 95, 25, 89, 87, 113, - 106, 90, 91, 88, 108, 109, 111, 112, 21, 107, - 114, 99, 85, 49, 0, 50, 24, 51, 25, 0, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 0, 67, 68, 69, 70, - 71, 24, 0, 25, 72, 0, 73, 74, 75, 76, - 49, 0, 101, 0, 0, 0, 0, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 0, 67, 68, 69, 70, 71, 0, 102, - 49, 72, 98, 73, 74, 75, 76, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 0, 67, 68, 69, 70, 71, 0, 0, - 0, 72, 0, 73, 74, 75, 76 + 86, 109, 101, 102, 85, 90, 118, 132, 113, 122, + 111, 4, 106, 129, 112, 113, 107, 130, 70, 89, + 105, 128, 120, 123, 88, 110, 131, 45, 45, 46, + 46, 91, 117, 119, 116, 137, 138, 125, 133, 140, + 96, 142, 101, 102, 135, 45, 45, 46, 46, 136, + 139, 134, 141, 95, 127, 143, 0, 144, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, + 0, 124, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 22, 0, 23, 0, + 24, 0, 0, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 0, 46, 47, 0, 48, 49, + 50, 51, 0, 0, 52, 53, 20, 22, 54, 92, + 0, 93, 0, 0, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 0, 46, 47, 0, 48, + 49, 50, 51, 0, 0, 52, 53, 0, 97, 94, + 98, 0, 0, 0, 0, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 0, 0, 0, 0, 0, 99, 0, 0, 0, + 0, 0, 0, 0, 97, 0, 98, 0, 0, 0, + 100, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 0, 0, 0, + 0, 0, 126, 0, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 100, 84 }; -static const yytype_int8 yycheck[] = +static const yytype_int16 yycheck[] = { - 51, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 0, 0, 27, 28, - 26, 26, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 86, 21, 19, 26, 26, - 20, 22, 26, 94, 50, 50, 52, 23, 20, 100, - 59, 27, 28, 25, 18, 18, 26, 54, 60, 89, - 111, 82, 27, 22, -1, 24, 50, 26, 52, -1, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, -1, 45, 46, 47, 48, - 49, 50, -1, 52, 53, -1, 55, 56, 57, 58, - 22, -1, 24, -1, -1, -1, -1, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, -1, 45, 46, 47, 48, 49, -1, 51, - 22, 53, 24, 55, 56, 57, 58, 29, 30, 31, + 23, 85, 64, 64, 24, 24, 90, 25, 26, 93, + 21, 0, 19, 19, 25, 26, 23, 23, 18, 60, + 24, 105, 24, 24, 20, 24, 110, 47, 47, 49, + 49, 54, 61, 24, 51, 119, 120, 24, 56, 123, + 63, 125, 104, 104, 17, 47, 47, 49, 49, 17, + 24, 111, 24, 63, 104, 139, -1, 141, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, + -1, 94, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 20, -1, 22, -1, + 24, -1, -1, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, + 54, 55, -1, -1, 58, 59, 57, 20, 62, 22, + -1, 24, -1, -1, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, + 53, 54, 55, -1, -1, 58, 59, -1, 20, 62, + 22, -1, -1, -1, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, -1, 45, 46, 47, 48, 49, -1, -1, - -1, 53, -1, 55, 56, 57, 58 + 42, -1, -1, -1, -1, -1, 48, -1, -1, -1, + -1, -1, -1, -1, 20, -1, 22, -1, -1, -1, + 62, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, -1, -1, -1, + -1, -1, 48, -1, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 62, 20 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 62, 63, 64, 0, 83, 3, 4, 5, 6, + 0, 64, 65, 66, 0, 90, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 60, 66, 26, 50, 52, 76, 77, 78, 80, - 81, 82, 19, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 67, 22, - 24, 26, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, - 48, 49, 53, 55, 56, 57, 58, 70, 71, 72, - 73, 74, 75, 78, 79, 76, 26, 20, 25, 23, - 27, 28, 68, 69, 26, 78, 67, 22, 24, 74, - 26, 24, 51, 67, 20, 27, 59, 69, 18, 18, - 67, 26, 54, 67, 67 + 57, 69, 20, 22, 24, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 49, 50, 52, 53, + 54, 55, 58, 59, 62, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 84, 85, 86, 87, 88, 89, + 18, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 24, 85, 70, 20, 60, + 24, 85, 22, 24, 62, 80, 85, 20, 22, 48, + 62, 73, 74, 82, 83, 24, 19, 23, 67, 70, + 24, 21, 25, 26, 71, 72, 51, 61, 70, 24, + 24, 85, 70, 24, 85, 24, 48, 82, 70, 19, + 23, 70, 25, 56, 72, 17, 17, 70, 70, 24, + 70, 24, 70, 70, 70 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 61, 62, 63, 64, 64, 65, 65, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 67, 67, 68, 68, 68, 68, 68, - 69, 69, 69, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 72, 72, 73, 73, 74, 74, 74, - 74, 74, 74, 75, 75, 76, 76, 76, 77, 78, - 78, 79, 80, 80, 80, 80, 81, 81, 82, 82, - 83, 83 + 0, 63, 64, 65, 66, 66, 67, 67, 68, 68, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 70, 70, 71, 71, 71, 71, + 71, 72, 72, 72, 73, 73, 73, 73, 73, 73, + 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, + 75, 75, 76, 76, 77, 77, 78, 78, 79, 79, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 81, 81, 82, 82, 82, 82, 82, 83, + 83, 84, 85, 85, 85, 86, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 88, 88, 89, 89, + 90, 90 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { - 0, 2, 2, 2, 0, 2, 3, 2, 2, 2, + 0, 2, 2, 2, 0, 2, 1, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 0, 2, 2, 2, 2, 1, 1, - 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 0, 2, 2, 2, 2, 1, + 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 0, 2, 3, 1, 3, - 1, 3, 3, 4, 4, 5, 2, 3, 1, 1, + 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, + 2, 1, 2, 3, 1, 3, 3, 3, 4, 3, + 4, 4, 4, 5, 4, 5, 2, 3, 1, 1, 0, 2 }; @@ -1909,7 +2042,7 @@ yyparse (void) yychar = YYEMPTY; /* Cause a token to be read. */ /* User initialization code. */ -#line 559 "gabc/gabc-score-determination.y" /* yacc.c:1429 */ +#line 655 "gabc/gabc-score-determination.y" /* yacc.c:1429 */ { yylloc.first_line = 1; yylloc.first_column = 0; @@ -1917,9 +2050,10 @@ yyparse (void) yylloc.last_line = 1; yylloc.last_column = 0; yylloc.last_offset = 0; + yylloc.generate_point_and_click = generate_point_and_click; } -#line 1923 "gabc/gabc-score-determination-y.c" /* yacc.c:1429 */ +#line 2057 "gabc/gabc-score-determination-y.c" /* yacc.c:1429 */ yylsp[0] = yylloc; goto yysetstate; @@ -2106,41 +2240,57 @@ yyreduce: switch (yyn) { case 3: -#line 601 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 704 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { end_definitions(); } -#line 2114 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2248 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 6: -#line 611 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 714 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - (yyval).text = (yyvsp[-1]).text; + (yyval).text = (yyvsp[0]).text; } -#line 2122 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2256 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 7: -#line 615 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 717 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - (yyval).text = NULL; + (yyval).text = concatenate((yyvsp[-1]).text, (yyvsp[0]).text); } -#line 2130 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2264 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 8: -#line 621 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 723 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + { + (yyval).text = (yyvsp[-1]).text; + } +#line 2272 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ + break; + + case 9: +#line 726 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + { + (yyval).text = NULL; + } +#line 2280 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ + break; + + case 10: +#line 732 "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 2140 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2290 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 9: -#line 626 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 11: +#line 737 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { if ((yyvsp[0]).text == NULL) { gregorio_message("name can't be empty","det_score", @@ -2150,72 +2300,72 @@ yyreduce: gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text); score->name = (yyvsp[0]).text; } -#line 2154 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2304 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 10: -#line 635 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 12: +#line 746 "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 2165 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2315 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 11: -#line 641 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 13: +#line 752 "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 2175 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2325 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 12: -#line 646 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 14: +#line 757 "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 2185 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2335 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 13: -#line 651 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 15: +#line 762 "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 2195 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2345 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 14: -#line 656 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 16: +#line 767 "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 2205 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2355 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 15: -#line 661 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 17: +#line 772 "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 2215 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2365 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 16: -#line 666 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 18: +#line 777 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { check_multiple("staff-lines", got_staff_lines); if ((yyvsp[0]).text) { @@ -2224,11 +2374,11 @@ yyreduce: got_staff_lines = true; } } -#line 2228 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2378 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 17: -#line 674 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 19: +#line 785 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { check_multiple("nabc lines", score->nabc_lines != 0); if ((yyvsp[0]).text) { @@ -2237,26 +2387,11 @@ yyreduce: score->nabc_lines=nabc_lines; } } -#line 2241 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2391 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 18: -#line 682 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ - { - if ((yyvsp[0]).text) { - /* 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); - score->initial_style = atoi((yyvsp[0]).text); - free((yyvsp[0]).text); - } - } -#line 2256 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ - break; - - case 19: -#line 692 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 20: +#line 793 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { if (score->annotation [MAX_ANNOTATIONS - 1]) { gregorio_messagef("det_score", VERBOSITY_WARNING, 0, @@ -2266,59 +2401,59 @@ yyreduce: gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text); gregorio_set_score_annotation(score, (yyvsp[0]).text); } -#line 2270 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2405 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 20: -#line 701 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 21: +#line 802 "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 2280 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2415 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 21: -#line 706 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 22: +#line 807 "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 2289 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2424 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 22: -#line 710 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 23: +#line 811 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text); } -#line 2297 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2432 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 25: -#line 720 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 26: +#line 821 "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 2307 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2442 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 26: -#line 725 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 27: +#line 826 "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 2318 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2453 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 27: -#line 731 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 28: +#line 832 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { if (!nabc_lines) { gregorio_message(_("You used character \"|\" in gabc without " @@ -2330,342 +2465,475 @@ yyreduce: free((yyvsp[-1]).text); nabc_state = (nabc_state + 1) % (nabc_lines+1); } -#line 2334 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2469 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 28: -#line 742 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 29: +#line 843 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { elements[voice]=NULL; nabc_state=0; } -#line 2343 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2478 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 29: -#line 746 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 30: +#line 847 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { elements[voice]=NULL; nabc_state=0; update_position_with_space(); } -#line 2353 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ - break; - - case 33: -#line 760 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ - { - add_style(ST_ITALIC); - } -#line 2361 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2488 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 34: -#line 763 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 861 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - add_style(ST_TT); + add_style(ST_ITALIC); } -#line 2369 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2496 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 35: -#line 766 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 864 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - add_style(ST_UNDERLINED); + add_style(ST_TT); } -#line 2377 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2504 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 36: -#line 769 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 867 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - add_style(ST_COLORED); + add_style(ST_UNDERLINED); } -#line 2385 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2512 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 37: -#line 772 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 870 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - add_style(ST_BOLD); + add_style(ST_COLORED); } -#line 2393 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2520 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 38: -#line 775 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 873 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - add_style(ST_SMALL_CAPS); + add_style(ST_BOLD); } -#line 2401 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2528 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 39: -#line 778 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 876 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - add_style(ST_VERBATIM); + add_style(ST_SMALL_CAPS); } -#line 2409 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2536 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 40: -#line 781 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 879 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - add_style(ST_SPECIAL_CHAR); + add_style(ST_VERBATIM); } -#line 2417 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2544 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 41: -#line 784 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 882 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - add_style(ST_ELISION); + add_style(ST_SPECIAL_CHAR); } -#line 2425 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2552 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 42: -#line 787 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 888 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - if (!center_is_determined) { - add_style(ST_FORCED_CENTER); - center_is_determined=CENTER_HALF_DETERMINED; - } + end_style(ST_ITALIC); } -#line 2436 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2560 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 43: -#line 796 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 891 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - end_style(ST_ITALIC); + end_style(ST_TT); } -#line 2444 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2568 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 44: -#line 799 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 894 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - end_style(ST_TT); + end_style(ST_UNDERLINED); } -#line 2452 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2576 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 45: -#line 802 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 897 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - end_style(ST_UNDERLINED); + end_style(ST_COLORED); } -#line 2460 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2584 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 46: -#line 805 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 900 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - end_style(ST_COLORED); + end_style(ST_BOLD); } -#line 2468 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2592 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 47: -#line 808 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 903 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - end_style(ST_BOLD); + end_style(ST_SMALL_CAPS); } -#line 2476 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2600 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 48: -#line 811 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 906 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - end_style(ST_SMALL_CAPS); + end_style(ST_VERBATIM); } -#line 2484 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2608 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 49: -#line 814 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 909 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - end_style(ST_VERBATIM); + end_style(ST_SPECIAL_CHAR); } -#line 2492 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2616 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 50: -#line 817 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 915 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - end_style(ST_SPECIAL_CHAR); + add_style(ST_ELISION); } -#line 2500 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2624 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 51: -#line 820 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 918 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + { + if (center_is_determined) { + gregorio_message( + "syllable already has center; ignoring additional center", + "det_score", VERBOSITY_WARNING, 0); + } else if (has_protrusion) { + gregorio_message( + "center not allowed after protrusion; ignored", + "det_score", VERBOSITY_WARNING, 0); + } else { + add_style(ST_FORCED_CENTER); + center_is_determined = CENTER_HALF_DETERMINED; + } + } +#line 2643 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ + break; + + case 52: +#line 935 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { end_style(ST_ELISION); } -#line 2508 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2651 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 52: -#line 823 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 53: +#line 938 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - if (center_is_determined==CENTER_HALF_DETERMINED) { + if (center_is_determined == CENTER_HALF_DETERMINED) { end_style(ST_FORCED_CENTER); - center_is_determined=CENTER_FULLY_DETERMINED; + center_is_determined = CENTER_FULLY_DETERMINED; + } else { + gregorio_message( + "not within a syllable center", + "det_score", VERBOSITY_WARNING, 0); } } -#line 2519 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2666 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 53: -#line 832 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 54: +#line 951 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { euouae = EUOUAE_BEGINNING; } -#line 2527 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2674 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 54: -#line 835 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 55: +#line 954 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { euouae = EUOUAE_END; } -#line 2535 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2682 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 55: -#line 841 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 56: +#line 960 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { no_linebreak_area = NLBA_BEGINNING; } -#line 2543 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2690 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 56: -#line 844 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 57: +#line 963 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { no_linebreak_area = NLBA_END; } -#line 2551 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2698 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; case 58: -#line 851 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ +#line 969 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + { + add_protrusion((yyvsp[-1]).text); + } +#line 2706 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ + break; + + case 59: +#line 972 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + { + add_protrusion(gregorio_strdup("d")); /* d = default */ + } +#line 2714 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ + break; + + case 61: +#line 979 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { add_text((yyvsp[0]).text); } -#line 2559 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2722 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 63: -#line 861 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 68: +#line 988 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + { + clear_syllable_text = true; + } +#line 2730 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ + break; + + case 70: +#line 992 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { add_text(gregorio_strdup("-")); } -#line 2567 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2738 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 64: -#line 864 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 71: +#line 995 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + { + add_text((yyvsp[0]).text); + } +#line 2746 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ + break; + + case 74: +#line 1006 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + { + add_text((yyvsp[0]).text); + } +#line 2754 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ + break; + + case 77: +#line 1011 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { add_text(gregorio_strdup("-")); } -#line 2575 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2762 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 68: -#line 875 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 78: +#line 1014 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + { + add_text((yyvsp[0]).text); + } +#line 2770 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ + break; + + case 81: +#line 1025 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { start_translation(TR_NORMAL); } -#line 2583 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2778 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 69: -#line 881 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 82: +#line 1031 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { end_translation(); } -#line 2591 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2786 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 70: -#line 884 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 83: +#line 1034 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + { + end_translation(); + } +#line 2794 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ + break; + + case 84: +#line 1037 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { start_translation(TR_WITH_CENTER_END); + end_translation(); } -#line 2599 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2803 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 71: -#line 890 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 85: +#line 1044 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { abovelinestext = (yyvsp[-1]).text; } -#line 2607 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2811 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 72: -#line 896 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 86: +#line 1050 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { - ready_characters(); - first_text_character = current_character; + save_text(); close_syllable(&(yylsp[-2])); } -#line 2617 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2820 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 73: -#line 901 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 87: +#line 1054 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { add_style(ST_VERBATIM); add_text(gregorio_strdup("\\GreForceHyphen")); end_style(ST_VERBATIM); - ready_characters(); - first_text_character = current_character; + save_text(); + close_syllable(&(yylsp[-2])); + } +#line 2832 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ + break; + + case 88: +#line 1061 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + { + add_style(ST_VERBATIM); + add_text(gregorio_strdup("\\GreForceHyphen")); + end_style(ST_VERBATIM); + save_text(); close_syllable(&(yylsp[-3])); } -#line 2630 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2844 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 74: -#line 909 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 89: +#line 1068 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + { + add_auto_protrusion((yyvsp[-2]).text); + save_text(); + close_syllable(&(yylsp[-2])); + } +#line 2854 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ + break; + + case 90: +#line 1073 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { + add_auto_protrusion((yyvsp[-2]).text); + save_text(); close_syllable(&(yylsp[-3])); } -#line 2638 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2864 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 75: -#line 912 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 91: +#line 1078 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + { + save_text(); + close_syllable(&(yylsp[-3])); + } +#line 2873 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ + break; + + case 92: +#line 1082 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + { + add_style(ST_VERBATIM); + add_text(gregorio_strdup("\\GreForceHyphen")); + end_style(ST_VERBATIM); + save_text(); + close_syllable(&(yylsp[-3])); + } +#line 2885 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ + break; + + case 93: +#line 1089 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { add_style(ST_VERBATIM); add_text(gregorio_strdup("\\GreForceHyphen")); end_style(ST_VERBATIM); + save_text(); + close_syllable(&(yylsp[-4])); + } +#line 2897 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ + break; + + case 94: +#line 1096 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + { + add_auto_protrusion((yyvsp[-3]).text); + save_text(); + close_syllable(&(yylsp[-3])); + } +#line 2907 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ + break; + + case 95: +#line 1101 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + { + add_auto_protrusion((yyvsp[-3]).text); + save_text(); close_syllable(&(yylsp[-4])); } -#line 2649 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2917 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 76: -#line 921 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 96: +#line 1109 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { close_syllable(NULL); } -#line 2657 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2925 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; - case 77: -#line 924 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ + case 97: +#line 1112 "gabc/gabc-score-determination.y" /* yacc.c:1646 */ { close_syllable(NULL); } -#line 2665 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2933 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ break; -#line 2669 "gabc/gabc-score-determination-y.c" /* yacc.c:1646 */ +#line 2937 "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-y.h b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-y.h index 123dbc1c3a7..9c8fcbc7675 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-y.h +++ b/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-y.h @@ -58,51 +58,53 @@ extern int gabc_score_determination_debug; MODE = 268, MODE_MODIFIER = 269, MODE_DIFFERENTIA = 270, - INITIAL_STYLE = 271, - END_OF_DEFINITIONS = 272, - END_OF_FILE = 273, - COLON = 274, - SEMICOLON = 275, - SPACE = 276, - CHARACTERS = 277, - NOTES = 278, - HYPHEN = 279, - ATTRIBUTE = 280, - OPENING_BRACKET = 281, - CLOSING_BRACKET = 282, - CLOSING_BRACKET_WITH_SPACE = 283, - I_BEGIN = 284, - I_END = 285, - TT_BEGIN = 286, - TT_END = 287, - UL_BEGIN = 288, - UL_END = 289, - C_BEGIN = 290, - C_END = 291, - B_BEGIN = 292, - B_END = 293, - SC_BEGIN = 294, - SC_END = 295, - SP_BEGIN = 296, - SP_END = 297, - VERB_BEGIN = 298, - VERB = 299, - VERB_END = 300, - CENTER_BEGIN = 301, - CENTER_END = 302, - ELISION_BEGIN = 303, - ELISION_END = 304, - TRANSLATION_BEGIN = 305, - TRANSLATION_END = 306, - TRANSLATION_CENTER_END = 307, - ALT_BEGIN = 308, - ALT_END = 309, - NLBA_B = 310, - NLBA_E = 311, - EUOUAE_B = 312, - EUOUAE_E = 313, - NABC_CUT = 314, - NABC_LINES = 315 + END_OF_DEFINITIONS = 271, + END_OF_FILE = 272, + COLON = 273, + SEMICOLON = 274, + CHARACTERS = 275, + NOTES = 276, + HYPHEN = 277, + ATTRIBUTE = 278, + OPENING_BRACKET = 279, + CLOSING_BRACKET = 280, + CLOSING_BRACKET_WITH_SPACE = 281, + I_BEGIN = 282, + I_END = 283, + TT_BEGIN = 284, + TT_END = 285, + UL_BEGIN = 286, + UL_END = 287, + C_BEGIN = 288, + C_END = 289, + B_BEGIN = 290, + B_END = 291, + SC_BEGIN = 292, + SC_END = 293, + SP_BEGIN = 294, + SP_END = 295, + VERB_BEGIN = 296, + VERB_END = 297, + CENTER_BEGIN = 298, + CENTER_END = 299, + ELISION_BEGIN = 300, + ELISION_END = 301, + TRANSLATION_BEGIN = 302, + TRANSLATION_END = 303, + TRANSLATION_CENTER_END = 304, + ALT_BEGIN = 305, + ALT_END = 306, + NLBA_B = 307, + NLBA_E = 308, + EUOUAE_B = 309, + EUOUAE_E = 310, + NABC_CUT = 311, + NABC_LINES = 312, + CLEAR = 313, + PROTRUSION = 314, + PROTRUSION_VALUE = 315, + PROTRUSION_END = 316, + PROTRUDING_PUNCTUATION = 317 }; #endif /* Tokens. */ @@ -119,51 +121,53 @@ extern int gabc_score_determination_debug; #define MODE 268 #define MODE_MODIFIER 269 #define MODE_DIFFERENTIA 270 -#define INITIAL_STYLE 271 -#define END_OF_DEFINITIONS 272 -#define END_OF_FILE 273 -#define COLON 274 -#define SEMICOLON 275 -#define SPACE 276 -#define CHARACTERS 277 -#define NOTES 278 -#define HYPHEN 279 -#define ATTRIBUTE 280 -#define OPENING_BRACKET 281 -#define CLOSING_BRACKET 282 -#define CLOSING_BRACKET_WITH_SPACE 283 -#define I_BEGIN 284 -#define I_END 285 -#define TT_BEGIN 286 -#define TT_END 287 -#define UL_BEGIN 288 -#define UL_END 289 -#define C_BEGIN 290 -#define C_END 291 -#define B_BEGIN 292 -#define B_END 293 -#define SC_BEGIN 294 -#define SC_END 295 -#define SP_BEGIN 296 -#define SP_END 297 -#define VERB_BEGIN 298 -#define VERB 299 -#define VERB_END 300 -#define CENTER_BEGIN 301 -#define CENTER_END 302 -#define ELISION_BEGIN 303 -#define ELISION_END 304 -#define TRANSLATION_BEGIN 305 -#define TRANSLATION_END 306 -#define TRANSLATION_CENTER_END 307 -#define ALT_BEGIN 308 -#define ALT_END 309 -#define NLBA_B 310 -#define NLBA_E 311 -#define EUOUAE_B 312 -#define EUOUAE_E 313 -#define NABC_CUT 314 -#define NABC_LINES 315 +#define END_OF_DEFINITIONS 271 +#define END_OF_FILE 272 +#define COLON 273 +#define SEMICOLON 274 +#define CHARACTERS 275 +#define NOTES 276 +#define HYPHEN 277 +#define ATTRIBUTE 278 +#define OPENING_BRACKET 279 +#define CLOSING_BRACKET 280 +#define CLOSING_BRACKET_WITH_SPACE 281 +#define I_BEGIN 282 +#define I_END 283 +#define TT_BEGIN 284 +#define TT_END 285 +#define UL_BEGIN 286 +#define UL_END 287 +#define C_BEGIN 288 +#define C_END 289 +#define B_BEGIN 290 +#define B_END 291 +#define SC_BEGIN 292 +#define SC_END 293 +#define SP_BEGIN 294 +#define SP_END 295 +#define VERB_BEGIN 296 +#define VERB_END 297 +#define CENTER_BEGIN 298 +#define CENTER_END 299 +#define ELISION_BEGIN 300 +#define ELISION_END 301 +#define TRANSLATION_BEGIN 302 +#define TRANSLATION_END 303 +#define TRANSLATION_CENTER_END 304 +#define ALT_BEGIN 305 +#define ALT_END 306 +#define NLBA_B 307 +#define NLBA_E 308 +#define EUOUAE_B 309 +#define EUOUAE_E 310 +#define NABC_CUT 311 +#define NABC_LINES 312 +#define CLEAR 313 +#define PROTRUSION 314 +#define PROTRUSION_VALUE 315 +#define PROTRUSION_END 316 +#define PROTRUDING_PUNCTUATION 317 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 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 index b6659c18499..433c29f7df0 100644 --- 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 @@ -3,7 +3,7 @@ * This file implements the score parser. * * Gregorio score determination from gabc utilities. - * Copyright (C) 2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2016-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -24,6 +24,7 @@ #include "config.h" #include <stdio.h> #include <stdlib.h> +#include <string.h> #include <assert.h> #include "bool.h" #include "struct.h" @@ -31,64 +32,116 @@ #include "gabc.h" #include "gabc-score-determination.h" #include "messages.h" +#include "support.h" -void fix_custos(gregorio_score *score_to_check) +void gabc_suppress_extra_custos_at_linebreak(gregorio_score *score) +{ + gregorio_syllable *syllable; + gregorio_element **custos = NULL; + + for (syllable = score->first_syllable; syllable; + syllable = syllable->next_syllable) { + gregorio_element **element; + for (element = syllable->elements; element && *element; + element = &((*element)->next)) { + switch ((*element)->type) { + case GRE_CUSTOS: + if (!((*element)->u.misc.pitched.force_pitch)) { + /* save the encountered non-forced custos */ + custos = element; + } else { + /* forget the (previous) custos */ + custos = NULL; + } + break; + case GRE_CLEF: + case GRE_BAR: + /* remember the custos if only these appear before linebreak */ + break; + case GRE_END_OF_LINE: + if (custos) { + /* suppress the custos when linebreak follows */ + gregorio_free_one_element(custos); + } + /* fall through */ + default: + /* forget the custos */ + custos = NULL; + break; + } + } + } +} + +void gabc_fix_custos_pitches(gregorio_score *score_to_check) { gregorio_syllable *current_syllable; gregorio_element *current_element; - gregorio_element *custo_element; - char pitch = 0; - char pitch_difference = 0; + gregorio_element *custos_element; 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; - } + for (current_syllable = score_to_check->first_syllable; current_syllable; + current_syllable = current_syllable->next_syllable) { + for (current_element = (current_syllable->elements)[0]; current_element; + current_element = current_element->next) { + if (current_element->type == GRE_CLEF) { + newkey = gregorio_calculate_new_key( + current_element->u.misc.clef); + current_element->u.misc.clef.pitch_difference = + (signed char) newkey - (signed char) current_key; + current_key = newkey; } - if (current_element) { - if (current_element->type == GRE_CLEF) { - current_key = gregorio_calculate_new_key( - current_element->u.misc.clef); + } + } + + custos_element = NULL; + for (current_syllable = score_to_check->first_syllable; current_syllable; + current_syllable = current_syllable->next_syllable) { + for (current_element = (current_syllable->elements)[0]; current_element; + current_element = current_element->next) { + switch (current_element->type) { + case GRE_CUSTOS: + if (current_element->u.misc.pitched.force_pitch) { + /* forget about the preceding custos if a forced one is + * encountered */ + custos_element = NULL; + } else { + /* the pitch is not forced, so it may need to be adjusted */ + custos_element = current_element; + custos_element->u.misc.pitched.pitch = + gregorio_determine_next_pitch(current_syllable, + current_element, NULL, NULL); + } + break; + + case GRE_ELEMENT: + /* if it's an element, forget any preceding custos */ + custos_element = NULL; + break; + + case GRE_CLEF: + if (custos_element) { + /* adjust the preceding custos for the clef */ + custos_element->u.misc.pitched.pitch = + gregorio_adjust_pitch_into_staff(score_to_check, + custos_element->u.misc.pitched.pitch + - current_element->u.misc.clef.pitch_difference); } - current_element = current_element->next; + break; + + default: + /* to prevent the warning */ + break; } } - current_syllable = current_syllable->next_syllable; } } @@ -96,7 +149,7 @@ void fix_custos(gregorio_score *score_to_check) * A function that checks the score integrity. */ -bool check_score_integrity(gregorio_score *score_to_check) +bool gabc_check_score_integrity(gregorio_score *score_to_check) { bool good = true; @@ -144,7 +197,7 @@ bool check_score_integrity(gregorio_score *score_to_check) * Another function to be improved: this one checks the validity of the voice_infos. */ -bool check_infos_integrity(gregorio_score *score_to_check) +bool gabc_check_infos_integrity(gregorio_score *score_to_check) { if (!score_to_check->name) { gregorio_message(_("no name specified, put `name:...;' at the " @@ -154,100 +207,100 @@ bool check_infos_integrity(gregorio_score *score_to_check) return true; } -/* data must be (gregorio_note **) */ -static void oriscus_orientation_visit( - const gregorio_note_iter_position *const p, void *const data) +static void set_oriscus_descending(const gregorio_note_iter_position *const p, + void *const ignored __attribute__((unused))) { - 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 */ - } + switch(p->note->u.note.shape) { + case S_ORISCUS_UNDETERMINED: + p->note->u.note.shape = S_ORISCUS_DESCENDENS; + break; + case S_ORISCUS_SCAPUS_UNDETERMINED: + p->note->u.note.shape = S_ORISCUS_SCAPUS_DESCENDENS; + gregorio_assert_only(p->glyph->u.notes.glyph_type + != G_PES_DESCENDENS_ORISCUS, set_oriscus_descending, + "glyph type should not be G_PES_DESCENDENS_ORISCUS"); + if (p->glyph->u.notes.glyph_type == G_PES_ASCENDENS_ORISCUS) { + p->glyph->u.notes.glyph_type = G_PES_DESCENDENS_ORISCUS; } - *oriscus_ptr = NULL; + break; + default: + break; } +} - switch (note->u.note.shape) { +static void set_oriscus_ascending(const gregorio_note_iter_position *const p, + void *const ignored __attribute__((unused))) +{ + switch(p->note->u.note.shape) { case S_ORISCUS_UNDETERMINED: + p->note->u.note.shape = S_ORISCUS_ASCENDENS; + break; case S_ORISCUS_SCAPUS_UNDETERMINED: - case S_ORISCUS_CAVUM_UNDETERMINED: - *oriscus_ptr = note; + p->note->u.note.shape = S_ORISCUS_SCAPUS_ASCENDENS; + gregorio_assert_only(p->glyph->u.notes.glyph_type + != G_PES_DESCENDENS_ORISCUS, set_oriscus_ascending, + "glyph type should not be G_PES_DESCENDENS_ORISCUS"); break; - default: break; } } -void determine_oriscus_orientation(const gregorio_score *const score) +/* data must be (gregorio_note_iter_position *) */ +static void oriscus_orientation_visit( + const gregorio_note_iter_position *const p, void *const data) { - gregorio_note *oriscus = NULL; + gregorio_note *const note = p->note; + gregorio_note_iter_position *const oriscus = + (gregorio_note_iter_position *const)data; - gregorio_for_each_note(score, oriscus_orientation_visit, &oriscus); + if (oriscus->note && note->u.note.pitch != oriscus->note->u.note.pitch) { + if (note->u.note.pitch <= oriscus->note->u.note.pitch) { + /* descending (or undetermined oriscus in unison) */ + gregorio_from_note_to_note(oriscus, p, false, + set_oriscus_descending, NULL, GRESTRUCT_NONE, NULL); + } else { + /* ascending */ + gregorio_from_note_to_note(oriscus, p, false, + set_oriscus_ascending, NULL, GRESTRUCT_NONE, NULL); + } + oriscus->syllable = NULL, + oriscus->element = NULL, + oriscus->note = NULL; + oriscus->glyph = NULL; + } - if (oriscus) { - /* oriscus at the end of the score */ - switch(oriscus->u.note.shape) { + if (!oriscus->note) { + switch (note->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; + *oriscus = *p; break; + default: - /* not reachable unless there's a programming error */ - /* LCOV_EXCL_START */ - gregorio_fail(determine_oriscus_orientation, "bad_shape"); break; - /* LCOV_EXCL_STOP */ } } } +void gabc_determine_oriscus_orientation(const gregorio_score *const score) +{ + gregorio_note_iter_position oriscus = { + /* .syllable = */ NULL, + /* .element = */ NULL, + /* .glyph = */ NULL, + /* .note = */ NULL + }; + + gregorio_for_each_note(score, oriscus_orientation_visit, NULL, + GRESTRUCT_NONE, &oriscus); + + if (oriscus.note) { + gregorio_from_note_to_note(&oriscus, NULL, true, + set_oriscus_descending, NULL, GRESTRUCT_NONE, NULL); + } +} + typedef struct { gregorio_note_iter_position first, previous; gregorio_shape orientation; @@ -298,8 +351,6 @@ static void punctum_inclinatum_orientation_visit( 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; @@ -324,8 +375,8 @@ static void punctum_inclinatum_orientation_visit( ? S_PUNCTUM_INCLINATUM_ASCENDENS : S_PUNCTUM_INCLINATUM_DESCENDENS; } - gregorio_from_note_to_note(&v->first, &v->previous, set_shape, - &v->orientation); + gregorio_from_note_to_note(&v->first, &v->previous, true, set_shape, + NULL, GRESTRUCT_NONE, &v->orientation); v->first.syllable = NULL; v->first.element = NULL; v->first.glyph = NULL; @@ -341,7 +392,7 @@ static void punctum_inclinatum_orientation_visit( v->previous = *p; } -void determine_punctum_inclinatum_orientation( +void gabc_determine_punctum_inclinatum_orientation( const gregorio_score *const score) { punctum_inclinatum_vars v = { @@ -361,13 +412,188 @@ void determine_punctum_inclinatum_orientation( /* .running = */ 0, }; - gregorio_for_each_note(score, punctum_inclinatum_orientation_visit, &v); - + gregorio_for_each_note(score, punctum_inclinatum_orientation_visit, NULL, + GRESTRUCT_NONE, &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); + gregorio_from_note_to_note(&v.first, &v.previous, true, set_shape, NULL, + GRESTRUCT_NONE, &v.orientation); } } + +typedef struct note_stack { + gregorio_note *note; + struct note_stack *prev; +} note_stack; + +static void note_stack_push(note_stack **const stack, gregorio_note *note) { + note_stack *item = gregorio_malloc(sizeof(note_stack)); + item->note = note; + item->prev = *stack; + *stack = item; +} + +static gregorio_note *note_stack_pop(note_stack **const stack) { + note_stack *item = *stack; + if (item) { + gregorio_note *note = item->note; + note_stack *prev = item->prev; + free(item); + *stack = prev; + return note; + } + return NULL; +} + +static void note_stack_clear(note_stack **const stack) { + note_stack *item = *stack; + while (item) { + note_stack *prev = item->prev; + free(item); + item = prev; + } + *stack = NULL; +} + +typedef struct { + note_stack *high, *low; + gregorio_note *prev_note; + signed char high_ledger_line_pitch; + bool running_high, running_low; +} ledger_line_vars; + +static __inline void clear_ledger_line_vars(ledger_line_vars *const v) { + note_stack_clear(&v->high); + note_stack_clear(&v->low); + v->prev_note = NULL; + v->running_high = false; + v->running_low = false; +} + +static __inline void adjust_ledger(const gregorio_note_iter_position *const p, + const gregorio_ledger_specificity specificity, bool ledger_line, + note_stack **const stack, bool *const running, gregorio_note *prev_note, + const signed char high_ledger_line_pitch, + bool (*extend_ledger)(gregorio_note *, const gregorio_note *, + const gregorio_note *, signed char)) +{ + if (specificity & LEDGER_DRAWN) { + if (ledger_line) { + gregorio_note *after = p->note; + gregorio_note *note; + /* process from this ledger backwards */ + while ((note = note_stack_pop(stack))) { + if (!extend_ledger(note, NULL, after, high_ledger_line_pitch)) { + /* ledger has ended */ + break; + } + after = note; + } + *running = true; + } else { + *running = false; + } + note_stack_clear(stack); + } else { + if (*running) { + if (!extend_ledger(p->note, prev_note, NULL, + high_ledger_line_pitch)) { + /* ledger has ended */ + note_stack_push(stack, p->note); + *running = false; + } + /* else stack should be empty, keep it that way */ + } else { + note_stack_push(stack, p->note); + } + } +} + +static bool extend_high_ledger(gregorio_note *const note, + const gregorio_note *const note_before, + const gregorio_note *const note_after, + const signed char high_ledger_line_pitch) +{ + bool extend = false; + + if (note_before) { + extend = note_before->u.note.pitch < note->u.note.pitch + || (note_before->u.note.pitch > high_ledger_line_pitch + && note->u.note.pitch < high_ledger_line_pitch); + } else if (note_after) { + extend = note_after->u.note.pitch < note->u.note.pitch + || (note_after->u.note.pitch > high_ledger_line_pitch + && note->u.note.pitch < high_ledger_line_pitch); + } + + if (extend) { + note->high_ledger_line = true; + note->high_ledger_specificity = LEDGER_DRAWN; + } + return extend; +} + +static bool extend_low_ledger(gregorio_note *const note, + const gregorio_note *const note_before, + const gregorio_note *const note_after, + const signed char high_ledger_line_pitch __attribute__((__unused__))) +{ + bool extend = false; + + if (note_before) { + extend = note_before->u.note.pitch < note->u.note.pitch + || (note_before->u.note.pitch > LOW_LEDGER_LINE_PITCH + && note->u.note.pitch < LOW_LEDGER_LINE_PITCH); + } else if (note_after) { + extend = note_after->u.note.pitch < note->u.note.pitch + || (note_after->u.note.pitch > LOW_LEDGER_LINE_PITCH + && note->u.note.pitch < LOW_LEDGER_LINE_PITCH); + } + + if (extend) { + note->low_ledger_line = true; + note->low_ledger_specificity = LEDGER_DRAWN; + } + return extend; +} + +/* data must be (ledger_line_vars *) */ +static void ledger_line_visit(const gregorio_note_iter_position *const p, + void *const data) +{ + ledger_line_vars *const v = (ledger_line_vars *)data; + + adjust_ledger(p, p->note->high_ledger_specificity, p->note->high_ledger_line, + &v->high, &v->running_high, v->prev_note, v->high_ledger_line_pitch, + &extend_high_ledger); + adjust_ledger(p, p->note->low_ledger_specificity, p->note->low_ledger_line, + &v->low, &v->running_low, v->prev_note, v->high_ledger_line_pitch, + &extend_low_ledger); + + v->prev_note = p->note; +} + +/* data must be (ledger_line_vars *) */ +static void ledger_line_end_item( + const gregorio_note_iter_position *const p __attribute__((__unused__)), + const gregorio_note_iter_item_type item_type, void *const data) +{ + if (item_type == GRESTRUCT_ELEMENT) { + clear_ledger_line_vars((ledger_line_vars *)data); + } +} + +void gabc_determine_ledger_lines(const gregorio_score *const score) +{ + ledger_line_vars v; + memset(&v, 0, sizeof v); + v.high_ledger_line_pitch = score->high_ledger_line_pitch; + + gregorio_for_each_note(score, ledger_line_visit, ledger_line_end_item, + GRESTRUCT_ELEMENT, &v); + + /* stacks should be cleared by ledger_line_end_item */ +} 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 3400e100465..a87afa27fe8 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 @@ -3,7 +3,7 @@ * This header shares definitions between the score parser and lexer. * * Gregorio score determination from gabc. - * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -53,10 +53,12 @@ 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); +void gabc_suppress_extra_custos_at_linebreak(gregorio_score *score); +void gabc_fix_custos_pitches(gregorio_score *score_to_check); +bool gabc_check_score_integrity(gregorio_score *score_to_check); +bool gabc_check_infos_integrity(gregorio_score *score_to_check); +void gabc_determine_oriscus_orientation(const gregorio_score *score); +void gabc_determine_punctum_inclinatum_orientation(const gregorio_score *score); +void gabc_determine_ledger_lines(const gregorio_score *const 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 e35fc27fff6..64119527a1a 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,7 +4,7 @@ * This file implements the score lexer. * * Gregorio score determination in gabc input. - * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -69,7 +69,7 @@ static bool eof_found = false; #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) { \ int c = '*'; \ - size_t n; \ + int n; \ for (n = 0; n < max_size \ && (c = getc(gabc_score_determination_in)) != EOF \ && c != '\n'; ++n ) { \ @@ -109,6 +109,8 @@ static bool eof_found = false; %x comments %x inicomments %x alt +%x protrusion_value +%x protrusion_end %option stack %option pointer @@ -151,15 +153,20 @@ semicolon. */ BEGIN(attribute); return COLON; } -<attribute>[^;\n\r]*(;[^;\n\r]+)*([\n\r]+[^;]*(;[^;]+)*)? { +<attribute>;;?[\n\r \t]*[\n\r] { + BEGIN(INITIAL); + return SEMICOLON; + } +<attribute>[^;]+ { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); return ATTRIBUTE; } -<attribute>;;?[\n\r]+ { - BEGIN(INITIAL); - return SEMICOLON; - } +<attribute>; { + gabc_score_determination_lval.text = + gregorio_strdup(gabc_score_determination_text); + return ATTRIBUTE; +} <INITIAL>def-m[0-9] { gabc_score_determination_lval.character = gabc_score_determination_text[5]; return DEF_MACRO; @@ -179,10 +186,6 @@ semicolon. */ gregorio_strdup(gabc_score_determination_text); return GABC_COPYRIGHT; } -<INITIAL>initial-style { - /* DEPRECATED for removal in 5.0 */ - return INITIAL_STYLE; - } <INITIAL>mode { gabc_score_determination_lval.text = gregorio_strdup(gabc_score_determination_text); @@ -245,12 +248,17 @@ semicolon. */ <score>[\n\r][\n\r \t]* { RETURN_SPACE; } -<score,sp>[^-\{\}\(\[\]<%\n\r]+ { +<score>[^-,;:.\{\}\(\[\]<%\n\r]+ { RETURN_CHARACTERS; } <score>- { return HYPHEN; } +<score>[,;:.] { + gabc_score_determination_lval.text = + gregorio_strdup(gabc_score_determination_text); + return PROTRUDING_PUNCTUATION; + } <score><nlba> { return NLBA_B; } @@ -333,7 +341,7 @@ semicolon. */ <verb,alt>[^<]+ { RETURN_CHARACTERS; } -<verb,sp,score,alt>< { +<verb,score,alt>< { RETURN_CHARACTERS; } <score>\{ { @@ -365,6 +373,26 @@ semicolon. */ <score>\] { return TRANSLATION_END; } +<score><[\n\r \t]*clear[\n\r \t]*\/?[\n\r \t]*> { + return CLEAR; + } +<score><[\n\r \t]*pr[\n\r \t]*\/?[\n\r \t]*> { + return PROTRUSION; + } +<score><[\n\r \t]*pr[\n\r \t]*:[\n\r \t]* { + BEGIN(protrusion_value); + return PROTRUSION; + } +<protrusion_value>([0-9]*\.?[0-9]+|[0-9]+\.) { + BEGIN(protrusion_end); + gabc_score_determination_lval.text = + gregorio_strdup(gabc_score_determination_text); + return PROTRUSION_VALUE; + } +<protrusion_end>[\n\r \t]*\/?[\n\r \t]*> { + BEGIN(score); + return PROTRUSION_END; + } <score>\( { BEGIN(notes); return OPENING_BRACKET; 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 71642f23bc3..1a9cc3980a1 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 @@ -4,7 +4,7 @@ * This file implements the score parser. * * Gregorio score determination from gabc. - * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -51,10 +51,13 @@ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ (Current).last_offset = YYRHSLOC (Rhs, N).last_offset; \ + (Current).generate_point_and_click = YYRHSLOC (Rhs, 1).generate_point_and_click; \ } else { \ (Current).first_line = (Current).last_line = YYRHSLOC (Rhs, 0).last_line; \ (Current).first_column = (Current).last_column = YYRHSLOC (Rhs, 0).last_column; \ (Current).first_offset = (Current).last_offset = YYRHSLOC (Rhs, 0).last_offset; \ + (Current).first_offset = (Current).last_offset = YYRHSLOC (Rhs, 0).last_offset; \ + (Current).generate_point_and_click = YYRHSLOC (Rhs, 0).generate_point_and_click; \ } #include "gabc-score-determination.h" @@ -86,6 +89,7 @@ gregorio_element *current_element; static char *macros[10]; /* other variables that we will have to use */ static gregorio_character *current_character; +static gregorio_character *suspended_character; static gregorio_character *first_text_character; static gregorio_character *first_translation_character; static gregorio_tr_centering translation_type; @@ -104,6 +108,9 @@ static bool got_staff_lines; static bool started_first_word; static struct sha1_ctx digester; static gabc_style_bits styles; +static bool generate_point_and_click; +static bool clear_syllable_text; +static bool has_protrusion; /* punctum_inclinatum_orientation maintains the running punctum inclinatum * orientation in order to decide if the glyph needs to be cut when a punctum @@ -140,7 +147,7 @@ static void gabc_score_determination_error(const char *error_str) * The function that will initialize the variables. */ -static void initialize_variables(void) +static void initialize_variables(bool point_and_click) { int i; /* build a brand new empty score */ @@ -153,6 +160,7 @@ static void initialize_variables(void) number_of_voices = 1; voice = 0; /* first (and only) voice */ current_character = NULL; + suspended_character = NULL; first_translation_character = NULL; first_text_character = NULL; translation_type = TR_NORMAL; @@ -168,6 +176,9 @@ static void initialize_variables(void) started_first_word = false; styles = 0; punctum_inclinatum_orientation = S_PUNCTUM_INCLINATUM_UNDETERMINED; + generate_point_and_click = point_and_click; + clear_syllable_text = false; + has_protrusion = false; } /* @@ -192,7 +203,7 @@ static void end_definitions(void) { int i; - gregorio_assert_only(check_infos_integrity(score), end_definitions, + gregorio_assert_only(gabc_check_infos_integrity(score), end_definitions, "can't determine valid infos on the score"); elements = (gregorio_element **) gregorio_malloc(number_of_voices * @@ -304,7 +315,159 @@ static void rebuild_score_characters(void) } /* - * Function to close a syllable and update the position. + * + * 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); +} + +static __inline void save_text(void) +{ + if (has_protrusion) { + end_style(ST_PROTRUSION); + } + ready_characters(); + first_text_character = current_character; +} + +/* a function called when we see a [, basically, all characters are added to + * the translation pointer instead of the text pointer */ +static void start_translation(unsigned char asked_translation_type) +{ + suspended_character = current_character; + /* the middle letters of the translation have no sense */ + /*center_is_determined = CENTER_FULLY_DETERMINED;*/ + current_character = NULL; + translation_type = asked_translation_type; +} + +static void end_translation(void) +{ + ready_characters(); + first_translation_character = current_character; + current_character = suspended_character; +} + +/* + * 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 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); + current_character->next_character->previous_character = + current_character; + } else { + current_character = gregorio_build_char_list_from_buf(mbcharacters); + } + while (current_character && current_character->next_character) { + current_character = current_character->next_character; + } + free(mbcharacters); +} + +static void add_protrusion(char *factor) +{ + if (has_protrusion) { + gregorio_message("syllable already has protrusion; pr tag ignored", + "det_score", VERBOSITY_WARNING, 0); + free(factor); + } else { + if (center_is_determined == CENTER_HALF_DETERMINED) { + gregorio_message("closing open syllable center before protrusion", + "det_score", VERBOSITY_WARNING, 0); + end_style(ST_FORCED_CENTER); + center_is_determined = CENTER_FULLY_DETERMINED; + } + + add_style(ST_PROTRUSION_FACTOR); + add_text(factor); + end_style(ST_PROTRUSION_FACTOR); + add_style(ST_PROTRUSION); + has_protrusion = true; + } +} + +static void add_auto_protrusion(char *protrusion) +{ + if (has_protrusion) { + add_text(protrusion); + } else { + add_style(ST_PROTRUSION_FACTOR); + add_style(ST_VERBATIM); + add_text(gregorio_strdup("\\GreProtrusionFactor{")); + + switch (*protrusion) { + case ',': + add_text(gregorio_strdup("comma")); + break; + case ';': + add_text(gregorio_strdup("semicolon")); + break; + case ':': + add_text(gregorio_strdup("colon")); + break; + case '.': + add_text(gregorio_strdup("period")); + break; + default: + /* not reachable unless there's a programming error */ + /* LCOV_EXCL_START */ + gregorio_fail2(add_auto_protrusion, + "unsupported protruding punctuation: %c", *protrusion); + break; + /* LCOV_EXCL_STOP */ + } + + add_text(gregorio_strdup("}")); + end_style(ST_VERBATIM); + end_style(ST_PROTRUSION_FACTOR); + + add_style(ST_PROTRUSION); + add_text(protrusion); + end_style(ST_PROTRUSION); + + has_protrusion = true; + } +} + +/* + * Function to close a syllable and update the position. */ static void close_syllable(YYLTYPE *loc) @@ -320,10 +483,9 @@ static void close_syllable(YYLTYPE *loc) switch (ch->cos.s.type) { case ST_T_BEGIN: ++i; - if (i > 1) { - gregorio_message(_("elisions may not be nested"), - "close_syllable", VERBOSITY_ERROR, 0); - } + /* the parser precludes this from falling here */ + gregorio_assert_only(i <= 1, close_syllable, + "elisions may not be nested"); break; case ST_T_END: @@ -362,7 +524,7 @@ static void close_syllable(YYLTYPE *loc) gregorio_add_syllable(¤t_syllable, number_of_voices, elements, first_text_character, first_translation_character, position, abovelinestext, translation_type, no_linebreak_area, euouae, loc, - started_first_word); + started_first_word, clear_syllable_text); if (!score->first_syllable) { /* we rebuild the first syllable if we have to */ score->first_syllable = current_syllable; @@ -383,6 +545,7 @@ static void close_syllable(YYLTYPE *loc) } center_is_determined = CENTER_NOT_DETERMINED; current_character = NULL; + suspended_character = NULL; first_text_character = NULL; first_translation_character = NULL; translation_type = TR_NORMAL; @@ -393,84 +556,8 @@ static void close_syllable(YYLTYPE *loc) elements[i] = NULL; } current_element = NULL; -} - -/* a function called when we see a [, basically, all characters are added to - * the translation pointer instead of the text pointer */ -static void start_translation(unsigned char asked_translation_type) -{ - ready_characters(); - first_text_character = current_character; - /* the middle letters of the translation have no sense */ - center_is_determined = CENTER_FULLY_DETERMINED; - current_character = NULL; - translation_type = asked_translation_type; -} - -static void end_translation(void) -{ - ready_characters(); - first_translation_character = current_character; -} - -/* - * - * 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 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); - current_character->next_character->previous_character = - current_character; - } else { - current_character = gregorio_build_char_list_from_buf(mbcharacters); - } - while (current_character && current_character->next_character) { - current_character = current_character->next_character; - } - free(mbcharacters); + clear_syllable_text = false; + has_protrusion = false; } void gabc_digest(const void *const buf, const size_t size) @@ -484,7 +571,7 @@ void gabc_digest(const void *const buf, const size_t size) * aleady open. It returns a valid gregorio_score */ -gregorio_score *gabc_read_score(FILE *f_in) +gregorio_score *gabc_read_score(FILE *f_in, bool point_and_click) { /* compute the SHA-1 digest while parsing, for I/O efficiency */ sha1_init_ctx(&digester); @@ -495,21 +582,23 @@ gregorio_score *gabc_read_score(FILE *f_in) gabc_score_determination_in = f_in; gregorio_assert(f_in, gabc_read_score, "can't read stream from NULL", return NULL); - initialize_variables(); + initialize_variables(point_and_click); /* the flex/bison main call, it will build the score (that we have * initialized) */ gabc_score_determination_parse(); if (!score->legacy_oriscus_orientation) { - determine_oriscus_orientation(score); + gabc_determine_oriscus_orientation(score); } - determine_punctum_inclinatum_orientation(score); + gabc_determine_punctum_inclinatum_orientation(score); + gabc_determine_ledger_lines(score); gregorio_fix_initial_keys(score, gregorio_default_clef); rebuild_score_characters(); - fix_custos(score); + gabc_suppress_extra_custos_at_linebreak(score); + gabc_fix_custos_pitches(score); gabc_det_notes_finish(); free_variables(); /* then we check the validity and integrity of the score we have built. */ - if (!check_score_integrity(score)) { + if (!gabc_check_score_integrity(score)) { gregorio_message(_("unable to determine a valid score from file"), "gabc_read_score", VERBOSITY_ERROR, 0); } @@ -554,6 +643,13 @@ static void gabc_y_add_notes(char *notes, YYLTYPE loc) { current_element->nabc_lines = nabc_state; } } + +static char *concatenate(char *first, char *const second) { + first = (char *)gregorio_realloc(first, strlen(first) + strlen(second) + 1); + strcat(first, second); + free(second); + return first; +} %} %initial-action { @@ -563,6 +659,7 @@ static void gabc_y_add_notes(char *notes, YYLTYPE loc) { @$.last_line = 1; @$.last_column = 0; @$.last_offset = 0; + @$.generate_point_and_click = generate_point_and_click; } %lex-param { gabc_style_bits *STYLE_BITS } @@ -571,9 +668,8 @@ static void gabc_y_add_notes(char *notes, YYLTYPE loc) { %token LANGUAGE STAFF_LINES ORISCUS_ORIENTATION %token DEF_MACRO OTHER_HEADER %token ANNOTATION MODE MODE_MODIFIER MODE_DIFFERENTIA -%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 COLON SEMICOLON CHARACTERS NOTES HYPHEN ATTRIBUTE %token OPENING_BRACKET CLOSING_BRACKET CLOSING_BRACKET_WITH_SPACE %token I_BEGIN I_END %token TT_BEGIN TT_END @@ -582,7 +678,7 @@ static void gabc_y_add_notes(char *notes, YYLTYPE loc) { %token B_BEGIN B_END %token SC_BEGIN SC_END %token SP_BEGIN SP_END -%token VERB_BEGIN VERB VERB_END +%token VERB_BEGIN VERB_END %token CENTER_BEGIN CENTER_END %token ELISION_BEGIN ELISION_END %token TRANSLATION_BEGIN TRANSLATION_END TRANSLATION_CENTER_END @@ -590,6 +686,13 @@ static void gabc_y_add_notes(char *notes, YYLTYPE loc) { %token NLBA_B NLBA_E %token EUOUAE_B EUOUAE_E %token NABC_CUT NABC_LINES +%token CLEAR +%token PROTRUSION PROTRUSION_VALUE PROTRUSION_END PROTRUDING_PUNCTUATION + +%precedence HYPHEN PROTRUDING_PUNCTUATION +%precedence TRANSLATION_BEGIN TRANSLATION_CENTER_END +%precedence TRANSLATION_END +%precedence OPENING_BRACKET %% @@ -607,12 +710,20 @@ definitions: | definitions definition ; +attribute_value: + ATTRIBUTE { + $$.text = $1.text; + } + | attribute_value ATTRIBUTE { + $$.text = concatenate($1.text, $2.text); + } + ; + attribute: - COLON ATTRIBUTE SEMICOLON { + COLON attribute_value SEMICOLON { $$.text = $2.text; } - | - COLON SEMICOLON { + | COLON SEMICOLON { $$.text = NULL; } ; @@ -679,16 +790,6 @@ definition: score->nabc_lines=nabc_lines; } } - | INITIAL_STYLE attribute { - if ($2.text) { - /* 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); - score->initial_style = atoi($2.text); - free($2.text); - } - } | ANNOTATION attribute { if (score->annotation [MAX_ANNOTATIONS - 1]) { gregorio_messagef("det_score", VERBOSITY_WARNING, 0, @@ -781,15 +882,6 @@ style_beginning: | SP_BEGIN { add_style(ST_SPECIAL_CHAR); } - | ELISION_BEGIN { - add_style(ST_ELISION); - } - | CENTER_BEGIN { - if (!center_is_determined) { - add_style(ST_FORCED_CENTER); - center_is_determined=CENTER_HALF_DETERMINED; - } - } ; style_end: @@ -817,13 +909,40 @@ style_end: | SP_END { end_style(ST_SPECIAL_CHAR); } - | ELISION_END { + ; + +special_style_beginning: + ELISION_BEGIN { + add_style(ST_ELISION); + } + | CENTER_BEGIN { + if (center_is_determined) { + gregorio_message( + "syllable already has center; ignoring additional center", + "det_score", VERBOSITY_WARNING, 0); + } else if (has_protrusion) { + gregorio_message( + "center not allowed after protrusion; ignored", + "det_score", VERBOSITY_WARNING, 0); + } else { + add_style(ST_FORCED_CENTER); + center_is_determined = CENTER_HALF_DETERMINED; + } + } + ; + +special_style_end: + ELISION_END { end_style(ST_ELISION); } | CENTER_END { - if (center_is_determined==CENTER_HALF_DETERMINED) { + if (center_is_determined == CENTER_HALF_DETERMINED) { end_style(ST_FORCED_CENTER); - center_is_determined=CENTER_FULLY_DETERMINED; + center_is_determined = CENTER_FULLY_DETERMINED; + } else { + gregorio_message( + "not within a syllable center", + "det_score", VERBOSITY_WARNING, 0); } } ; @@ -846,6 +965,15 @@ linebreak_area: } ; +protrusion: + PROTRUSION PROTRUSION_VALUE PROTRUSION_END { + add_protrusion($2.text); + } + | PROTRUSION { + add_protrusion(gregorio_strdup("d")); /* d = default */ + } + ; + character: above_line_text | CHARACTERS { @@ -853,22 +981,44 @@ character: } | style_beginning | style_end + | special_style_beginning + | special_style_end | linebreak_area | euouae - ; - -text_hyphen: - HYPHEN { - add_text(gregorio_strdup("-")); + | CLEAR { + clear_syllable_text = true; } - | text_hyphen HYPHEN { + | protrusion + | HYPHEN { add_text(gregorio_strdup("-")); } + | PROTRUDING_PUNCTUATION { + add_text($1.text); + } ; text: + character | text character - | text text_hyphen character + ; + +translation_character: + CHARACTERS { + add_text($1.text); + } + | style_beginning + | style_end + | HYPHEN { + add_text(gregorio_strdup("-")); + } + | PROTRUDING_PUNCTUATION { + add_text($1.text); + } + ; + +translation_text: + translation_character + | translation_text translation_character ; translation_beginning: @@ -878,11 +1028,15 @@ translation_beginning: ; translation: - translation_beginning text TRANSLATION_END { + translation_beginning TRANSLATION_END { + end_translation(); + } + | translation_beginning translation_text TRANSLATION_END { end_translation(); } | TRANSLATION_CENTER_END { start_translation(TR_WITH_CENTER_END); + end_translation(); } ; @@ -894,25 +1048,59 @@ above_line_text: syllable_with_notes: text OPENING_BRACKET notes { - ready_characters(); - first_text_character = current_character; + save_text(); + close_syllable(&@1); + } + | HYPHEN OPENING_BRACKET notes { + add_style(ST_VERBATIM); + add_text(gregorio_strdup("\\GreForceHyphen")); + end_style(ST_VERBATIM); + save_text(); close_syllable(&@1); } | text HYPHEN OPENING_BRACKET notes { add_style(ST_VERBATIM); add_text(gregorio_strdup("\\GreForceHyphen")); end_style(ST_VERBATIM); - ready_characters(); - first_text_character = current_character; + save_text(); + close_syllable(&@1); + } + | PROTRUDING_PUNCTUATION OPENING_BRACKET notes { + add_auto_protrusion($1.text); + save_text(); + close_syllable(&@1); + } + | text PROTRUDING_PUNCTUATION OPENING_BRACKET notes { + add_auto_protrusion($2.text); + save_text(); close_syllable(&@1); } | text translation OPENING_BRACKET notes { + save_text(); + close_syllable(&@1); + } + | HYPHEN translation OPENING_BRACKET notes { + add_style(ST_VERBATIM); + add_text(gregorio_strdup("\\GreForceHyphen")); + end_style(ST_VERBATIM); + save_text(); close_syllable(&@1); } | text HYPHEN translation OPENING_BRACKET notes { add_style(ST_VERBATIM); add_text(gregorio_strdup("\\GreForceHyphen")); end_style(ST_VERBATIM); + save_text(); + close_syllable(&@1); + } + | PROTRUDING_PUNCTUATION translation OPENING_BRACKET notes { + add_auto_protrusion($1.text); + save_text(); + close_syllable(&@1); + } + | text PROTRUDING_PUNCTUATION translation OPENING_BRACKET notes { + add_auto_protrusion($2.text); + save_text(); 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 31e75ccce3c..f783c84a035 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-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -36,6 +36,14 @@ #include "gabc.h" +typedef enum { + GABC_NORMAL, + GABC_AT_PROTRUSION_FACTOR, + GABC_IN_PROTRUSION_FACTOR +} gabc_write_state; + +static gabc_write_state write_state; + static __inline char pitch_letter(const char height) { char result = height + 'a' - LOWEST_PITCH; if (result == 'o') { @@ -102,11 +110,15 @@ static void gabc_write_begin(FILE *f, grestyle_style style) case ST_ELISION: fprintf(f, "<e>"); break; + case ST_PROTRUSION_FACTOR: + write_state = GABC_AT_PROTRUSION_FACTOR; + break; case ST_INITIAL: case ST_CENTER: case ST_FIRST_WORD: case ST_FIRST_SYLLABLE: case ST_FIRST_SYLLABLE_INITIAL: + case ST_PROTRUSION: /* nothing should be emitted for these */ break; default: @@ -152,11 +164,17 @@ static void gabc_write_end(FILE *f, grestyle_style style) case ST_ELISION: fprintf(f, "</e>"); break; + case ST_PROTRUSION_FACTOR: + if (write_state == GABC_IN_PROTRUSION_FACTOR) { + fprintf(f, ">"); + } + break; case ST_INITIAL: case ST_CENTER: case ST_FIRST_WORD: case ST_FIRST_SYLLABLE: case ST_FIRST_SYLLABLE_INITIAL: + case ST_PROTRUSION: /* nothing should be emitted for these */ break; default: @@ -191,9 +209,14 @@ static void gabc_write_special_char(FILE *f, const grewchar *first_char) */ static void gabc_write_verb(FILE *f, const grewchar *first_char) { - fprintf(f, "<v>"); - gregorio_print_unistring(f, first_char); - fprintf(f, "</v>"); + if (write_state == GABC_AT_PROTRUSION_FACTOR) { + /* this is an auto protrusion, so ignore it */ + write_state = GABC_NORMAL; + } else { + fprintf(f, "<v>"); + gregorio_print_unistring(f, first_char); + fprintf(f, "</v>"); + } } /* @@ -206,7 +229,17 @@ static void gabc_write_verb(FILE *f, const grewchar *first_char) static void gabc_print_char(FILE *f, const grewchar to_print) { - gregorio_print_unichar(f, to_print); + if (write_state == GABC_AT_PROTRUSION_FACTOR) { + write_state = GABC_IN_PROTRUSION_FACTOR; + if (to_print == 'd') { + fprintf(f, "<pr"); + } else { + fprintf(f, "<pr:"); + gregorio_print_unichar(f, to_print); + } + } else { + gregorio_print_unichar(f, to_print); + } } /* @@ -442,11 +475,25 @@ static const char *mora_vposition(gregorio_note *note) } static void write_note_heuristics(FILE *f, gregorio_note *note) { - if (note->explicit_high_ledger_line) { - fprintf(f, "[hl:%c]", note->supposed_high_ledger_line? '1' : '0'); + switch (note->high_ledger_specificity) { + case LEDGER_EXPLICIT: + fprintf(f, "[hl:%c]", note->high_ledger_line? '1' : '0'); + break; + case LEDGER_EXPLICITLY_DRAWN: + fprintf(f, "[oll:%c]", note->high_ledger_line? '1' : '0'); + break; + default: + break; } - if (note->explicit_low_ledger_line) { - fprintf(f, "[ll:%c]", note->supposed_low_ledger_line? '1' : '0'); + switch (note->low_ledger_specificity) { + case LEDGER_EXPLICIT: + fprintf(f, "[ll:%c]", note->low_ledger_line? '1' : '0'); + break; + case LEDGER_EXPLICITLY_DRAWN: + fprintf(f, "[ull:%c]", note->low_ledger_line? '1' : '0'); + break; + default: + break; } } @@ -496,12 +543,6 @@ static void gabc_write_gregorio_note(FILE *f, gregorio_note *note, case S_PUNCTUM_INCLINATUM_AUCTUS: fprintf(f, "%c", toupper((unsigned char)pitch_letter(note->u.note.pitch))); break; - case S_PUNCTUM_CAVUM_INCLINATUM: - fprintf(f, "%cr", toupper((unsigned char)pitch_letter(note->u.note.pitch))); - break; - case S_PUNCTUM_CAVUM_INCLINATUM_AUCTUS: - fprintf(f, "%cr<", toupper((unsigned char)pitch_letter(note->u.note.pitch))); - break; case S_FLAT: fprintf(f, "%cx", pitch_letter(note->u.note.pitch)); break; @@ -527,16 +568,6 @@ static void gabc_write_gregorio_note(FILE *f, gregorio_note *note, fprintf(f, "%co", pitch_letter(note->u.note.pitch)); /* Note: the DEMINUTUS is also in the liquescentia */ break; - case S_ORISCUS_CAVUM_ASCENDENS: - fprintf(f, "%co1r", pitch_letter(note->u.note.pitch)); - break; - case S_ORISCUS_CAVUM_DESCENDENS: - fprintf(f, "%co0r", pitch_letter(note->u.note.pitch)); - break; - case S_ORISCUS_CAVUM_DEMINUTUS: - fprintf(f, "%cor", pitch_letter(note->u.note.pitch)); - /* Note: the DEMINUTUS is also in the liquescentia */ - break; case S_QUILISMA: if (is_quadratum) { fprintf(f, "%cW", pitch_letter(note->u.note.pitch)); @@ -547,15 +578,9 @@ static void gabc_write_gregorio_note(FILE *f, gregorio_note *note, case S_LINEA: fprintf(f, "%c=", pitch_letter(note->u.note.pitch)); break; - case S_PUNCTUM_CAVUM: - fprintf(f, "%cr", pitch_letter(note->u.note.pitch)); - break; case S_LINEA_PUNCTUM: fprintf(f, "%cR", pitch_letter(note->u.note.pitch)); break; - case S_LINEA_PUNCTUM_CAVUM: - fprintf(f, "%cr0", pitch_letter(note->u.note.pitch)); - break; case S_ORISCUS_SCAPUS_ASCENDENS: fprintf(f, "%cO1", pitch_letter(note->u.note.pitch)); break; @@ -576,6 +601,9 @@ static void gabc_write_gregorio_note(FILE *f, gregorio_note *note, break; /* LCOV_EXCL_STOP */ } + if (note->u.note.is_cavum) { + fprintf(f, "r"); + } switch (note->signs) { case _PUNCTUM_MORA: fprintf(f, ".%s", mora_vposition(note)); @@ -619,6 +647,15 @@ static void gabc_write_gregorio_note(FILE *f, gregorio_note *note, case _SEMI_CIRCULUS_REVERSUS: fprintf(f, "r5"); break; + case _MUSICA_FICTA_FLAT: + fprintf(f, "r6"); + break; + case _MUSICA_FICTA_NATURAL: + fprintf(f, "r7"); + break; + case _MUSICA_FICTA_SHARP: + fprintf(f, "r8"); + break; case _NO_SIGN: /* if there's no sign, don't emit anything */ break; @@ -646,7 +683,7 @@ static void gabc_write_gregorio_note(FILE *f, gregorio_note *note, } write_note_heuristics(f, note); if (note->texverb) { - fprintf(f, "[nv:%s]", note->texverb); + fprintf(f, "[nv:%s]", gregorio_texverb(note->texverb)); } } @@ -804,7 +841,7 @@ static void gabc_write_gregorio_glyph(FILE *f, gregorio_glyph *glyph, switch (glyph->type) { case GRE_TEXVERB_GLYPH: if (glyph->texverb) { - fprintf(f, "[gv:%s]", glyph->texverb); + fprintf(f, "[gv:%s]", gregorio_texverb(glyph->texverb)); } break; case GRE_SPACE: @@ -910,12 +947,12 @@ static void gabc_write_gregorio_element(FILE *f, gregorio_element *element, break; case GRE_TEXVERB_ELEMENT: if (element->texverb) { - fprintf(f, "[ev:%s]", element->texverb); + fprintf(f, "[ev:%s]", gregorio_texverb(element->texverb)); } break; case GRE_ALT: if (element->texverb) { - fprintf(f, "[alt:%s]", element->texverb); + fprintf(f, "[alt:%s]", gregorio_texverb(element->texverb)); } break; case GRE_SPACE: @@ -948,6 +985,9 @@ static void gabc_write_gregorio_element(FILE *f, gregorio_element *element, fprintf(f, "z0"); } break; + case GRE_SUPPRESS_CUSTOS: + fprintf(f, "[nocustos]"); + break; case GRE_NLBA: switch (element->u.misc.unpitched.info.nlba) { case NLBA_BEGINNING: @@ -1018,12 +1058,16 @@ static void gabc_write_gregorio_syllable(FILE *f, gregorio_syllable *syllable, bool linebreak_or_bar_in_element; gregorio_assert(syllable, gabc_write_gregorio_syllable, "call with NULL argument", return); + write_state = GABC_NORMAL; if (syllable->no_linebreak_area == NLBA_BEGINNING) { fprintf(f, "<nlba>"); } if (syllable->euouae == EUOUAE_BEGINNING) { fprintf(f, "<eu>"); } + if (syllable->clear) { + fprintf(f, "<clear>"); + } if (syllable->text) { /* we call the magic function (defined in struct_utils.c), that will * write our text. */ 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 d2375a5fdde..7ec95632bf7 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-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * 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 18ef2f945b2..f61c4ff74b9 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-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -21,7 +21,7 @@ */ static const char *copyright = -"Copyright (C) 2006-2016 Gregorio project authors (see CONTRIBUTORS.md)"; +"Copyright (C) 2006-2017 Gregorio project authors (see CONTRIBUTORS.md)"; #include "config.h" #include <stdio.h> @@ -661,7 +661,7 @@ int main(int argc, char **argv) switch (input_format) { case GABC: - score = gabc_read_score(input_file); + score = gabc_read_score(input_file, point_and_click); break; default: /* not reachable unless there's a programming error */ 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 3d21580727d..7ac334e5413 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-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2008-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -377,7 +377,7 @@ static gregorio_vposition advise_positioning(const gregorio_glyph *const glyph, switch (type) { case T_PES: - case T_PESQUILISMA: + case T_QUILISMA_PES: /* * in the case of a pes, we put the episema just under the bottom note */ @@ -408,9 +408,9 @@ static gregorio_vposition advise_positioning(const gregorio_glyph *const glyph, v_episema = below_if_auctus(glyph); } break; - case T_PESQUADRATUM: - case T_PESQUASSUS: - case T_PESQUILISMAQUADRATUM: + case T_PES_QUADRATUM: + case T_PES_QUASSUS: + case T_QUILISMA_PES_QUADRATUM: if (i == 1) { note->gtex_offset_case = first_note_case(note, glyph); h_episema = above_if_h_episema(note->next); @@ -911,8 +911,6 @@ static gregorio_vposition advise_positioning(const gregorio_glyph *const glyph, case S_PUNCTUM_INCLINATUM_AUCTUS: 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; break; case S_STROPHA: @@ -928,11 +926,6 @@ static gregorio_vposition advise_positioning(const gregorio_glyph *const glyph, note->gtex_offset_case = fused_single_note_case(glyph, FinalOriscus, LeadingOriscus); break; - case S_ORISCUS_CAVUM_ASCENDENS: - case S_ORISCUS_CAVUM_DESCENDENS: - case S_ORISCUS_CAVUM_DEMINUTUS: - note->gtex_offset_case = FinalOriscus; - break; case S_VIRGA: note->gtex_offset_case = InitialVirga; break; @@ -944,7 +937,6 @@ static gregorio_vposition advise_positioning(const gregorio_glyph *const glyph, } break; case S_LINEA_PUNCTUM: - case S_LINEA_PUNCTUM_CAVUM: note->gtex_offset_case = FinalLineaPunctum; break; case S_LINEA: @@ -1168,17 +1160,17 @@ static __inline void position_h_episema(gregorio_note *const note, adj->pitch_extremum = h->height; } } - if (!note->explicit_high_ledger_line && !note->supposed_high_ledger_line) { - note->supposed_high_ledger_line = high_ledger_line; + if (!note->high_ledger_specificity && !note->high_ledger_line) { + note->high_ledger_line = high_ledger_line; } - if (!note->explicit_low_ledger_line && !note->supposed_low_ledger_line) { - note->supposed_low_ledger_line = low_ledger_line; + if (!note->low_ledger_specificity && !note->low_ledger_line) { + note->low_ledger_line = low_ledger_line; } } static __inline void next_has_ledger_line( const height_computation *const h, bool *high_ledger_line, - bool *low_ledger_line, const gregorio_score *const score) + bool *low_ledger_line) { const gregorio_element *element = h->last_connected_element; const gregorio_glyph *glyph = h->last_connected_glyph; @@ -1205,10 +1197,8 @@ static __inline void next_has_ledger_line( note = glyph->u.notes.first_note; } - *high_ledger_line = *high_ledger_line - || has_high_ledger_line(note->u.note.pitch, false, score); - *low_ledger_line = *low_ledger_line - || has_low_ledger_line(note->u.note.pitch, false); + *high_ledger_line = *high_ledger_line || note->high_ledger_line; + *low_ledger_line = *low_ledger_line || note->low_ledger_line; if (keep_going) { keep_going = false; @@ -1224,7 +1214,7 @@ static __inline void next_has_ledger_line( static __inline void previous_has_ledger_line( const height_computation *const h, bool *high_ledger_line, - bool *low_ledger_line, const gregorio_score *const score) + bool *low_ledger_line) { const gregorio_element *element = h->start_element; const gregorio_glyph *glyph = h->start_glyph; @@ -1253,10 +1243,8 @@ static __inline void previous_has_ledger_line( } while (glyph->type != GRE_GLYPH); note = gregorio_glyph_last_note(glyph); } - *high_ledger_line = *high_ledger_line - || has_high_ledger_line(note->u.note.pitch, false, score); - *low_ledger_line = *low_ledger_line - || has_low_ledger_line(note->u.note.pitch, false); + *high_ledger_line = *high_ledger_line || note->high_ledger_line; + *low_ledger_line = *low_ledger_line || note->low_ledger_line; if (keep_going) { keep_going = false; @@ -1284,8 +1272,8 @@ static __inline void set_h_episema_height(const height_computation *const h, bool low_ledger_line = has_low_ledger_line(h->height, true) || has_low_ledger_line(h->height - h->vpos, false); - next_has_ledger_line(h, &high_ledger_line, &low_ledger_line, score); - previous_has_ledger_line(h, &high_ledger_line, &low_ledger_line, score); + next_has_ledger_line(h, &high_ledger_line, &low_ledger_line); + previous_has_ledger_line(h, &high_ledger_line, &low_ledger_line); for ( ; element; element = element->next) { if (element->type == GRE_ELEMENT) { @@ -1328,11 +1316,17 @@ static __inline bool is_connected_right(const grehepisema_size size) { return size == H_NORMAL || size == H_SMALL_RIGHT; } -static __inline bool is_connectable_interglyph_ambitus( +static __inline bool is_connectable_interglyph_ambitus(const signed char first, + const signed char second) +{ + return abs(first - second) < 3; +} + +static __inline bool is_connectable_interglyph_notes( const gregorio_note *const first, const gregorio_note *const second) { - return first && second - && abs(first->u.note.pitch - second->u.note.pitch) < 3; + return first && second && is_connectable_interglyph_ambitus( + first->u.note.pitch, second->u.note.pitch); } static __inline bool has_space_to_left(const gregorio_note *const note) { @@ -1341,7 +1335,7 @@ static __inline bool has_space_to_left(const gregorio_note *const note) { case S_PUNCTUM_INCLINATUM_DESCENDENS: case S_PUNCTUM_INCLINATUM_DEMINUTUS: case S_PUNCTUM_INCLINATUM_AUCTUS: - return !is_connectable_interglyph_ambitus(note->previous, note); + return !is_connectable_interglyph_notes(note->previous, note); default: return !note->previous; @@ -1430,7 +1424,6 @@ static __inline void compute_h_episema(height_computation *const h, const gregorio_glyph *const glyph, gregorio_note *const note, const int i, const gtex_type type, const gregorio_score *const score) { - signed char next_height; grehepisema_size size; if (h->is_applicable(note)) { @@ -1438,11 +1431,11 @@ static __inline void compute_h_episema(height_computation *const h, size = h->get_size(note); if (h->active) { + const signed char next_height = compute_h_episema_height( + glyph, note, h->vpos); if (h->connected && is_connected_left(size) && (i != 1 || is_connectable_interglyph_ambitus( - note, h->last_connected_note))) { - next_height = compute_h_episema_height(glyph, note, - h->vpos); + next_height, h->height))) { if (h->is_better_height(next_height, h->height)) { h->height = next_height; } @@ -1555,10 +1548,6 @@ static __inline int compute_fused_shift(const gregorio_glyph *glyph) switch (first_note->u.note.shape) { case S_QUILISMA: case S_QUILISMA_QUADRATUM: - case S_PUNCTUM_CAVUM: - case S_ORISCUS_CAVUM_ASCENDENS: - case S_ORISCUS_CAVUM_DESCENDENS: - case S_ORISCUS_CAVUM_DEMINUTUS: case S_FLAT: case S_SHARP: case S_NATURAL: @@ -1587,22 +1576,6 @@ static __inline int compute_fused_shift(const gregorio_glyph *glyph) gregorio_assert(prev_note->type == GRE_NOTE, compute_fused_shift, "previous note wasn't a note", return 0); - switch (prev_note->u.note.shape) { - case S_PUNCTUM_CAVUM: - case S_ORISCUS_CAVUM_ASCENDENS: - case S_ORISCUS_CAVUM_DESCENDENS: - case S_ORISCUS_CAVUM_DEMINUTUS: - case S_FLAT: - case S_SHARP: - case S_NATURAL: - /* these don't fuse to anything */ - return 0; - - default: - /* anything else is potentially fusible */ - break; - } - shift = first_note->u.note.pitch - prev_note->u.note.pitch; gregorio_assert(shift >= -MAX_AMBITUS && shift <= MAX_AMBITUS, compute_fused_shift, "ambitus too large to fuse", return 0); @@ -1644,70 +1617,6 @@ static __inline int compute_fused_shift(const gregorio_glyph *glyph) return shift; } -static __inline void guess_ledger_lines(const gregorio_element *element, - const gregorio_score *const score) -{ - bool high_ledger_line = false; - bool low_ledger_line = false; - gregorio_note *prev = NULL; - - for (; element; element = element->next) { - if (element->type == GRE_ELEMENT) { - gregorio_glyph *glyph; - for (glyph = element->u.first_glyph; glyph; - glyph = glyph->next) { - if (glyph->type == GRE_GLYPH) { - gregorio_note *note; - for (note = glyph->u.notes.first_note; note; - note = note->next) { - if (note->type == GRE_NOTE) { - if (high_ledger_line - && !note->explicit_high_ledger_line - && !note->supposed_high_ledger_line) { - note->supposed_high_ledger_line = true; - } - if (low_ledger_line - && !note->explicit_low_ledger_line - && !note->supposed_low_ledger_line) { - note->supposed_low_ledger_line = true; - } - high_ledger_line = has_high_ledger_line( - note->u.note.pitch, false, score); - low_ledger_line = has_low_ledger_line( - note->u.note.pitch, false); - if (high_ledger_line) { - if (!note->explicit_high_ledger_line - && !note->supposed_high_ledger_line) { - note->supposed_high_ledger_line = true; - } - if (prev && !prev->explicit_high_ledger_line - && !prev->supposed_high_ledger_line) { - prev->supposed_high_ledger_line = true; - } - } - if (low_ledger_line) { - if (!note->explicit_low_ledger_line - && !note->supposed_low_ledger_line) { - note->supposed_low_ledger_line = true; - } - if (prev && !prev->explicit_low_ledger_line - && !prev->supposed_low_ledger_line) { - prev->supposed_low_ledger_line = true; - } - } - prev = note; - } - } - } - } - /* this heuristic ends eith the element */ - high_ledger_line = false; - low_ledger_line = false; - prev = NULL; - } - } -} - void gregoriotex_compute_positioning( const gregorio_element *const param_element, const gregorio_score *const score) @@ -1759,8 +1668,6 @@ void gregoriotex_compute_positioning( gtex_type type; const gregorio_element *element; - guess_ledger_lines(param_element, score); - for (element = param_element; element; element = element->next) { if (element->type == GRE_ELEMENT) { gregorio_glyph *glyph; 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 d34af2eaade..0ba25b0e9f7 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-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2008-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -60,6 +60,8 @@ typedef struct gregoriotex_status { /* indicates if there is "above lines text" on the line */ bool abovelinestext; + + bool suppressed_custos; } gregoriotex_status; #define UNDETERMINED_HEIGHT -127 @@ -73,7 +75,6 @@ static const char *tex_ambitus[] = { SHAPE(Ancus); SHAPE(AncusLongqueue); SHAPE(AscendensOriscus); -SHAPE(AscendensOriscusCavum); SHAPE(AscendensOriscusLineBL); SHAPE(AscendensOriscusLineTL); SHAPE(AscendensOriscusScapus); @@ -81,7 +82,6 @@ SHAPE(AscendensOriscusScapusLongqueue); SHAPE(AscendensOriscusScapusOpenqueue); SHAPE(AscendensPunctumInclinatum); SHAPE(DescendensOriscus); -SHAPE(DescendensOriscusCavum); SHAPE(DescendensOriscusLineBL); SHAPE(DescendensOriscusLineTL); SHAPE(DescendensOriscusScapus); @@ -103,11 +103,11 @@ SHAPE(FlexusOriscusScapusLongqueue); SHAPE(FlexusOriscusScapusOpenqueue); SHAPE(Linea); SHAPE(LineaPunctum); -SHAPE(LineaPunctumCavum); SHAPE(Natural); -SHAPE(OriscusCavumDeminutus); SHAPE(OriscusDeminutus); SHAPE(Pes); +SHAPE(PesAscendensOriscus); +SHAPE(PesDescendensOriscus); SHAPE(PesQuadratum); SHAPE(PesQuadratumLongqueue); SHAPE(PesQuadratumOpenqueue); @@ -117,10 +117,6 @@ SHAPE(PesQuassusInusitatusLongqueue); SHAPE(PesQuassusInusitatusOpenqueue); SHAPE(PesQuassusLongqueue); SHAPE(PesQuassusOpenqueue); -SHAPE(PesQuilisma); -SHAPE(PesQuilismaQuadratum); -SHAPE(PesQuilismaQuadratumLongqueue); -SHAPE(PesQuilismaQuadratumOpenqueue); SHAPE(Porrectus); SHAPE(PorrectusFlexus); SHAPE(PorrectusFlexusLongqueue); @@ -129,9 +125,6 @@ SHAPE(PorrectusLongqueue); SHAPE(PorrectusNobar); SHAPE(Punctum); SHAPE(PunctumAscendens); -SHAPE(PunctumCavum); -SHAPE(PunctumCavumInclinatum); -SHAPE(PunctumCavumInclinatumAuctus); SHAPE(PunctumDeminutus); SHAPE(PunctumDescendens); SHAPE(PunctumInclinatumAuctus); @@ -139,6 +132,10 @@ SHAPE(PunctumInclinatumDeminutus); SHAPE(PunctumLineBL); SHAPE(PunctumLineTL); SHAPE(Quilisma); +SHAPE(QuilismaPes); +SHAPE(QuilismaPesQuadratum); +SHAPE(QuilismaPesQuadratumLongqueue); +SHAPE(QuilismaPesQuadratumOpenqueue); SHAPE(Salicus); SHAPE(SalicusFlexus); SHAPE(SalicusLongqueue); @@ -165,7 +162,6 @@ SHAPE(VirgaReversaLongqueueDescendens); SHAPE(VirgaReversaOpenqueue); SHAPE(VirgaReversaOpenqueueAscendens); SHAPE(VirgaReversaOpenqueueDescendens); -SHAPE(VirgaStrata); #define LIQ(NAME) static const char *const LIQ_##NAME = #NAME LIQ(Deminutus); @@ -214,10 +210,10 @@ static queuetype adjusted_queuetype_of(const gregorio_note *const note, case 1: return Q_ON_BOTTOM_LINE; case 2: - return queue_note->supposed_low_ledger_line? + return queue_note->low_ledger_line? Q_ON_SPACE_ABOVE_BOTTOM_LINE : Q_ON_SPACE_BELOW_BOTTOM_LINE; case 3: - return queue_note->supposed_low_ledger_line? + return queue_note->low_ledger_line? Q_ON_LINE_ABOVE_BOTTOM_LINE : Q_ON_BOTTOM_LINE; case 5: case 7: @@ -578,10 +574,21 @@ static const char *fusible_queued_shape(const gregorio_note *const note, return compute_glyph_name(glyph, name, LG_NONE, true); } +static __inline char *code_point(const char *const shape, const bool is_cavum, + char *const buf, const size_t bufsize) +{ + if (is_cavum) { + gregorio_snprintf(buf, bufsize, "\\GreCavum{%s}", shape); + } else { + gregorio_snprintf(buf, bufsize, "\\GreCP%s", shape); + } + return buf; +} + static const char *determine_note_glyph_name(const gregorio_note *const note, const gregorio_glyph *glyph, gtex_alignment *type) { - static char buf[128]; + static char buf[128], cpbuf[96]; const char *name = ""; gregorio_assert(note, determine_note_glyph_name, "called with NULL pointer", @@ -607,14 +614,10 @@ static const char *determine_note_glyph_name(const gregorio_note *const note, return SHAPE_PunctumDescendens; case S_PUNCTUM_DEMINUTUS: return SHAPE_PunctumDeminutus; - case S_PUNCTUM_CAVUM: - return SHAPE_PunctumCavum; case S_LINEA: return SHAPE_Linea; case S_LINEA_PUNCTUM: return SHAPE_LineaPunctum; - case S_LINEA_PUNCTUM_CAVUM: - return SHAPE_LineaPunctumCavum; case S_VIRGA: switch (queuetype_of(note)) { case Q_ON_SPACE_ABOVE_BOTTOM_LINE: @@ -643,7 +646,8 @@ static const char *determine_note_glyph_name(const gregorio_note *const note, if (note->u.note.pitch - LOWEST_PITCH == 3) { /* if we're on the 'd' line, the queue could be long or short */ gregorio_snprintf(buf, sizeof buf, - "VirgaReversaAscendensOnDLine{\\GreCP%s}", name); + "VirgaReversaAscendensOnDLine{%s}", code_point(name, + glyph->u.notes.is_cavum, cpbuf, sizeof cpbuf)); return buf; } return name; @@ -698,21 +702,6 @@ static const char *determine_note_glyph_name(const gregorio_note *const note, case Q_ON_LINE_ABOVE_BOTTOM_LINE: return SHAPE_StrophaAuctaLongtail; } /* all cases return, so this line is not hit; LCOV_EXCL_LINE */ - case S_PUNCTUM_CAVUM_INCLINATUM: - *type = AT_PUNCTUM_INCLINATUM; - return SHAPE_PunctumCavumInclinatum; - case S_PUNCTUM_CAVUM_INCLINATUM_AUCTUS: - *type = AT_PUNCTUM_INCLINATUM; - return SHAPE_PunctumCavumInclinatumAuctus; - case S_ORISCUS_CAVUM_ASCENDENS: - *type = AT_ORISCUS; - return SHAPE_AscendensOriscusCavum; - case S_ORISCUS_CAVUM_DESCENDENS: - *type = AT_ORISCUS; - return SHAPE_DescendensOriscusCavum; - case S_ORISCUS_CAVUM_DEMINUTUS: - *type = AT_ORISCUS; - return SHAPE_OriscusCavumDeminutus; case S_FLAT: return SHAPE_Flat; case S_SHARP: @@ -883,18 +872,18 @@ const char *gregoriotex_determine_glyph_name(const gregorio_glyph *const glyph, * look like pes quadratum. */ if (glyph->u.notes.liquescentia & (L_AUCTUS_ASCENDENS | L_AUCTUS_DESCENDENS)) { - *gtype = T_PESQUILISMAQUADRATUM; - shape = SHAPE_PesQuilismaQuadratum; + *gtype = T_QUILISMA_PES_QUADRATUM; + shape = SHAPE_QuilismaPesQuadratum; } else { - *gtype = T_PESQUILISMA; - shape = SHAPE_PesQuilisma; + *gtype = T_QUILISMA_PES; + shape = SHAPE_QuilismaPes; } ltype = LG_NO_INITIO; break; case S_ORISCUS_ASCENDENS: case S_ORISCUS_SCAPUS_ASCENDENS: *type = AT_ORISCUS; - *gtype = T_PESQUASSUS; + *gtype = T_PES_QUASSUS; shape = quadratum_shape(glyph, SHAPE_PesQuassus, SHAPE_PesQuassusLongqueue, SHAPE_PesQuassusOpenqueue); ltype = LG_NO_INITIO; @@ -902,7 +891,7 @@ const char *gregoriotex_determine_glyph_name(const gregorio_glyph *const glyph, case S_ORISCUS_DESCENDENS: case S_ORISCUS_SCAPUS_DESCENDENS: *type = AT_ORISCUS; - *gtype = T_PESQUASSUS; + *gtype = T_PES_QUASSUS; shape = quadratum_shape(glyph, SHAPE_PesQuassusInusitatus, SHAPE_PesQuassusInusitatusLongqueue, SHAPE_PesQuassusInusitatusOpenqueue); @@ -912,7 +901,7 @@ const char *gregoriotex_determine_glyph_name(const gregorio_glyph *const glyph, *type = AT_ONE_NOTE; if (glyph->u.notes.liquescentia & (L_AUCTUS_ASCENDENS | L_AUCTUS_DESCENDENS)) { - *gtype = T_PESQUADRATUM; + *gtype = T_PES_QUADRATUM; shape = SHAPE_PesQuadratum; } else { *gtype = T_PES; @@ -926,25 +915,31 @@ const char *gregoriotex_determine_glyph_name(const gregorio_glyph *const glyph, switch (glyph->u.notes.first_note->u.note.shape) { case S_QUILISMA: *type = AT_QUILISMA; - *gtype = T_PESQUILISMAQUADRATUM; - shape = quadratum_shape(glyph, SHAPE_PesQuilismaQuadratum, - SHAPE_PesQuilismaQuadratumLongqueue, - SHAPE_PesQuilismaQuadratumOpenqueue); + *gtype = T_QUILISMA_PES_QUADRATUM; + shape = quadratum_shape(glyph, SHAPE_QuilismaPesQuadratum, + SHAPE_QuilismaPesQuadratumLongqueue, + SHAPE_QuilismaPesQuadratumOpenqueue); ltype = LG_NO_INITIO; break; default: *type = AT_ONE_NOTE; - *gtype = T_PESQUADRATUM; + *gtype = T_PES_QUADRATUM; shape = quadratum_shape(glyph, SHAPE_PesQuadratum, SHAPE_PesQuadratumLongqueue, SHAPE_PesQuadratumOpenqueue); ltype = LG_ALL; break; } break; - case G_VIRGA_STRATA: + case G_PES_ASCENDENS_ORISCUS: *type = AT_ONE_NOTE; - *gtype = T_VIRGA_STRATA; - shape = SHAPE_VirgaStrata; + *gtype = T_PES_ORISCUS; + shape = SHAPE_PesAscendensOriscus; + ltype = LG_ALL; + break; + case G_PES_DESCENDENS_ORISCUS: + *type = AT_ONE_NOTE; + *gtype = T_PES_ORISCUS; + shape = SHAPE_PesDescendensOriscus; ltype = LG_ALL; break; case G_FLEXA: @@ -1224,6 +1219,12 @@ static void gtex_write_begin(FILE *f, grestyle_style style) case ST_FIRST_SYLLABLE_INITIAL: fprintf(f, "\\GreFirstSyllableInitial{"); break; + case ST_PROTRUSION_FACTOR: + fprintf(f, "\\GreProtrusion{"); + break; + case ST_PROTRUSION: + fprintf(f, "{"); + break; default: break; } @@ -1305,12 +1306,17 @@ static __inline void tex_escape_wtext(FILE *const f, const grewchar *text) /* these characters have special meaning to TeX */ fprintf(f, "\\string\\%03d", *text); break; + /* There is currently no way to get a carriage return or a newline into + * an <sp>, but we'll leave this code here, but #if'd out, in case we + * need this function in a different context */ +#if 0 case L'\n': fprintf(f, "\\string\\n"); break; case L'\r': - /* ignore */ + / * ignore * / break; +#endif default: gregorio_print_unichar(f, *text); break; @@ -1772,12 +1778,12 @@ static void write_bar(FILE *f, const gregorio_score *const score, static __inline char *suppose_high_ledger_line(const gregorio_note *const note) { - return note->supposed_high_ledger_line? "\\GreSupposeHighLedgerLine" : ""; + return note->high_ledger_line? "\\GreSupposeHighLedgerLine" : ""; } static __inline char *suppose_low_ledger_line(const gregorio_note *const note) { - return note->supposed_low_ledger_line? "\\GreSupposeLowLedgerLine" : ""; + return note->low_ledger_line? "\\GreSupposeLowLedgerLine" : ""; } /* @@ -2049,7 +2055,6 @@ static __inline int get_punctum_inclinatum_space_case( } 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 * sequence */ @@ -2111,7 +2116,6 @@ static __inline int get_punctum_inclinatum_space_case( } /* LCOV_EXCL_LINE */ break; case S_PUNCTUM_INCLINATUM_AUCTUS: - case S_PUNCTUM_CAVUM_INCLINATUM_AUCTUS: if (note->previous) { /* means that it is not the first note of the puncta inclinata * sequence */ @@ -2413,6 +2417,21 @@ static void write_rare_sign(FILE *f, const gregorio_note *const current_note, pitch_value(current_note->u.note.pitch), current_note->gtex_offset_case); break; + case _MUSICA_FICTA_FLAT: + fprintf(f, "\\GreMusicaFictaFlat{%d}{\\GreOCase%s}%%\n", + pitch_value(current_note->u.note.pitch), + current_note->gtex_offset_case); + break; + case _MUSICA_FICTA_NATURAL: + fprintf(f, "\\GreMusicaFictaNatural{%d}{\\GreOCase%s}%%\n", + pitch_value(current_note->u.note.pitch), + current_note->gtex_offset_case); + break; + case _MUSICA_FICTA_SHARP: + fprintf(f, "\\GreMusicaFictaSharp{%d}{\\GreOCase%s}%%\n", + pitch_value(current_note->u.note.pitch), + current_note->gtex_offset_case); + break; /* the cases of the bar signs are dealt in another function * (write_bar) */ default: @@ -2440,14 +2459,18 @@ static __inline const char *alteration_name( } static const char *next_custos(const signed char next_note_pitch, - const gregorio_shape next_note_alteration) + const gregorio_shape next_note_alteration, + gregoriotex_status *const status) { - static char buf[30]; + static char buf[50]; - gregorio_snprintf(buf, sizeof buf, "\\GreNextCustos{%d}{%s}", + gregorio_snprintf(buf, sizeof buf, "%s\\GreNextCustos{%d}{%s}", + status->suppressed_custos? "\\GreResetEolCustos" : "", pitch_value(next_note_pitch), alteration_name(next_note_alteration)); + status->suppressed_custos = false; + return buf; } @@ -2457,11 +2480,13 @@ static const char *next_custos(const signed 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) + const gregorio_shape next_note_alteration, + gregoriotex_status *const status) { unsigned int initial_shape = note->u.note.shape; const char *shape; int space_case; + static char cpbuf[96]; /* type in the sense of GregorioTeX alignment type */ gtex_alignment type = AT_ONE_NOTE; gregorio_assert(note, write_note, "called with NULL pointer", @@ -2498,45 +2523,6 @@ static void write_note(FILE *f, gregorio_note *note, } switch (note->u.note.shape) { - case S_PUNCTUM_CAVUM: - 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}{%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}{%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, "\\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, "\\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}{%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}{%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}{%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)); break; @@ -2547,9 +2533,11 @@ static void 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}{%s}{%d}", shape, + fprintf(f, "\\GreGlyph{%s}{%d}{%s}{%d}", + code_point(shape, glyph->u.notes.is_cavum, cpbuf, sizeof cpbuf), pitch_value(note->u.note.pitch), - next_custos(next_note_pitch, next_note_alteration), type); + next_custos(next_note_pitch, next_note_alteration, status), + type); break; } } @@ -2800,13 +2788,65 @@ static void compute_height_extrema(const gregorio_glyph *const glyph, height = note->v_episema_height; } else { height = note->u.note.pitch; + + /* no vertical episema, so we need to check for a stem */ + gregorio_assert(glyph->type == GRE_GLYPH, compute_height_extrema, + "glyph->type must be GRE_GLYPH here", return); + switch (glyph->u.notes.glyph_type) { + case G_BIVIRGA: + case G_TRIVIRGA: + case G_VIRGA: + case G_VIRGA_REVERSA: + --height; + break; + + case G_PUNCTUM: + switch (note->u.note.shape) { + case S_ORISCUS_SCAPUS_ASCENDENS: + case S_ORISCUS_SCAPUS_DESCENDENS: + --height; + break; + + default: + /* default to avoid the warning */ + break; + } + break; + + default: + /* default to avoid the warning */ + + /* other shapes like the porrectus have stems, but the height + * computation will cover other notes in the shape, negating + * the need to account for the stem on the shape */ + break; + } } + if (*bottom_height == UNDETERMINED_HEIGHT || height < *bottom_height) { *bottom_height = height; } } } +static void compute_element_height_extrema( + const gregorio_element *const element, signed char *const top_height, + signed char *const bottom_height) +{ + const gregorio_glyph *glyph; + gregorio_not_null(element, compute_element_height_extrema, return); + if (element->type != GRE_ELEMENT) { + return; + } + /* get the minima/maxima pitches */ + for (glyph = element->u.first_glyph; glyph; glyph = glyph->next) { + if (glyph->type == GRE_GLYPH) { + compute_height_extrema(glyph, glyph->u.notes.first_note, + top_height, bottom_height); + } + } +} + static __inline void fixup_height_extrema(signed char *const top_height, signed char *const bottom_height) { @@ -2818,6 +2858,12 @@ static __inline void fixup_height_extrema(signed char *const top_height, } } +static __inline bool is_ledger_drawn(const bool setting, + const gregorio_ledger_specificity specificity) +{ + return ((specificity & LEDGER_DRAWN) && setting); +} + 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, @@ -2836,16 +2882,19 @@ static void write_signs(FILE *f, gtex_type type, for (current_note = note, i = 1; current_note; current_note = current_note->next, ++i) { /* we start by the additional lines */ - if (current_note->u.note.pitch <= LOW_LEDGER_LINE_PITCH) { + if (is_ledger_drawn(current_note->low_ledger_line, + current_note->low_ledger_specificity)) { write_additional_line(f, i, type, true, current_note, score); status->bottom_line = 1; } - if (current_note->u.note.pitch >= score->high_ledger_line_pitch) { + if (is_ledger_drawn(current_note->high_ledger_line, + current_note->high_ledger_specificity)) { write_additional_line(f, i, type, false, current_note, score); } if (current_note->texverb) { fprintf(f, "%% verbatim text at note level:\n%s%%\n" - "%% end of verbatim text\n", current_note->texverb); + "%% end of verbatim text\n", + gregorio_texverb(current_note->texverb)); } if (type == T_ONE_NOTE) { break; @@ -2925,7 +2974,7 @@ static void write_signs(FILE *f, gtex_type type, fprintf(f, "}%%\n"); } -static char *determine_leading_shape(gregorio_glyph *glyph) +static char *determine_leading_shape(const gregorio_glyph *const glyph) { static char buf[BUFSIZE]; int ambitus = compute_ambitus(glyph->u.notes.first_note); @@ -2966,10 +3015,10 @@ static __inline void write_composed_multinote_glyph(FILE *const f, 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); + S_UNDETERMINED, status); } else { write_note(f, current_note, glyph, next_note_pitch, - next_note_alteration); + next_note_alteration, status); } write_signs(f, T_ONE_NOTE, glyph, current_note, has_next ? 0 : fuse_to_next_note, status, score); @@ -2980,13 +3029,13 @@ static __inline void write_composed_multinote_glyph(FILE *const f, } } -static void write_glyph(FILE *f, gregorio_syllable *syllable, - gregorio_element *element, gregorio_glyph *glyph, +static void write_glyph(FILE *const f, const gregorio_syllable *const syllable, + const gregorio_element *const element, + gregorio_glyph *const glyph, gregoriotex_status *const status, const gregorio_score *const score) { - /* glyph number is the number of the glyph in the fonte, it is discussed in - * later comments - * type is the type of the glyph. Understand the type of the glyph for + static char cpbuf[96], cpbuf2[96]; + /* type is the type of the glyph. Understand the type of the glyph for * gregoriotex, for the alignement between text and notes. (AT_ONE_NOTE, * etc.) */ gtex_alignment type = 0; @@ -3034,9 +3083,11 @@ static void write_glyph(FILE *f, gregorio_syllable *syllable, || 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}{%s}{%d}", shape, + fprintf(f, "\\GreGlyph{%s}{%d}{%s}{%d}", code_point(shape, + glyph->u.notes.is_cavum, cpbuf, sizeof cpbuf), pitch_value(glyph->u.notes.first_note->u.note.pitch), - next_custos(next_note_pitch, next_note_alteration), type); + next_custos(next_note_pitch, next_note_alteration, status), + type); write_signs(f, gtype, glyph, glyph->u.notes.first_note, fuse_to_next_note, status, score); } else { @@ -3049,9 +3100,11 @@ static void write_glyph(FILE *f, gregorio_syllable *syllable, 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}{%s}{%d}", shape, + fprintf(f, "\\GreGlyph{%s}{%d}{%s}{%d}", code_point(shape, + glyph->u.notes.is_cavum, cpbuf, sizeof cpbuf), pitch_value(glyph->u.notes.first_note->u.note.pitch), - next_custos(next_note_pitch, next_note_alteration), type); + next_custos(next_note_pitch, next_note_alteration, status), + type); write_signs(f, gtype, glyph, glyph->u.notes.first_note, fuse_to_next_note, status, score); break; @@ -3063,10 +3116,14 @@ 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}" - "{%s}{%d}", leading_shape, shape, + fprintf(f, "\\GreGlyph{\\GreFuseTwo{%s}{%s}}{%d}{%s}{%d}", + code_point(leading_shape, glyph->u.notes.is_cavum, cpbuf, + sizeof cpbuf), + code_point(shape, glyph->u.notes.is_cavum, cpbuf2, + sizeof cpbuf2), pitch_value(glyph->u.notes.first_note->u.note.pitch), - next_custos(next_note_pitch, next_note_alteration), type); + next_custos(next_note_pitch, next_note_alteration, status), + type); glyph->u.notes.first_note = current_note; glyph->u.notes.glyph_type = G_TORCULUS_RESUPINUS_FLEXUS; write_signs(f, gtype, glyph, glyph->u.notes.first_note, @@ -3092,9 +3149,6 @@ static void write_glyph(FILE *f, gregorio_syllable *syllable, case S_ORISCUS_ASCENDENS: case S_ORISCUS_DESCENDENS: case S_ORISCUS_DEMINUTUS: - case S_ORISCUS_CAVUM_ASCENDENS: - case S_ORISCUS_CAVUM_DESCENDENS: - case S_ORISCUS_CAVUM_DEMINUTUS: case S_ORISCUS_SCAPUS_ASCENDENS: case S_ORISCUS_SCAPUS_DESCENDENS: /* don't change the oriscus */ @@ -3131,7 +3185,7 @@ static void write_glyph(FILE *f, gregorio_syllable *syllable, case G_STROPHA_AUCTA: case G_ALTERATION: write_note(f, glyph->u.notes.first_note, glyph, next_note_pitch, - next_note_alteration); + next_note_alteration, status); write_signs(f, T_ONE_NOTE, glyph, current_note, fuse_to_next_note, status, score); break; @@ -3148,10 +3202,14 @@ static void write_glyph(FILE *f, gregorio_syllable *syllable, glyph->u.notes.glyph_type = G_PORRECTUS_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}{%s}{%d}", leading_shape, shape, + fprintf(f, "\\GreGlyph{\\GreFuseTwo{%s}{%s}}{%d}{%s}{%d}", + code_point(leading_shape, glyph->u.notes.is_cavum, cpbuf, + sizeof cpbuf), + code_point(shape, glyph->u.notes.is_cavum, cpbuf2, + sizeof cpbuf2), pitch_value(glyph->u.notes.first_note->u.note.pitch), - next_custos(next_note_pitch, next_note_alteration), type); + next_custos(next_note_pitch, next_note_alteration, status), + type); glyph->u.notes.first_note = current_note; glyph->u.notes.glyph_type = G_TORCULUS_RESUPINUS; write_signs(f, gtype, glyph, glyph->u.notes.first_note, @@ -3159,9 +3217,11 @@ static void write_glyph(FILE *f, gregorio_syllable *syllable, break; } else { shape = gregoriotex_determine_glyph_name(glyph, &type, >ype); - 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); + fprintf(f, "\\GreGlyph{%s}{%d}{%s}{%d}", code_point(shape, + glyph->u.notes.is_cavum, cpbuf, sizeof cpbuf), + pitch_value(glyph->u.notes.first_note->u.note.pitch), + next_custos(next_note_pitch, next_note_alteration, status), + type); write_signs(f, gtype, glyph, glyph->u.notes.first_note, fuse_to_next_note, status, score); break; @@ -3184,8 +3244,10 @@ static __inline unsigned int glyph_note_units(const gregorio_glyph *glyph) /* 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 unsigned int write_element(FILE *f, gregorio_syllable *syllable, - gregorio_element *element, gregoriotex_status *status, +static unsigned int write_element(FILE *const f, + const gregorio_syllable *const syllable, + const gregorio_element *const element, + gregoriotex_status *const status, const gregorio_score *const score) { unsigned int note_unit_count = 0; @@ -3217,7 +3279,8 @@ static unsigned int write_element(FILE *f, gregorio_syllable *syllable, case GRE_TEXVERB_GLYPH: if (glyph->texverb) { fprintf(f, "%% verbatim text at glyph level:\n%s%%\n" - "%% end of verbatim text\n", glyph->texverb); + "%% end of verbatim text\n", + gregorio_texverb(glyph->texverb)); } break; @@ -3311,7 +3374,7 @@ static void write_text(FILE *const f, const gregorio_character *const text) * \GreChangeClef. */ static void gregoriotex_print_change_line_clef(FILE *f, - gregorio_element *current_element) + const gregorio_element *const current_element) { if (current_element->type == GRE_CLEF) { /* the third argument is 0 or 1 according to the need for a space @@ -3394,7 +3457,8 @@ static void handle_final_bar(FILE *f, const char *type, gregorio_syllable *sylla case GRE_TEXVERB_ELEMENT: if (element->texverb) { fprintf(f, "%% verbatim text at element level:\n%s%%\n" - "%% end of verbatim text\n", element->texverb); + "%% end of verbatim text\n", + gregorio_texverb(element->texverb)); } break; @@ -3428,21 +3492,23 @@ static __inline void write_syllable_point_and_click(FILE *const f, } static void write_syllable_text(FILE *f, const char *const syllable_type, - const bool forced_center, const gregorio_character *text, + const gregorio_syllable *const syllable, const bool ignored __attribute__((unused))) { if (syllable_type != NULL) { - fprintf(f, "%s{%s\\GreSetThisSyllable", syllable_type, - forced_center? "\\GreGABCForceCenters" : ""); - write_text(f, text); + fprintf(f, "%s{%s%s\\GreSetThisSyllable", syllable_type, + syllable->clear? "\\GreClearSyllableText" : "", + syllable->forced_center? "\\GreGABCForceCenters" : ""); + write_text(f, syllable->text); fprintf(f, "}"); } } static void write_first_syllable_text(FILE *f, const char *const syllable_type, - const bool forced_center, const gregorio_character *const text, + const gregorio_syllable *const syllable, const bool end_of_word) { + const gregorio_character *const text = syllable->text; gregorio_not_null(syllable_type, write_first_syllable_text, return); if (text == NULL) { fprintf(f, "}{%s}{\\GreSetNoFirstSyllableText}", syllable_type); @@ -3452,7 +3518,7 @@ static void write_first_syllable_text(FILE *f, const char *const syllable_type, const gregorio_character *t; /* find out if there is a forced center -> has_forced_center */ - gregorio_center_determination center = forced_center? + gregorio_center_determination center = syllable->forced_center? CENTER_FULLY_DETERMINED : CENTER_NOT_DETERMINED; gregorio_rebuild_first_syllable(&text_with_initial, false); @@ -3463,8 +3529,9 @@ static void write_first_syllable_text(FILE *f, const char *const syllable_type, gregorio_rebuild_characters(&text_without_initial, center, true); gregorio_set_first_word(&text_without_initial); - fprintf(f, "}{%s}{%s\\GreSetFirstSyllableText", syllable_type, - forced_center? "\\GreGABCForceCenters" : ""); + fprintf(f, "}{%s}{%s%s\\GreSetFirstSyllableText", syllable_type, + syllable->clear? "\\GreClearSyllableText" : "", + syllable->forced_center? "\\GreGABCForceCenters" : ""); fprintf(f, "{"); gregorio_write_first_letter_alignment_text(WTP_FIRST_SYLLABLE, @@ -3628,6 +3695,30 @@ static __inline void handle_last_of_voice(FILE *const f, } } +static bool is_before_linebreak(const gregorio_syllable *syllable, + const gregorio_element *element) +{ + if (element) { + element = element->next; + } + + while (syllable) { + if (element) { + if (element->type == GRE_END_OF_LINE) { + return true; + } + break; + } + + syllable = syllable->next_syllable; + if (syllable) { + element = syllable->elements[0]; + } + } + + return false; +} + /* * 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 @@ -3646,9 +3737,9 @@ static void write_syllable(FILE *f, gregorio_syllable *syllable, 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)) + (FILE *, const char *, const gregorio_syllable *, bool)) { - gregorio_element *clef_change_element = NULL, *element; + const gregorio_element *clef_change_element = NULL, *element; const char *syllable_type = NULL; bool anticipated_event_written = false; bool end_of_word; @@ -3670,13 +3761,13 @@ static void write_syllable(FILE *f, gregorio_syllable *syllable, if (syllable->euouae == EUOUAE_BEGINNING) { fprintf(f, "\\GreBeginEUOUAE{%hu}%%\n", syllable->euouae_id); } - /* - * first we check if the syllable is only a end of line. If it is the case, - * we don't print anything but a comment (to be able to read it if we read - * GregorioTeX). The end of lines are treated separately in GregorioTeX, it - * is buit inside the TeX structure. - */ if (syllable->elements && *(syllable->elements)) { + /* + * first we check if the syllable is only a end of line. If it is the + * case, we don't print anything but a comment (to be able to read it + * if we read GregorioTeX). The end of lines are treated separately in + * GregorioTeX, it is buit inside the TeX structure. + */ if ((syllable->elements)[0]->type == GRE_END_OF_LINE) { gregorio_assert(syllable != score->first_syllable, write_syllable, "line break is not supported on the first syllable", @@ -3686,8 +3777,7 @@ static void write_syllable(FILE *f, gregorio_syllable *syllable, } else { fprintf(f, "%%\n%%\n\\GreNewLine %%\n%%\n%%\n"); } - write_this_syllable_text(f, NULL, syllable->forced_center, - syllable->text, end_of_word); + write_this_syllable_text(f, NULL, syllable, end_of_word); return; } /* @@ -3714,8 +3804,7 @@ static void write_syllable(FILE *f, gregorio_syllable *syllable, 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, - syllable->text, end_of_word); + write_this_syllable_text(f, NULL, syllable, end_of_word); return; } } @@ -3727,16 +3816,14 @@ static void write_syllable(FILE *f, gregorio_syllable *syllable, && (syllable->elements)[0]->u.misc.unpitched.info.bar == B_DIVISIO_FINALIS) { handle_final_bar(f, "DivisioFinalis", syllable); - write_this_syllable_text(f, NULL, syllable->forced_center, - syllable->text, end_of_word); + write_this_syllable_text(f, NULL, syllable, end_of_word); return; } if (!syllable->next_syllable && !syllable->text && (syllable->elements)[0]->u.misc.unpitched.info.bar == B_DIVISIO_MAIOR) { handle_final_bar(f, "DivisioMaior", syllable); - write_this_syllable_text(f, NULL, syllable->forced_center, - syllable->text, end_of_word); + write_this_syllable_text(f, NULL, syllable, end_of_word); return; } } @@ -3755,8 +3842,7 @@ static void write_syllable(FILE *f, gregorio_syllable *syllable, syllable->next_syllable? syllable->next_syllable->text : NULL); syllable_type = "\\GreNoNoteSyllable"; } - write_this_syllable_text(f, syllable_type, syllable->forced_center, - syllable->text, end_of_word); + write_this_syllable_text(f, syllable_type, syllable, end_of_word); fprintf(f, "{}{\\Gre%s}", syllable->first_word ? "FirstWord" : "Unstyled"); if (end_of_word) { fprintf(f, "{1}"); @@ -3816,12 +3902,18 @@ static void write_syllable(FILE *f, gregorio_syllable *syllable, if (syllable->elements) { for (element = *syllable->elements; element; element = element->next) { if (element->nabc_lines && element->nabc) { + signed char high_pitch = UNDETERMINED_HEIGHT; + signed char low_pitch = UNDETERMINED_HEIGHT; size_t i; + compute_element_height_extrema(element, &high_pitch, + &low_pitch); + fixup_height_extrema(&high_pitch, &low_pitch); for (i = 0; i < element->nabc_lines; i++) { if (element->nabc[i]) { fprintf(f, "\\GreNABCNeumes{%d}{", (int)(i+1)); tex_escape_text(f, element->nabc[i]); - fprintf(f, "}%%\n"); + fprintf(f, "}{%d}{%d}%%\n", pitch_value(high_pitch), + pitch_value(low_pitch)); } } } @@ -3875,7 +3967,8 @@ static void write_syllable(FILE *f, gregorio_syllable *syllable, case GRE_TEXVERB_ELEMENT: if (element->texverb) { fprintf(f, "%% verbatim text at element level:\n%s%%\n" - "%% end of verbatim text\n", element->texverb); + "%% end of verbatim text\n", + gregorio_texverb(element->texverb)); } break; @@ -3890,29 +3983,45 @@ static void write_syllable(FILE *f, gregorio_syllable *syllable, case GRE_ALT: if (element->texverb) { - fprintf(f, "\\GreSetTextAboveLines{%s}%%\n", element->texverb); + fprintf(f, "\\GreSetTextAboveLines{%s}%%\n", + gregorio_texverb(element->texverb)); } break; case GRE_CLEF: /* We don't print clef changes at the end of a line */ if (first_of_disc != 1) { - /* the third argument is 0 or 1 according to the need - * for a space before the clef */ - 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 - == GRE_BAR)? '0' : '1', - clef_flat_height(element->u.misc.clef.clef, - element->u.misc.clef.line, - element->u.misc.clef.flatted), - gregorio_clef_to_char( - element->u.misc.clef.secondary_clef), - element->u.misc.clef.secondary_line, - clef_flat_height(element->u.misc.clef.secondary_clef, - element->u.misc.clef.secondary_line, - element->u.misc.clef.secondary_flatted)); + if (is_before_linebreak(syllable, element)) { + signed char next_note_pitch; + gregorio_shape next_note_alteration; + + next_note_pitch = gregorio_adjust_pitch_into_staff( + score, gregorio_determine_next_pitch( + syllable, element, NULL, &next_note_alteration) + - element->u.misc.clef.pitch_difference); + + fputs(next_custos(next_note_pitch, next_note_alteration, + status), f); + gregoriotex_print_change_line_clef(f, element); + } else { + /* the third argument is 0 or 1 according to the need + * for a space before the clef */ + 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 + == GRE_BAR)? '0' : '1', + clef_flat_height(element->u.misc.clef.clef, + element->u.misc.clef.line, + element->u.misc.clef.flatted), + gregorio_clef_to_char( + element->u.misc.clef.secondary_clef), + element->u.misc.clef.secondary_line, + clef_flat_height( + element->u.misc.clef.secondary_clef, + element->u.misc.clef.secondary_line, + element->u.misc.clef.secondary_flatted)); + } } break; @@ -3921,10 +4030,9 @@ static void write_syllable(FILE *f, gregorio_syllable *syllable, 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 */ + /* We don't print custos before a bar at the end of a line. + * We also print an unbreakable larger space before the + * custos */ handle_last_of_voice(f, syllable, element, *last_of_voice); next_note_pitch = gregorio_determine_next_pitch(syllable, element, NULL, &next_note_alteration); @@ -3933,11 +4041,18 @@ static void write_syllable(FILE *f, gregorio_syllable *syllable, } fprintf(f, "\\GreCustos{%d}{%s}%s%%\n", pitch_value(element->u.misc.pitched.pitch), alteration, - next_custos(next_note_pitch, next_note_alteration)); + next_custos(next_note_pitch, next_note_alteration, + status)); ++note_unit_count; } break; + case GRE_SUPPRESS_CUSTOS: + handle_last_of_voice(f, syllable, element, *last_of_voice); + fprintf(f, "\\GreSuppressEolCustos %%\n"); + status->suppressed_custos = true; + break; + case GRE_BAR: handle_last_of_voice(f, syllable, element, *last_of_voice); write_bar(f, score, syllable, element, first_of_disc); @@ -4018,6 +4133,7 @@ static void initialize_score(gregoriotex_status *const status, status->bottom_line = false; status->top_height = status->bottom_height = UNDETERMINED_HEIGHT; status->abovelinestext = status->translation = false; + status->suppressed_custos = false; /* first pass to compute positioning */ for (syllable = score->first_syllable; syllable; @@ -4172,6 +4288,90 @@ static int first_note_near_clef(const gregorio_score *const score) { return 1; } +static int clef_size(const gregorio_clef_info *const clef) +{ + /* this is a heuristic clef size approximation: + * C-clef = 1 + * F-clef = 2 + * flatted = +2 + * unstacked double-clef = +1 (plus the clef size) + */ + /* purposely making line signed */ + int line_diff = clef->line - clef->secondary_line; + int size; + if (clef->clef == CLEF_F) { + size = 2; + } else { + size = 1; + } + if (clef->flatted) { + size += 2; + } + if (clef->secondary_line) { + if (line_diff < -1 || line_diff > 1) { /* stacked */ + int secondary_size; + if (clef->secondary_clef == CLEF_F) { + secondary_size = 2; + } else { + secondary_size = 1; + } + if (clef->secondary_flatted) { + secondary_size += 2; + } + if (secondary_size > size) { + size = secondary_size; + } + } else { /* unstacked */ + size += 1; + if (clef->secondary_clef == CLEF_F) { + size += 2; + } else { + size += 1; + } + if (clef->secondary_flatted) { + size += 2; + } + } + } + return size; +} + +static void write_largest_clef(FILE *const f, gregorio_score *const score) +{ + const gregorio_syllable *syllable; + const gregorio_element *element; + gregorio_clef_info clef = gregorio_default_clef; + int size; + + if (score->first_voice_info) { + clef = score->first_voice_info->initial_clef; + } + size = clef_size(&clef); + + for (syllable = score->first_syllable; syllable; + syllable = syllable->next_syllable) { + if (syllable->elements) { + for (element = *syllable->elements; element; + element = element->next) { + if (element->type == GRE_CLEF) { + const int this_size = clef_size(&element->u.misc.clef); + if (this_size > size) { + clef = element->u.misc.clef; + size = this_size; + } + } + } + } + } + + fprintf(f, "\\GreSetLargestClef{%c}{%d}{%d}{%c}{%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)); +} + void gregoriotex_write_score(FILE *const f, gregorio_score *const score, const char *const point_and_click_filename) { @@ -4210,12 +4410,16 @@ void gregoriotex_write_score(FILE *const f, gregorio_score *const score, write_headers(f, score); - fprintf(f, "\\GreBeginScore{%s}{%d}{%d}{%d}{%d}{%s}{%u}%%\n", + if (score->first_voice_info) { + clef = score->first_voice_info->initial_clef; + } + fprintf(f, "\\GreBeginScore{%s}{%d}{%d}{%d}{%d}{%s}{%u}" + "{\\GreInitialClefPosition{%d}{%d}}%%\n", digest_to_hex(score->digest), status.top_height, status.bottom_height, bool_to_int(status.translation), bool_to_int(status.abovelinestext), point_and_click_filename? point_and_click_filename : "", - score->staff_lines); + score->staff_lines, clef.line, clef.secondary_line); if (score->nabc_lines) { fprintf(f, "\\GreScoreNABCLines{%d}", (int)score->nabc_lines); } @@ -4247,21 +4451,12 @@ void gregoriotex_write_score(FILE *const f, gregorio_score *const score, fprintf(f, "}%%\n"); } - /* DEPRECATED for removal in 5.0 */ - /* LCOV_EXCL_START */ - 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 */ - + write_largest_clef(f, score); fprintf(f, "\\GreScoreOpening{%%\n"); /* GreScoreOpening#1 */ if (score->first_voice_info) { gregoriotex_write_voice_info(f, score->first_voice_info); } fprintf(f, "}{%%\n"); /* GreScoreOpening#2 */ - if (score->first_voice_info) { - clef = score->first_voice_info->initial_clef; - } 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), 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 3a2ca07bde5..af0533dcd73 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-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -35,14 +35,14 @@ typedef enum gtex_type { T_ONE_NOTE = 1, /* two note neumes */ T_PES, - T_PESQUADRATUM, - T_PESQUILISMA, - T_PESQUASSUS, - T_PESQUILISMAQUADRATUM, + T_PES_QUADRATUM, + T_QUILISMA_PES, + T_PES_QUASSUS, + T_QUILISMA_PES_QUADRATUM, T_FLEXUS, T_FLEXUS_ORISCUS, T_FLEXUS_ORISCUS_SCAPUS, - T_VIRGA_STRATA, + T_PES_ORISCUS, /* three note neumes */ T_PORRECTUS, T_TORCULUS, diff --git a/Build/source/texk/gregorio/gregorio-src/src/messages.c b/Build/source/texk/gregorio/gregorio-src/src/messages.c index 5033a9e7152..2885a45246d 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-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2009-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -67,8 +67,11 @@ static const char *verbosity_to_str(const gregorio_verbosity verbosity) str = _("warning:"); break; case VERBOSITY_DEPRECATION: + /* if there is no deprecation, these lines will not be hit */ + /* LCOV_EXCL_START */ str = _("deprecation:"); break; + /* LCOV_EXCL_STOP */ case VERBOSITY_ERROR: str = _("error:"); break; @@ -139,9 +142,12 @@ void gregorio_messagef(const char *function_name, switch (verbosity) { case VERBOSITY_DEPRECATION: + /* if there is no deprecation, these lines will not be hit */ + /* LCOV_EXCL_START */ if (deprecation_is_warning) { break; } + /* LCOV_EXCL_STOP */ /* else fall through */ case VERBOSITY_ERROR: case VERBOSITY_ASSERTION: diff --git a/Build/source/texk/gregorio/gregorio-src/src/messages.h b/Build/source/texk/gregorio/gregorio-src/src/messages.h index 0939b6beff3..4e92b5a2a00 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-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2009-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * diff --git a/Build/source/texk/gregorio/gregorio-src/src/plugins.h b/Build/source/texk/gregorio/gregorio-src/src/plugins.h index bdfb4fa0566..f88ab14c1f3 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-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2008-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -23,12 +23,14 @@ #ifndef PLUGINS_H #define PLUGINS_H +#include "bool.h" + void dump_write_score(FILE *f, gregorio_score *score); void dump_write_characters(FILE *const f, const gregorio_character *current_character); -gregorio_score *gabc_read_score(FILE *f_in); +gregorio_score *gabc_read_score(FILE *f_in, bool point_and_click); void gabc_write_score(FILE *f, gregorio_score *score); diff --git a/Build/source/texk/gregorio/gregorio-src/src/sha1.c b/Build/source/texk/gregorio/gregorio-src/src/sha1.c index 9ebd6d28c8a..e099bfd0074 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/sha1.c +++ b/Build/source/texk/gregorio/gregorio-src/src/sha1.c @@ -2,7 +2,7 @@ * sha1.c - Functions to compute SHA1 message digest of files or * memory blocks according to the NIST specification FIPS-180-1. * - * Copyright (C) 2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2015-2017 The Gregorio Project (see CONTRIBUTORS.md) * Copyright (C) 2000-2001, 2003-2006, 2008-2014 Free Software Foundation, Inc. * * This file is part of Gregorio. diff --git a/Build/source/texk/gregorio/gregorio-src/src/sha1.h b/Build/source/texk/gregorio/gregorio-src/src/sha1.h index aa8ec20ed85..9a2d2c7e708 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/sha1.h +++ b/Build/source/texk/gregorio/gregorio-src/src/sha1.h @@ -2,7 +2,7 @@ * Declarations of functions and data types used for SHA1 sum * library functions. * - * Copyright (C) 2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2015-2017 The Gregorio Project (see CONTRIBUTORS.md) * Copyright (C) 2000-2001, 2003, 2005-2006, 2008-2014 Free Software * Foundation, Inc. * diff --git a/Build/source/texk/gregorio/gregorio-src/src/struct.c b/Build/source/texk/gregorio/gregorio-src/src/struct.c index f7ec4f2db0e..6259e9ad0e6 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-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -58,15 +58,20 @@ unsigned short tex_position_id = 0; gregorio_clef_info gregorio_default_clef = { /*.line =*/ 3, /*.secondary_line =*/ 0, + /*.pitch_difference =*/ 0, /*.clef =*/ CLEF_C, /*.flatted =*/ false, /*.secondary_clef =*/ CLEF_C, /* not used since secondary_line is 0 */ /*.secondary_flatted =*/ false, }; -static size_t hepisema_adjustments_capacity; -static unsigned short hepisema_adjustments_last; -static gregorio_hepisema_adjustment *hepisema_adjustments; +static size_t hepisema_adjustments_capacity = 0; +static unsigned short hepisema_adjustments_last = 0; +static gregorio_hepisema_adjustment *hepisema_adjustments = NULL; + +static size_t texverbs_capacity = 0; +static unsigned short texverbs_last = 0; +static char **texverbs = NULL; void gregorio_struct_init(void) { @@ -75,12 +80,18 @@ void gregorio_struct_init(void) &hepisema_adjustments_capacity, gregorio_hepisema_adjustment); hepisema_adjustments[0].vbasepos = HVB_AUTO; hepisema_adjustments[0].nudge = NULL; + + texverbs_capacity = 32; + texverbs = gregorio_grow_buffer(NULL, &texverbs_capacity, char *); + texverbs[0] = NULL; } void gregorio_struct_destroy(void) { size_t i; gregorio_hepisema_adjustment *adj; + char **texverb; + for (i = 0, adj = hepisema_adjustments; i <= hepisema_adjustments_last; ++i, ++adj) { if (adj->nudge) { @@ -88,6 +99,45 @@ void gregorio_struct_destroy(void) } } free(hepisema_adjustments); + + for (i = 0, texverb = texverbs; i <= texverbs_last; ++i, ++texverb) { + if (*texverb) { + /* If the code falls here, this is a programming error. */ + /* LCOV_EXCL_START */ + gregorio_fail(gregorio_struct_destroy, "unfreed texverb"); + free(*texverb); + } + /* LCOV_EXCL_STOP */ + } + free(texverbs); +} + +static unsigned short register_texverb(char *const texverb) +{ + if (texverbs_last == USHRT_MAX) { + /* It's not reasonable to trigger this condition while testing */ + /* LCOV_EXCL_START */ + gregorio_message(_("too many texverbs"), "register_texverb", + VERBOSITY_ERROR, 0); + return 0; + /* LCOV_EXCL_STOP */ + } + ++texverbs_last; + if (texverbs_last >= texverbs_capacity) { + texverbs = gregorio_grow_buffer(texverbs, &texverbs_capacity, char *); + } + texverbs[texverbs_last] = texverb; + return texverbs_last; +} + +static void free_one_texverb(unsigned short index) +{ + if (index) { + gregorio_assert(index <= texverbs_last, gregorio_texverb, + "array index out of bounds", return); + free(texverbs[index]); + texverbs[index] = NULL; + } } static gregorio_note *create_and_link_note(gregorio_note **current_note, @@ -160,8 +210,12 @@ void gregorio_add_note(gregorio_note **current_note, signed char pitch, prototype->he_adjustment_index[SO_OVER]; element->he_adjustment_index[SO_UNDER] = prototype->he_adjustment_index[SO_UNDER]; + element->high_ledger_line = prototype->high_ledger_line; + element->high_ledger_specificity = prototype->high_ledger_specificity; + element->low_ledger_line = prototype->low_ledger_line; + element->low_ledger_specificity = prototype->low_ledger_specificity; } - element->texverb = NULL; + element->texverb = 0; element->choral_sign = NULL; } @@ -185,7 +239,7 @@ void gregorio_add_end_of_line_as_note(gregorio_note **current_note, element->u.other.eol_forces_custos_on = eol_forces_custos_on; } -void gregorio_add_custo_as_note(gregorio_note **current_note, +void gregorio_add_custos_as_note(gregorio_note **current_note, const gregorio_scanner_location *const loc) { gregorio_note *element = create_and_link_note(current_note, loc); @@ -198,6 +252,13 @@ void gregorio_add_manual_custos_as_note(gregorio_note **current_note, add_pitched_item_as_note(current_note, GRE_MANUAL_CUSTOS, pitch, loc); } +void gregorio_add_suppress_custos_as_note(gregorio_note **current_note, + const gregorio_scanner_location *const loc) +{ + gregorio_note *element = create_and_link_note(current_note, loc); + element->type = GRE_SUPPRESS_CUSTOS; +} + void gregorio_add_clef_as_note(gregorio_note **current_note, gregorio_clef clef, signed char clef_line, bool flatted, const gregorio_scanner_location *const loc) @@ -250,16 +311,18 @@ void gregorio_add_space_as_note(gregorio_note **current_note, element->u.other.ad_hoc_space_factor = factor; } -void gregorio_add_texverb_as_note(gregorio_note **current_note, char *str, - gregorio_type type, const gregorio_scanner_location *const loc) +unsigned short gregorio_add_texverb_as_note(gregorio_note **current_note, + char *str, gregorio_type type, + const gregorio_scanner_location *const loc) { gregorio_note *element; - gregorio_not_null(str, gregorio_add_texverb_as_note, return); + /* gregorio_not_null(str, gregorio_add_texverb_as_note, return NULL); */ element = create_and_link_note(current_note, loc); assert(type == GRE_TEXVERB_GLYPH || type == GRE_TEXVERB_ELEMENT || type == GRE_ALT); element->type = type; - element->texverb = str; + element->texverb = register_texverb(str); + return element->texverb; } void gregorio_add_nlba_as_note(gregorio_note **current_note, gregorio_nlba type, @@ -284,22 +347,31 @@ void gregorio_end_autofuse(gregorio_note **current_note, element->type = GRE_AUTOFUSE_END; } +static __inline void change_note_texverb(gregorio_note *note, char *str) +{ + if (note->texverb) { + gregorio_change_texverb(note->texverb, str); + } else { + note->texverb = register_texverb(str); + } +} + void gregorio_add_texverb_to_note(gregorio_note *current_note, char *str) { size_t len; char *res; gregorio_not_null(str, gregorio_add_texverb_as_note, return); if (current_note) { - if (current_note->texverb) { - len = strlen(current_note->texverb) + strlen(str) + 1; + const char *texverb = gregorio_texverb(current_note->texverb); + if (texverb) { + len = strlen(texverb) + strlen(str) + 1; res = gregorio_malloc(len); - strcpy(res, current_note->texverb); + strcpy(res, texverb); strcat(res, str); - free(current_note->texverb); free(str); - current_note->texverb = res; + change_note_texverb(current_note, res); } else { - current_note->texverb = str; + change_note_texverb(current_note, str); } } } @@ -324,20 +396,6 @@ void gregorio_add_special_sign(gregorio_note *note, gregorio_sign sign) note->special_sign = sign; } -static void fix_punctum_cavum_inclinatum_liquescentia(gregorio_note *const note) -{ - note->u.note.liquescentia &= TAIL_LIQUESCENTIA_MASK; - switch (note->u.note.liquescentia) { - case L_AUCTUS_ASCENDENS: - case L_AUCTUS_DESCENDENS: - note->u.note.liquescentia = L_AUCTUS_ASCENDENS; - break; - default: - note->u.note.liquescentia = L_NO_LIQUESCENTIA; - break; - } -} - static void fix_oriscus_liquescentia(gregorio_note *const note, const bool legacy_oriscus_orientation) { @@ -388,81 +446,17 @@ static void fix_oriscus_scapus_liquescentia(gregorio_note *const note, } } -static void fix_oriscus_cavum_liquescentia(gregorio_note *const note, - const bool legacy_oriscus_orientation) -{ - if (legacy_oriscus_orientation) { - switch (note->u.note.liquescentia) { - case L_AUCTUS_ASCENDENS: - note->u.note.liquescentia = - (note->u.note.liquescentia & ~TAIL_LIQUESCENTIA_MASK) - | L_AUCTUS_DESCENDENS; - /* fall through */ - case L_AUCTUS_DESCENDENS: - note->u.note.shape = S_ORISCUS_CAVUM_DESCENDENS; - break; - case L_DEMINUTUS: - note->u.note.shape = S_ORISCUS_CAVUM_DEMINUTUS; - break; - default: - note->u.note.shape = S_ORISCUS_CAVUM_ASCENDENS; - break; - } - } else { - note->u.note.liquescentia &= ((~TAIL_LIQUESCENTIA_MASK) | L_DEMINUTUS); - if (note->u.note.liquescentia & L_DEMINUTUS) { - note->u.note.shape = S_ORISCUS_CAVUM_DEMINUTUS; - } - } -} - void gregorio_change_shape(gregorio_note *const note, const gregorio_shape shape, const bool legacy_oriscus_orientation) { - gregorio_shape old_shape; if (!note || note->type != GRE_NOTE) { gregorio_message(_("trying to change the shape of something that is " "not a note"), "change_shape", VERBOSITY_ERROR, 0); return; } - old_shape = note->u.note.shape; note->u.note.shape = shape; switch (shape) { - case S_PUNCTUM_CAVUM: - /* S_PUNCTUM_CAVUM morphs other shapes */ - switch (old_shape) { - 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; - - case S_ORISCUS_UNDETERMINED: - case S_ORISCUS_DEMINUTUS: - case S_ORISCUS_SCAPUS_UNDETERMINED: - note->u.note.shape = S_ORISCUS_CAVUM_UNDETERMINED; - fix_oriscus_cavum_liquescentia(note, legacy_oriscus_orientation); - break; - - case S_ORISCUS_ASCENDENS: - case S_ORISCUS_SCAPUS_ASCENDENS: - note->u.note.shape = S_ORISCUS_CAVUM_ASCENDENS; - fix_oriscus_cavum_liquescentia(note, legacy_oriscus_orientation); - break; - - case S_ORISCUS_DESCENDENS: - case S_ORISCUS_SCAPUS_DESCENDENS: - note->u.note.shape = S_ORISCUS_CAVUM_DESCENDENS; - fix_oriscus_cavum_liquescentia(note, legacy_oriscus_orientation); - break; - - default: - break; - } - break; - case S_STROPHA: case S_DISTROPHA: case S_TRISTROPHA: @@ -470,61 +464,9 @@ void gregorio_change_shape(gregorio_note *const note, break; case S_ORISCUS_UNDETERMINED: - switch (old_shape) { - case S_PUNCTUM_CAVUM: - case S_PUNCTUM_CAVUM_INCLINATUM: - note->u.note.shape = S_ORISCUS_CAVUM_UNDETERMINED; - fix_oriscus_cavum_liquescentia(note, legacy_oriscus_orientation); - break; - - case S_ORISCUS_CAVUM_UNDETERMINED: - case S_ORISCUS_CAVUM_ASCENDENS: - case S_ORISCUS_CAVUM_DESCENDENS: - case S_ORISCUS_CAVUM_DEMINUTUS: - note->u.note.shape = old_shape; - fix_oriscus_cavum_liquescentia(note, legacy_oriscus_orientation); - break; - - default: - fix_oriscus_liquescentia(note, legacy_oriscus_orientation); - break; - } - break; - case S_ORISCUS_ASCENDENS: - switch (old_shape) { - case S_PUNCTUM_CAVUM: - case S_PUNCTUM_CAVUM_INCLINATUM: - case S_ORISCUS_CAVUM_UNDETERMINED: - case S_ORISCUS_CAVUM_ASCENDENS: - case S_ORISCUS_CAVUM_DESCENDENS: - case S_ORISCUS_CAVUM_DEMINUTUS: - note->u.note.shape = S_ORISCUS_CAVUM_ASCENDENS; - fix_oriscus_cavum_liquescentia(note, legacy_oriscus_orientation); - break; - - default: - fix_oriscus_liquescentia(note, legacy_oriscus_orientation); - break; - } - break; - case S_ORISCUS_DESCENDENS: - switch (old_shape) { - case S_PUNCTUM_CAVUM: - case S_PUNCTUM_CAVUM_INCLINATUM: - case S_ORISCUS_CAVUM_UNDETERMINED: - case S_ORISCUS_CAVUM_ASCENDENS: - case S_ORISCUS_CAVUM_DESCENDENS: - case S_ORISCUS_CAVUM_DEMINUTUS: - note->u.note.shape = S_ORISCUS_CAVUM_DESCENDENS; - fix_oriscus_cavum_liquescentia(note, legacy_oriscus_orientation); - break; - - default: - fix_oriscus_liquescentia(note, legacy_oriscus_orientation); - break; - } + fix_oriscus_liquescentia(note, legacy_oriscus_orientation); break; case S_ORISCUS_SCAPUS_UNDETERMINED: @@ -538,6 +480,16 @@ void gregorio_change_shape(gregorio_note *const note, } } +void gregorio_add_cavum(gregorio_note *const note) +{ + if (!note || note->type != GRE_NOTE) { + gregorio_message(_("trying to add cavum to something that is " + "not a note"), "change_shape", VERBOSITY_ERROR, 0); + return; + } + note->u.note.is_cavum = true; +} + void gregorio_add_tail_liquescentia(gregorio_note *note, gregorio_liquescentia liq, const bool legacy_oriscus_orientation) { @@ -552,10 +504,6 @@ void gregorio_add_tail_liquescentia(gregorio_note *note, | (liq & TAIL_LIQUESCENTIA_MASK); switch (note->u.note.shape) { - case S_PUNCTUM_CAVUM_INCLINATUM: - fix_punctum_cavum_inclinatum_liquescentia(note); - break; - case S_STROPHA: case S_DISTROPHA: case S_TRISTROPHA: @@ -579,13 +527,6 @@ void gregorio_add_tail_liquescentia(gregorio_note *note, fix_oriscus_scapus_liquescentia(note, legacy_oriscus_orientation); break; - case S_ORISCUS_CAVUM_UNDETERMINED: - case S_ORISCUS_CAVUM_ASCENDENS: - case S_ORISCUS_CAVUM_DESCENDENS: - case S_ORISCUS_CAVUM_DEMINUTUS: - fix_oriscus_cavum_liquescentia(note, legacy_oriscus_orientation); - break; - default: break; } @@ -765,7 +706,7 @@ static __inline void free_one_note(gregorio_note *note) if (note->type == GRE_SPACE) { free(note->u.other.ad_hoc_space_factor); } - free(note->texverb); + free_one_texverb(note->texverb); free(note->choral_sign); free(note); } @@ -810,17 +751,18 @@ static gregorio_glyph *create_and_link_glyph(gregorio_glyph **current_glyph) void gregorio_add_glyph(gregorio_glyph **current_glyph, gregorio_glyph_type type, gregorio_note *first_note, - gregorio_liquescentia liquescentia) + gregorio_liquescentia liquescentia, bool is_cavum) { gregorio_glyph *next_glyph = create_and_link_glyph(current_glyph); next_glyph->type = GRE_GLYPH; next_glyph->u.notes.glyph_type = type; next_glyph->u.notes.liquescentia = liquescentia; + next_glyph->u.notes.is_cavum = is_cavum; next_glyph->u.notes.first_note = first_note; } void gregorio_add_clef_as_glyph(gregorio_glyph **current_glyph, - gregorio_clef_info clef, char *texverb) + gregorio_clef_info clef, unsigned short texverb) { gregorio_glyph *next_glyph = create_and_link_glyph(current_glyph); next_glyph->type = GRE_CLEF; @@ -829,7 +771,8 @@ void gregorio_add_clef_as_glyph(gregorio_glyph **current_glyph, } void gregorio_add_pitched_element_as_glyph(gregorio_glyph **current_glyph, - gregorio_type type, signed char pitch, bool force_pitch, char *texverb) + gregorio_type type, signed char pitch, bool force_pitch, + unsigned short texverb) { gregorio_glyph *next_glyph = create_and_link_glyph(current_glyph); assert(type == GRE_CUSTOS); @@ -841,7 +784,7 @@ void gregorio_add_pitched_element_as_glyph(gregorio_glyph **current_glyph, void gregorio_add_unpitched_element_as_glyph(gregorio_glyph **current_glyph, gregorio_type type, gregorio_extra_info *info, gregorio_sign sign, - char *texverb) + unsigned short texverb) { gregorio_glyph *next_glyph = create_and_link_glyph(current_glyph); assert(type != GRE_NOTE && type != GRE_GLYPH && type != GRE_ELEMENT @@ -869,7 +812,7 @@ void gregorio_go_to_first_glyph(gregorio_glyph **glyph) static __inline void free_one_glyph(gregorio_glyph *glyph) { - free(glyph->texverb); + free_one_texverb(glyph->texverb); switch (glyph->type) { case GRE_GLYPH: gregorio_free_notes(&glyph->u.notes.first_note); @@ -933,7 +876,8 @@ void gregorio_add_element(gregorio_element **current_element, } void gregorio_add_misc_element(gregorio_element **current_element, - gregorio_type type, gregorio_misc_element_info *info, char *texverb) + gregorio_type type, gregorio_misc_element_info *info, + unsigned short texverb) { gregorio_element *special = create_and_link_element(current_element); special->type = type; @@ -950,7 +894,7 @@ void gregorio_add_misc_element(gregorio_element **current_element, static __inline void free_one_element(gregorio_element *element) { size_t i; - free(element->texverb); + free_one_texverb(element->texverb); for (i = 0; i < element->nabc_lines; i++) { free(element->nabc[i]); } @@ -969,22 +913,22 @@ static __inline void free_one_element(gregorio_element *element) free(element); } -static void gregorio_free_one_element(gregorio_element **element) +void gregorio_free_one_element(gregorio_element **element) { gregorio_element *next = NULL; + gregorio_element *to_free; gregorio_not_null_ptr(element, gregorio_free_one_element, return); - if ((*element)->next) { - (*element)->next->previous = NULL; - next = (*element)->next; + to_free = *element; + if (to_free->next) { + to_free->next->previous = NULL; + next = to_free->next; } - if ((*element)->previous) { - /* this doesn't currently happen, but it's safer to leave this in */ - /* LCOV_EXCL_START */ - (*element)->previous->next = NULL; + if (to_free->previous) { + to_free->previous->next = NULL; } /* The previous line is probably optimized out */ /* LCOV_EXCL_STOP */ - free_one_element(*element); + free_one_element(to_free); *element = next; } @@ -1105,7 +1049,7 @@ void gregorio_add_syllable(gregorio_syllable **current_syllable, gregorio_word_position position, char *abovelinestext, gregorio_tr_centering translation_type, gregorio_nlba no_linebreak_area, gregorio_euouae euouae, const gregorio_scanner_location *const loc, - const bool first_word) + const bool first_word, const bool clear) { gregorio_syllable *next; gregorio_element **tab; @@ -1122,6 +1066,7 @@ void gregorio_add_syllable(gregorio_syllable **current_syllable, next->translation_type = translation_type; next->abovelinestext = abovelinestext; next->first_word = first_word; + next->clear = clear; if (loc) { next->src_line = loc->first_line; next->src_column = loc->first_column; @@ -1177,7 +1122,6 @@ gregorio_score *gregorio_new_score(void) { gregorio_score *new_score = gregorio_calloc(1, sizeof(gregorio_score)); new_score->number_of_voices = 1; - new_score->initial_style = INITIAL_NOT_SPECIFIED; gregorio_set_score_staff_lines(new_score, 4); return new_score; } @@ -1347,7 +1291,13 @@ static __inline signed char next_pitch_from_glyph(const gregorio_glyph *glyph, } break; default: + /* not reachable unless there's a programming error */ + /* LCOV_EXCL_START */ + gregorio_fail2(next_pitch_from_glyph, + "unrecognized alteration shape: %s", + gregorio_shape_to_string(note->u.note.shape)); break; + /* LCOV_EXCL_STOP */ } } } else if (glyph->u.notes.first_note) { @@ -1536,11 +1486,15 @@ bool gregorio_is_only_special(gregorio_element *element) return 1; } +/* This should only be called when an unknown enum value is encountered; as + * such, this is a programming error */ +/* LCOV_EXCL_START */ const char *gregorio_unknown(int value) { static char buf[20]; gregorio_snprintf(buf, sizeof buf, "?%d", value); return buf; } +/* LCOV_EXCL_STOP */ /* * A small helper for the following function @@ -1615,6 +1569,26 @@ gregorio_hepisema_adjustment *gregorio_get_hepisema_adjustment( return &hepisema_adjustments[index]; } +const char *gregorio_texverb(unsigned short index) +{ + gregorio_assert(index <= texverbs_last, gregorio_texverb, + "array index out of bounds", return NULL); + return texverbs[index]; +} + +void gregorio_change_texverb(unsigned short index, char *texverb) +{ + /* not allowed to change index 0 (== NULL) */ + gregorio_assert(index != 0, gregorio_texverb, + "array index 0 may not be changed", return); + gregorio_assert(index <= texverbs_last, gregorio_texverb, + "array index out of bounds", return); + if (texverbs[index]) { + free(texverbs[index]); + } + texverbs[index] = texverb; +} + ENUM_TO_STRING(gregorio_type, GREGORIO_TYPE) ENUM_TO_STRING(gregorio_shape, GREGORIO_SHAPE) ENUM_TO_STRING(gregorio_bar, GREGORIO_BAR) diff --git a/Build/source/texk/gregorio/gregorio-src/src/struct.h b/Build/source/texk/gregorio/gregorio-src/src/struct.h index d634fe59b9c..97061b6716a 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-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2006-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -32,6 +32,7 @@ #ifndef STRUCT_H #define STRUCT_H +#include <assert.h> #include "enum_generator.h" #include "bool.h" #include "sha1.h" @@ -60,6 +61,7 @@ typedef struct gregorio_scanner_location { unsigned short last_line; unsigned short last_column; unsigned short last_offset; + bool generate_point_and_click:1; } gregorio_scanner_location; /* all the different types of things a gregorio_* can be */ @@ -74,6 +76,7 @@ typedef struct gregorio_scanner_location { E(GRE_BAR) \ E(GRE_CUSTOS) \ E(GRE_MANUAL_CUSTOS) \ + E(GRE_SUPPRESS_CUSTOS) \ /* I don't really know how I could use the a TEXVERB_NOTE in gregoriotex, * as we don't write note by note... */ \ /* GRE_TEXVERB_NOTE, */ \ @@ -116,14 +119,7 @@ ENUM(gregorio_clef, GREGORIO_CLEF); E(S_STROPHA_AUCTA) \ E(S_DISTROPHA) \ E(S_TRISTROPHA) \ - E(S_PUNCTUM_CAVUM) \ E(S_LINEA_PUNCTUM) \ - E(S_LINEA_PUNCTUM_CAVUM) \ - E(S_PUNCTUM_CAVUM_INCLINATUM) \ - E(S_PUNCTUM_CAVUM_INCLINATUM_AUCTUS) \ - E(S_ORISCUS_CAVUM_ASCENDENS) \ - E(S_ORISCUS_CAVUM_DESCENDENS) \ - E(S_ORISCUS_CAVUM_DEMINUTUS) \ E(S_FLAT) \ E(S_SHARP) \ E(S_NATURAL) \ @@ -133,7 +129,6 @@ ENUM(gregorio_clef, GREGORIO_CLEF); * quislisma quadratum */ \ E(S_ORISCUS_UNDETERMINED) \ 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 */ \ @@ -183,7 +178,11 @@ ENUM(gregorio_bar, GREGORIO_BAR); A(_SEMI_CIRCULUS_REVERSUS, 0x07) \ /* signs of a bar */ \ A(_BAR_H_EPISEMA, 0x08) \ - X(_V_EPISEMA_BAR_H_EPISEMA, 0x18) + A(_V_EPISEMA_BAR_H_EPISEMA, 0x18) \ + /* musica ficta */ \ + A(_MUSICA_FICTA_FLAT, 0x09) \ + A(_MUSICA_FICTA_NATURAL, 0x0a) \ + X(_MUSICA_FICTA_SHARP, 0x0b) ENUM(gregorio_sign, GREGORIO_SIGN); /* the different spaces */ @@ -283,7 +282,8 @@ ENUM(gregorio_vposition, GREGORIO_VPOSITION); E(G_VIRGA_REVERSA) \ E(G_SALICUS) \ E(G_SALICUS_FLEXUS) \ - E(G_VIRGA_STRATA) \ + E(G_PES_ASCENDENS_ORISCUS) \ + E(G_PES_DESCENDENS_ORISCUS) \ E(G_TORCULUS_LIQUESCENS) \ /* additional glyph types, necessary for determination */ \ E(G_PORRECTUS_NO_BAR) \ @@ -318,6 +318,10 @@ ENUM(gregorio_glyph_type, GREGORIO_GLYPH_TYPE); E(ST_FIRST_SYLLABLE) \ E(ST_FIRST_SYLLABLE_INITIAL) \ E(ST_SYLLABLE_INITIAL) \ + /* protrusion is implemented a PROTRUSION_FACTOR followed by a PROTRUSION; + * an automatic protrusion will have a verbatim TeX macro as factor */ \ + E(ST_PROTRUSION_FACTOR) \ + E(ST_PROTRUSION) \ L(ST_SENTINEL) /* a temporary style to signify the end of a syllable */ ENUM(grestyle_style, GRESTYLE_STYLE); @@ -380,6 +384,15 @@ ENUM(gregorio_sign_orientation, GREGORIO_SIGN_ORIENTATION); X(HVB_U_HIGH, 5) ENUM(gregorio_hepisema_vbasepos, GREGORIO_HEPISEMA_VBASEPOS); +/* these may be used as bit fields, with LEDGER_EXPLICIT and LEDGER_DRAWN being + * the bits */ +#define GREGORIO_LEDGER_SPECIFICITY(A,E,X,L) \ + A(LEDGER_SUPPOSED, 0) \ + A(LEDGER_EXPLICIT, 1) \ + A(LEDGER_DRAWN, 2) \ + X(LEDGER_EXPLICITLY_DRAWN, 3) +ENUM(gregorio_ledger_specificity, GREGORIO_LEDGER_SPECIFICITY); + typedef struct gregorio_extra_info { char *ad_hoc_space_factor; ENUM_BITFIELD(gregorio_bar) bar:4; @@ -391,8 +404,9 @@ typedef struct gregorio_extra_info { } gregorio_extra_info; typedef struct gregorio_clef_info { - unsigned char line; - unsigned char secondary_line; + signed char line; + signed char secondary_line; + signed char pitch_difference; ENUM_BITFIELD(gregorio_clef) clef:1; bool flatted:1; ENUM_BITFIELD(gregorio_clef) secondary_clef:1; @@ -429,9 +443,6 @@ typedef struct gregorio_note { /* choral sign is a letter that appears next to a note in some choral * scores we put it as char* because sometimes two letters appear */ char *choral_sign; - /* a string containing a possible TeX verbatim; necessary during - * structure generation. */ - char *texverb; union { /* note is used for GRE_NOTE */ struct { @@ -446,7 +457,8 @@ typedef struct gregorio_note { /* liquescentia is the liquescence on the note, it is not really * used in the final score, but it is, like type, used in the * determination of glyphs. */ - ENUM_BITFIELD(gregorio_liquescentia) liquescentia:8; + ENUM_BITFIELD(gregorio_liquescentia) liquescentia:7; + bool is_cavum:1; } note; /* clef is used for GRE_CLEF */ struct gregorio_clef_info clef; @@ -455,6 +467,9 @@ typedef struct gregorio_note { } u; /* these go to the end for structure alignment */ + /* index to a string containing a possible TeX verbatim; necessary during + * structure generation. */ + unsigned short texverb; unsigned short src_line, src_column, src_offset; unsigned short he_adjustment_index[2]; @@ -485,12 +500,11 @@ typedef struct gregorio_note { ENUM_BITFIELD(grehepisema_size) h_episema_below_size:2; bool h_episema_above_connect:1; bool h_episema_below_connect:1; - bool supposed_high_ledger_line:1; - bool supposed_low_ledger_line:1; - /* the "explicit" flags indicate that the "supposed" flags contain values - * that were explicitly specified in the gabc file */ - bool explicit_high_ledger_line:1; - bool explicit_low_ledger_line:1; + /* the "specificity" field indicates how to interpret the line flag */ + bool high_ledger_line:1; + ENUM_BITFIELD(gregorio_ledger_specificity) high_ledger_specificity:2; + bool low_ledger_line:1; + ENUM_BITFIELD(gregorio_ledger_specificity) low_ledger_specificity:2; bool is_lower_note:1; bool is_upper_note:1; ENUM_BITFIELD(gregorio_vposition) mora_vposition:2; @@ -505,9 +519,6 @@ typedef struct gregorio_glyph { /* two pointer to make a chained list */ struct gregorio_glyph *previous; struct gregorio_glyph *next; - /* a string containing a possible TeX verbatim; necessary during structure - * generation. */ - char *texverb; union { /* glyph is used for GRE_GLYPH */ struct { @@ -520,12 +531,15 @@ typedef struct gregorio_glyph { ENUM_BITFIELD(gregorio_glyph_type) glyph_type:8; /* liquescentia is really used, because that will determine the * shape we will have to use. */ - ENUM_BITFIELD(gregorio_liquescentia) liquescentia:8; + ENUM_BITFIELD(gregorio_liquescentia) liquescentia:7; + bool is_cavum:1; } notes; union gregorio_misc_element_info misc; } u; - /* characters go to the end for structure alignment */ + /* index to a string containing a possible TeX verbatim; necessary during + * structure generation. */ + unsigned short texverb; /* type can have the values explained in the comment just above. */ ENUM_BITFIELD(gregorio_type) type:8; @@ -540,9 +554,6 @@ typedef struct gregorio_element { /* pointers to the next and previous elements. */ struct gregorio_element *previous; struct gregorio_element *next; - /* a string containing a possible TeX verbatim; necessary during structure - * generation. */ - char *texverb; /* The nabc string */ char **nabc; /* we put it here to get the length of the array here too */ @@ -554,9 +565,11 @@ typedef struct gregorio_element { union gregorio_misc_element_info misc; } u; - /* type can have the values GRE_ELEMENT, GRE_BAR, GRE_C_KEY_CHANGE, - * GRE_F_KEY_CHANGE, GRE_END_OF_LINE, GRE_SPACE, GRE_TEXVERB_ELEMENT - * or GRE_NLBA */ + /* index to a string containing a possible TeX verbatim; necessary during + * structure generation. */ + unsigned short texverb; + /* type can have the values GRE_ELEMENT, GRE_BAR, GRE_CLEF, GRE_CUSTOS, + * GRE_END_OF_LINE, GRE_SPACE, GRE_TEXVERB_ELEMENT or GRE_NLBA */ ENUM_BITFIELD(gregorio_type) type:8; } gregorio_element; @@ -654,6 +667,7 @@ typedef struct gregorio_syllable { ENUM_BITFIELD(gregorio_word_position) position:3; bool first_word:1; bool forced_center:1; + bool clear:1; } gregorio_syllable; /* Stores a header in a singly-linked list */ @@ -693,7 +707,6 @@ 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 for removal in 5.0 */ size_t nabc_lines; char *user_notes; /* the determination method (maximal ambitus, etc.) */ @@ -746,9 +759,6 @@ extern gregorio_clef_info gregorio_default_clef; #define MONOPHONY 0 -/* the different initial styles - DEPRECATED for removal in 5.0 */ -#define INITIAL_NOT_SPECIFIED -1 - #define USELESS_VALUE 0 static __inline bool is_puncta_inclinata(char glyph) @@ -799,7 +809,7 @@ void gregorio_add_note(gregorio_note **current_note, signed char pitch, const gregorio_scanner_location *loc); void gregorio_add_glyph(gregorio_glyph **current_glyph, gregorio_glyph_type type, gregorio_note *first_note, - gregorio_liquescentia liquescentia); + gregorio_liquescentia liquescentia, bool is_cavum); void gregorio_add_element(gregorio_element **current_element, gregorio_glyph *first_glyph); void gregorio_add_syllable(gregorio_syllable **current_syllable, @@ -809,10 +819,11 @@ void gregorio_add_syllable(gregorio_syllable **current_syllable, gregorio_word_position position, char *abovelinestext, gregorio_tr_centering translation_type, gregorio_nlba no_linebreak_area, gregorio_euouae euouae, const gregorio_scanner_location *loc, - bool first_word); + bool first_word, bool clear); void gregorio_add_special_sign(gregorio_note *current_note, gregorio_sign sign); void gregorio_change_shape(gregorio_note *note, gregorio_shape shape, bool legacy_oriscus_orientation); +void gregorio_add_cavum(gregorio_note *note); void gregorio_position_h_episema_above(gregorio_note *note, signed char height, bool connect); void gregorio_position_h_episema_below(gregorio_note *note, signed char height, @@ -828,23 +839,27 @@ void gregorio_add_voice_info(gregorio_voice_info **current_voice_info); void gregorio_free_voice_infos(gregorio_voice_info *voice_info); void gregorio_free_one_note(gregorio_note **note); void gregorio_free_one_glyph(gregorio_glyph **glyph); +void gregorio_free_one_element(gregorio_element **element); void gregorio_free_score(gregorio_score *score); void gregorio_free_characters(gregorio_character *current_character); void gregorio_go_to_first_character(const gregorio_character **character); void gregorio_add_clef_as_glyph(gregorio_glyph **current_glyph, - gregorio_clef_info clef, char *texverb); + gregorio_clef_info clef, unsigned short texverb); void gregorio_add_pitched_element_as_glyph(gregorio_glyph **current_glyph, - gregorio_type type, signed char pitch, bool force_pitch, char *texverb); + gregorio_type type, signed char pitch, bool force_pitch, + unsigned short texverb); void gregorio_add_unpitched_element_as_glyph(gregorio_glyph **current_glyph, gregorio_type type, gregorio_extra_info *info, gregorio_sign sign, - char *texverb); + unsigned short texverb); void gregorio_add_end_of_line_as_note(gregorio_note **current_note, bool eol_ragged, bool eol_forces_custos, bool eol_forces_custos_on, const gregorio_scanner_location *loc); -void gregorio_add_custo_as_note(gregorio_note **current_note, +void gregorio_add_custos_as_note(gregorio_note **current_note, const gregorio_scanner_location *loc); void gregorio_add_manual_custos_as_note(gregorio_note **current_note, signed char pitch, const gregorio_scanner_location *loc); +void gregorio_add_suppress_custos_as_note(gregorio_note **current_note, + const gregorio_scanner_location *loc); void gregorio_add_clef_as_note(gregorio_note **current_note, gregorio_clef clef, signed char clef_line, bool flatted, const gregorio_scanner_location *loc); @@ -855,8 +870,8 @@ void gregorio_add_bar_as_note(gregorio_note **current_note, gregorio_bar bar, void gregorio_add_space_as_note(gregorio_note **current_note, gregorio_space space, char *factor, const gregorio_scanner_location *loc); -void gregorio_add_texverb_as_note(gregorio_note **current_note, char *str, - gregorio_type type, const gregorio_scanner_location *loc); +unsigned short gregorio_add_texverb_as_note(gregorio_note **current_note, + char *str, gregorio_type type, const gregorio_scanner_location *loc); void gregorio_add_nlba_as_note(gregorio_note **current_note, gregorio_nlba type, const gregorio_scanner_location *loc); void gregorio_start_autofuse(gregorio_note **current_note, @@ -867,7 +882,8 @@ void gregorio_add_texverb_to_note(gregorio_note *current_note, char *str); void gregorio_add_cs_to_note(gregorio_note *const*current_note, char *str, bool nabc); void gregorio_add_misc_element(gregorio_element **current_element, - gregorio_type type, gregorio_misc_element_info *info, char *texverb); + gregorio_type type, gregorio_misc_element_info *info, + unsigned short texverb); void gregorio_set_score_annotation(gregorio_score *score, char *annotation); void gregorio_set_score_staff_lines(gregorio_score *score, char staff_lines); void gregorio_add_score_header(gregorio_score *score, char *name, @@ -894,6 +910,8 @@ unsigned short gregorio_add_hepisema_adjustment( gregorio_hepisema_vbasepos vbasepos, char *nudge); gregorio_hepisema_adjustment *gregorio_get_hepisema_adjustment( unsigned short index); +const char *gregorio_texverb(unsigned short index); +void gregorio_change_texverb(unsigned short index, char *texverb); static __inline void gregorio_go_to_first_character_c(gregorio_character **character) { @@ -944,4 +962,17 @@ static __inline char gregorio_clef_to_char(gregorio_clef clef) return (clef == CLEF_C)? 'c' : 'f'; } +static __inline signed char gregorio_adjust_pitch_into_staff( + const gregorio_score *score, signed char pitch) +{ + while (pitch < LOWEST_PITCH) { + pitch += 7; + } + while (pitch > score->highest_pitch) { + pitch -= 7; + } + assert(pitch >= LOWEST_PITCH && pitch <= score->highest_pitch); + return pitch; +} + #endif diff --git a/Build/source/texk/gregorio/gregorio-src/src/struct_iter.h b/Build/source/texk/gregorio/gregorio-src/src/struct_iter.h index 33ed7ec924e..91113b418e6 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/struct_iter.h +++ b/Build/source/texk/gregorio/gregorio-src/src/struct_iter.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) 2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2016-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -32,6 +32,16 @@ #include "struct.h" +/* This enum defines bitfields selecting the node types that should be passed + * to end_item in gregorio_from_note_to_note */ +typedef enum { + GRESTRUCT_NONE = 0, + GRESTRUCT_NOTE = 1 << 0, + GRESTRUCT_GLYPH = 1 << 1, + GRESTRUCT_ELEMENT = 1 << 2, + GRESTRUCT_SYLLABLE = 1 << 3 +} gregorio_note_iter_item_type; + typedef struct { gregorio_syllable *syllable; gregorio_element *element; @@ -41,10 +51,14 @@ typedef struct { static __inline void gregorio_from_note_to_note( const gregorio_note_iter_position *const start, - const gregorio_note_iter_position *const end, + const gregorio_note_iter_position *const end, bool include_end, void (*const visit)(const gregorio_note_iter_position *, void *), - void *data) + void (*const end_item)(const gregorio_note_iter_position *, + gregorio_note_iter_item_type, void *), + const gregorio_note_iter_item_type desired_iter_items, void *data) { + /* Note: include_end is effectively ignored if end is NULL */ + gregorio_note_iter_position p = *start; while (p.syllable) { @@ -62,29 +76,98 @@ static __inline void gregorio_from_note_to_note( p.note = p.glyph->u.notes.first_note; } while (p.note) { - if (p.note->type == GRE_NOTE) { + bool at_end = (end && p.note == end->note); + + if (p.note->type == GRE_NOTE + && (!at_end || include_end)) { visit(&p, data); } - if (end && p.note == end->note) { + if (at_end) { + if (end_item) { + /* in 4.2.0, this code is never hit, as + * end_item will only be supplied from + * gregorio_for_each_note, which supplies + * NULL for end */ + /* LCOV_EXCL_START */ + /* to enable the real code, delete this + * assertion: */ + gregorio_fail(gregorio_from_note_to_note, + "unused code path"); + if (desired_iter_items & GRESTRUCT_NOTE) { + end_item(&p, GRESTRUCT_NOTE, data); + } + if (desired_iter_items & GRESTRUCT_GLYPH) { + end_item(&p, GRESTRUCT_GLYPH, data); + } + if (desired_iter_items + & GRESTRUCT_ELEMENT) { + end_item(&p, GRESTRUCT_ELEMENT, data); + } + if (desired_iter_items + & GRESTRUCT_SYLLABLE) { + end_item(&p, GRESTRUCT_SYLLABLE, data); + } + } + /* LCOV_EXCL_END */ return; } + if (end_item + && (desired_iter_items & GRESTRUCT_NOTE)) { + /* in 4.2.0, this code is never hit, as the only + * usage that gets through to here does not + * include GRESTRUCT_NOTE in desired_iter_items */ + /* LCOV_EXCL_START */ + /* to enable the real code, delete this + * assertion: */ + gregorio_fail(gregorio_from_note_to_note, + "unused code path"); + end_item(&p, GRESTRUCT_NOTE, data); + + } + /* LCOV_EXCL_STOP */ p.note = p.note->next; } /* note */ } + if (end_item && (desired_iter_items & GRESTRUCT_GLYPH)) { + /* in 4.2.0, this code is never hit, as the only usage + * that gets through to here does not include + * GRESTRUCT_GLYPH in desired_iter_items */ + /* LCOV_EXCL_START */ + /* to enable the real code, delete this assertion: */ + gregorio_fail(gregorio_from_note_to_note, + "unused code path"); + end_item(&p, GRESTRUCT_GLYPH, data); + } + /* LCOV_EXCL_STOP */ p.glyph = p.glyph->next; } /* glyph */ } + if (end_item && (desired_iter_items & GRESTRUCT_ELEMENT)) { + end_item(&p, GRESTRUCT_ELEMENT, data); + } p.element = p.element->next; } /* element */ + if (end_item && (desired_iter_items & GRESTRUCT_SYLLABLE)) { + /* in 4.2.0, this code is never hit, as the only usage that gets + * through to here does not include GRESTRUCT_SYLLABLE in + * desired_iter_items */ + /* LCOV_EXCL_START */ + /* to enable the real code, delete this assertion: */ + gregorio_fail(gregorio_from_note_to_note, "unused code path"); + end_item(&p, GRESTRUCT_SYLLABLE, data); + } + /* LCOV_EXCL_STOP */ 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) + void (*const end_item)(const gregorio_note_iter_position *, + gregorio_note_iter_item_type, void *), + const gregorio_note_iter_item_type desired_iter_items, void *data) { gregorio_note_iter_position p = { /* .syllable = */ NULL, @@ -95,7 +178,8 @@ static __inline void gregorio_for_each_note(const gregorio_score *score, p.syllable = score->first_syllable; - gregorio_from_note_to_note(&p, NULL, visit, data); + gregorio_from_note_to_note(&p, NULL, true, visit, end_item, + desired_iter_items, data); } #endif diff --git a/Build/source/texk/gregorio/gregorio-src/src/support.c b/Build/source/texk/gregorio/gregorio-src/src/support.c index 39451726189..2d44718e6cd 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/support.c +++ b/Build/source/texk/gregorio/gregorio-src/src/support.c @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This file contains miscellaneous support functions. * - * Copyright (C) 2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2015-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * diff --git a/Build/source/texk/gregorio/gregorio-src/src/support.h b/Build/source/texk/gregorio/gregorio-src/src/support.h index a4b6738b2ee..3a048d6de66 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/support.h +++ b/Build/source/texk/gregorio/gregorio-src/src/support.h @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This header prototypes the miscellaneous support functions. * - * Copyright (C) 2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2015-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * diff --git a/Build/source/texk/gregorio/gregorio-src/src/unicode.c b/Build/source/texk/gregorio/gregorio-src/src/unicode.c index 1cc381d2a4d..b953beb8728 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-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2008-2017 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 0d0d5aac1ba..1c76b703772 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-2016 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2008-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * diff --git a/Build/source/texk/gregorio/gregorio-src/src/utf8strings.h b/Build/source/texk/gregorio/gregorio-src/src/utf8strings.h index 8d7dd732933..7f02b14e616 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/utf8strings.h +++ b/Build/source/texk/gregorio/gregorio-src/src/utf8strings.h @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This header file contains UTF-8 encoded strings used by Gregorio * - * Copyright (C) 2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2015-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * diff --git a/Build/source/texk/gregorio/gregorio-src/src/utf8strings.h.in b/Build/source/texk/gregorio/gregorio-src/src/utf8strings.h.in index 548462844ba..11e7fd65657 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/utf8strings.h.in +++ b/Build/source/texk/gregorio/gregorio-src/src/utf8strings.h.in @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This header file contains UTF-8 encoded strings used by Gregorio * - * Copyright (C) 2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2015-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * diff --git a/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel-rules-l.c b/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel-rules-l.c index 1116fc9047b..bb8e4e99f27 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel-rules-l.c +++ b/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel-rules-l.c @@ -546,7 +546,7 @@ char *gregorio_vowel_rulefile_text; * Gregorio is a program that translates gabc files to GregorioTeX * This file implements the vowel rule lexer. * - * Copyright (C) 2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2015-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * diff --git a/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel-rules-y.c b/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel-rules-y.c index 11051101cc7..98ff4bf90b9 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel-rules-y.c +++ b/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel-rules-y.c @@ -76,7 +76,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This file implements the vowel rule parser. * - * Copyright (C) 2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2015-2017 The Gregorio Project (see CONTRIBUTORS.md) * * 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 diff --git a/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel-rules.h b/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel-rules.h index bf99696e538..01882295795 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel-rules.h +++ b/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel-rules.h @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This header shares definitions between the vowel parser and lexer. * - * Copyright (C) 2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2015-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * diff --git a/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel-rules.l b/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel-rules.l index 54e939a9f78..4e87a337e9e 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel-rules.l +++ b/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel-rules.l @@ -3,7 +3,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This file implements the vowel rule lexer. * - * Copyright (C) 2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2015-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * diff --git a/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel-rules.y b/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel-rules.y index 72d807720ca..b08b0e3e318 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel-rules.y +++ b/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel-rules.y @@ -3,7 +3,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This file implements the vowel rule parser. * - * Copyright (C) 2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2015-2017 The Gregorio Project (see CONTRIBUTORS.md) * * 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 diff --git a/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel.c b/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel.c index 8b108726610..e054220fa35 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel.c +++ b/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel.c @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This file implements vowel rule handling (aside from parsing). * - * Copyright (C) 2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2015-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -82,7 +82,7 @@ static void character_set_free(character_set *const set) } static bool character_set_contains(character_set *const set, - const grewchar vowel, character_set **const next) + const grewchar character, character_set **const next) { unsigned int index; assert(set); @@ -90,9 +90,9 @@ static bool character_set_contains(character_set *const set, if (next) { *next = NULL; } - for (index = ((unsigned long)vowel) & set->mask; set->table[index]; + for (index = ((unsigned long)character) & set->mask; set->table[index]; index = (index + 1) & set->mask) { - if (set->table[index] == vowel) { + if (set->table[index] == character) { if (next && set->next) { *next = set->next[index]; } @@ -103,18 +103,18 @@ static bool character_set_contains(character_set *const set, } static __inline void character_set_put(character_set *const set, - const grewchar vowel, character_set *next) + const grewchar character, character_set *next) { unsigned int index; assert(set); - index = ((unsigned long)vowel) & set->mask; + index = ((unsigned long)character) & set->mask; while (set->table[index]) { index = (index + 1) & set->mask; } - set->table[index] = vowel; + set->table[index] = character; if (set->next) { set->next[index] = next; } @@ -161,11 +161,11 @@ static __inline void character_set_grow(character_set *const set) { } static character_set *character_set_add(character_set *const set, - const grewchar vowel) + const grewchar character) { character_set *next = NULL; - if (!character_set_contains(set, vowel, &next)) { + if (!character_set_contains(set, character, &next)) { if (((++(set->size) * 10) / set->bins) >= 7) { character_set_grow(set); } @@ -174,7 +174,7 @@ static character_set *character_set_add(character_set *const set, next = character_set_new(true); } - character_set_put(set, vowel, next); + character_set_put(set, character, next); } return next; @@ -377,9 +377,11 @@ bool gregorio_find_vowel_group(const grewchar *const string, int *const start, prefix_buffer[bufpos] = *subject; if (character_set_contains(vowel_table, *subject, NULL)) { /* we found a vowel */ - if (!character_set_contains(vowel_table, *(subject + 1), NULL) + if ((!character_set_contains(vowel_table, *(subject + 1), NULL) + && *(subject + 1) != GREVOWEL_ELISION_MARK) || !is_in_prefix(bufpos)) { - /* no vowel after or not in prefix, so this is the start */ + /* no vowel/elision after, or not in prefix, so this is the + * start */ *start = i; state = VWL_WITHIN; } diff --git a/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel.h b/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel.h index bd261c218e8..8c4f67e4ec9 100644 --- a/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel.h +++ b/Build/source/texk/gregorio/gregorio-src/src/vowel/vowel.h @@ -2,7 +2,7 @@ * Gregorio is a program that translates gabc files to GregorioTeX * This header prototypes the vowel handling data structures and entry points. * - * Copyright (C) 2015 The Gregorio Project (see CONTRIBUTORS.md) + * Copyright (C) 2015-2017 The Gregorio Project (see CONTRIBUTORS.md) * * This file is part of Gregorio. * @@ -27,6 +27,9 @@ #include "bool.h" #include "unicode.h" +/* Use unicode 0xfffe, which is guaranteed not to be a character */ +#define GREVOWEL_ELISION_MARK ((grewchar)0xfffe) + typedef enum rulefile_parse_status { RFPS_NOT_FOUND = 0, RFPS_FOUND, |