diff options
Diffstat (limited to 'biblio/bibtex/utils/r2bib')
29 files changed, 34432 insertions, 0 deletions
diff --git a/biblio/bibtex/utils/r2bib/ChangeLog b/biblio/bibtex/utils/r2bib/ChangeLog new file mode 100644 index 0000000000..822b1eddb7 --- /dev/null +++ b/biblio/bibtex/utils/r2bib/ChangeLog @@ -0,0 +1,42 @@ +2015-12-06 + Added autotools based compilation (Richard J. Mathar) + +2010-02-22 + Mutet some warnings in r2bib.c, using 0 (not NULL) for characters, + and swapping functions positions (Richard J. Mathar) + +2010-01-21 + wileyEndNoteFilt adapts to the format where no final comma is in the author + or editor files, which apparently is a newer Wiley format. (Richard J. Mathar) + +2009-01-20 + Added wileyEndNoteFilt, ansel2uni, risDateAdj, Makefile (Richard J. Mathar). + EndNote2bib translates %R as doi. + +2007-06-21 + Default for output fields in EndNote2bib is curly parenthesis. Backward + compatible double quotes available with new option -Q. + +2007-06-12 + Added auxiliary filter C++ program EndNoteTag (Richard J. Mathar) + +2006-05-17 + Corrected toggling between stdin and command line arguments in EndNote2bib.c (Richard J. Mathar) + Added emission of a BibTeX comment to EndNote2bib.c (Richard J. Mathar) + Changed syntactical order of functions in EndNote2bib.c to reduce use of ANSI templates (Richard J. Mathar) + Propose use of -w 132 in fold in EndNote2bib.1 to avoid breaking URLs (Richard J. Mathar) + +2005-05-03 + Corrected interpretation of "micron" and "mu" in dosToTex.c (Richard J. Mathar) + +2005-03-13 + Added switches -1, -u and -h to dosToTex.c (Richard J. Mathar) + Added switches -q and -h to EndNote2bib.c (Richard J. Mathar) + Added EndNote2bib.1, dosToTex.1 and ChangeLog (Richard J. Mathar) + Renamed dos2tex to dosToTex to avoid name clash with existing programs (Richard J. Mathar) + +2005-02-23 + Added README, EndNote2bib.c and dos2tex.c (Richard J. Mathar) + +1990-10-03 + Added r2bib.1 and r2bib.c (Rusty Wright) diff --git a/biblio/bibtex/utils/r2bib/EndNote2bib.1 b/biblio/bibtex/utils/r2bib/EndNote2bib.1 new file mode 100644 index 0000000000..f8c15bd370 --- /dev/null +++ b/biblio/bibtex/utils/r2bib/EndNote2bib.1 @@ -0,0 +1,101 @@ +.TH "EndNote2bib" 1 "Mon Dec 7 2015" "Version 2015-12-07" "r2bib" \" -*- nroff -*- +.ad l +.nh +.SH NAME +EndNote2bib \- convert EndNote input files to bibtex \&.bib files +.PP +.SH "SYNOPSIS " +.PP +.PP +\fIEndNote2bib\fP [-q] ''file'' \&.\&.\&. +.PP +\fIEndNote2bib\fP [-h] +.PP +.SH "OPTIONS " +.PP +.PP +-q supress complains on unsupported EndNote tags on stderr +.PP +-h print a usage summary and exits +.PP +.SH "DESCRIPTION " +.PP +.PP +\fIEndNote2bib\fP reads the ''files'' and produces a \fIbibtex\fP reference list (a \&.bib file) on the standard output\&. If no files are given, \fIEndNote2bib\fP reads standard input\&. +.PP +Since EndNote offers a LaTeX export style, use of this program makes only much sense if one wishes to handle EndNote bibliographies but does not have access to an EndNote installation\&. +.PP +Since EndNote files are inherently unstructured (compared to \fIbibtex\fP) \fIEndNote2bib\fP only does a passable job\&. In particular EndNote doesn't require a keyword, while \fIbibtex\fP does\&. The heuristic that \fIEndNote2bib\fP uses for cooking up a keyword, in order of precedence, is: +.PP +.IP "\(bu" 2 +Use the Label (%F) if it's only one word\&. +.IP "\(bu" 2 +Use the Call Number (%L) if it's only one word\&. +.IP "\(bu" 2 +Use the Keyword entry (%K) if it's only one word\&. +.IP "\(bu" 2 +Otherwise just use the string 'keyN' where N is the count of this bibliographic entry in the EndNote file(s)\&. +.PP +.PP +There is no check that the BibTeX labels generated that way are all different\&. +.PP +To determine the type of reference that the EndNote entry is, \fIEndNote2bib\fP has to do some 'calculated guessing\&.' The heuristic used here (again, in order of precedence) is: +.PP +.IP "\(bu" 2 +If it has one of the following Referenc Types (%0), it is interpreted according to the table +.PP +Book @book +.PP +Manuscript @manual +.PP +In Proceedings @inproceedings +.PP +Conference Proceedings @proceedings +.PP +Report @techreport +.PP +Journal Article @article +.PP +Book Section @inbook +.PP +Edited Book @book +.PP +Newspaper Article @article +.PP +Thesis @phdthesis +.PP +Personal Communication @unpublished +.PP +Generic @misc +.IP "\(bu" 2 +If it has a journal entry (%J) then it's considered to be an @article\&. +.IP "\(bu" 2 +If it has a Secondary Title entry (%B) then it's considered to be an @inbook\&. +.IP "\(bu" 2 +If it has a report entry (%R) then it's considered to be a @techreport\&. +.IP "\(bu" 2 +If it has a issuer entry (%I) then it's considered to be a @book\&. +.IP "\(bu" 2 +Otherwise it's considered to be a @misc\&. +.PP +.PP +Quite often \fIEndNote2bib\fP will misguess and you will need to edit (by hand) the resulting \&.bib file\&. +.PP +Any fields that \fIEndNote2bib\fP doesn't know about it will ignore (and complain about it on stderr unless the -q option has been used)\&. +.PP +The main difference between \fIr2bib\fP and \fIEndNote2bib\fP is that \fIEndNote2bib\fP recognizes more tags that have been introduced in the EndNote document system\&. For a description see the source code in the file EndNote2bib\&.c\&. +.PP +.SH "EXAMPLES " +.PP +.PP +EndNote2bib -q endnfile1 endnfile2 > bibtfile\&.bib +.PP +.SH "SEE ALSO " +.PP +.PP +dos2unix(1) dosToTex(1) fold(1) bibtex(1) r2bib(1) +.PP +.SH "AUTHOR " +.PP +.PP +Richard J\&. Mathar, based on r2bib\&.c coded by Rusty Wright diff --git a/biblio/bibtex/utils/r2bib/EndNote2bib.c b/biblio/bibtex/utils/r2bib/EndNote2bib.c new file mode 100644 index 0000000000..67f8cf74ee --- /dev/null +++ b/biblio/bibtex/utils/r2bib/EndNote2bib.c @@ -0,0 +1,600 @@ +/********************************************************* + usage: + + EndNote2bib -h + EndNote2bib [-Q] [-q] < input.end > output.tex + EndNote2bib [-Q] [-q] input1.end [input2.end ...] > output.tex + + This program exports/converts one or more input files in EndNote ASCII format + to an output file in BibTeX format. As the usage line shows, it works as a + pipe in the UNIX sense, or takes input files as arguments. + + The differences w.r.t this original version r2bib.c are + - from the application point of view + . The EndNote tag %0 is the prime source of deciding which type of + reference this is (Book, article, thesis....) + . The EndNote tags %R, %U, %@, %Z, %7, %8, %9 are also converted. + . multiple %E fields are concatenated with "and", not just + multiple %A fields + . switches -h, -q and -Q have been added: -h prints some usage + summary, and -q can be used to mute the complains about + unknown EndNote tags. If -Q is added, the fields are put into + pairs of quotes, whereas the default is placing them into pairs + of curly parentheses. + - from a programmer's point of view + . K&R C-style source code has been modified to ANSI C + . some declarations of system functions have been replaced + by an include stdlib.h. exit(0,1) have been replaced + by exit(SUCCES,FAILURE). main() ends on return 0 , not + on exit(). + . some forward declarations of local functions have been + removed by moving these local functions ahead such that + the compiler has seen them before they are called. + . The use of NULL and '\0' has been corrected to remove + some gcc warnings + . The structure with the hash that guesses types from tags + has been made local to the function it is used in. + + To wrap the output lines under UNIX use: + EndNote2bib < input.end | fold -s > output.tex + + See also http://www.endnote.com + + For similar tools and tools that work in the reverse direction + (BibTeX to EndNote) see http://support.isiresearchsoft.com/pub/bibtex/ + and + + The original source that converts the similar refer + format to BibTeX has been taken from + http://www.ctan.org/tex-archive/biblio/bibtex/utils/r2bib/ . + + Richard J. Mathar, http://www.mpia.de/~mathar + Dec 07, 2015 +***********************************************************/ +#include "config.h" + +#ifdef HAVE_CTYPE_H +#include <ctype.h> +#endif + +#ifdef HAVE_STDIO_H +#include <stdio.h> +#endif + +#ifdef HAVE_STDLIB_H +#include <stdlib.h> +#endif + +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif + +#ifdef HAVE_TIME_H +#include <time.h> +#endif + +#ifdef HAVE_STRING_H +#include <string.h> +#endif + +void usage(char *argv0) +{ + printf("usage: %s [-Q] [-q]; # pipe stdin to stdout\n",argv0) ; + printf("\t %s [-Q] [-q] infile1.end [infile2.end ...]; # convert list of input files to stdout\n",argv0) ; + printf("\t %s -h ; # help: print these usage lines here\n",argv0) ; + printf("Option -q suppresses complains on unknown EndNote tags\n") ; + printf("Option -Q uses pairs of quotes to embrace fields\n") ; +} + +/* Return NULL if bp points to an (essentially) empty string. + "Essentially" means ignoring white space. + Otherwise return the pointer to the first non-space character. +*/ +char * sanz(char *bp) +{ + /* skip to the end of the line */ + char *cp = &bp[strlen(bp) - 1]; + + /* + * back up over any spaces chars + */ + while (isspace(*cp) && (cp >= bp)) + cp--; + + if (cp < bp) + return NULL ; /* empty line */ + + /* truncate after the last non-space character in the line */ + *++cp = '\0' ; + + /* search from the start of bp to the actual (non-space) end */ + while (isspace(*bp) && (bp < cp)) + bp++; + + if (cp == bp) + return NULL ; /* empty line */ + + return bp ; +} + + +/* EndNote standards + %A Author + %B secondary title (of a book or conference name) + %C Place published + %D Year + %E editor / secondary author + %F label + %G Language + %H Translated Author + %I Publisher + %J secondary title (journal name) + %K Keywords + %L call number + %M accession number + %N number (issue) + %P pages + %Q Translated Title + %R DOI + %S tertiary title + %T title + %U URL + %V volume + %W database provider + %X Abstract + %Y tertiary author + %Z notes + %0 Reference type + %1 to %4 custom notes (Wiley stores the DOI here) + %6 number of volumes + %7 edition + %8 date + %9 type of work + %? subsidiary author + %@ ISBN/ISSN + %! short title + %#, %$ %] custom 5 to custom 7 + %& section + %( original publication + %) reprint edition + %* reviewed item + %+ author address + %^ caption + %> File attchments + %< research notes + %[ access date + %= Custom 8 + %~ name of database +*/ +struct Rb { + char rb_kl; /* EndNote key letter */ + char * rb_kw; /* bibtex string */ + char rb_emit; /* don't print data if 0 */ + char * rb_data; /* EndNote data */ +} rb[] = { + { '0', "", 0, NULL }, + { '7', "edition", 1, NULL }, + { '8', "month", 1, NULL }, + { '9', "type", 1, NULL }, + { '@', "isbn", 1, NULL }, /* To do: could also be issn */ + { 'A', "author", 1, NULL }, + { 'B', "booktitle", 1, NULL }, + { 'C', "address", 1, NULL }, + { 'D', "year", 1, NULL }, + { 'E', "editor", 1, NULL }, + { 'F', "", 0, NULL }, + { 'I', "publisher", 1, NULL }, + { 'J', "journal", 1, NULL }, + { 'L', "key", 1, NULL }, /* use as bibtex key; comes earlier in the list to precede K */ + { 'K', "note", 1, NULL }, + { 'N', "number", 1, NULL }, + { 'P', "pages", 1, NULL }, + { 'Q', "institution", 1, NULL }, + { 'R', "doi", 1, NULL }, + { 'S', "series", 1, NULL }, + { 'T', "title", 1, NULL }, + { 'U', "url", 1, NULL }, + { 'V', "volume", 1, NULL }, + { 'X', "abstract", 1, NULL }, + { 'Z', "annote", 1, NULL }, + { 0, 0, 0, 0 } +}; + +void guesstype() +{ + /* + * entries are in order of precedence. + * Any entry with a 'J' field must be an article, but anthing with an 'I' + * field doesn't have to be a book (if an entry has both 'J' and 'I' it is + * considered to be an article). + */ + struct Bmap { + char bm_kl; + char *bm_entry; + } bmap[] = { + { 'J', "article" }, + { 'B', "inbook" }, + { 'R', "techreport" }, + { 'I', "book" }, + { 0, 0 } + }; + struct Bmap *bm = & bmap[0] ; + /* + * figure out what type of entry this is. + */ + for ( ; bm->bm_kl != 0; bm++) + { + struct Rb *trb; + for (trb = &rb[0]; trb->rb_kl ; trb++) + { + if ((trb->rb_kl == bm->bm_kl) && trb->rb_data) + { + printf("@%s{", bm->bm_entry); + goto out; + } + } + } +out: + if (bm->bm_kl == 0) + printf("@misc{"); +} + + +/* + examine %0 and print a @book, @incollection or any other type on stdout, + if the tag matches something known. + If the %0 is absent or this cannot be done for other reasons, return 1, else 0. +*/ +int tagzero() +{ + /* everything not listed will be re-evaluated in the caller function */ + static char *ZMatch[][2] = { + {"Book", "book"}, + {"Electronic Book", "book"}, + {"Manuscript", "manual"}, + {"Magazine Article", "article"}, + {"In Proceedings", "inproceedings"}, + {"Conference Paper", "inproceedings"}, + {"Conference Proceedings", "proceedings"}, + {"Report", "techreport"}, + {"Journal Article", "article"}, + {"Electronic Article", "article"}, + {"Book Section", "inbook"}, + {"Edited Book", "book"}, + {"Newspaper Article","article"}, + {"Thesis", "phdthesis"}, /* could be also masterthesis, %9 = Dissertation to be investigated */ + {"Personal Communication", "unpublished"}, + {"Unpublished Work", "unpublished"}, + {"Generic", "misc"} + } ; + struct Rb *trb; + + /* search through the tags of this entry */ + for (trb = &rb[0]; trb->rb_kl ; trb++) + { + /* found tag %0 and there is actually a line in it */ + if ( trb->rb_kl == '0' && trb->rb_data ) + { + int zm =0 ; + /* if the tag matches s.th. in ZMatch[], convert, else return */ + for( ; zm < sizeof(ZMatch)/sizeof(char *[2]) ; zm++) + if ( strncmp(trb->rb_data, ZMatch[zm][0], strlen(ZMatch[zm][0]) ) == 0 ) + { + printf("@%s{", ZMatch[zm][1]); + return 0 ; + } + } + } + return 1 ; /* unsuccessful */ +} + +void dumprb(const int brakquot) +{ + struct Rb *trb; + static int key; + char *bibkey; + char *cp; + int first=1; + + /* try to consider %0 ...; if this doesn't resolve, look at the availability of other key tags...*/ + if( tagzero() ) + guesstype() ; + + /* + * in order of precedence, the bibtex key is determined: + * 1. use EndNote label (%F). + * 2. use EndNote Call Number (%L). + * 3. use keyword (%K) if only one word. + * 4. otherwise just use the string "keyN" where N + * is the count of this bibliographic entry in + * the EndNote file. + */ + key++; + for (trb = &rb[0]; trb->rb_kl != 0; trb++) + { + if ((trb->rb_kl == 'F') && trb->rb_data) + { + for (cp = trb->rb_data; *cp ; cp++) + if (isspace(*cp)) + break; + + /* ran to end of string? */ + if (*cp == '\0') + { + printf("%s,\n", trb->rb_data); + + /* if used here then free & zero it */ + free(trb->rb_data); + trb->rb_data = NULL; + break; + } + } + + if ((trb->rb_kl == 'L') && trb->rb_data ) + { + for (cp = trb->rb_data; *cp ; cp++) + if (isspace(*cp)) + break; + + /* ran to end of string? */ + if (*cp == '\0') + { + printf("%s,\n", trb->rb_data); + break; + } + } + + if ((trb->rb_kl == 'K') && trb->rb_data) + { + for (cp = trb->rb_data; *cp ; cp++) + if (isspace(*cp)) + break; + + /* ran to end of string? */ + if (*cp == '\0') + { + printf("%s,\n", trb->rb_data); + + /* if used here then free & zero it */ + free(trb->rb_data); + trb->rb_data = NULL; + break; + } + } + } + + /* nothing reasonable to use, punt */ + if (trb->rb_kl == 0) + printf("key%d,\n", key); + + first = 1; + + for (trb = &rb[0]; trb->rb_kl != 0; trb++) + { + if (trb->rb_data == NULL) + continue; + + if (trb->rb_emit != 0) + { + /* + * clank, + * this is so that things will line up. + */ + if (strlen(trb->rb_kw) < 6) + cp = "\t\t"; + else + cp = "\t"; + + if (! first) + printf(",\n"); + + /* if brakquot is nonzero, we use pairs of quotes to delimit the data + * fields, else pairs of curly parentheses. + */ + if ( brakquot) + printf("\t%s =%s\"%s\"", trb->rb_kw, cp, trb->rb_data); + else + printf("\t%s =%s{%s}", trb->rb_kw, cp, trb->rb_data); + first = 0; + } + + free(trb->rb_data); + trb->rb_data = NULL; + } + + printf("\n}\n\n"); +} + +/* swallow multiple author case */ +char * andfix(char *string) +{ + char *tmp; + char *cp; + + tmp = string; + + for (cp = string; *cp ; cp++) + { + if (strncmp(cp, " and ", 5) == 0) + { + /* + * +2 for the curly braces around "{and}", + * +1 for the null at the end. + */ + if ((tmp = malloc(strlen(string) + 2 + 1)) == NULL) { + perror("malloc"); + exit(EXIT_FAILURE); + } + + strncpy(tmp, string, cp - string); + tmp[cp - string] = '\0'; /* strncpy doesn't */ + strcat(tmp, " {and} "); + strcat(tmp, cp + 5); + } + } + + return tmp ; +} + +/* handle one EndNote line + 'cp' points to the 3rd character in the line (just after the tag) +*/ +void stuffrb(struct Rb *lrb, char *cp) +{ + /* empty data field */ + if ((cp = sanz(cp)) == NULL) + return; + + if (lrb->rb_kl == 'A' || lrb->rb_kl == 'E') + cp = andfix(cp); + + if (lrb->rb_data == NULL) + { + if ((lrb->rb_data = malloc(strlen(cp) + 1)) == NULL) + { + perror("malloc"); + exit(EXIT_FAILURE); + } + strcpy(lrb->rb_data, cp); + } + else + { + char *conj; + + if (lrb->rb_kl == 'A' || lrb->rb_kl == 'E') + conj = " and "; + else + conj = " "; + + if ((lrb->rb_data = realloc(lrb->rb_data, strlen(lrb->rb_data) + strlen(cp) + strlen(conj) + 1)) == NULL) + { + perror("realloc"); + exit(EXIT_FAILURE); + } + + strcat(lrb->rb_data, conj); + strcat(lrb->rb_data, cp); + } +} + +/* Handle one file +*/ +int r2bib(char *file, FILE *fid, int quiet, const int brakquot) +{ + struct Rb *lrb = NULL; /* last rb stored into */ + int line=0 ; + char buf[BUFSIZ]; + int err= 0; + const time_t now = time(NULL) ; + + printf("@comment { created %s from %s by %s (Richard J. Mathar) run by %s}\n\n", + ctime(&now),file,__FILE__,getenv("USERNAME")) ; + + while ( fgets(buf, sizeof(buf), fid) ) + { + char *cp; + line++; + + /* an empty line? If yes, assume start of a new entry */ + if ((cp = sanz(buf)) == NULL) + { + if (lrb ) + { + dumprb(brakquot); + lrb = NULL; + } + continue; + } + + /* + * if the first letter is a % then it's the + * a new record, otherwise it's a continuation + * of the previous one. + */ + if (cp[0] == '%') + { + /* search trough the supported list of tags */ + for (lrb = &rb[0]; lrb->rb_kl != 0; lrb++) + if (lrb->rb_kl == cp[1]) + { + stuffrb(lrb, &cp[2]); + break; + } + if (lrb->rb_kl == 0 && !quiet) + { + fprintf(stderr, "r2b: %s: line %d: unknown key letter %c, ignoring\n", file, line, cp[1]); + err = 1; + } + } + else + { + if (lrb == NULL && !quiet) + { + fprintf(stderr, "r2b: %s: line %d: bad format, ignoring\n", file, line); + err = 1; + continue; + } + + stuffrb(lrb, &cp[0]); + } + } + + if (lrb ) + dumprb(brakquot); + + return err ; +} + +/* loop over the input files in the argument list; + If this list is empty, scan the standard input +*/ +int main(int argc, char *argv[]) +{ + int err=0; + char oc ; + int quiet=0 ; + int brakquot=0 ; + while ( (oc=getopt(argc,argv,"qQh")) != -1 ) + { + switch(oc) + { + case 'q' : + quiet = 1 ; + break ; + case 'Q' : + brakquot = 1 ; + break ; + case 'h' : + usage(argv[0]) ; + return 0 ; + case '?' : + fprintf(stderr,"Invalid command line option %c\n",oc) ; + usage(argv[0]) ; + break ; + } + } + + if (optind < argc-1 ) + { + int i ; + for (i = optind; i < argc; i++) + { + FILE *fid = fopen(argv[i], "r") ; + if ( fid == NULL) + { + fprintf(stderr, "fopen: "); + perror(argv[i]); + continue; + } + err += r2bib(argv[i], fid, quiet, brakquot); + fclose(fid) ; + } + } + else + err += r2bib("stdin", stdin, quiet, brakquot); + + if (err) + return 1 ; + + return 0 ; +} diff --git a/biblio/bibtex/utils/r2bib/EndNoteTag.1 b/biblio/bibtex/utils/r2bib/EndNoteTag.1 new file mode 100644 index 0000000000..25698be628 --- /dev/null +++ b/biblio/bibtex/utils/r2bib/EndNoteTag.1 @@ -0,0 +1,87 @@ +.TH "EndNoteTag" 1 "Mon Dec 7 2015" "Version 2015-12-07" "r2bib" \" -*- nroff -*- +.ad l +.nh +.SH NAME +EndNoteTag \- change tags in EndNote input files +.PP +.SH "SYNOPSIS " +.PP +.PP +EndNoteTag [-R] aA [bB c dD \&.\&.\&.] +.PP +.SH "DESCRIPTION " +.PP +.PP +\fIEndNoteTag\fP reads the standard input and writes on standard output, which means it is a UNIX pipe\&. +.PP +\fIEndNoteTag\fP copies the standard input to the standard output and modifies EndNote tags (that is lines which start with a percent sign followed by a single letter or number-subsequently called a tag-and a blank) which are either substituted by other tags or removed\&. +.PP +The action on each tagged line is defined by command line arguments which are either 2-letter words (indicating substitution, symbolized by combinations aA, bB or dD in the synopsis) or 1-letter words (indicating removal, symbolized by c in the synopsis)\&. For the case of 2-letter words, the first letter is the original tag and the second letter the tag on output, whereas the 1-letter words only show the tag to be removed\&. +.PP +The order of substitution/removal is determined by the order of command line arguments (left to right)\&. The are executed individually for each EndNote entry in that order\&. +.PP +If the option -R is used, the standard input is interpreted as having multi-letter tags followed by one blanks and a hyphen\&. In this case all remaining command line options are words where the last letter is the EndNote tag on output that replaces the RIS tag indicated by the first letters, and where all RIS tags not mentioned in any command line option are removed\&. +.PP +.SH "COMPILATION " +.PP +.PP +On standard Unices the commands +.PP +autoreconf -i +.PP +\&./configure [--prefix=\&.\&.\&.\&.] +.PP +make install +.PP +compile and install the program\&. +.PP +.SH "EXAMPLES " +.PP +.PP +EndNoteTag 1R < infile\&.end > outfile\&.end +.PP +Replaces the %1 tags by %R tags +.PP +EndNoteTag 1R ZA = < infile\&.end > outfile\&.end +.PP +Replaces the %1 tags by %R tags, replaces %Z tags by %A tags, and removes %= tags\&. Note that the original %R and %A tags stay, and one may end up with ambiguous double tags for these\&. +.PP +EndNoteTag 1t 21 t2 < infile\&.end > outfile\&.end +.PP +Swaps %1 and %2 tags (the intermediate %t tags do not survive the actions) and replaces %t tags by %1 tags\&. +.PP +EndNoteTag R < infile\&.end > outfile\&.end +.PP +Remove %R tags +.PP +cat infile\&.end | EndNoteTag KR RA +.PP +Replace %K tags or %R tags effectively by %A tags \&. +.PP +cat infile\&.end | EndNoteTag KR R > outfile\&.end +.PP +Remove %K tags and %R tags\&. For the original %R tags, the first command line argument has no effect, but for the original %K tags, they are changed to %R tags by the first command line argument, and then removed on behalf of the second command line argument\&. +.PP +EndNoteTag R KR < infile\&.end +.PP +Original %R tags are removed\&. Original %K tags become %R tags\&. Note the difference to the previous example which used a different order of the command line arguments\&. +.PP +EndNoteTag -R T2 AUA < infile\&.ris +.PP +Original tags of the AU format are changed to %A EndNote tags\&. All other tags are removed\&. +.PP +EndNoteTag -R T2 'AU A' 'TITT' < infile\&.ris +.PP +Original tags of the AU format are changed to %A EndNote tags, and tags of the TIT format are changed to %T EndNote tags\&. All other tags are removed\&. The command line arguments are put into single quotes to prevent the shell from interpreting the blank in the AU tags as a delimiter between command line arguments\&. +.PP +.SH "NOTES " +.PP +.PP +A list of tags in an EndNote file is obtained for UNIX systems with +.PP +sed -n '/^%/p' < infile\&.end | cut -b1,2 | sort -u +.PP +.SH "AUTHOR " +.PP +.PP +Richard J\&. Mathar, http://www.mpia.de/~mathar diff --git a/biblio/bibtex/utils/r2bib/EndNoteTag.cxx b/biblio/bibtex/utils/r2bib/EndNoteTag.cxx new file mode 100644 index 0000000000..fd2995cc08 --- /dev/null +++ b/biblio/bibtex/utils/r2bib/EndNoteTag.cxx @@ -0,0 +1,148 @@ +/** +* The documentation is kept in the UNIX man page EndNoteTag.1 . +* @since 2007-06-13 +* @author Richard J. Mathar +*/ +#include <iostream> +#include <cstring> +#include <unistd.h> + +using namespace std ; + +/** +* @return 0 if successful, 1 if the syntax is not met. +* @since 2007-06-12 +* @author Richard J. Mathar +*/ +int main(int argc, char*argv[]) +{ + + /* command line option */ + int c ; + + /* 0 if EndNote standard input, 1 if RIS */ + int ristype =0 ; + + /* the length of the tag for RIS type inputs */ + int rislen = -1 ; + + while ( (c=getopt(argc,argv,"R")) != -1) + { + switch(c) + { + case 'R': + ristype=1 ; + break ; + case '?': + cerr << argv[0] << ": invalid command line option " << optarg << endl ; + return 1 ; + } + } + + /* States 0 = noop, 1=replace, 2 =remove. Supposed we do not see any more + * command line arguments, the default is noop for EndNote and remove for RIS. + */ + int state = ristype ? 2 : 0 ; + + if ( optind >= argc ) + { + cerr << argv[0] << " needs at least one command line argument for useful operation\n" ; + return 1 ; + } + + /* for EndNote inputs, demand 1 or 2-letter command line arguments + */ + if ( ! ristype) + for(int c = optind ; c < argc; c++) + { + if ( strlen(argv[c]) > 2+ristype ) + { + cerr << argv[0] << " invalid length of argument " << argv[c] << endl ; + return 1 ; + } + } + + /* loop over all lines of the standard input. + */ + while ( !cin.eof() ) + { + string buf ; + getline(cin,buf) ; + + /* Check if this starts a new tag. This is done naively: tags are all lines at least two characters long. + * EndNote tags must start with a percent sign as the first character. RIS tags are any two characters + * followed by one or two blanks (one blank is actually a non-standard faulty format), a dash and at + * least one more blank. + */ + if ( buf.size() >= 2 ) + { + /* try to autodetect the length of the RIS Tags */ + if (ristype && rislen < 0 ) + { + /* search for the exact position of the RIS tag, independent on + * how many blanks are between the tag and the dash. + */ + const int firstd = buf.find(" - ") ; + if ( firstd != string::npos ) + rislen = firstd ; + } + + if ( buf[0] == '%' && !ristype || ristype && rislen >=0 && buf.compare(rislen,3," - ",3) == 0 ) + { + /* reset state to default. + */ + state= ristype ? 2 : 0 ; + for(int c=optind ; c < argc ; c++) + { + /* query whether this is a tag that is mentioned in the command line arguments. + */ + if ( ristype) + { + /* for RIS type inputs, command line arguments must be 3-letter words + */ + if ( strlen(argv[c]) != rislen+1 ) + { + cerr << argv[0] << " invalid length of argument " << argv[c] << endl ; + return 1 ; + } + + /* search for the exact position of the RIS tag, independent on + * how many blanks are between the tag and the dash. + */ + const int firstd = buf.find(" - ") ; + if ( buf.compare(0,2,argv[c],2) == 0 ) + { + buf.replace(0,1,"%") ; + buf.replace(1,1+firstd,&argv[c][2]) ; + state = 1 ; + } + } + else + { + if ( buf[1] == argv[c][0] ) + { + if ( strlen(argv[c]) == 1 ) + state = 2 ; + else + { + state = 1 ; + buf.replace(1,1,&argv[c][1]) ; + } + } + } + } + } + } + /* blank lines reset the state */ + else if ( buf.size() == 0 ) + { + state= ristype ? 2 : 0 ; + } + + /* print potentially modified line + */ + if ( state != 2 ) + cout << buf << endl ; + } + return 0 ; +} diff --git a/biblio/bibtex/utils/r2bib/INSTALL b/biblio/bibtex/utils/r2bib/INSTALL new file mode 100644 index 0000000000..2bf3d33a45 --- /dev/null +++ b/biblio/bibtex/utils/r2bib/INSTALL @@ -0,0 +1,30 @@ +Compilation of the executables is based on the GNU autotools: + +autoreconf -i +./configure # optionally with --prefix=....installation directory +make install + +Alternatively the gcc compiler and/or lex compilers can be used, +in the minimalistic cases without optimization similar to: + + cc -o EndNote2bib EndNote2bib.c + cc -o dosToTex dosToTex.c + cc -o r2bib r2bib.c + c++ -o EndNoteTag EndNoteTag.cxx + +In particular, some tuning of the behavior of ansel2uni(1) is only +supported by running lex(1) and cc(1) separately, using preprocessor +options for the later. + +The man(1) pages installed above may require an update of the database in the MANPATH: + echo $MANPATH + mandb man + +Otherwise they can be looked at in the style of nroff(1) through a pager, + nroff -man EndNote2bib.1 | more + nroff -man EndNoteTag.1 | more + nroff -man risDateAdj.1 | more + nroff -man wileyEndNoteFilt.1 | more + nroff -man ansel2uni.1 | more + nroff -man dosToTex.1 | more + nroff -man r2bib.1 | more diff --git a/biblio/bibtex/utils/r2bib/Makefile.am b/biblio/bibtex/utils/r2bib/Makefile.am new file mode 100644 index 0000000000..fbac79fed5 --- /dev/null +++ b/biblio/bibtex/utils/r2bib/Makefile.am @@ -0,0 +1,21 @@ +ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} + +AM_LFLAGS= -i + +bin_PROGRAMS = EndNote2bib EndNoteTag dosToTex wileyEndNoteFilt risDateAdj ansel2uni r2bib + +dist_man_MANS = EndNote2bib.1 EndNoteTag.1 ansel2uni.1 dosToTex.1 r2bib.1 wileyEndNoteFilt.1 + +dosToTex_SOURCES = dosToTex.c + +r2bib_SOURCES = r2bib.c + +EndNote2bib_SOURCES = EndNote2bib.c + +EndNoteTag_SOURCES = EndNoteTag.cxx + +wileyEndNoteFilt_SOURCES = wileyEndNoteFilt.ll + +risDateAdj_SOURCES = risDateAdj.ll + +ansel2uni_SOURCES = ansel2uni.ll diff --git a/biblio/bibtex/utils/r2bib/Makefile.in b/biblio/bibtex/utils/r2bib/Makefile.in new file mode 100644 index 0000000000..9d1f91c703 --- /dev/null +++ b/biblio/bibtex/utils/r2bib/Makefile.in @@ -0,0 +1,937 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +bin_PROGRAMS = EndNote2bib$(EXEEXT) EndNoteTag$(EXEEXT) \ + dosToTex$(EXEEXT) wileyEndNoteFilt$(EXEEXT) \ + risDateAdj$(EXEEXT) ansel2uni$(EXEEXT) r2bib$(EXEEXT) +subdir = . +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/configure $(am__configure_deps) \ + $(srcdir)/config.h.in ansel2uni.cc risDateAdj.cc \ + wileyEndNoteFilt.cc depcomp ylwrap $(dist_man_MANS) ChangeLog \ + INSTALL README install-sh missing +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" +PROGRAMS = $(bin_PROGRAMS) +am_EndNote2bib_OBJECTS = EndNote2bib.$(OBJEXT) +EndNote2bib_OBJECTS = $(am_EndNote2bib_OBJECTS) +EndNote2bib_LDADD = $(LDADD) +am_EndNoteTag_OBJECTS = EndNoteTag.$(OBJEXT) +EndNoteTag_OBJECTS = $(am_EndNoteTag_OBJECTS) +EndNoteTag_LDADD = $(LDADD) +am_ansel2uni_OBJECTS = ansel2uni.$(OBJEXT) +ansel2uni_OBJECTS = $(am_ansel2uni_OBJECTS) +ansel2uni_LDADD = $(LDADD) +am_dosToTex_OBJECTS = dosToTex.$(OBJEXT) +dosToTex_OBJECTS = $(am_dosToTex_OBJECTS) +dosToTex_LDADD = $(LDADD) +am_r2bib_OBJECTS = r2bib.$(OBJEXT) +r2bib_OBJECTS = $(am_r2bib_OBJECTS) +r2bib_LDADD = $(LDADD) +am_risDateAdj_OBJECTS = risDateAdj.$(OBJEXT) +risDateAdj_OBJECTS = $(am_risDateAdj_OBJECTS) +risDateAdj_LDADD = $(LDADD) +am_wileyEndNoteFilt_OBJECTS = wileyEndNoteFilt.$(OBJEXT) +wileyEndNoteFilt_OBJECTS = $(am_wileyEndNoteFilt_OBJECTS) +wileyEndNoteFilt_LDADD = $(LDADD) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ + -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +LEXCOMPILE = $(LEX) $(AM_LFLAGS) $(LFLAGS) +AM_V_LEX = $(am__v_LEX_@AM_V@) +am__v_LEX_ = $(am__v_LEX_@AM_DEFAULT_V@) +am__v_LEX_0 = @echo " LEX " $@; +am__v_LEX_1 = +YLWRAP = $(top_srcdir)/ylwrap +SOURCES = $(EndNote2bib_SOURCES) $(EndNoteTag_SOURCES) \ + $(ansel2uni_SOURCES) $(dosToTex_SOURCES) $(r2bib_SOURCES) \ + $(risDateAdj_SOURCES) $(wileyEndNoteFilt_SOURCES) +DIST_SOURCES = $(EndNote2bib_SOURCES) $(EndNoteTag_SOURCES) \ + $(ansel2uni_SOURCES) $(dosToTex_SOURCES) $(r2bib_SOURCES) \ + $(risDateAdj_SOURCES) $(wileyEndNoteFilt_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +man1dir = $(mandir)/man1 +NROFF = nroff +MANS = $(dist_man_MANS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ + $(LISP)config.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +CSCOPE = cscope +AM_RECURSIVE_TARGETS = cscope +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__post_remove_distdir = $(am__remove_distdir) +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +DIST_TARGETS = dist-gzip +distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} +AM_LFLAGS = -i +dist_man_MANS = EndNote2bib.1 EndNoteTag.1 ansel2uni.1 dosToTex.1 r2bib.1 wileyEndNoteFilt.1 +dosToTex_SOURCES = dosToTex.c +r2bib_SOURCES = r2bib.c +EndNote2bib_SOURCES = EndNote2bib.c +EndNoteTag_SOURCES = EndNoteTag.cxx +wileyEndNoteFilt_SOURCES = wileyEndNoteFilt.ll +risDateAdj_SOURCES = risDateAdj.ll +ansel2uni_SOURCES = ansel2uni.ll +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .c .cc .cxx .ll .o .obj +am--refresh: Makefile + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @if test ! -f $@; then rm -f stamp-h1; else :; fi + @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' \ + `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + +EndNote2bib$(EXEEXT): $(EndNote2bib_OBJECTS) $(EndNote2bib_DEPENDENCIES) $(EXTRA_EndNote2bib_DEPENDENCIES) + @rm -f EndNote2bib$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(EndNote2bib_OBJECTS) $(EndNote2bib_LDADD) $(LIBS) + +EndNoteTag$(EXEEXT): $(EndNoteTag_OBJECTS) $(EndNoteTag_DEPENDENCIES) $(EXTRA_EndNoteTag_DEPENDENCIES) + @rm -f EndNoteTag$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(EndNoteTag_OBJECTS) $(EndNoteTag_LDADD) $(LIBS) + +ansel2uni$(EXEEXT): $(ansel2uni_OBJECTS) $(ansel2uni_DEPENDENCIES) $(EXTRA_ansel2uni_DEPENDENCIES) + @rm -f ansel2uni$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(ansel2uni_OBJECTS) $(ansel2uni_LDADD) $(LIBS) + +dosToTex$(EXEEXT): $(dosToTex_OBJECTS) $(dosToTex_DEPENDENCIES) $(EXTRA_dosToTex_DEPENDENCIES) + @rm -f dosToTex$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dosToTex_OBJECTS) $(dosToTex_LDADD) $(LIBS) + +r2bib$(EXEEXT): $(r2bib_OBJECTS) $(r2bib_DEPENDENCIES) $(EXTRA_r2bib_DEPENDENCIES) + @rm -f r2bib$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(r2bib_OBJECTS) $(r2bib_LDADD) $(LIBS) + +risDateAdj$(EXEEXT): $(risDateAdj_OBJECTS) $(risDateAdj_DEPENDENCIES) $(EXTRA_risDateAdj_DEPENDENCIES) + @rm -f risDateAdj$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(risDateAdj_OBJECTS) $(risDateAdj_LDADD) $(LIBS) + +wileyEndNoteFilt$(EXEEXT): $(wileyEndNoteFilt_OBJECTS) $(wileyEndNoteFilt_DEPENDENCIES) $(EXTRA_wileyEndNoteFilt_DEPENDENCIES) + @rm -f wileyEndNoteFilt$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(wileyEndNoteFilt_OBJECTS) $(wileyEndNoteFilt_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EndNote2bib.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EndNoteTag.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ansel2uni.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dosToTex.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/r2bib.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/risDateAdj.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wileyEndNoteFilt.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cc.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< + +.cc.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cxx.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< + +.cxx.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.ll.cc: + $(AM_V_LEX)$(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE) +install-man1: $(dist_man_MANS) + @$(NORMAL_INSTALL) + @list1=''; \ + list2='$(dist_man_MANS)'; \ + test -n "$(man1dir)" \ + && test -n "`echo $$list1$$list2`" \ + || exit 0; \ + echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ + { for i in $$list1; do echo "$$i"; done; \ + if test -n "$$list2"; then \ + for i in $$list2; do echo "$$i"; done \ + | sed -n '/\.1[a-z]*$$/p'; \ + fi; \ + } | while read p; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; echo "$$p"; \ + done | \ + sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ + sed 'N;N;s,\n, ,g' | { \ + list=; while read file base inst; do \ + if test "$$base" = "$$inst"; then list="$$list $$file"; else \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ + fi; \ + done; \ + for i in $$list; do echo "$$i"; done | $(am__base_list) | \ + while read files; do \ + test -z "$$files" || { \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ + done; } + +uninstall-man1: + @$(NORMAL_UNINSTALL) + @list=''; test -n "$(man1dir)" || exit 0; \ + files=`{ for i in $$list; do echo "$$i"; done; \ + l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ + sed -n '/\.1[a-z]*$$/p'; \ + } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ + dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__post_remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__post_remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__post_remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__post_remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__post_remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__post_remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__post_remove_distdir) + +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__post_remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) $(MANS) config.h +installdirs: + for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -rm -f ansel2uni.cc + -rm -f risDateAdj.cc + -rm -f wileyEndNoteFilt.cc +clean: clean-am + +clean-am: clean-binPROGRAMS clean-generic mostlyclean-am + +distclean: distclean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-hdr distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-man + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-binPROGRAMS + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: install-man1 + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-binPROGRAMS uninstall-man + +uninstall-man: uninstall-man1 + +.MAKE: all install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am am--refresh check check-am clean \ + clean-binPROGRAMS clean-cscope clean-generic cscope \ + cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ + dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ + distcheck distclean distclean-compile distclean-generic \ + distclean-hdr distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-binPROGRAMS install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-man1 install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-binPROGRAMS uninstall-man \ + uninstall-man1 + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/biblio/bibtex/utils/r2bib/README b/biblio/bibtex/utils/r2bib/README new file mode 100644 index 0000000000..da3dfb5bd1 --- /dev/null +++ b/biblio/bibtex/utils/r2bib/README @@ -0,0 +1,70 @@ +SYNOPSES + + EndNote2bib [-h|-q] + risDateAdj + EndNoteTag + wileyEndNoteFilt + dosToTex [-1|-u|-h] + ansel2uni + +i) r2bib and EndNote2bib convert refer and EndNote bibliography lists +into the BibTeX format, respectively. + +ii) An auxiliary filter program dosToTex, also written in C, is included to ease the +transition from PC/Windows 8-bit character representation (which presumably was +the standard in the EndNote input files up to EndNote 8) to the backslashed +escape sequences that are (more or less) the standard in BibTeX. + +iii) Another independent filter program, EndNoteTag, written in C++, is made available +to change the tags in EndNote files or to convert RIS tags to EndNote tags. +The main use is to re-map tags of an EndNote file on the fly if these do not +match the tags within EndNote2bib. + +There are three auxiliary programs delivered in lex (flex) source format: + +iv) The program wileyEndNoteFilt recomposes author and editor tags of +the input stream (an EndNote file) such that mutiple, comma-separated +authors in single %E or %A lines are shuffled into multiple lines, each +containg only a single person. + +v) The filter program ansel2uni transforms an input stream encoded according +to the ANSEL specification to an UTF-8 character set. In a LaTeX environment, +this is presumably a preprocessor to "recode u8..tex" to end up with a TeX encoding. + +vi) The filter program risDateAdj adjusts dates of non-standard +formats in the Y1, PY and Y2 fields of RIS files. This is a preprocessor +which patches these files prior to use with ris2xml(1), for example, and +basically unrelated to EndNote bibilographies. + +SEE ALSO + +Further reading: +http://en.wikipedia.org/wiki/EndNote +http://www.endnote.com +http://www.ctan.org/tex-archive/biblio/bibtex/utils/r2bib/ +http://www.ctan.org/tex-archive/biblio/bibtex/utils/refer-tools/ +http://interbib.stanford.edu/ +http://sourceforge.net/p/bibutils/home/Bibutils/ +http://lucy.ukc.ac.uk/Makhzan/refer.html +http://www.w3.org/Tools/Word_proc_filters.html + +For the inverse functionality see +http://www.ctan.org/tex-archive/biblio/bibtex/contrib/misc/refer.bst +http://www.ee.columbia.edu/dvmm/imanager/convert.txt +http://liinwww.ira.uka.de/bibliography/Bib.Format.html + +HISTORY + +The program r2bib (the C source r2bib.c and troff manual r2bib.1) came from +Rusty Wright, Center for Music Experiment, University of California San Diego, +see ftp://ftp.cs.tu-berlin.de/pub/TeX/TeX-3.141/contributions/TeXcontrib/rusty/r2bib . +Both files are included as existing in CTAN with a time stamp of 3 Oct 1990. +(He started it!). This is left untouched except for #inclus'ion of two more C +header files (plus removal of explicit declarations of malloc, realloc) to +avoid gcc rejection of the source. +A variant is in http://stuff.mit.edu/afs/athena/contrib/potluck/src/refer2tex/ . + +AUTHOR + +Richard J. Mathar http://www.mpia.de/~mathar +Dec 06, 2015 diff --git a/biblio/bibtex/utils/r2bib/aclocal.m4 b/biblio/bibtex/utils/r2bib/aclocal.m4 new file mode 100644 index 0000000000..4ad4de2cff --- /dev/null +++ b/biblio/bibtex/utils/r2bib/aclocal.m4 @@ -0,0 +1,1057 @@ +# generated automatically by aclocal 1.13.4 -*- Autoconf -*- + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. + +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, +[m4_warning([this file was generated for autoconf 2.69. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) + +# Copyright (C) 2002-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.13' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.13.4], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.13.4])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is '.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each '.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.65])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> +# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl +]) + +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST([install_sh])]) + +# Copyright (C) 2003-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Copyright (C) 1998-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_LEX +# ----------- +# Autoconf leaves LEX=: if lex or flex can't be found. Change that to a +# "missing" invocation, for better error output. +AC_DEFUN([AM_PROG_LEX], +[AC_PREREQ([2.50])dnl +AC_REQUIRE([AM_MISSING_HAS_RUN])dnl +AC_REQUIRE([AC_PROG_LEX])dnl +if test "$LEX" = :; then + LEX=${am_missing_run}flex +fi]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + AC_MSG_WARN(['missing' script is too old or missing]) +fi +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# -------------------- +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) + +# _AM_SET_OPTIONS(OPTIONS) +# ------------------------ +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) + +# Copyright (C) 2009-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor 'install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in "make install-strip", and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +# +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' + +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar <conftest.tar]) + AM_RUN_LOG([cat conftest.dir/file]) + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + diff --git a/biblio/bibtex/utils/r2bib/ansel2uni.1 b/biblio/bibtex/utils/r2bib/ansel2uni.1 new file mode 100644 index 0000000000..5672aca409 --- /dev/null +++ b/biblio/bibtex/utils/r2bib/ansel2uni.1 @@ -0,0 +1,44 @@ +.TH "ansel2uni" 1 "Mon Dec 7 2015" "Version 2015-12-07" "r2bib" \" -*- nroff -*- +.ad l +.nh +.SH NAME +ansel2uni \- convert an ANSEL 8-bit stream to UTF-8 +.PP +.SH "SYNOPSIS " +.PP +.PP +ansel2uni +.PP +.SH "OPTIONS " +.PP +.PP +none +.PP +.SH "DESCRIPTION " +.PP +.PP +\fIansel2uni\fP reads the standard input and transforms byte sequences conforming to the 8-bit ANSEL (a\&.k\&.a\&. Z39-47-1993 or ISO-IR-231) standard to the UTF-8 Unicode encoding\&. The dedicated interpretation of the input stream can be modified to adhere to MARC or GEDCOM standards at compile time\&. +.PP +The UTF-8 output may then be converted with tools like uni2ascii(1) or recode(1) to other schemes and character sets\&. +.PP +.SH "EXAMPLES " +.PP +.PP +cat foo*\&.txt | ansel2uni > bar\&.utf8 +.PP +cat foo*\&.txt | ansel2uni | uni2ascii -q -a Q -a H > bar\&.html +.PP +.SH "SEE ALSO " +.PP +.PP +uni2ascii(1) recode(1) +.PP +.SH "CAUTION " +.PP +.PP +This is in an alpha state and has been tested only marginally\&. +.PP +.SH "AUTHOR " +.PP +.PP +Richard J\&. Mathar, http://www.mpia.de/~mathar diff --git a/biblio/bibtex/utils/r2bib/ansel2uni.cc b/biblio/bibtex/utils/r2bib/ansel2uni.cc new file mode 100644 index 0000000000..923c96af8c --- /dev/null +++ b/biblio/bibtex/utils/r2bib/ansel2uni.cc @@ -0,0 +1,13365 @@ + +#line 3 "ansel2uni.cc" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 37 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include <stdio.h> +#include <string.h> +#include <errno.h> +#include <stdlib.h> + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include <inttypes.h> +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! C99 */ + +#endif /* ! FLEXINT_H */ + +#ifdef __cplusplus + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +/* C99 requires __STDC__ to be defined as 1. */ +#if defined (__STDC__) + +#define YY_USE_CONST + +#endif /* defined (__STDC__) */ +#endif /* ! __cplusplus */ + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + +/* Returned upon end-of-file. */ +#define YY_NULL 0 + +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. + */ +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) + +/* Enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN. + */ +#define BEGIN (yy_start) = 1 + 2 * + +/* Translate the current start state into a value that can be later handed + * to BEGIN to return to the state. The YYSTATE alias is for lex + * compatibility. + */ +#define YY_START (((yy_start) - 1) / 2) +#define YYSTATE YY_START + +/* Action number for EOF rule of a given start state. */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + +/* Special action meaning "start processing a new file". */ +#define YY_NEW_FILE yyrestart(yyin ) + +#define YY_END_OF_BUFFER_CHAR 0 + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#define YY_BUF_SIZE 16384 +#endif + +/* The state buf must be large enough to hold one state per character in the main buffer. + */ +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +extern yy_size_t yyleng; + +extern FILE *yyin, *yyout; + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + + #define YY_LESS_LINENO(n) + +/* Return all but the first "n" matched characters back to the input stream. */ +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + *yy_cp = (yy_hold_char); \ + YY_RESTORE_YY_MORE_OFFSET \ + (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + } \ + while ( 0 ) + +#define unput(c) yyunput( c, (yytext_ptr) ) + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + yy_size_t yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + +#define YY_BUFFER_NEW 0 +#define YY_BUFFER_NORMAL 1 + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ +#define YY_BUFFER_EOF_PENDING 2 + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +/* Stack of input buffers. */ +static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ +static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ +static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ + +/* We provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state". + * + * Returns the top of the stack, or NULL. + */ +#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ + ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ + : NULL) + +/* Same as previous macro, but useful when we know that the buffer stack is not + * NULL or when we need an lvalue. For internal use only. + */ +#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] + +/* yy_hold_char holds the character lost when yytext is formed. */ +static char yy_hold_char; +static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ +yy_size_t yyleng; + +/* Points to current character in buffer. */ +static char *yy_c_buf_p = (char *) 0; +static int yy_init = 0; /* whether we need to initialize */ +static int yy_start = 0; /* start state number */ + +/* Flag which is used to allow yywrap()'s to do buffer switches + * instead of setting up a fresh yyin. A bit of a hack ... + */ +static int yy_did_buffer_switch_on_eof; + +void yyrestart (FILE *input_file ); +void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); +void yy_delete_buffer (YY_BUFFER_STATE b ); +void yy_flush_buffer (YY_BUFFER_STATE b ); +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state (void ); + +static void yyensure_buffer_stack (void ); +static void yy_load_buffer_state (void ); +static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); + +#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) + +YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); +YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ); + +void *yyalloc (yy_size_t ); +void *yyrealloc (void *,yy_size_t ); +void yyfree (void * ); + +#define yy_new_buffer yy_create_buffer + +#define yy_set_interactive(is_interactive) \ + { \ + if ( ! YY_CURRENT_BUFFER ){ \ + yyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ + } + +#define yy_set_bol(at_bol) \ + { \ + if ( ! YY_CURRENT_BUFFER ){\ + yyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ + } + +#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) + +/* Begin user sect3 */ + +#define yywrap() 1 +#define YY_SKIP_YYWRAP + +typedef unsigned char YY_CHAR; + +FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; + +typedef int yy_state_type; + +extern int yylineno; + +int yylineno = 1; + +extern char *yytext; +#define yytext_ptr yytext + +static yy_state_type yy_get_previous_state (void ); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); +static int yy_get_next_buffer (void ); +static void yy_fatal_error (yyconst char msg[] ); + +/* Done after the current pattern has been matched and before the + * corresponding action - sets up yytext. + */ +#define YY_DO_BEFORE_ACTION \ + (yytext_ptr) = yy_bp; \ + yyleng = (size_t) (yy_cp - yy_bp); \ + (yy_hold_char) = *yy_cp; \ + *yy_cp = '\0'; \ + (yy_c_buf_p) = yy_cp; + +#define YY_NUM_RULES 1287 +#define YY_END_OF_BUFFER 1288 +/* This struct is not used in this scanner, + but its presence is necessary. */ +struct yy_trans_info + { + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +static yyconst flex_int16_t yy_accept[2590] = + { 0, + 0, 0, 1288, 1287, 661, 1287, 1287, 1287, 1287, 1287, + 1287, 1287, 659, 626, 1, 2, 3, 4, 627, 137, + 35, 89, 41, 19, 153, 616, 11, 611, 8, 10, + 609, 628, 610, 138, 65, 90, 71, 48, 154, 615, + 120, 6, 58, 621, 622, 9, 613, 614, 7, 612, + 12, 5, 624, 625, 623, 1287, 1287, 1287, 1287, 1287, + 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, + 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, + 1287, 1287, 1287, 628, 1287, 0, 254, 255, 0, 121, + 207, 208, 209, 210, 256, 0, 122, 660, 34, 629, + + 481, 525, 549, 555, 589, 605, 482, 526, 550, 556, + 590, 606, 581, 595, 582, 596, 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, 630, 13, 21, 25, 259, 30, 36, 453, 601, + 42, 50, 54, 260, 60, 66, 454, 602, 579, 593, + 580, 594, 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, 631, 14, 79, + 22, 257, 26, 365, 129, 379, 139, 31, 405, 155, + + 163, 37, 455, 40, 192, 43, 80, 51, 258, 55, + 366, 130, 380, 140, 61, 406, 156, 164, 67, 456, + 70, 193, 267, 265, 577, 591, 268, 266, 578, 592, + 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, 632, 15, 81, 23, 101, + 109, 27, 123, 32, 165, 38, 187, 189, 469, 44, + 82, 52, 102, 110, 56, 124, 62, 166, 68, 188, + 190, 470, 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, 633, 16, 527, + 111, 29, 33, 175, 449, 607, 45, 528, 112, 59, + 63, 176, 450, 608, 583, 597, 584, 598, 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, 634, 73, 198, 91, 349, 113, 147, + 177, 308, 74, 199, 92, 350, 114, 148, 178, 309, + 241, 242, 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, 635, 75, 93, + + 103, 115, 149, 179, 76, 94, 104, 116, 150, 180, + 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, 636, 287, 315, 83, 325, + 95, 347, 105, 351, 119, 381, 385, 299, 407, 409, + 419, 435, 459, 463, 467, 194, 288, 316, 84, 326, + 96, 348, 106, 352, 382, 386, 300, 408, 410, 420, + 436, 460, 464, 468, 195, 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, + + 637, 17, 24, 355, 28, 39, 457, 465, 191, 46, + 53, 356, 57, 64, 476, 69, 458, 466, 72, 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, 638, 211, 85, 87, 99, 243, + 285, 213, 245, 135, 145, 215, 161, 169, 173, 217, + 196, 212, 86, 88, 100, 244, 286, 214, 253, 246, + 136, 146, 216, 162, 170, 174, 218, 197, 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, 639, 18, 181, 47, 182, 477, 478, + 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, 640, 641, 642, 200, 202, + 201, 203, 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, 643, 151, 183, + 152, 184, 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, 644, 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, 645, 20, 331, 289, 107, 357, 125, + 131, 141, 157, 167, 171, 49, 333, 290, 108, 359, + 127, 133, 143, 159, 168, 172, 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, 646, 77, 97, 117, 247, 185, 78, 98, 118, + 248, 186, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 647, 479, 317, + 327, 523, 353, 551, 367, 371, 383, 553, 411, 421, + 437, 587, 451, 461, 603, 471, 480, 318, 328, 524, + 354, 552, 368, 372, 384, 554, 412, 422, 438, 588, + 452, 462, 604, 472, 585, 599, 586, 600, 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, 648, 441, 442, 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, 649, 313, 314, 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, 650, + 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, 651, 319, 329, 369, 377, + 387, 417, 439, 473, 320, 330, 475, 370, 378, 388, + 418, 440, 474, 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, 652, 332, + + 358, 126, 132, 142, 158, 281, 283, 334, 360, 128, + 134, 144, 160, 282, 284, 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, + 653, 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, 654, 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, 655, 656, 658, 303, 304, 311, 310, 305, + + 312, 657, 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, 204, 205, + 206, 0, 0, 0, 0, 491, 537, 565, 493, 539, + 567, 0, 0, 0, 511, 513, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 269, 271, 273, 275, + 277, 279, 270, 272, 274, 276, 278, 280, 0, 0, + 487, 533, 561, 489, 535, 563, 0, 0, 335, 397, + 337, 399, 0, 507, 509, 0, 0, 229, 231, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 483, + 529, 557, 485, 531, 559, 0, 389, 443, 391, 445, + 0, 339, 401, 341, 403, 0, 503, 505, 0, 423, + 425, 0, 361, 221, 363, 223, 0, 0, 262, 264, + 0, 0, 0, 0, 321, 323, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 492, 538, 566, + 494, 540, 568, 0, 488, 534, 562, 490, 536, 564, + 0, 484, 530, 558, 486, 532, 560, 0, 0, 496, + 542, 570, 498, 544, 572, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 500, 546, 574, + 502, 548, 576, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 390, 444, 392, 446, 0, 495, + 541, 569, 497, 543, 571, 0, 0, 296, 298, 0, + 515, 517, 0, 0, 394, 396, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 336, 398, 338, 400, 0, 340, + 402, 342, 404, 0, 0, 295, 297, 0, 0, 0, + 237, 301, 239, 306, 0, 233, 291, 219, 235, 293, + 220, 0, 0, 0, 0, 0, 0, 0, 249, 251, + + 0, 374, 414, 376, 416, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 512, 514, 0, 508, 510, 0, + 504, 506, 0, 0, 516, 518, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 344, 346, 0, 0, + 520, 522, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 424, 426, 0, 0, 0, 238, 302, + 240, 307, 0, 0, 0, 0, 428, 430, 0, 0, + 0, 0, 0, 0, 0, 432, 434, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 230, 232, 0, + 362, 222, 364, 224, 0, 0, 393, 395, 0, 234, + + 292, 447, 236, 294, 448, 0, 0, 0, 0, 226, + 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 427, 429, 0, 225, 227, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 261, 263, + 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, 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, + 322, 324, 0, 0, 0, 0, 343, 345, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 250, 252, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 499, 545, 573, + 501, 547, 575, 0, 0, 373, 413, 375, 415, 0, + 519, 521, 0, 431, 433, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, + 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, + + 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, + 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, + 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, + 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, + 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, + 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, + 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, + + 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, + 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, + 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, + 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, + 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, + 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, + 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, + 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, + 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, + 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, + + 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, + 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, + 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, + 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, + 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, + 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, + 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, + 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, + 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, + 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, + + 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, + 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, + 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, + 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, + 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, + 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, + 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, + 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, + 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, + 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, + + 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, + 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, + 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, + 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, + 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, + 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, + 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, + 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, + 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, + 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, + + 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, + 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, + 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, + 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, + 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, + 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, + 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, + 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 0, 0, + 0, 0, 0, 0, 617, 619, 618, 620, 0 + } ; + +static yyconst flex_int32_t yy_ec[256] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 4, 3, 3, + 3, 3, 3, 3, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 3, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 4, 3, 30, 3, 31, 3, 32, 33, 34, 35, + + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 3, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 3, 3, 3, 3, 1, 57, 57, 57, + 57, 57, 57, 57, 57, 58, 59, 57, 57, 57, + 60, 61, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + + 103, 103, 103, 103, 103, 103, 104, 103, 103, 103, + 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, + 103, 103, 103, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136 + } ; + +static yyconst flex_int32_t yy_meta[137] = + { 0, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 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, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 1, 1, 1, 1, 3, 1 + } ; + +static yyconst flex_int16_t yy_base[2605] = + { 0, + 0, 0, 2037, 7773, 7773, 2018, 108, 2021, 124, 125, + 84, 1993, 2031, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 2013, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 220, 353, 486, 619, 752, + 885, 1018, 1151, 1284, 1417, 1548, 0, 0, 1665, 1782, + 1813, 1946, 2079, 2212, 2324, 2455, 2486, 2619, 2752, 2783, + 2814, 0, 0, 136, 2845, 2009, 7773, 7773, 113, 7773, + 7773, 7773, 7773, 7773, 7773, 1974, 7773, 7773, 7773, 7773, + + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 140, 144, 156, 273, + 167, 171, 406, 539, 672, 805, 938, 1071, 1204, 1337, + 1470, 1509, 1515, 1529, 1544, 1557, 1566, 1577, 1581, 1592, + 1596, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 1645, 1693, 1660, 1715, 1709, 1794, 1764, 1777, + 1811, 1798, 1825, 1999, 2132, 2265, 2304, 2310, 2324, 2339, + 2352, 2358, 2364, 2373, 2377, 2422, 2436, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 2451, 2457, 2469, 2506, 2484, 2672, 2805, 2473, 2972, 2941, + 2989, 2957, 2995, 3004, 3021, 3027, 3042, 3046, 3055, 3059, + 3072, 3076, 3093, 3097, 3106, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 3130, 3154, 3178, 3124, 3202, 3148, 3211, 3215, + 3226, 3232, 3241, 3250, 3263, 3274, 3280, 3289, 3336, 3302, + + 3311, 3340, 3349, 3353, 3362, 3366, 3375, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 3387, 3391, + 3400, 3424, 3438, 3449, 3458, 3462, 3473, 3477, 3489, 3500, + 3511, 3522, 3526, 3537, 3548, 3559, 3571, 3575, 3586, 3590, + 3599, 3608, 3620, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 3624, 3657, 3673, 3638, 3687, 3691, 3704, 3710, + 3721, 3739, 3743, 3755, 3759, 3770, 3774, 3792, 3809, 3822, + 3831, 3837, 3843, 3849, 3860, 3864, 3876, 7773, 7773, 7773, + + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 3897, 3914, 3923, 3891, 3944, 3948, 3961, 3965, 3974, 3978, + 3993, 3999, 4012, 4016, 4033, 4027, 4050, 4044, 4061, 4067, + 4081, 4092, 4098, 4109, 4115, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 4121, 4130, 4154, 4143, 4160, + 4177, 4181, 4193, 4202, 4208, 4214, 4228, 4232, 4241, 4247, + 4256, 4262, 4279, 4294, 4309, 4313, 4324, 4328, 4339, 4343, + + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 4358, + 4373, 4388, 4400, 4406, 4425, 4437, 4451, 4455, 4464, 4476, + 4482, 4488, 4502, 4506, 4515, 4521, 4527, 4533, 4539, 4553, + 4566, 4572, 4578, 4584, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 4590, 4601, + 4605, 4617, 4623, 4629, 4635, 4650, 4662, 4656, 4674, 4680, + 4689, 4701, 4707, 4713, 4719, 4728, 4734, 4740, 4746, 4752, + + 4758, 4767, 4773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 4779, 4785, 4805, 4791, 4818, 4824, 4830, 4836, 4842, 4853, + 4857, 4869, 4875, 4881, 4887, 4902, 4906, 4920, 4926, 4932, + 4941, 4953, 4957, 4971, 4980, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 4986, 4992, 5004, 5008, 5019, 5025, 5031, 5037, + 5043, 5056, 5070, 5076, 5082, 5088, 5094, 5103, 5107, 5121, + 5127, 5133, 5142, 5154, 5158, 5172, 5181, 7773, 7773, 7773, + 7773, 7773, 5187, 5193, 5205, 5209, 5220, 5226, 5232, 5238, + 5244, 5257, 5271, 5277, 5283, 5289, 5295, 5304, 5308, 5322, + 5328, 5334, 5343, 5355, 5359, 5373, 5382, 7773, 5388, 5394, + + 5406, 5410, 5421, 5427, 5433, 5439, 5445, 5458, 5472, 5478, + 5484, 5490, 5496, 5505, 5509, 5523, 5529, 5535, 5544, 5556, + 5560, 5574, 5583, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 5589, 5595, 5613, 5609, + 5622, 5628, 5646, 5640, 5660, 5673, 5677, 5688, 5694, 5700, + 5711, 5715, 5726, 5739, 5745, 5760, 5764, 5773, 5777, 5790, + 5794, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 5811, 5815, 5824, 5828, 5839, 5848, 5862, 5866, + 5877, 5881, 5893, 5897, 5911, 5915, 5926, 5930, 5942, 5946, + + 5960, 5964, 5975, 5979, 5991, 5995, 6009, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 6013, 6024, + 6028, 6061, 6042, 6075, 6081, 6090, 6096, 6110, 6123, 6129, + 6138, 6144, 6150, 6161, 6176, 6189, 6195, 6201, 6210, 6214, + 6223, 6227, 6240, 7773, 7773, 7773, 6249, 6261, 6265, 6274, + 6278, 6287, 6291, 6300, 6312, 6316, 6325, 6329, 6338, 6342, + 6351, 6363, 6367, 6376, 6380, 6389, 6393, 6402, 6414, 6418, + + 6427, 7773, 7773, 7773, 6431, 6440, 6444, 6453, 6465, 6469, + 6478, 6482, 6491, 6495, 6504, 6516, 6520, 6529, 6533, 6542, + 6546, 6555, 6567, 6571, 6580, 6584, 6593, 6597, 6606, 7773, + 6618, 6622, 6631, 6635, 6644, 6648, 6657, 6669, 6673, 6682, + 6686, 6695, 6699, 6708, 6720, 6724, 6733, 6737, 6746, 6750, + 6759, 6771, 6775, 6784, 6788, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 6797, 6801, 6810, 6822, 6826, 6835, 6839, + 6848, 6852, 6861, 6873, 6877, 6886, 6890, 6899, 6903, 6912, + 6924, 6928, 6937, 6941, 6950, 6954, 6963, 6975, 7773, 7773, + + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 6979, 6988, 6992, 7001, 7005, + 7014, 7026, 7030, 7039, 7043, 7052, 7056, 7065, 7077, 7081, + 7090, 7094, 7103, 7107, 7116, 7128, 7132, 7141, 7145, 7154, + 7773, 7158, 7167, 7179, 7183, 7192, 7196, 7205, 7209, 7218, + 7230, 7234, 7243, 7247, 7256, 7260, 7269, 7281, 7285, 7294, + 7298, 7307, 7311, 7320, 7332, 7336, 7773, 7345, 7349, 7358, + 7362, 7371, 7383, 7387, 7396, 7400, 7409, 7413, 7422, 7434, + 7438, 7447, 7451, 7460, 7464, 7473, 7485, 7489, 7498, 7502, + 7511, 7515, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + + 7773, 7773, 7524, 7536, 7540, 7549, 7553, 7562, 7566, 7575, + 7587, 7591, 7600, 7604, 7613, 7617, 7626, 7638, 7642, 7651, + 7655, 7664, 7668, 7677, 7689, 7693, 7702, 2020, 7773, 7773, + 7773, 1998, 1997, 1996, 1995, 7773, 7773, 7773, 7773, 7773, + 7773, 1994, 1993, 1992, 7773, 7773, 1991, 1990, 1989, 1988, + 1987, 1986, 1985, 1984, 1983, 1982, 1981, 1980, 1979, 1978, + 1977, 1976, 1975, 1974, 1917, 1916, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 1915, 7773, 1914, 7773, 1900, 1899, + 7773, 7773, 7773, 7773, 7773, 7773, 1886, 1885, 7773, 7773, + 7773, 7773, 1884, 7773, 7773, 1883, 1869, 7773, 7773, 1868, + + 1856, 1855, 1854, 1853, 1852, 1851, 1850, 1849, 1848, 1847, + 1846, 1844, 1841, 1839, 1838, 1837, 1836, 1834, 1833, 7773, + 7773, 7773, 7773, 7773, 7773, 1830, 7773, 7773, 7773, 7773, + 1827, 7773, 7773, 7773, 7773, 1825, 7773, 7773, 1824, 7773, + 7773, 1823, 7773, 7773, 1822, 7773, 1820, 1819, 7773, 7773, + 1817, 1807, 1806, 1802, 7773, 7773, 1801, 1796, 1793, 1791, + 1790, 1789, 1788, 1786, 1780, 1778, 1777, 7773, 7773, 7773, + 7773, 7773, 7773, 1775, 7773, 7773, 7773, 7773, 7773, 7773, + 1769, 7773, 7773, 7773, 7773, 7773, 7773, 1767, 1752, 7773, + 7773, 7773, 7773, 7773, 7773, 1737, 1736, 1734, 1728, 1723, + + 1722, 1720, 1718, 1716, 1715, 1712, 1707, 7773, 7773, 7773, + 7773, 7773, 7773, 1706, 1705, 1702, 1701, 1700, 1698, 1697, + 1696, 1693, 1692, 1691, 7773, 7773, 7773, 7773, 1688, 7773, + 7773, 7773, 7773, 7773, 7773, 1685, 1679, 7773, 7773, 1674, + 7773, 7773, 1673, 1671, 7773, 7773, 1669, 1666, 1664, 1661, + 1658, 1657, 1656, 1652, 1651, 1650, 1649, 1635, 1622, 1621, + 1620, 1618, 1617, 1615, 7773, 7773, 7773, 7773, 1608, 7773, + 7773, 7773, 7773, 1605, 1604, 7773, 7773, 1603, 1600, 1593, + 7773, 7773, 7773, 7773, 1590, 7773, 7773, 7773, 7773, 7773, + 7773, 1589, 1588, 1585, 1582, 1580, 1579, 1578, 7773, 7773, + + 1568, 7773, 7773, 7773, 1565, 1563, 1560, 1558, 1557, 1556, + 1553, 1552, 1548, 1545, 7773, 7773, 1543, 7773, 7773, 1541, + 7773, 7773, 1538, 1537, 7773, 7773, 1536, 1534, 1528, 1521, + 1520, 1504, 1491, 1486, 1484, 1482, 7773, 7773, 1481, 1479, + 7773, 7773, 1478, 1477, 1476, 1475, 1474, 1473, 1472, 1471, + 1470, 1469, 1468, 7773, 7773, 1467, 1466, 1465, 7773, 7773, + 7773, 7773, 1464, 1463, 1462, 1461, 7773, 7773, 1460, 1459, + 1458, 1457, 1456, 1455, 1454, 7773, 7773, 1453, 1452, 1451, + 1450, 1449, 1448, 1447, 1446, 1445, 1388, 7773, 7773, 1387, + 7773, 7773, 1386, 7773, 1385, 1371, 7773, 7773, 1370, 7773, + + 7773, 7773, 7773, 7773, 7773, 1358, 1356, 1353, 1351, 7773, + 7773, 1350, 1349, 1348, 1346, 1345, 1344, 1343, 1342, 1341, + 1340, 1339, 1338, 1337, 1336, 1335, 1334, 1333, 1332, 1331, + 1330, 1329, 1328, 1327, 7773, 7773, 1326, 7773, 7773, 1325, + 1324, 1323, 1322, 1321, 1320, 1319, 1318, 1317, 1316, 1315, + 1314, 1313, 1312, 1255, 1254, 1253, 1252, 1238, 7773, 7773, + 1237, 1225, 1223, 1220, 1218, 1217, 1216, 1215, 1213, 1212, + 1211, 1210, 1209, 1208, 1207, 1206, 1205, 1204, 1203, 1202, + 1201, 1200, 1199, 1198, 1197, 1196, 1195, 1194, 1193, 1192, + 1191, 1190, 1189, 1188, 1187, 1186, 1185, 1184, 1183, 1182, + + 1181, 1180, 1179, 1122, 1121, 1120, 1119, 1105, 1104, 1092, + 1090, 1087, 1085, 1084, 1083, 1082, 1080, 1079, 1078, 1077, + 1076, 1075, 1074, 1073, 1072, 1071, 1070, 1069, 1068, 1067, + 1066, 1065, 1064, 1063, 1062, 1061, 1060, 1059, 1058, 1057, + 1056, 1055, 1054, 1053, 1052, 1051, 1050, 1049, 1048, 1047, + 1046, 989, 988, 987, 986, 972, 971, 959, 957, 954, + 7773, 7773, 952, 951, 950, 949, 7773, 7773, 947, 946, + 945, 944, 943, 942, 941, 940, 939, 937, 936, 935, + 934, 933, 932, 931, 930, 929, 928, 927, 926, 925, + 924, 923, 7773, 7773, 921, 920, 919, 918, 917, 916, + + 915, 914, 913, 856, 855, 854, 853, 839, 838, 826, + 824, 821, 819, 818, 817, 816, 814, 7773, 7773, 7773, + 7773, 7773, 7773, 811, 810, 7773, 7773, 7773, 809, 808, + 7773, 7773, 807, 7773, 7773, 806, 805, 804, 803, 802, + 801, 800, 799, 798, 795, 794, 793, 792, 791, 790, + 789, 788, 787, 786, 785, 784, 783, 782, 781, 780, + 723, 722, 721, 720, 706, 705, 693, 691, 688, 686, + 685, 684, 683, 681, 680, 678, 677, 676, 675, 673, + 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, + 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, + + 651, 650, 649, 648, 590, 589, 588, 587, 573, 572, + 560, 116, 117, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 131, 132, 133, 137, 138, 143, 144, + 146, 147, 148, 149, 151, 152, 153, 156, 163, 165, + 167, 169, 170, 172, 175, 178, 179, 180, 183, 190, + 249, 250, 251, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 263, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 276, 277, 278, 282, 284, 285, 286, 287, + 292, 294, 306, 307, 321, 322, 323, 324, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + + 394, 395, 396, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 409, 410, 411, 412, 415, 417, 418, 419, + 420, 422, 425, 427, 439, 440, 454, 455, 456, 457, + 514, 515, 516, 517, 518, 519, 521, 522, 524, 525, + 526, 527, 528, 529, 532, 533, 534, 535, 537, 538, + 540, 541, 556, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, + 7773, 7773, 7773, 7773, 7773, 7773, 7773, 7773, 542, 549, + 562, 569, 557, 658, 7773, 7773, 7773, 7773, 7773, 7751, + 579, 580, 7753, 7755, 7757, 7759, 7761, 7763, 7765, 7767, + + 581, 583, 586, 7769 + } ; + +static yyconst flex_int16_t yy_def[2605] = + { 0, + 2589, 1, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2590, 2591, 2592, 2593, 2594, + 2595, 2589, 2589, 2589, 2596, 2597, 2598, 2589, 2589, 2599, + 2600, 2601, 2602, 2603, 2604, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 0, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589 + } ; + +static yyconst flex_int16_t yy_nxt[7910] = + { 0, + 4, 5, 4, 4, 6, 4, 4, 7, 4, 4, + 4, 4, 8, 4, 4, 9, 4, 10, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 11, 4, 4, 4, 4, 12, + 4, 4, 13, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 4, 4, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 32, 4, + 4, 44, 45, 46, 47, 48, 49, 50, 51, 52, + + 53, 54, 32, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 32, 85, 19, 87, 91, 93, 95, + 1096, 1129, 1097, 1132, 1098, 2438, 2439, 1133, 2440, 2441, + 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 1099, 1134, + 2450, 2451, 2452, 88, 92, 94, 2453, 2454, 1130, 1100, + 1142, 1101, 2455, 2456, 1143, 2457, 2458, 2459, 2460, 1132, + 2461, 2462, 2463, 1133, 1132, 2464, 1132, 1132, 1133, 1132, + 1133, 1133, 2465, 1133, 2466, 1134, 2467, 96, 2468, 2469, + + 1134, 2470, 1134, 1134, 2471, 1134, 1142, 2472, 2473, 2474, + 1143, 1142, 2475, 1142, 1142, 1143, 1142, 1143, 1143, 2476, + 1143, 89, 100, 100, 101, 100, 100, 100, 102, 100, + 100, 100, 103, 100, 100, 100, 100, 100, 104, 100, + 100, 100, 100, 105, 100, 100, 100, 106, 100, 100, + 100, 107, 100, 100, 100, 108, 100, 100, 100, 109, + 100, 100, 100, 100, 100, 110, 100, 100, 100, 100, + 111, 100, 100, 100, 112, 100, 1135, 1136, 2477, 2478, + 2479, 1137, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, + 2488, 1138, 2489, 113, 114, 2490, 2491, 2492, 2493, 2494, + + 2495, 2496, 2497, 2498, 1139, 2499, 2500, 2501, 1140, 115, + 116, 2502, 1135, 2503, 2504, 2505, 2506, 1135, 1141, 1135, + 1135, 2507, 1135, 2508, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 2509, 2510, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 2511, 2512, 2513, 2514, 141, 142, 142, 143, 142, 142, + 142, 144, 142, 142, 142, 145, 142, 142, 142, 142, + 146, 147, 142, 142, 142, 142, 148, 142, 149, 142, + 150, 142, 142, 142, 151, 142, 142, 142, 152, 142, + 142, 142, 153, 142, 142, 142, 142, 154, 155, 142, + + 142, 142, 142, 156, 142, 157, 142, 158, 142, 1144, + 1145, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, + 2524, 2525, 2526, 2527, 2528, 2529, 159, 160, 2530, 2531, + 2532, 2533, 2534, 2535, 2536, 2537, 2538, 1146, 2539, 2540, + 2541, 2542, 161, 162, 2543, 1144, 2544, 2545, 2546, 2547, + 1144, 2548, 1144, 1144, 2549, 1144, 2550, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 2551, 2552, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 2553, 2554, 2555, 2556, 187, 188, 188, + 189, 188, 190, 188, 191, 188, 192, 188, 193, 188, + + 194, 195, 196, 197, 198, 199, 200, 201, 188, 202, + 188, 203, 188, 204, 205, 188, 188, 206, 188, 207, + 188, 208, 188, 209, 188, 210, 188, 211, 212, 213, + 214, 215, 216, 217, 218, 188, 219, 188, 220, 188, + 221, 222, 1147, 2557, 2558, 2559, 2560, 2561, 2562, 223, + 2563, 2564, 224, 2565, 2566, 2567, 2568, 2569, 2570, 225, + 226, 2571, 2572, 2573, 2574, 227, 2575, 2576, 228, 2577, + 2578, 2579, 2580, 2581, 2582, 229, 230, 2583, 1147, 2584, + 636, 637, 1093, 1147, 1094, 1147, 1147, 1095, 1147, 2437, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + + 241, 2436, 2435, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 2434, 2433, 2432, 2431, + 255, 256, 256, 257, 256, 258, 256, 259, 256, 260, + 261, 262, 263, 256, 256, 256, 256, 264, 256, 256, + 265, 256, 266, 256, 267, 256, 268, 269, 256, 256, + 270, 256, 271, 256, 272, 256, 273, 274, 275, 276, + 256, 256, 256, 256, 277, 256, 256, 278, 256, 279, + 256, 280, 256, 281, 282, 1148, 2585, 2430, 2429, 2428, + 2427, 2586, 2426, 2425, 2424, 2423, 2422, 2421, 2420, 2419, + 2418, 2417, 2416, 2415, 2414, 2413, 2412, 2411, 2410, 2409, + + 2408, 2407, 2406, 2587, 2405, 2404, 2403, 2402, 2588, 2401, + 2400, 1148, 2399, 2398, 2397, 2396, 1148, 2395, 1148, 1148, + 2394, 1148, 2393, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 2392, 2391, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 2390, + 2389, 2388, 2387, 307, 308, 308, 309, 308, 308, 308, + 310, 308, 308, 308, 311, 308, 308, 308, 308, 312, + 313, 308, 308, 308, 308, 314, 315, 308, 308, 316, + 308, 308, 308, 317, 308, 308, 308, 318, 308, 308, + 308, 319, 308, 308, 308, 308, 320, 321, 308, 308, + + 308, 308, 322, 323, 308, 308, 324, 308, 1149, 2386, + 2385, 2384, 2383, 2382, 2381, 2380, 2379, 2378, 2377, 2376, + 2375, 2374, 2373, 2372, 2371, 325, 326, 2370, 2369, 2368, + 2367, 2366, 2365, 2364, 2363, 2362, 2361, 2360, 2359, 2359, + 2358, 327, 328, 2357, 1149, 2356, 2355, 2354, 2353, 1149, + 2352, 1149, 1149, 2351, 1149, 2350, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 2349, 2348, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 2347, 2346, 2345, 2344, 353, 354, 354, 355, + 356, 354, 354, 357, 354, 358, 354, 359, 354, 354, + + 354, 354, 354, 360, 354, 354, 354, 354, 361, 354, + 354, 354, 362, 354, 354, 354, 363, 364, 354, 354, + 365, 354, 366, 354, 367, 354, 354, 354, 354, 354, + 368, 354, 354, 354, 354, 369, 354, 354, 354, 370, + 354, 1150, 2343, 2342, 2341, 2340, 2339, 2338, 2337, 2336, + 2335, 371, 2334, 2333, 2332, 2331, 2330, 2329, 2328, 2327, + 2326, 2325, 2324, 2323, 2322, 2321, 2320, 372, 2319, 2318, + 2317, 2316, 2315, 2314, 2313, 2312, 2311, 1150, 2310, 2309, + 2308, 2307, 1150, 2306, 1150, 1150, 2305, 1150, 2304, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + + 2303, 2302, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 2301, 2300, 2299, 2298, 397, + 398, 398, 399, 398, 398, 398, 400, 398, 401, 398, + 402, 398, 398, 398, 398, 398, 403, 398, 398, 398, + 398, 404, 398, 398, 398, 398, 398, 398, 398, 405, + 398, 398, 398, 406, 398, 407, 398, 408, 398, 398, + 398, 398, 398, 409, 398, 398, 398, 398, 410, 398, + 398, 398, 398, 398, 1151, 2297, 2296, 2295, 2294, 2293, + 2292, 2291, 2290, 2289, 2288, 2287, 2286, 2285, 2284, 2283, + 2282, 2281, 2280, 2279, 2278, 2277, 2276, 2275, 2274, 2273, + + 2272, 2271, 2270, 2269, 2268, 2267, 2266, 2265, 2264, 2263, + 1151, 2262, 2261, 2260, 2259, 1151, 2258, 1151, 1151, 2257, + 1151, 2256, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 2255, 2254, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 2253, 2252, + 2251, 2250, 435, 436, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 436, 436, 436, 446, 447, 448, + 449, 450, 451, 452, 436, 436, 453, 454, 455, 456, + 436, 436, 457, 458, 459, 460, 461, 462, 463, 464, + 436, 436, 436, 436, 465, 466, 467, 468, 469, 470, + + 471, 436, 436, 472, 473, 474, 475, 1152, 2249, 2248, + 2247, 2246, 2245, 2244, 2243, 2242, 2241, 2240, 2239, 2238, + 2237, 2236, 2235, 2234, 2233, 2232, 2231, 2230, 2229, 2228, + 2227, 2226, 2225, 2224, 2223, 2222, 2221, 2220, 2219, 2218, + 2217, 2216, 2215, 1152, 2214, 2213, 2212, 2211, 1152, 2210, + 1152, 1152, 2209, 1152, 2208, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 2207, 2206, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 2205, 2204, 2203, 2202, 500, 501, 501, 502, 501, + 501, 501, 503, 501, 501, 504, 505, 501, 501, 501, + + 501, 501, 501, 501, 501, 501, 501, 506, 501, 507, + 508, 509, 501, 501, 501, 510, 501, 501, 501, 511, + 501, 501, 512, 513, 501, 501, 501, 501, 501, 514, + 501, 501, 501, 515, 516, 501, 517, 518, 519, 501, + 1153, 2201, 2200, 2199, 2198, 2197, 2196, 2195, 2194, 2193, + 2192, 2191, 2190, 2189, 2188, 2187, 2186, 2185, 2184, 2183, + 2182, 2181, 2180, 2179, 2178, 2177, 2176, 2175, 2174, 2173, + 2172, 2171, 2170, 2169, 2168, 2167, 1153, 2166, 2165, 2164, + 2163, 1153, 2162, 1153, 1153, 2161, 1153, 2160, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 2159, + + 2158, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 2157, 2156, 2156, 2155, 544, 545, + 545, 546, 545, 547, 548, 549, 545, 550, 551, 552, + 545, 553, 554, 545, 555, 556, 545, 557, 558, 559, + 560, 545, 545, 545, 545, 561, 545, 545, 562, 545, + 563, 564, 565, 545, 566, 567, 568, 569, 570, 571, + 545, 572, 573, 545, 574, 575, 576, 577, 545, 545, + 545, 545, 578, 1154, 2154, 2153, 2152, 2151, 2150, 2149, + 2148, 2147, 2146, 2145, 2144, 2143, 2142, 2141, 2140, 2139, + 2138, 2137, 2136, 2135, 2134, 2133, 2132, 2131, 2130, 2129, + + 2128, 2127, 2126, 2125, 2124, 2123, 2122, 2121, 2120, 1154, + 2119, 2118, 1155, 2117, 1154, 2116, 1154, 1154, 1156, 1154, + 2115, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 1157, 2114, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 1158, 1155, 2113, + 2112, 603, 605, 1155, 1156, 1155, 1155, 2111, 1155, 1156, + 1159, 1156, 1156, 2110, 1156, 2109, 2108, 2107, 1157, 1160, + 2106, 606, 2105, 1157, 2104, 1157, 1157, 2103, 1157, 607, + 1161, 2102, 2101, 1158, 1162, 2100, 2099, 2098, 1158, 2097, + 1158, 1158, 2096, 1158, 2095, 1163, 1159, 2095, 608, 1164, + + 609, 1159, 610, 1159, 1159, 1160, 1159, 2094, 2093, 2092, + 1160, 2091, 1160, 1160, 2090, 1160, 1161, 2089, 2088, 2087, + 1162, 1161, 2086, 1161, 1161, 1162, 1161, 1162, 1162, 2085, + 1162, 1163, 2084, 2083, 2082, 1164, 1163, 2081, 1163, 1163, + 1164, 1163, 1164, 1164, 2080, 1164, 2079, 2078, 1165, 2077, + 2076, 2075, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 1179, 2074, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 2073, 2072, + 2071, 2070, 635, 639, 1165, 2069, 2068, 2067, 640, 1165, + 2066, 1165, 1165, 2065, 1165, 2064, 1166, 1167, 2063, 1179, + + 2062, 1168, 2061, 2060, 1179, 1169, 1179, 1179, 2059, 1179, + 641, 1170, 1187, 1171, 2058, 642, 1172, 2057, 1180, 1181, + 2056, 2055, 2054, 1182, 1173, 2053, 2052, 2051, 1174, 2050, + 2049, 2048, 1175, 1183, 2047, 2046, 2045, 1166, 1176, 1166, + 1177, 2044, 1166, 1178, 2043, 2042, 1184, 2041, 1187, 2040, + 1185, 2039, 2038, 1187, 1180, 1187, 1187, 2037, 1187, 1180, + 1186, 1180, 1180, 2036, 1180, 2035, 2034, 1193, 1194, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 1196, 2033, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 1195, 2032, 1188, 2031, 667, + + 669, 1200, 1189, 1193, 2030, 670, 2029, 2028, 1193, 2027, + 1193, 1193, 1190, 1193, 1197, 2026, 1196, 2025, 2024, 2023, + 2022, 1196, 2021, 1196, 1196, 2020, 1196, 671, 1201, 1191, + 2019, 2018, 672, 1188, 1198, 2017, 2016, 1200, 1188, 1192, + 1188, 1188, 1200, 1188, 1200, 1200, 2015, 1200, 2014, 2013, + 1197, 2012, 2012, 2011, 2010, 1197, 2009, 1197, 1197, 2008, + 1197, 1199, 2007, 2006, 1201, 2005, 2004, 2003, 2002, 1201, + 2001, 1201, 1201, 2000, 1201, 1999, 1998, 1997, 1996, 1995, + 1994, 1993, 1992, 1991, 1990, 1989, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 1988, 1987, 684, + + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, + 695, 696, 1986, 1985, 1984, 1983, 697, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 1982, 1981, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 1980, 1980, 1980, 1979, 723, 724, 724, + 724, 724, 725, 726, 727, 724, 728, 729, 724, 724, + 730, 731, 724, 732, 724, 724, 733, 734, 735, 724, + 724, 724, 724, 724, 724, 724, 724, 724, 724, 736, + 737, 738, 724, 739, 740, 724, 724, 741, 742, 724, + 743, 724, 724, 744, 745, 746, 724, 724, 724, 724, + + 724, 724, 1202, 1978, 1977, 1976, 1975, 1974, 1973, 1972, + 1971, 1970, 1969, 1968, 1967, 1966, 1965, 1964, 1963, 1962, + 1961, 1960, 1959, 1958, 1957, 1956, 1955, 1954, 1953, 1131, + 1128, 99, 98, 97, 90, 86, 2589, 2589, 1202, 2589, + 2589, 2589, 2589, 1202, 2589, 1202, 1202, 2589, 1202, 2589, + 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, + 757, 2589, 2589, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 2589, 2589, 2589, 2589, + 771, 772, 772, 773, 772, 772, 772, 774, 772, 772, + 772, 775, 772, 772, 772, 772, 772, 776, 772, 772, + + 772, 772, 777, 772, 772, 772, 772, 772, 772, 772, + 778, 772, 772, 772, 779, 772, 772, 772, 780, 772, + 772, 772, 772, 772, 781, 772, 772, 772, 772, 782, + 772, 772, 772, 772, 772, 1203, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 1203, 2589, 2589, 2589, 2589, 1203, 2589, 1203, 1203, + 2589, 1203, 2589, 783, 784, 785, 786, 787, 788, 789, + 790, 791, 792, 793, 2589, 2589, 794, 795, 796, 797, + + 798, 799, 800, 801, 802, 803, 804, 805, 806, 2589, + 2589, 2589, 2589, 807, 808, 808, 809, 810, 808, 811, + 812, 808, 808, 813, 814, 808, 815, 816, 817, 808, + 818, 808, 819, 820, 821, 822, 823, 824, 808, 825, + 826, 808, 808, 827, 828, 808, 829, 830, 808, 808, + 831, 832, 808, 833, 834, 835, 808, 836, 808, 837, + 838, 839, 840, 841, 842, 808, 843, 844, 1204, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 845, 846, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 847, 848, 2589, 1204, 2589, 2589, 1205, 2589, 1204, + 2589, 1204, 1204, 1206, 1204, 2589, 849, 850, 851, 852, + 853, 854, 855, 856, 857, 858, 859, 1207, 2589, 860, + 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, + 871, 872, 1208, 1205, 2589, 2589, 873, 875, 1205, 1206, + 1205, 1205, 2589, 1205, 1206, 1209, 1206, 1206, 2589, 1206, + 2589, 1210, 2589, 1207, 2589, 2589, 2589, 1211, 1207, 2589, + 1207, 1207, 2589, 1207, 876, 2589, 1212, 2589, 1208, 2589, + 1213, 2589, 2589, 1208, 2589, 1208, 1208, 2589, 1208, 2589, + 2589, 1209, 2589, 2589, 2589, 2589, 1209, 1210, 1209, 1209, + + 2589, 1209, 1210, 1211, 1210, 1210, 2589, 1210, 1211, 2589, + 1211, 1211, 1212, 1211, 2589, 2589, 1213, 1212, 2589, 1212, + 1212, 1213, 1212, 1213, 1213, 1214, 1213, 2589, 877, 878, + 879, 880, 881, 882, 883, 884, 885, 886, 887, 1215, + 2589, 888, 889, 890, 891, 892, 893, 894, 895, 896, + 897, 898, 899, 900, 1216, 2589, 2589, 2589, 901, 903, + 1217, 1214, 2589, 2589, 2589, 2589, 1214, 2589, 1214, 1214, + 2589, 1214, 1218, 2589, 2589, 1215, 1239, 2589, 2589, 2589, + 1215, 2589, 1215, 1215, 2589, 1215, 904, 1226, 2589, 2589, + 1216, 2589, 2589, 2589, 1240, 1216, 1217, 1216, 1216, 2589, + + 1216, 1217, 1227, 1217, 1217, 2589, 1217, 1228, 1218, 1219, + 1220, 2589, 1239, 1218, 1221, 1218, 1218, 1239, 1218, 1239, + 1239, 1241, 1239, 1226, 1222, 2589, 2589, 2589, 1226, 1229, + 1226, 1226, 2589, 1226, 1230, 2589, 2589, 1223, 2589, 2589, + 2589, 1224, 2589, 2589, 2589, 1219, 2589, 2589, 2589, 2589, + 1219, 1225, 1219, 1219, 2589, 1219, 2589, 2589, 2589, 905, + 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, + 2589, 2589, 916, 917, 918, 919, 920, 921, 922, 923, + 924, 925, 926, 927, 928, 2589, 2589, 2589, 2589, 929, + 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, + + 941, 2589, 2589, 942, 943, 944, 945, 946, 947, 948, + 949, 950, 951, 952, 953, 954, 2589, 2589, 2589, 2589, + 955, 956, 956, 956, 957, 956, 958, 956, 956, 956, + 956, 956, 956, 959, 960, 956, 961, 956, 956, 962, + 956, 963, 956, 956, 956, 956, 956, 964, 956, 956, + 956, 965, 956, 966, 956, 956, 956, 967, 956, 956, + 968, 969, 956, 970, 956, 956, 971, 956, 972, 956, + 956, 956, 956, 956, 973, 1231, 2589, 2589, 2589, 2589, + 1232, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 1233, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 1234, 2589, 2589, + 2589, 1231, 2589, 2589, 2589, 2589, 1231, 1235, 1231, 1231, + 2589, 1231, 2589, 974, 975, 976, 977, 978, 979, 980, + 981, 982, 983, 984, 2589, 2589, 985, 986, 987, 988, + 989, 990, 991, 992, 993, 994, 995, 996, 997, 2589, + 2589, 2589, 2589, 998, 999, 999, 999, 999, 999, 1000, + 999, 999, 999, 1001, 999, 999, 1002, 1003, 999, 1004, + 999, 999, 1005, 1006, 1007, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 1008, 999, 999, 999, + 1009, 999, 999, 1010, 1011, 999, 1012, 999, 999, 1013, + + 1014, 1015, 999, 999, 999, 999, 999, 999, 1236, 1237, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 1238, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 1236, 2589, 2589, 2589, 2589, 1236, + 2589, 1236, 1236, 2589, 1236, 2589, 1016, 1017, 1018, 1019, + 1020, 1021, 1022, 1023, 1024, 1025, 1026, 2589, 2589, 1027, + 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, + 1038, 1039, 2589, 2589, 2589, 2589, 1040, 1042, 1043, 1044, + 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 2589, 2589, + + 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, + 1063, 1064, 1065, 2589, 2589, 2589, 2589, 1066, 1068, 1069, + 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 2589, + 2589, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, + 1088, 1089, 1090, 1091, 1247, 2589, 2589, 2589, 1092, 1103, + 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, + 1251, 2589, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, + 1122, 1123, 1124, 1125, 1126, 1242, 2589, 2589, 2589, 1127, + 1247, 2589, 2589, 2589, 1243, 1247, 2589, 1247, 1247, 2589, + 1247, 2589, 1248, 1249, 2589, 1244, 1251, 2589, 1252, 2589, + + 2589, 1251, 2589, 1251, 1251, 2589, 1251, 1253, 2589, 2589, + 2589, 1245, 2589, 2589, 2589, 2589, 1242, 2589, 1242, 1242, + 1250, 1242, 1246, 2589, 1254, 2589, 2589, 1255, 1248, 2589, + 1257, 2589, 2589, 1248, 1252, 1248, 1248, 2589, 1248, 1252, + 2589, 1252, 1252, 1253, 1252, 1258, 2589, 2589, 1253, 1259, + 1253, 1253, 2589, 1253, 1256, 2589, 2589, 2589, 1260, 2589, + 1254, 2589, 1261, 2589, 2589, 1254, 1257, 1254, 1254, 2589, + 1254, 1257, 2589, 1257, 1257, 1262, 1257, 2589, 2589, 1263, + 2589, 1258, 2589, 2589, 2589, 1259, 1258, 2589, 1258, 1258, + 1259, 1258, 1259, 1259, 1260, 1259, 1264, 2589, 1261, 1260, + + 1265, 1260, 1260, 1261, 1260, 1261, 1261, 2589, 1261, 1266, + 2589, 1262, 2589, 2589, 2589, 1263, 1262, 2589, 1262, 1262, + 1263, 1262, 1263, 1263, 2589, 1263, 2589, 1288, 2589, 2589, + 2589, 2589, 1264, 1267, 1268, 2589, 1265, 1264, 1269, 1264, + 1264, 1265, 1264, 1265, 1265, 1266, 1265, 2589, 1270, 2589, + 1266, 1296, 1266, 1266, 2589, 1266, 2589, 1274, 1275, 2589, + 2589, 1271, 1276, 1288, 2589, 1272, 2589, 2589, 1288, 1267, + 1288, 1288, 1277, 1288, 1267, 1273, 1267, 1267, 2589, 1267, + 2589, 1281, 1282, 2589, 2589, 1278, 1283, 1296, 2589, 1279, + 2589, 2589, 1296, 1274, 1296, 1296, 1284, 1296, 1274, 1280, + + 1274, 1274, 2589, 1274, 2589, 1289, 1290, 2589, 2589, 1285, + 1291, 2589, 2589, 1286, 1297, 2589, 2589, 1281, 1298, 2589, + 1292, 2589, 1281, 1287, 1281, 1281, 2589, 1281, 2589, 1299, + 2589, 2589, 2589, 1293, 2589, 1300, 2589, 1294, 2589, 2589, + 2589, 1289, 2589, 2589, 1301, 2589, 1289, 1295, 1289, 1289, + 1297, 1289, 2589, 1302, 1298, 1297, 2589, 1297, 1297, 1298, + 1297, 1298, 1298, 2589, 1298, 1299, 1303, 2589, 2589, 2589, + 1299, 1300, 1299, 1299, 2589, 1299, 1300, 1304, 1300, 1300, + 1301, 1300, 2589, 1305, 2589, 1301, 2589, 1301, 1301, 1302, + 1301, 2589, 1306, 2589, 1302, 2589, 1302, 1302, 2589, 1302, + + 2589, 2589, 1303, 2589, 2589, 1314, 2589, 1303, 2589, 1303, + 1303, 2589, 1303, 1304, 1315, 2589, 2589, 2589, 1304, 1305, + 1304, 1304, 2589, 1304, 1305, 2589, 1305, 1305, 1306, 1305, + 2589, 2589, 2589, 1306, 2589, 1306, 1306, 2589, 1306, 1307, + 1308, 1314, 2589, 1316, 1309, 2589, 1314, 2589, 1314, 1314, + 1315, 1314, 1317, 2589, 1310, 1315, 1318, 1315, 1315, 2589, + 1315, 2589, 2589, 2589, 2589, 1319, 2589, 1311, 2589, 1320, + 2589, 1312, 2589, 2589, 2589, 1307, 2589, 2589, 1321, 1316, + 1307, 1313, 1307, 1307, 1316, 1307, 1316, 1316, 1317, 1316, + 1322, 2589, 1318, 1317, 1323, 1317, 1317, 1318, 1317, 1318, + + 1318, 1319, 1318, 1324, 2589, 1320, 1319, 2589, 1319, 1319, + 1320, 1319, 1320, 1320, 1321, 1320, 2589, 2589, 1325, 1321, + 2589, 1321, 1321, 1326, 1321, 2589, 1322, 1329, 1330, 2589, + 1323, 1322, 1331, 1322, 1322, 1323, 1322, 1323, 1323, 1324, + 1323, 1336, 1332, 2589, 1324, 1327, 1324, 1324, 2589, 1324, + 1328, 2589, 1337, 2589, 2589, 1333, 2589, 2589, 2589, 1334, + 2589, 1340, 1341, 1329, 2589, 1343, 2589, 1338, 1329, 1335, + 1329, 1329, 2589, 1329, 2589, 2589, 1344, 1336, 2589, 2589, + 1347, 2589, 1336, 2589, 1336, 1336, 2589, 1336, 1337, 1342, + 2589, 1345, 1348, 1337, 1339, 1337, 1337, 1340, 1337, 2589, + + 2589, 1343, 1340, 1349, 1340, 1340, 1343, 1340, 1343, 1343, + 2589, 1343, 1344, 2589, 1350, 2589, 1347, 1344, 1346, 1344, + 1344, 1347, 1344, 1347, 1347, 1351, 1347, 2589, 1348, 1352, + 2589, 2589, 2589, 1348, 2589, 1348, 1348, 2589, 1348, 1349, + 1353, 2589, 2589, 2589, 1349, 2589, 1349, 1349, 2589, 1349, + 1350, 1354, 2589, 2589, 2589, 1350, 2589, 1350, 1350, 2589, + 1350, 1351, 1355, 2589, 2589, 1352, 1351, 2589, 1351, 1351, + 1352, 1351, 1352, 1352, 1356, 1352, 1353, 2589, 1357, 2589, + 2589, 1353, 2589, 1353, 1353, 2589, 1353, 1354, 2589, 1358, + 2589, 2589, 1354, 1359, 1354, 1354, 2589, 1354, 1355, 2589, + + 2589, 2589, 1360, 1355, 2589, 1355, 1355, 2589, 1355, 2589, + 1356, 1361, 2589, 2589, 1357, 1356, 2589, 1356, 1356, 1357, + 1356, 1357, 1357, 1362, 1357, 1358, 2589, 1363, 2589, 1359, + 1358, 2589, 1358, 1358, 1359, 1358, 1359, 1359, 1360, 1359, + 2589, 1374, 2589, 1360, 2589, 1360, 1360, 1361, 1360, 2589, + 2589, 2589, 1361, 2589, 1361, 1361, 2589, 1361, 2589, 1362, + 1364, 2589, 2589, 1363, 1362, 1365, 1362, 1362, 1363, 1362, + 1363, 1363, 2589, 1363, 2589, 1366, 1369, 1374, 2589, 2589, + 2589, 1370, 1374, 2589, 1374, 1374, 2589, 1374, 2589, 2589, + 1375, 1371, 1367, 2589, 1378, 2589, 1364, 2589, 2589, 2589, + + 2589, 1364, 1368, 1364, 1364, 1376, 1364, 1379, 1372, 2589, + 2589, 2589, 1369, 1380, 1381, 2589, 2589, 1369, 1373, 1369, + 1369, 2589, 1369, 2589, 1385, 1386, 1375, 2589, 1382, 2589, + 1378, 1375, 1377, 1375, 1375, 1378, 1375, 1378, 1378, 1387, + 1378, 1383, 1392, 1379, 1388, 2589, 1393, 2589, 1379, 1380, + 1379, 1379, 1389, 1379, 1380, 1384, 1380, 1380, 1394, 1380, + 1385, 2589, 1395, 2589, 2589, 1385, 1390, 1385, 1385, 2589, + 1385, 1391, 2589, 1396, 2589, 2589, 2589, 1397, 1392, 2589, + 2589, 2589, 1393, 1392, 2589, 1392, 1392, 1393, 1392, 1393, + 1393, 2589, 1393, 2589, 1394, 1398, 2589, 2589, 1395, 1394, + + 2589, 1394, 1394, 1395, 1394, 1395, 1395, 2589, 1395, 1396, + 1399, 2589, 1401, 1397, 1396, 2589, 1396, 1396, 1397, 1396, + 1397, 1397, 2589, 1397, 1402, 1406, 2589, 2589, 2589, 1403, + 2589, 1398, 2589, 2589, 1407, 2589, 1398, 1400, 1398, 1398, + 1408, 1398, 2589, 2589, 2589, 2589, 1409, 2589, 1401, 2589, + 2589, 1404, 1410, 1401, 2589, 1401, 1405, 2589, 1401, 2589, + 2589, 1406, 2589, 1411, 2589, 2589, 1406, 1412, 1406, 1406, + 1407, 1406, 2589, 2589, 2589, 1407, 1408, 1407, 1407, 1413, + 1407, 1408, 1409, 1408, 1408, 2589, 1408, 1409, 1410, 1409, + 1409, 2589, 1409, 1410, 1423, 1410, 1410, 2589, 1410, 1411, + + 1414, 1415, 2589, 1412, 1411, 2589, 1411, 1411, 1412, 1411, + 1412, 1412, 2589, 1412, 2589, 1413, 2589, 1417, 1418, 2589, + 1413, 2589, 1413, 1413, 2589, 1413, 1420, 1421, 1416, 2589, + 1423, 2589, 2589, 2589, 2589, 1423, 1414, 1423, 1423, 2589, + 1423, 1414, 2589, 1414, 1414, 1419, 1414, 1424, 1425, 2589, + 2589, 1427, 2589, 1417, 1422, 2589, 2589, 2589, 1417, 2589, + 1417, 1417, 1420, 1417, 1428, 2589, 2589, 1420, 1429, 1420, + 1420, 2589, 1420, 2589, 2589, 1426, 2589, 1430, 2589, 2589, + 2589, 1431, 2589, 1424, 2589, 2589, 2589, 1427, 1424, 2589, + 1424, 1424, 1427, 1424, 1427, 1427, 1432, 1427, 2589, 2589, + + 1428, 2589, 1433, 2589, 1429, 1428, 2589, 1428, 1428, 1429, + 1428, 1429, 1429, 1430, 1429, 1434, 2589, 1431, 1430, 1435, + 1430, 1430, 1431, 1430, 1431, 1431, 2589, 1431, 2589, 2589, + 1439, 2589, 1432, 2589, 2589, 2589, 1436, 1432, 1433, 1432, + 1432, 1437, 1432, 1433, 2589, 1433, 1433, 1443, 1433, 2589, + 2589, 1434, 2589, 1440, 1441, 1435, 1434, 2589, 1434, 1434, + 1435, 1434, 1435, 1435, 1444, 1435, 1439, 2589, 1438, 2589, + 1445, 1439, 1436, 1439, 1439, 2589, 1439, 1436, 2589, 1436, + 1436, 1442, 1436, 1443, 1446, 2589, 2589, 2589, 1443, 1440, + 1443, 1443, 2589, 1443, 1440, 1447, 1440, 1440, 2589, 1440, + + 1444, 1448, 2589, 2589, 2589, 1444, 1445, 1444, 1444, 2589, + 1444, 1445, 1449, 1445, 1445, 2589, 1445, 2589, 1450, 2589, + 1446, 2589, 2589, 2589, 1451, 1446, 2589, 1446, 1446, 2589, + 1446, 1447, 2589, 1452, 2589, 2589, 1447, 1448, 1447, 1447, + 2589, 1447, 1448, 2589, 1448, 1448, 1456, 1448, 1449, 2589, + 2589, 2589, 2589, 1449, 1450, 1449, 1449, 1453, 1449, 1450, + 1451, 1450, 1450, 1457, 1450, 1451, 2589, 1451, 1451, 1452, + 1451, 2589, 2589, 2589, 1452, 1454, 1452, 1452, 2589, 1452, + 1458, 1459, 1456, 2589, 1463, 2589, 2589, 1456, 2589, 1456, + 1456, 2589, 1456, 1453, 2589, 1460, 1464, 2589, 1453, 1457, + + 1453, 1453, 1455, 1453, 1457, 1465, 1457, 1457, 1461, 1457, + 2589, 1466, 2589, 2589, 2589, 2589, 1458, 1469, 2589, 2589, + 1463, 1458, 1462, 1458, 1458, 1463, 1458, 1463, 1463, 1467, + 1463, 1470, 1464, 2589, 2589, 1471, 2589, 1464, 2589, 1464, + 1464, 1465, 1464, 2589, 1472, 2589, 1465, 1466, 1465, 1465, + 1473, 1465, 1466, 1469, 1466, 1466, 1468, 1466, 1469, 1474, + 1469, 1469, 2589, 1469, 2589, 1475, 2589, 1470, 2589, 2589, + 2589, 1471, 1470, 2589, 1470, 1470, 1471, 1470, 1471, 1471, + 1472, 1471, 1478, 1476, 2589, 1472, 1473, 1472, 1472, 2589, + 1472, 1473, 2589, 1473, 1473, 1474, 1473, 1479, 2589, 2589, + + 1474, 1475, 1474, 1474, 2589, 1474, 1475, 2589, 1475, 1475, + 1477, 1475, 1480, 2589, 2589, 2589, 1481, 2589, 1478, 2589, + 2589, 2589, 2589, 1478, 2589, 1478, 1478, 1482, 1478, 2589, + 2589, 1483, 2589, 1479, 2589, 2589, 2589, 2589, 1479, 2589, + 1479, 1479, 1484, 1479, 2589, 2589, 1485, 2589, 1480, 2589, + 2589, 2589, 1481, 1480, 2589, 1480, 1480, 1481, 1480, 1481, + 1481, 1486, 1481, 1482, 2589, 2589, 2589, 1483, 1482, 2589, + 1482, 1482, 1483, 1482, 1483, 1483, 1487, 1483, 1484, 2589, + 2589, 2589, 1485, 1484, 2589, 1484, 1484, 1485, 1484, 1485, + 1485, 1490, 1485, 2589, 2589, 2589, 1488, 1486, 2589, 2589, + + 1491, 2589, 1486, 1495, 1486, 1486, 2589, 1486, 2589, 1496, + 2589, 1492, 1487, 2589, 2589, 2589, 2589, 1487, 2589, 1487, + 1487, 2589, 1487, 1489, 1497, 2589, 2589, 1493, 1499, 1500, + 2589, 2589, 1490, 2589, 1490, 1490, 2589, 1490, 1494, 1495, + 1506, 2589, 2589, 1501, 1495, 1496, 1495, 1495, 1502, 1495, + 1496, 1498, 1496, 1496, 1507, 1496, 1503, 2589, 1508, 2589, + 2589, 2589, 2589, 2589, 1499, 2589, 2589, 1509, 2589, 1499, + 1504, 1499, 1499, 2589, 1499, 1505, 1506, 2589, 2589, 1512, + 2589, 1506, 2589, 1506, 1506, 1513, 1506, 1510, 2589, 2589, + 1507, 1514, 2589, 2589, 1508, 1507, 2589, 1507, 1507, 1508, + + 1507, 1508, 1508, 1509, 1508, 1515, 2589, 2589, 1509, 1516, + 1509, 1509, 2589, 1509, 1511, 1512, 2589, 2589, 1517, 2589, + 1512, 1513, 1512, 1512, 1518, 1512, 1513, 1514, 1513, 1513, + 1519, 1513, 1514, 2589, 1514, 1514, 1520, 1514, 2589, 2589, + 2589, 1515, 1521, 2589, 2589, 1516, 1515, 2589, 1515, 1515, + 1516, 1515, 1516, 1516, 1517, 1516, 1522, 2589, 2589, 1517, + 1518, 1517, 1517, 2589, 1517, 1518, 1519, 1518, 1518, 1523, + 1518, 1519, 1520, 1519, 1519, 1524, 1519, 1520, 1521, 1520, + 1520, 1525, 1520, 1521, 2589, 1521, 1521, 1526, 1521, 2589, + 2589, 2589, 1522, 1527, 2589, 2589, 2589, 1522, 2589, 1522, + + 1522, 2589, 1522, 2589, 1528, 1523, 2589, 2589, 1529, 2589, + 1523, 1524, 1523, 1523, 2589, 1523, 1524, 1525, 1524, 1524, + 1530, 1524, 1525, 1526, 1525, 1525, 1531, 1525, 1526, 1527, + 1526, 1526, 1532, 1526, 1527, 2589, 1527, 1527, 1533, 1527, + 1528, 2589, 2589, 2589, 1529, 1528, 2589, 1528, 1528, 1529, + 1528, 1529, 1529, 1534, 1529, 2589, 1530, 2589, 2589, 1540, + 2589, 1530, 1531, 1530, 1530, 1537, 1530, 1531, 1532, 1531, + 1531, 1535, 1531, 1532, 1533, 1532, 1532, 1541, 1532, 1533, + 2589, 1533, 1533, 1542, 1533, 1538, 2589, 2589, 2589, 1534, + 2589, 2589, 1543, 2589, 1534, 1540, 1534, 1534, 1536, 1534, + + 1540, 1537, 1540, 1540, 1544, 1540, 1537, 2589, 1537, 1537, + 1545, 1537, 1539, 1541, 2589, 2589, 1546, 2589, 1541, 1542, + 1541, 1541, 1547, 1541, 1542, 2589, 1542, 1542, 1543, 1542, + 2589, 1548, 2589, 1543, 2589, 1543, 1543, 1549, 1543, 2589, + 1544, 2589, 2589, 1550, 2589, 1544, 1545, 1544, 1544, 1551, + 1544, 1545, 1546, 1545, 1545, 1552, 1545, 1546, 1547, 1546, + 1546, 1553, 1546, 1547, 2589, 1547, 1547, 1548, 1547, 2589, + 1554, 2589, 1548, 1549, 1548, 1548, 1555, 1548, 1549, 1550, + 1549, 1549, 1556, 1549, 1550, 1551, 1550, 1550, 1557, 1550, + 1551, 1552, 1551, 1551, 1561, 1551, 1552, 1553, 1552, 1552, + + 2589, 1552, 1553, 2589, 1553, 1553, 1554, 1553, 1558, 1559, + 2589, 1554, 1555, 1554, 1554, 2589, 1554, 1555, 1556, 1555, + 1555, 1562, 1555, 1556, 1557, 1556, 1556, 1563, 1556, 1557, + 1561, 1557, 1557, 1564, 1557, 1561, 1560, 1561, 1561, 1565, + 1561, 2589, 2589, 2589, 1558, 1566, 2589, 2589, 2589, 1558, + 2589, 1558, 1558, 2589, 1558, 2589, 1567, 1562, 2589, 2589, + 1568, 2589, 1562, 1563, 1562, 1562, 2589, 1562, 1563, 1564, + 1563, 1563, 1569, 1563, 1564, 1565, 1564, 1564, 1570, 1564, + 1565, 1566, 1565, 1565, 1571, 1565, 1566, 2589, 1566, 1566, + 1572, 1566, 1567, 2589, 2589, 2589, 1568, 1567, 2589, 1567, + + 1567, 1568, 1567, 1568, 1568, 1573, 1568, 2589, 1569, 1574, + 2589, 2589, 2589, 1569, 1570, 1569, 1569, 2589, 1569, 1570, + 1571, 1570, 1570, 1575, 1570, 1571, 1572, 1571, 1571, 1576, + 1571, 1572, 2589, 1572, 1572, 1577, 1572, 2589, 2589, 2589, + 2589, 1573, 2589, 2589, 1578, 1574, 1573, 2589, 1573, 1573, + 1574, 1573, 1574, 1574, 2589, 1574, 1579, 2589, 2589, 1575, + 1580, 2589, 2589, 2589, 1575, 1576, 1575, 1575, 2589, 1575, + 1576, 1577, 1576, 1576, 1581, 1576, 1577, 2589, 1577, 1577, + 1578, 1577, 2589, 1582, 2589, 1578, 2589, 1578, 1578, 1583, + 1578, 2589, 1579, 2589, 2589, 1584, 1580, 1579, 2589, 1579, + + 1579, 1580, 1579, 1580, 1580, 2589, 1580, 1585, 2589, 2589, + 1581, 1586, 2589, 2589, 2589, 1581, 2589, 1581, 1581, 1582, + 1581, 2589, 1587, 2589, 1582, 1583, 1582, 1582, 1588, 1582, + 1583, 1584, 1583, 1583, 1589, 1583, 1584, 2589, 1584, 1584, + 1590, 1584, 2589, 1585, 2589, 2589, 1591, 1586, 1585, 2589, + 1585, 1585, 1586, 1585, 1586, 1586, 2589, 1586, 1587, 1592, + 2589, 2589, 2589, 1587, 1588, 1587, 1587, 2589, 1587, 1588, + 1589, 1588, 1588, 1593, 1588, 1589, 1590, 1589, 1589, 1594, + 1589, 1590, 1591, 1590, 1590, 1595, 1590, 1591, 2589, 1591, + 1591, 1596, 1591, 2589, 2589, 1592, 2589, 1597, 2589, 2589, + + 1592, 2589, 1592, 1592, 2589, 1592, 1598, 2589, 2589, 1593, + 1599, 2589, 2589, 2589, 1593, 1594, 1593, 1593, 2589, 1593, + 1594, 1595, 1594, 1594, 1600, 1594, 1595, 1596, 1595, 1595, + 1601, 1595, 1596, 1597, 1596, 1596, 1602, 1596, 1597, 2589, + 1597, 1597, 1598, 1597, 2589, 1603, 1599, 1598, 2589, 1598, + 1598, 1599, 1598, 1599, 1599, 2589, 1599, 1604, 2589, 2589, + 1600, 1605, 2589, 2589, 2589, 1600, 1601, 1600, 1600, 2589, + 1600, 1601, 1602, 1601, 1601, 1606, 1601, 1602, 2589, 1602, + 1602, 1603, 1602, 2589, 1607, 2589, 1603, 2589, 1603, 1603, + 1608, 1603, 2589, 1604, 2589, 2589, 1609, 1605, 1604, 2589, + + 1604, 1604, 1605, 1604, 1605, 1605, 2589, 1605, 1610, 2589, + 2589, 1606, 1611, 2589, 2589, 2589, 1606, 2589, 1606, 1606, + 1607, 1606, 2589, 1612, 2589, 1607, 1608, 1607, 1607, 1613, + 1607, 1608, 1609, 1608, 1608, 1614, 1608, 1609, 2589, 1609, + 1609, 1615, 1609, 2589, 1610, 2589, 2589, 1616, 1611, 1610, + 2589, 1610, 1610, 1611, 1610, 1611, 1611, 2589, 1611, 1612, + 1617, 2589, 2589, 2589, 1612, 1613, 1612, 1612, 2589, 1612, + 1613, 1614, 1613, 1613, 1618, 1613, 1614, 1615, 1614, 1614, + 1619, 1614, 1615, 1616, 1615, 1615, 1620, 1615, 1616, 2589, + 1616, 1616, 1621, 1616, 2589, 2589, 1617, 2589, 1622, 2589, + + 2589, 1617, 2589, 1617, 1617, 2589, 1617, 1623, 2589, 2589, + 1618, 1624, 2589, 2589, 2589, 1618, 1619, 1618, 1618, 2589, + 1618, 1619, 1620, 1619, 1619, 1625, 1619, 1620, 1621, 1620, + 1620, 1626, 1620, 1621, 1622, 1621, 1621, 1627, 1621, 1622, + 2589, 1622, 1622, 1623, 1622, 2589, 1628, 1624, 1623, 2589, + 1623, 1623, 1624, 1623, 1624, 1624, 2589, 1624, 1629, 2589, + 2589, 1625, 1630, 2589, 2589, 2589, 1625, 1626, 1625, 1625, + 2589, 1625, 1626, 1627, 1626, 1626, 1631, 1626, 1627, 2589, + 1627, 1627, 1628, 1627, 2589, 1632, 2589, 1628, 2589, 1628, + 1628, 1633, 1628, 2589, 1629, 2589, 2589, 1634, 1630, 1629, + + 2589, 1629, 1629, 1630, 1629, 1630, 1630, 2589, 1630, 1635, + 2589, 2589, 1631, 1636, 2589, 2589, 2589, 1631, 2589, 1631, + 1631, 1632, 1631, 2589, 1637, 2589, 1632, 1633, 1632, 1632, + 1638, 1632, 1633, 1634, 1633, 1633, 1639, 1633, 1634, 2589, + 1634, 1634, 1640, 1634, 2589, 1635, 2589, 2589, 1641, 1636, + 1635, 2589, 1635, 1635, 1636, 1635, 1636, 1636, 2589, 1636, + 1637, 1642, 2589, 2589, 2589, 1637, 1638, 1637, 1637, 2589, + 1637, 1638, 1639, 1638, 1638, 1643, 1638, 1639, 1640, 1639, + 1639, 1644, 1639, 1640, 1641, 1640, 1640, 1645, 1640, 1641, + 2589, 1641, 1641, 1646, 1641, 2589, 2589, 1642, 2589, 1647, + + 2589, 2589, 1642, 2589, 1642, 1642, 2589, 1642, 1648, 2589, + 2589, 1643, 1649, 2589, 2589, 2589, 1643, 1644, 1643, 1643, + 2589, 1643, 1644, 1645, 1644, 1644, 1650, 1644, 1645, 1646, + 1645, 1645, 1651, 1645, 1646, 1647, 1646, 1646, 1652, 1646, + 1647, 2589, 1647, 1647, 1648, 1647, 2589, 1653, 1649, 1648, + 2589, 1648, 1648, 1649, 1648, 1649, 1649, 2589, 1649, 1654, + 2589, 2589, 1650, 1655, 2589, 2589, 2589, 1650, 1651, 1650, + 1650, 2589, 1650, 1651, 1652, 1651, 1651, 1656, 1651, 1652, + 2589, 1652, 1652, 1653, 1652, 2589, 1657, 2589, 1653, 2589, + 1653, 1653, 1658, 1653, 2589, 1654, 2589, 2589, 1659, 1655, + + 1654, 2589, 1654, 1654, 1655, 1654, 1655, 1655, 2589, 1655, + 2589, 2589, 1663, 1656, 2589, 2589, 1660, 2589, 1656, 1661, + 1656, 1656, 1657, 1656, 2589, 1664, 2589, 1657, 1658, 1657, + 1657, 1665, 1657, 1658, 1659, 1658, 1658, 2589, 1658, 1659, + 2589, 1659, 1659, 1669, 1659, 2589, 1662, 2589, 1663, 1666, + 2589, 2589, 1660, 1663, 1667, 1663, 1663, 1660, 1663, 1660, + 1660, 1664, 1660, 1670, 2589, 2589, 1664, 1665, 1664, 1664, + 2589, 1664, 1665, 2589, 1665, 1665, 1671, 1665, 2589, 1669, + 1672, 1668, 2589, 2589, 1669, 1666, 1669, 1669, 2589, 1669, + 1666, 1673, 1666, 1666, 2589, 1666, 2589, 1674, 2589, 1670, + + 2589, 2589, 2589, 1675, 1670, 2589, 1670, 1670, 2589, 1670, + 2589, 2589, 1671, 2589, 1676, 2589, 1672, 1671, 1677, 1671, + 1671, 1672, 1671, 1672, 1672, 2589, 1672, 1673, 2589, 1678, + 2589, 2589, 1673, 1674, 1673, 1673, 2589, 1673, 1674, 1675, + 1674, 1674, 1679, 1674, 1675, 2589, 1675, 1675, 1680, 1675, + 1676, 2589, 2589, 2589, 1677, 1676, 2589, 1676, 1676, 1677, + 1676, 1677, 1677, 1681, 1677, 1678, 2589, 1682, 2589, 2589, + 1678, 2589, 1678, 1678, 2589, 1678, 1683, 2589, 1679, 2589, + 1684, 2589, 2589, 1679, 1680, 1679, 1679, 2589, 1679, 1680, + 2589, 1680, 1680, 1685, 1680, 2589, 2589, 1686, 2589, 1681, + + 2589, 2589, 2589, 1682, 1681, 2589, 1681, 1681, 1682, 1681, + 1682, 1682, 1683, 1682, 1687, 2589, 1684, 1683, 1688, 1683, + 1683, 1684, 1683, 1684, 1684, 2589, 1684, 1689, 2589, 1685, + 2589, 1690, 2589, 1686, 1685, 2589, 1685, 1685, 1686, 1685, + 1686, 1686, 1691, 1686, 2589, 2589, 2589, 2589, 2589, 2589, + 1687, 1692, 2589, 2589, 1688, 1687, 2589, 1687, 1687, 1688, + 1687, 1688, 1688, 1689, 1688, 1695, 1693, 1690, 1689, 1696, + 1689, 1689, 1690, 1689, 1690, 1690, 2589, 1690, 1691, 2589, + 1697, 2589, 2589, 1691, 1698, 1691, 1691, 1692, 1691, 2589, + 2589, 2589, 1692, 1694, 1692, 1692, 1699, 1692, 2589, 2589, + + 1700, 1695, 2589, 2589, 2589, 1696, 1695, 2589, 1695, 1695, + 1696, 1695, 1696, 1696, 1701, 1696, 1697, 2589, 1702, 2589, + 1698, 1697, 2589, 1697, 1697, 1698, 1697, 1698, 1698, 1703, + 1698, 2589, 1699, 1704, 2589, 2589, 1700, 1699, 2589, 1699, + 1699, 1700, 1699, 1700, 1700, 1705, 1700, 2589, 2589, 1706, + 1701, 2589, 2589, 2589, 1702, 1701, 2589, 1701, 1701, 1702, + 1701, 1702, 1702, 1707, 1702, 1703, 2589, 1708, 2589, 1704, + 1703, 2589, 1703, 1703, 1704, 1703, 1704, 1704, 1709, 1704, + 2589, 1705, 1710, 2589, 2589, 1706, 1705, 2589, 1705, 1705, + 1706, 1705, 1706, 1706, 1711, 1706, 2589, 2589, 1712, 1707, + + 2589, 2589, 2589, 1708, 1707, 2589, 1707, 1707, 1708, 1707, + 1708, 1708, 1713, 1708, 1709, 2589, 1714, 2589, 1710, 1709, + 2589, 1709, 1709, 1710, 1709, 1710, 1710, 1715, 1710, 2589, + 1711, 1716, 2589, 2589, 1712, 1711, 2589, 1711, 1711, 1712, + 1711, 1712, 1712, 2589, 1712, 1724, 2589, 2589, 1713, 2589, + 2589, 2589, 1714, 1713, 2589, 1713, 1713, 1714, 1713, 1714, + 1714, 2589, 1714, 1715, 1717, 1718, 2589, 1716, 1715, 1719, + 1715, 1715, 1716, 1715, 1716, 1716, 2589, 1716, 1725, 1720, + 2589, 1724, 2589, 2589, 1730, 1731, 1724, 2589, 1724, 1724, + 1726, 1724, 1721, 1733, 2589, 1727, 1722, 2589, 2589, 1736, + + 1717, 2589, 2589, 2589, 2589, 1717, 1723, 1717, 1717, 2589, + 1717, 1734, 1732, 1737, 1725, 2589, 2589, 1728, 2589, 1725, + 1730, 1725, 1729, 2589, 1725, 1730, 1738, 1730, 1730, 1733, + 1730, 2589, 1739, 2589, 1733, 1736, 1733, 1733, 1735, 1733, + 1736, 1740, 1736, 1736, 2589, 1736, 2589, 1741, 2589, 1737, + 2589, 2589, 2589, 1742, 1737, 2589, 1737, 1737, 2589, 1737, + 2589, 2589, 1738, 2589, 1743, 2589, 2589, 1738, 1739, 1738, + 1738, 2589, 1738, 1739, 2589, 1739, 1739, 1740, 1739, 1744, + 2589, 2589, 1740, 1741, 1740, 1740, 2589, 1740, 1741, 1742, + 1741, 1741, 1745, 1741, 1742, 2589, 1742, 1742, 1746, 1742, + + 1743, 2589, 2589, 2589, 1747, 1743, 2589, 1743, 1743, 2589, + 1743, 2589, 2589, 1748, 2589, 1744, 2589, 1749, 2589, 2589, + 1744, 2589, 1744, 1744, 2589, 1744, 1750, 2589, 1745, 2589, + 1751, 2589, 2589, 1745, 1746, 1745, 1745, 2589, 1745, 1746, + 1747, 1746, 1746, 1752, 1746, 1747, 2589, 1747, 1747, 1748, + 1747, 2589, 1753, 1749, 1748, 2589, 1748, 1748, 1749, 1748, + 1749, 1749, 1750, 1749, 1754, 2589, 1751, 1750, 1755, 1750, + 1750, 1751, 1750, 1751, 1751, 2589, 1751, 1756, 2589, 1752, + 2589, 1757, 2589, 2589, 1752, 2589, 1752, 1752, 1753, 1752, + 1758, 2589, 2589, 1753, 1759, 1753, 1753, 2589, 1753, 2589, + + 1754, 2589, 2589, 1760, 1755, 1754, 2589, 1754, 1754, 1755, + 1754, 1755, 1755, 1756, 1755, 1761, 2589, 1757, 1756, 1762, + 1756, 1756, 1757, 1756, 1757, 1757, 1758, 1757, 1763, 2589, + 1759, 1758, 1764, 1758, 1758, 1759, 1758, 1759, 1759, 1760, + 1759, 1765, 2589, 2589, 1760, 1766, 1760, 1760, 2589, 1760, + 2589, 1761, 2589, 2589, 1767, 1762, 1761, 2589, 1761, 1761, + 1762, 1761, 1762, 1762, 1763, 1762, 1768, 2589, 1764, 1763, + 1769, 1763, 1763, 1764, 1763, 1764, 1764, 1765, 1764, 1770, + 2589, 1766, 1765, 1771, 1765, 1765, 1766, 1765, 1766, 1766, + 1767, 1766, 1772, 2589, 2589, 1767, 1773, 1767, 1767, 2589, + + 1767, 2589, 1768, 2589, 2589, 1774, 1769, 1768, 2589, 1768, + 1768, 1769, 1768, 1769, 1769, 1770, 1769, 1775, 2589, 1771, + 1770, 1776, 1770, 1770, 1771, 1770, 1771, 1771, 1772, 1771, + 1777, 2589, 1773, 1772, 1778, 1772, 1772, 1773, 1772, 1773, + 1773, 1774, 1773, 1779, 2589, 2589, 1774, 1780, 1774, 1774, + 2589, 1774, 2589, 1775, 2589, 2589, 1781, 1776, 1775, 2589, + 1775, 1775, 1776, 1775, 1776, 1776, 1777, 1776, 1782, 2589, + 1778, 1777, 1783, 1777, 1777, 1778, 1777, 1778, 1778, 1779, + 1778, 1784, 2589, 1780, 1779, 1785, 1779, 1779, 1780, 1779, + 1780, 1780, 1781, 1780, 1786, 2589, 2589, 1781, 1787, 1781, + + 1781, 2589, 1781, 2589, 1782, 2589, 2589, 1788, 1783, 1782, + 2589, 1782, 1782, 1783, 1782, 1783, 1783, 1784, 1783, 1789, + 2589, 1785, 1784, 1790, 1784, 1784, 1785, 1784, 1785, 1785, + 1786, 1785, 1791, 2589, 1787, 1786, 1792, 1786, 1786, 1787, + 1786, 1787, 1787, 1788, 1787, 1793, 2589, 2589, 1788, 1794, + 1788, 1788, 2589, 1788, 2589, 1789, 2589, 2589, 1795, 1790, + 1789, 2589, 1789, 1789, 1790, 1789, 1790, 1790, 1791, 1790, + 1796, 2589, 1792, 1791, 1797, 1791, 1791, 1792, 1791, 1792, + 1792, 1793, 1792, 1798, 2589, 1794, 1793, 1799, 1793, 1793, + 1794, 1793, 1794, 1794, 1795, 1794, 1800, 2589, 2589, 1795, + + 1801, 1795, 1795, 2589, 1795, 2589, 1796, 2589, 2589, 1802, + 1797, 1796, 2589, 1796, 1796, 1797, 1796, 1797, 1797, 1798, + 1797, 1803, 2589, 1799, 1798, 1804, 1798, 1798, 1799, 1798, + 1799, 1799, 1800, 1799, 1805, 2589, 1801, 1800, 1806, 1800, + 1800, 1801, 1800, 1801, 1801, 1802, 1801, 1807, 2589, 2589, + 1802, 1808, 1802, 1802, 2589, 1802, 2589, 1803, 2589, 2589, + 1809, 1804, 1803, 2589, 1803, 1803, 1804, 1803, 1804, 1804, + 1805, 1804, 1810, 2589, 1806, 1805, 1811, 1805, 1805, 1806, + 1805, 1806, 1806, 1807, 1806, 1812, 2589, 1808, 1807, 1813, + 1807, 1807, 1808, 1807, 1808, 1808, 1809, 1808, 1814, 2589, + + 2589, 1809, 1815, 1809, 1809, 2589, 1809, 2589, 1810, 2589, + 2589, 1816, 1811, 1810, 2589, 1810, 1810, 1811, 1810, 1811, + 1811, 1812, 1811, 1817, 2589, 1813, 1812, 1818, 1812, 1812, + 1813, 1812, 1813, 1813, 1814, 1813, 1819, 2589, 1815, 1814, + 1820, 1814, 1814, 1815, 1814, 1815, 1815, 1816, 1815, 1821, + 2589, 2589, 1816, 1822, 1816, 1816, 2589, 1816, 2589, 1817, + 2589, 2589, 1823, 1818, 1817, 2589, 1817, 1817, 1818, 1817, + 1818, 1818, 1819, 1818, 1824, 2589, 1820, 1819, 1825, 1819, + 1819, 1820, 1819, 1820, 1820, 1821, 1820, 1826, 2589, 1822, + 1821, 1827, 1821, 1821, 1822, 1821, 1822, 1822, 1823, 1822, + + 1828, 2589, 2589, 1823, 1829, 1823, 1823, 2589, 1823, 2589, + 1824, 2589, 2589, 1830, 1825, 1824, 2589, 1824, 1824, 1825, + 1824, 1825, 1825, 1826, 1825, 1831, 2589, 1827, 1826, 1832, + 1826, 1826, 1827, 1826, 1827, 1827, 1828, 1827, 1833, 2589, + 1829, 1828, 1834, 1828, 1828, 1829, 1828, 1829, 1829, 1830, + 1829, 1835, 2589, 2589, 1830, 1836, 1830, 1830, 2589, 1830, + 2589, 1831, 2589, 2589, 1837, 1832, 1831, 2589, 1831, 1831, + 1832, 1831, 1832, 1832, 1833, 1832, 1838, 2589, 1834, 1833, + 1839, 1833, 1833, 1834, 1833, 1834, 1834, 1835, 1834, 1840, + 2589, 1836, 1835, 1841, 1835, 1835, 1836, 1835, 1836, 1836, + + 1837, 1836, 1842, 2589, 2589, 1837, 1843, 1837, 1837, 2589, + 1837, 2589, 1838, 2589, 2589, 1844, 1839, 1838, 2589, 1838, + 1838, 1839, 1838, 1839, 1839, 1840, 1839, 1845, 2589, 1841, + 1840, 1846, 1840, 1840, 1841, 1840, 1841, 1841, 1842, 1841, + 1847, 2589, 1843, 1842, 1848, 1842, 1842, 1843, 1842, 1843, + 1843, 1844, 1843, 1849, 2589, 2589, 1844, 1850, 1844, 1844, + 2589, 1844, 2589, 1845, 2589, 2589, 1851, 1846, 1845, 2589, + 1845, 1845, 1846, 1845, 1846, 1846, 1847, 1846, 1852, 2589, + 1848, 1847, 1853, 1847, 1847, 1848, 1847, 1848, 1848, 1849, + 1848, 1854, 2589, 1850, 1849, 1855, 1849, 1849, 1850, 1849, + + 1850, 1850, 1851, 1850, 1856, 2589, 2589, 1851, 1857, 1851, + 1851, 2589, 1851, 2589, 1852, 2589, 2589, 1858, 1853, 1852, + 2589, 1852, 1852, 1853, 1852, 1853, 1853, 1854, 1853, 1859, + 2589, 1855, 1854, 1860, 1854, 1854, 1855, 1854, 1855, 1855, + 1856, 1855, 1861, 2589, 1857, 1856, 1862, 1856, 1856, 1857, + 1856, 1857, 1857, 1858, 1857, 1863, 2589, 2589, 1858, 1864, + 1858, 1858, 2589, 1858, 2589, 1859, 2589, 2589, 1865, 1860, + 1859, 2589, 1859, 1859, 1860, 1859, 1860, 1860, 1861, 1860, + 1866, 2589, 1862, 1861, 1867, 1861, 1861, 1862, 1861, 1862, + 1862, 1863, 1862, 1868, 2589, 1864, 1863, 1869, 1863, 1863, + + 1864, 1863, 1864, 1864, 1865, 1864, 1870, 2589, 2589, 1865, + 1871, 1865, 1865, 2589, 1865, 2589, 1866, 2589, 2589, 1872, + 1867, 1866, 2589, 1866, 1866, 1867, 1866, 1867, 1867, 1868, + 1867, 1873, 2589, 1869, 1868, 1874, 1868, 1868, 1869, 1868, + 1869, 1869, 1870, 1869, 1875, 2589, 1871, 1870, 1876, 1870, + 1870, 1871, 1870, 1871, 1871, 1872, 1871, 1877, 2589, 2589, + 1872, 1878, 1872, 1872, 2589, 1872, 2589, 1873, 2589, 2589, + 1879, 1874, 1873, 2589, 1873, 1873, 1874, 1873, 1874, 1874, + 1875, 1874, 1880, 2589, 1876, 1875, 1881, 1875, 1875, 1876, + 1875, 1876, 1876, 1877, 1876, 1882, 2589, 1878, 1877, 1883, + + 1877, 1877, 1878, 1877, 1878, 1878, 1879, 1878, 1884, 2589, + 2589, 1879, 1885, 1879, 1879, 2589, 1879, 2589, 1880, 2589, + 2589, 1886, 1881, 1880, 2589, 1880, 1880, 1881, 1880, 1881, + 1881, 1882, 1881, 1887, 2589, 1883, 1882, 1888, 1882, 1882, + 1883, 1882, 1883, 1883, 1884, 1883, 1889, 2589, 1885, 1884, + 1890, 1884, 1884, 1885, 1884, 1885, 1885, 1886, 1885, 1891, + 2589, 2589, 1886, 1892, 1886, 1886, 2589, 1886, 2589, 1887, + 2589, 2589, 1893, 1888, 1887, 2589, 1887, 1887, 1888, 1887, + 1888, 1888, 1889, 1888, 1894, 2589, 1890, 1889, 1895, 1889, + 1889, 1890, 1889, 1890, 1890, 1891, 1890, 1896, 2589, 1892, + + 1891, 1897, 1891, 1891, 1892, 1891, 1892, 1892, 1893, 1892, + 1898, 2589, 2589, 1893, 1899, 1893, 1893, 2589, 1893, 2589, + 1894, 2589, 2589, 1900, 1895, 1894, 2589, 1894, 1894, 1895, + 1894, 1895, 1895, 1896, 1895, 1901, 2589, 1897, 1896, 1902, + 1896, 1896, 1897, 1896, 1897, 1897, 1898, 1897, 1903, 2589, + 1899, 1898, 1904, 1898, 1898, 1899, 1898, 1899, 1899, 1900, + 1899, 1905, 2589, 2589, 1900, 1906, 1900, 1900, 2589, 1900, + 2589, 1901, 2589, 2589, 1907, 1902, 1901, 2589, 1901, 1901, + 1902, 1901, 1902, 1902, 1903, 1902, 1908, 2589, 1904, 1903, + 1909, 1903, 1903, 1904, 1903, 1904, 1904, 1905, 1904, 1910, + + 2589, 1906, 1905, 1911, 1905, 1905, 1906, 1905, 1906, 1906, + 1907, 1906, 1912, 2589, 2589, 1907, 1913, 1907, 1907, 2589, + 1907, 2589, 1908, 2589, 2589, 1914, 1909, 1908, 2589, 1908, + 1908, 1909, 1908, 1909, 1909, 1910, 1909, 1915, 2589, 1911, + 1910, 1916, 1910, 1910, 1911, 1910, 1911, 1911, 1912, 1911, + 1917, 2589, 1913, 1912, 1918, 1912, 1912, 1913, 1912, 1913, + 1913, 1914, 1913, 1919, 2589, 2589, 1914, 1920, 1914, 1914, + 2589, 1914, 2589, 1915, 2589, 2589, 1921, 1916, 1915, 2589, + 1915, 1915, 1916, 1915, 1916, 1916, 1917, 1916, 1922, 2589, + 1918, 1917, 1923, 1917, 1917, 1918, 1917, 1918, 1918, 1919, + + 1918, 1924, 2589, 1920, 1919, 1925, 1919, 1919, 1920, 1919, + 1920, 1920, 1921, 1920, 1926, 2589, 2589, 1921, 1927, 1921, + 1921, 2589, 1921, 2589, 1922, 2589, 2589, 1928, 1923, 1922, + 2589, 1922, 1922, 1923, 1922, 1923, 1923, 1924, 1923, 1929, + 2589, 1925, 1924, 1930, 1924, 1924, 1925, 1924, 1925, 1925, + 1926, 1925, 1931, 2589, 1927, 1926, 1932, 1926, 1926, 1927, + 1926, 1927, 1927, 1928, 1927, 1933, 2589, 2589, 1928, 1934, + 1928, 1928, 2589, 1928, 2589, 1929, 2589, 2589, 1935, 1930, + 1929, 2589, 1929, 1929, 1930, 1929, 1930, 1930, 1931, 1930, + 1936, 2589, 1932, 1931, 1937, 1931, 1931, 1932, 1931, 1932, + + 1932, 1933, 1932, 1938, 2589, 1934, 1933, 1939, 1933, 1933, + 1934, 1933, 1934, 1934, 1935, 1934, 1940, 2589, 2589, 1935, + 1941, 1935, 1935, 2589, 1935, 2589, 1936, 2589, 2589, 1942, + 1937, 1936, 2589, 1936, 1936, 1937, 1936, 1937, 1937, 1938, + 1937, 1943, 2589, 1939, 1938, 1944, 1938, 1938, 1939, 1938, + 1939, 1939, 1940, 1939, 1945, 2589, 1941, 1940, 1946, 1940, + 1940, 1941, 1940, 1941, 1941, 1942, 1941, 1947, 2589, 2589, + 1942, 1948, 1942, 1942, 2589, 1942, 2589, 1943, 2589, 2589, + 1949, 1944, 1943, 2589, 1943, 1943, 1944, 1943, 1944, 1944, + 1945, 1944, 1950, 2589, 1946, 1945, 1951, 1945, 1945, 1946, + + 1945, 1946, 1946, 1947, 1946, 1952, 2589, 1948, 1947, 2589, + 1947, 1947, 1948, 1947, 1948, 1948, 1949, 1948, 2589, 2589, + 2589, 1949, 2589, 1949, 1949, 2589, 1949, 2589, 1950, 2589, + 2589, 2589, 1951, 1950, 2589, 1950, 1950, 1951, 1950, 1951, + 1951, 1952, 1951, 2589, 2589, 2589, 1952, 2589, 1952, 1952, + 2589, 1952, 604, 604, 638, 638, 668, 668, 698, 698, + 874, 874, 902, 902, 930, 930, 1041, 1041, 1067, 1067, + 1102, 1102, 3, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589 + } ; + +static yyconst flex_int16_t yy_chk[7910] = + { 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, 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, 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, 7, 9, 10, 11, + 84, 89, 84, 117, 84, 1812, 1813, 118, 1814, 1815, + 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 84, 119, + 1824, 1825, 1826, 7, 9, 10, 1827, 1828, 89, 84, + 121, 84, 1829, 1830, 122, 1831, 1832, 1833, 1834, 117, + 1835, 1836, 1837, 118, 117, 1838, 117, 117, 118, 117, + 118, 118, 1839, 118, 1840, 119, 1841, 11, 1842, 1843, + + 119, 1844, 119, 119, 1845, 119, 121, 1846, 1847, 1848, + 122, 121, 1849, 121, 121, 122, 121, 122, 122, 1850, + 122, 7, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 120, 120, 1851, 1852, + 1853, 120, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, + 1862, 120, 1863, 56, 56, 1864, 1865, 1866, 1867, 1868, + + 1869, 1870, 1871, 1872, 120, 1873, 1874, 1875, 120, 56, + 56, 1876, 120, 1877, 1878, 1879, 1880, 120, 120, 120, + 120, 1881, 120, 1882, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 1883, 1884, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 1885, 1886, 1887, 1888, 56, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + + 57, 57, 57, 57, 57, 57, 57, 57, 57, 123, + 123, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, + 1898, 1899, 1900, 1901, 1902, 1903, 57, 57, 1904, 1905, + 1906, 1907, 1908, 1909, 1910, 1911, 1912, 123, 1913, 1914, + 1915, 1916, 57, 57, 1917, 123, 1918, 1919, 1920, 1921, + 123, 1922, 123, 123, 1923, 123, 1924, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 1925, 1926, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 1927, 1928, 1929, 1930, 57, 58, 58, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + + 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 124, 1931, 1932, 1933, 1934, 1935, 1936, 58, + 1937, 1938, 58, 1939, 1940, 1941, 1942, 1943, 1944, 58, + 58, 1945, 1946, 1947, 1948, 58, 1949, 1950, 58, 1951, + 1952, 1953, 2579, 2580, 2581, 58, 58, 2582, 124, 2583, + 2591, 2592, 2601, 124, 2602, 124, 124, 2603, 124, 1811, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + + 58, 1810, 1809, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 58, 58, 58, 58, 1808, 1807, 1806, 1805, + 58, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 125, 2584, 1804, 1803, 1802, + 1801, 2584, 1800, 1799, 1798, 1797, 1796, 1795, 1794, 1793, + 1792, 1791, 1790, 1789, 1788, 1787, 1786, 1785, 1784, 1783, + + 1782, 1781, 1780, 2584, 1779, 1778, 1777, 1776, 2584, 1775, + 1774, 125, 1773, 1772, 1771, 1770, 125, 1769, 125, 125, + 1768, 125, 1767, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 1766, 1765, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 1764, + 1763, 1762, 1761, 59, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + + 60, 60, 60, 60, 60, 60, 60, 60, 126, 1760, + 1759, 1758, 1757, 1756, 1755, 1754, 1753, 1752, 1751, 1750, + 1749, 1748, 1747, 1746, 1745, 60, 60, 1744, 1743, 1742, + 1741, 1740, 1739, 1738, 1737, 1736, 1733, 1730, 1729, 1725, + 1724, 60, 60, 1717, 126, 1716, 1715, 1714, 1713, 126, + 1712, 126, 126, 1711, 126, 1710, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 1709, 1708, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 1707, 1706, 1705, 1704, 60, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 127, 1703, 1702, 1701, 1700, 1699, 1698, 1697, 1696, + 1695, 61, 1692, 1691, 1690, 1689, 1688, 1687, 1686, 1685, + 1684, 1683, 1682, 1681, 1680, 1679, 1678, 61, 1677, 1676, + 1675, 1674, 1673, 1672, 1671, 1670, 1669, 127, 1666, 1665, + 1664, 1663, 127, 1660, 127, 127, 1659, 127, 1658, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + + 1657, 1656, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 1655, 1654, 1653, 1652, 61, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 128, 1651, 1650, 1649, 1648, 1647, + 1646, 1645, 1644, 1643, 1642, 1641, 1640, 1639, 1638, 1637, + 1636, 1635, 1634, 1633, 1632, 1631, 1630, 1629, 1628, 1627, + + 1626, 1625, 1624, 1623, 1622, 1621, 1620, 1619, 1618, 1617, + 128, 1616, 1615, 1614, 1613, 128, 1612, 128, 128, 1611, + 128, 1610, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 1609, 1608, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 1607, 1606, + 1605, 1604, 62, 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, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + + 63, 63, 63, 63, 63, 63, 63, 129, 1603, 1602, + 1601, 1600, 1599, 1598, 1597, 1596, 1595, 1594, 1593, 1592, + 1591, 1590, 1589, 1588, 1587, 1586, 1585, 1584, 1583, 1582, + 1581, 1580, 1579, 1578, 1577, 1576, 1575, 1574, 1573, 1572, + 1571, 1570, 1569, 129, 1568, 1567, 1566, 1565, 129, 1564, + 129, 129, 1563, 129, 1562, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 1561, 1558, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 1557, 1556, 1555, 1554, 63, 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, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 130, 1553, 1552, 1551, 1550, 1549, 1548, 1547, 1546, 1545, + 1544, 1543, 1542, 1541, 1540, 1537, 1534, 1533, 1532, 1531, + 1530, 1529, 1528, 1527, 1526, 1525, 1524, 1523, 1522, 1521, + 1520, 1519, 1518, 1517, 1516, 1515, 130, 1514, 1513, 1512, + 1509, 130, 1508, 130, 130, 1507, 130, 1506, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 1499, + + 1496, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 1495, 1493, 1490, 1487, 64, 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, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 131, 1486, 1485, 1484, 1483, 1482, 1481, + 1480, 1479, 1478, 1475, 1474, 1473, 1472, 1471, 1470, 1469, + 1466, 1465, 1464, 1463, 1458, 1457, 1456, 1453, 1452, 1451, + + 1450, 1449, 1448, 1447, 1446, 1445, 1444, 1443, 1440, 131, + 1439, 1436, 132, 1435, 131, 1434, 131, 131, 133, 131, + 1433, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 134, 1432, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 135, 132, 1431, + 1430, 65, 66, 132, 133, 132, 132, 1429, 132, 133, + 136, 133, 133, 1428, 133, 1427, 1424, 1423, 134, 137, + 1420, 66, 1417, 134, 1414, 134, 134, 1413, 134, 66, + 138, 1412, 1411, 135, 139, 1410, 1409, 1408, 135, 1407, + 135, 135, 1406, 135, 1405, 140, 136, 1401, 66, 141, + + 66, 136, 66, 136, 136, 137, 136, 1398, 1397, 1396, + 137, 1395, 137, 137, 1394, 137, 138, 1393, 1392, 1385, + 139, 138, 1380, 138, 138, 139, 138, 139, 139, 1379, + 139, 140, 1378, 1375, 1374, 141, 140, 1369, 140, 140, + 141, 140, 141, 141, 1364, 141, 1363, 1362, 163, 1361, + 1360, 1359, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 165, 1358, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 1357, 1356, + 1355, 1354, 66, 69, 163, 1353, 1352, 1351, 69, 163, + 1350, 163, 163, 1349, 163, 1348, 164, 164, 1347, 165, + + 1344, 164, 1343, 1340, 165, 164, 165, 165, 1337, 165, + 69, 164, 167, 164, 1336, 69, 164, 1329, 166, 166, + 1324, 1323, 1322, 166, 164, 1321, 1320, 1319, 164, 1318, + 1317, 1316, 164, 166, 1315, 1314, 1307, 164, 164, 164, + 164, 1306, 164, 164, 1305, 1304, 166, 1303, 167, 1302, + 166, 1301, 1300, 167, 166, 167, 167, 1299, 167, 166, + 166, 166, 166, 1298, 166, 1297, 1296, 169, 169, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 170, 1289, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 169, 1288, 168, 1281, 69, + + 70, 172, 168, 169, 1274, 70, 1267, 1266, 169, 1265, + 169, 169, 168, 169, 171, 1264, 170, 1263, 1262, 1261, + 1260, 170, 1259, 170, 170, 1258, 170, 70, 173, 168, + 1257, 1254, 70, 168, 171, 1253, 1252, 172, 168, 168, + 168, 168, 172, 168, 172, 172, 1251, 172, 1248, 1247, + 171, 1245, 1242, 1239, 1236, 171, 1231, 171, 171, 1226, + 171, 171, 1219, 1218, 173, 1217, 1216, 1215, 1214, 173, + 1213, 173, 173, 1212, 173, 1211, 1210, 1209, 1208, 1207, + 1206, 1205, 1204, 1203, 1202, 1201, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 1200, 1197, 70, + + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 1196, 1193, 1188, 1187, 70, 71, 71, 71, + 71, 71, 71, 71, 71, 71, 71, 71, 1180, 1179, + 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 71, 71, 71, 1177, 1175, 1166, 1165, 71, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + + 72, 72, 174, 1164, 1163, 1162, 1161, 1160, 1159, 1158, + 1157, 1156, 1155, 1154, 1153, 1152, 1151, 1150, 1149, 1148, + 1147, 1144, 1143, 1142, 1135, 1134, 1133, 1132, 1128, 96, + 86, 27, 13, 12, 8, 6, 3, 0, 174, 0, + 0, 0, 0, 174, 0, 174, 174, 0, 174, 0, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 0, 0, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 0, 0, 0, 0, + 72, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 175, 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, 175, 0, 0, 0, 0, 175, 0, 175, 175, + 0, 175, 0, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 0, 0, 73, 73, 73, 73, + + 73, 73, 73, 73, 73, 73, 73, 73, 73, 0, + 0, 0, 0, 73, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 176, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 74, 74, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 74, 74, 0, 176, 0, 0, 177, 0, 176, + 0, 176, 176, 178, 176, 0, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 179, 0, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 180, 177, 0, 0, 74, 75, 177, 178, + 177, 177, 0, 177, 178, 181, 178, 178, 0, 178, + 0, 182, 0, 179, 0, 0, 0, 183, 179, 0, + 179, 179, 0, 179, 75, 0, 184, 0, 180, 0, + 185, 0, 0, 180, 0, 180, 180, 0, 180, 0, + 0, 181, 0, 0, 0, 0, 181, 182, 181, 181, + + 0, 181, 182, 183, 182, 182, 0, 182, 183, 0, + 183, 183, 184, 183, 0, 0, 185, 184, 0, 184, + 184, 185, 184, 185, 185, 186, 185, 0, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 187, + 0, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 231, 0, 0, 0, 75, 76, + 232, 186, 0, 0, 0, 0, 186, 0, 186, 186, + 0, 186, 233, 0, 0, 187, 238, 0, 0, 0, + 187, 0, 187, 187, 0, 187, 76, 235, 0, 0, + 231, 0, 0, 0, 238, 231, 232, 231, 231, 0, + + 231, 232, 235, 232, 232, 0, 232, 235, 233, 234, + 234, 0, 238, 233, 234, 233, 233, 238, 233, 238, + 238, 238, 238, 235, 234, 0, 0, 0, 235, 235, + 235, 235, 0, 235, 235, 0, 0, 234, 0, 0, + 0, 234, 0, 0, 0, 234, 0, 0, 0, 0, + 234, 234, 234, 234, 0, 234, 0, 0, 0, 76, + 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, + 0, 0, 76, 76, 76, 76, 76, 76, 76, 76, + 76, 76, 76, 76, 76, 0, 0, 0, 0, 76, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + + 77, 0, 0, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 0, 0, 0, 0, + 77, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 236, 0, 0, 0, 0, + 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, + 0, 236, 0, 0, 0, 0, 236, 236, 236, 236, + 0, 236, 0, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 0, 0, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, 78, 0, + 0, 0, 0, 78, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + + 79, 79, 79, 79, 79, 79, 79, 79, 237, 237, + 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, 237, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 0, 0, 237, + 0, 237, 237, 0, 237, 0, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 0, 0, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 0, 0, 0, 0, 79, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, + + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 0, 0, 0, 0, 80, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 0, + 0, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 240, 0, 0, 0, 81, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 242, 0, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 239, 0, 0, 0, 85, + 240, 0, 0, 0, 239, 240, 0, 240, 240, 0, + 240, 0, 241, 241, 0, 239, 242, 0, 243, 0, + + 0, 242, 0, 242, 242, 0, 242, 244, 0, 0, + 0, 239, 0, 0, 0, 0, 239, 0, 239, 239, + 241, 239, 239, 0, 245, 0, 0, 245, 241, 0, + 246, 0, 0, 241, 243, 241, 241, 0, 241, 243, + 0, 243, 243, 244, 243, 247, 0, 0, 244, 248, + 244, 244, 0, 244, 245, 0, 0, 0, 249, 0, + 245, 0, 250, 0, 0, 245, 246, 245, 245, 0, + 245, 246, 0, 246, 246, 251, 246, 0, 0, 252, + 0, 247, 0, 0, 0, 248, 247, 0, 247, 247, + 248, 247, 248, 248, 249, 248, 253, 0, 250, 249, + + 254, 249, 249, 250, 249, 250, 250, 0, 250, 255, + 0, 251, 0, 0, 0, 252, 251, 0, 251, 251, + 252, 251, 252, 252, 0, 252, 0, 286, 0, 0, + 0, 0, 253, 283, 283, 0, 254, 253, 283, 253, + 253, 254, 253, 254, 254, 255, 254, 0, 283, 0, + 255, 288, 255, 255, 0, 255, 0, 284, 284, 0, + 0, 283, 284, 286, 0, 283, 0, 0, 286, 283, + 286, 286, 284, 286, 283, 283, 283, 283, 0, 283, + 0, 285, 285, 0, 0, 284, 285, 288, 0, 284, + 0, 0, 288, 284, 288, 288, 285, 288, 284, 284, + + 284, 284, 0, 284, 0, 287, 287, 0, 0, 285, + 287, 0, 0, 285, 289, 0, 0, 285, 290, 0, + 287, 0, 285, 285, 285, 285, 0, 285, 0, 291, + 0, 0, 0, 287, 0, 292, 0, 287, 0, 0, + 0, 287, 0, 0, 293, 0, 287, 287, 287, 287, + 289, 287, 0, 294, 290, 289, 0, 289, 289, 290, + 289, 290, 290, 0, 290, 291, 295, 0, 0, 0, + 291, 292, 291, 291, 0, 291, 292, 296, 292, 292, + 293, 292, 0, 297, 0, 293, 0, 293, 293, 294, + 293, 0, 298, 0, 294, 0, 294, 294, 0, 294, + + 0, 0, 295, 0, 0, 300, 0, 295, 0, 295, + 295, 0, 295, 296, 301, 0, 0, 0, 296, 297, + 296, 296, 0, 296, 297, 0, 297, 297, 298, 297, + 0, 0, 0, 298, 0, 298, 298, 0, 298, 299, + 299, 300, 0, 302, 299, 0, 300, 0, 300, 300, + 301, 300, 303, 0, 299, 301, 304, 301, 301, 0, + 301, 0, 0, 0, 0, 305, 0, 299, 0, 306, + 0, 299, 0, 0, 0, 299, 0, 0, 307, 302, + 299, 299, 299, 299, 302, 299, 302, 302, 303, 302, + 329, 0, 304, 303, 330, 303, 303, 304, 303, 304, + + 304, 305, 304, 331, 0, 306, 305, 0, 305, 305, + 306, 305, 306, 306, 307, 306, 0, 0, 331, 307, + 0, 307, 307, 331, 307, 0, 329, 332, 332, 0, + 330, 329, 332, 329, 329, 330, 329, 330, 330, 331, + 330, 333, 332, 0, 331, 331, 331, 331, 0, 331, + 331, 0, 334, 0, 0, 332, 0, 0, 0, 332, + 0, 335, 335, 332, 0, 336, 0, 334, 332, 332, + 332, 332, 0, 332, 0, 0, 337, 333, 0, 0, + 338, 0, 333, 0, 333, 333, 0, 333, 334, 335, + 0, 337, 339, 334, 334, 334, 334, 335, 334, 0, + + 0, 336, 335, 340, 335, 335, 336, 335, 336, 336, + 0, 336, 337, 0, 341, 0, 338, 337, 337, 337, + 337, 338, 337, 338, 338, 342, 338, 0, 339, 343, + 0, 0, 0, 339, 0, 339, 339, 0, 339, 340, + 344, 0, 0, 0, 340, 0, 340, 340, 0, 340, + 341, 345, 0, 0, 0, 341, 0, 341, 341, 0, + 341, 342, 346, 0, 0, 343, 342, 0, 342, 342, + 343, 342, 343, 343, 347, 343, 344, 0, 348, 0, + 0, 344, 0, 344, 344, 0, 344, 345, 0, 349, + 0, 0, 345, 350, 345, 345, 0, 345, 346, 0, + + 0, 0, 351, 346, 0, 346, 346, 0, 346, 0, + 347, 352, 0, 0, 348, 347, 0, 347, 347, 348, + 347, 348, 348, 353, 348, 349, 0, 373, 0, 350, + 349, 0, 349, 349, 350, 349, 350, 350, 351, 350, + 0, 376, 0, 351, 0, 351, 351, 352, 351, 0, + 0, 0, 352, 0, 352, 352, 0, 352, 0, 353, + 374, 0, 0, 373, 353, 374, 353, 353, 373, 353, + 373, 373, 0, 373, 0, 374, 375, 376, 0, 0, + 0, 375, 376, 0, 376, 376, 0, 376, 0, 0, + 377, 375, 374, 0, 378, 0, 374, 0, 0, 0, + + 0, 374, 374, 374, 374, 377, 374, 379, 375, 0, + 0, 0, 375, 380, 380, 0, 0, 375, 375, 375, + 375, 0, 375, 0, 381, 381, 377, 0, 380, 0, + 378, 377, 377, 377, 377, 378, 377, 378, 378, 381, + 378, 380, 382, 379, 381, 0, 383, 0, 379, 380, + 379, 379, 381, 379, 380, 380, 380, 380, 384, 380, + 381, 0, 385, 0, 0, 381, 381, 381, 381, 0, + 381, 381, 0, 386, 0, 0, 0, 387, 382, 0, + 0, 0, 383, 382, 0, 382, 382, 383, 382, 383, + 383, 0, 383, 0, 384, 388, 0, 0, 385, 384, + + 0, 384, 384, 385, 384, 385, 385, 0, 385, 386, + 388, 0, 389, 387, 386, 0, 386, 386, 387, 386, + 387, 387, 0, 387, 389, 390, 0, 0, 0, 389, + 0, 388, 0, 0, 391, 0, 388, 388, 388, 388, + 392, 388, 0, 0, 0, 0, 393, 0, 389, 0, + 0, 389, 394, 389, 0, 389, 389, 0, 389, 0, + 0, 390, 0, 395, 0, 0, 390, 396, 390, 390, + 391, 390, 0, 0, 0, 391, 392, 391, 391, 397, + 391, 392, 393, 392, 392, 0, 392, 393, 394, 393, + 393, 0, 393, 394, 414, 394, 394, 0, 394, 395, + + 411, 411, 0, 396, 395, 0, 395, 395, 396, 395, + 396, 396, 0, 396, 0, 397, 0, 412, 412, 0, + 397, 0, 397, 397, 0, 397, 413, 413, 411, 0, + 414, 0, 0, 0, 0, 414, 411, 414, 414, 0, + 414, 411, 0, 411, 411, 412, 411, 415, 415, 0, + 0, 416, 0, 412, 413, 0, 0, 0, 412, 0, + 412, 412, 413, 412, 417, 0, 0, 413, 418, 413, + 413, 0, 413, 0, 0, 415, 0, 419, 0, 0, + 0, 420, 0, 415, 0, 0, 0, 416, 415, 0, + 415, 415, 416, 415, 416, 416, 421, 416, 0, 0, + + 417, 0, 422, 0, 418, 417, 0, 417, 417, 418, + 417, 418, 418, 419, 418, 423, 0, 420, 419, 424, + 419, 419, 420, 419, 420, 420, 0, 420, 0, 0, + 426, 0, 421, 0, 0, 0, 425, 421, 422, 421, + 421, 425, 421, 422, 0, 422, 422, 428, 422, 0, + 0, 423, 0, 427, 427, 424, 423, 0, 423, 423, + 424, 423, 424, 424, 429, 424, 426, 0, 425, 0, + 430, 426, 425, 426, 426, 0, 426, 425, 0, 425, + 425, 427, 425, 428, 431, 0, 0, 0, 428, 427, + 428, 428, 0, 428, 427, 432, 427, 427, 0, 427, + + 429, 433, 0, 0, 0, 429, 430, 429, 429, 0, + 429, 430, 434, 430, 430, 0, 430, 0, 435, 0, + 431, 0, 0, 0, 476, 431, 0, 431, 431, 0, + 431, 432, 0, 477, 0, 0, 432, 433, 432, 432, + 0, 432, 433, 0, 433, 433, 479, 433, 434, 0, + 0, 0, 0, 434, 435, 434, 434, 478, 434, 435, + 476, 435, 435, 480, 435, 476, 0, 476, 476, 477, + 476, 0, 0, 0, 477, 478, 477, 477, 0, 477, + 481, 481, 479, 0, 482, 0, 0, 479, 0, 479, + 479, 0, 479, 478, 0, 481, 483, 0, 478, 480, + + 478, 478, 478, 478, 480, 484, 480, 480, 481, 480, + 0, 485, 0, 0, 0, 0, 481, 486, 0, 0, + 482, 481, 481, 481, 481, 482, 481, 482, 482, 485, + 482, 487, 483, 0, 0, 488, 0, 483, 0, 483, + 483, 484, 483, 0, 489, 0, 484, 485, 484, 484, + 490, 484, 485, 486, 485, 485, 485, 485, 486, 491, + 486, 486, 0, 486, 0, 492, 0, 487, 0, 0, + 0, 488, 487, 0, 487, 487, 488, 487, 488, 488, + 489, 488, 493, 492, 0, 489, 490, 489, 489, 0, + 489, 490, 0, 490, 490, 491, 490, 494, 0, 0, + + 491, 492, 491, 491, 0, 491, 492, 0, 492, 492, + 492, 492, 495, 0, 0, 0, 496, 0, 493, 0, + 0, 0, 0, 493, 0, 493, 493, 497, 493, 0, + 0, 498, 0, 494, 0, 0, 0, 0, 494, 0, + 494, 494, 499, 494, 0, 0, 500, 0, 495, 0, + 0, 0, 496, 495, 0, 495, 495, 496, 495, 496, + 496, 520, 496, 497, 0, 0, 0, 498, 497, 0, + 497, 497, 498, 497, 498, 498, 521, 498, 499, 0, + 0, 0, 500, 499, 0, 499, 499, 500, 499, 500, + 500, 522, 500, 0, 0, 0, 521, 520, 0, 0, + + 522, 0, 520, 523, 520, 520, 0, 520, 0, 524, + 0, 522, 521, 0, 0, 0, 0, 521, 0, 521, + 521, 0, 521, 521, 524, 0, 0, 522, 525, 525, + 0, 0, 522, 0, 522, 522, 0, 522, 522, 523, + 526, 0, 0, 525, 523, 524, 523, 523, 525, 523, + 524, 524, 524, 524, 527, 524, 525, 0, 528, 0, + 0, 0, 0, 0, 525, 0, 0, 529, 0, 525, + 525, 525, 525, 0, 525, 525, 526, 0, 0, 530, + 0, 526, 0, 526, 526, 531, 526, 529, 0, 0, + 527, 532, 0, 0, 528, 527, 0, 527, 527, 528, + + 527, 528, 528, 529, 528, 533, 0, 0, 529, 534, + 529, 529, 0, 529, 529, 530, 0, 0, 535, 0, + 530, 531, 530, 530, 536, 530, 531, 532, 531, 531, + 537, 531, 532, 0, 532, 532, 538, 532, 0, 0, + 0, 533, 539, 0, 0, 534, 533, 0, 533, 533, + 534, 533, 534, 534, 535, 534, 540, 0, 0, 535, + 536, 535, 535, 0, 535, 536, 537, 536, 536, 541, + 536, 537, 538, 537, 537, 542, 537, 538, 539, 538, + 538, 543, 538, 539, 0, 539, 539, 544, 539, 0, + 0, 0, 540, 579, 0, 0, 0, 540, 0, 540, + + 540, 0, 540, 0, 580, 541, 0, 0, 581, 0, + 541, 542, 541, 541, 0, 541, 542, 543, 542, 542, + 582, 542, 543, 544, 543, 543, 583, 543, 544, 579, + 544, 544, 584, 544, 579, 0, 579, 579, 585, 579, + 580, 0, 0, 0, 581, 580, 0, 580, 580, 581, + 580, 581, 581, 586, 581, 0, 582, 0, 0, 588, + 0, 582, 583, 582, 582, 587, 582, 583, 584, 583, + 583, 586, 583, 584, 585, 584, 584, 589, 584, 585, + 0, 585, 585, 590, 585, 587, 0, 0, 0, 586, + 0, 0, 591, 0, 586, 588, 586, 586, 586, 586, + + 588, 587, 588, 588, 592, 588, 587, 0, 587, 587, + 593, 587, 587, 589, 0, 0, 594, 0, 589, 590, + 589, 589, 595, 589, 590, 0, 590, 590, 591, 590, + 0, 596, 0, 591, 0, 591, 591, 597, 591, 0, + 592, 0, 0, 598, 0, 592, 593, 592, 592, 599, + 592, 593, 594, 593, 593, 600, 593, 594, 595, 594, + 594, 601, 594, 595, 0, 595, 595, 596, 595, 0, + 602, 0, 596, 597, 596, 596, 603, 596, 597, 598, + 597, 597, 611, 597, 598, 599, 598, 598, 612, 598, + 599, 600, 599, 599, 614, 599, 600, 601, 600, 600, + + 0, 600, 601, 0, 601, 601, 602, 601, 613, 613, + 0, 602, 603, 602, 602, 0, 602, 603, 611, 603, + 603, 615, 603, 611, 612, 611, 611, 616, 611, 612, + 614, 612, 612, 617, 612, 614, 613, 614, 614, 618, + 614, 0, 0, 0, 613, 619, 0, 0, 0, 613, + 0, 613, 613, 0, 613, 0, 620, 615, 0, 0, + 621, 0, 615, 616, 615, 615, 0, 615, 616, 617, + 616, 616, 622, 616, 617, 618, 617, 617, 623, 617, + 618, 619, 618, 618, 624, 618, 619, 0, 619, 619, + 625, 619, 620, 0, 0, 0, 621, 620, 0, 620, + + 620, 621, 620, 621, 621, 626, 621, 0, 622, 627, + 0, 0, 0, 622, 623, 622, 622, 0, 622, 623, + 624, 623, 623, 628, 623, 624, 625, 624, 624, 629, + 624, 625, 0, 625, 625, 630, 625, 0, 0, 0, + 0, 626, 0, 0, 631, 627, 626, 0, 626, 626, + 627, 626, 627, 627, 0, 627, 632, 0, 0, 628, + 633, 0, 0, 0, 628, 629, 628, 628, 0, 628, + 629, 630, 629, 629, 634, 629, 630, 0, 630, 630, + 631, 630, 0, 635, 0, 631, 0, 631, 631, 643, + 631, 0, 632, 0, 0, 644, 633, 632, 0, 632, + + 632, 633, 632, 633, 633, 0, 633, 645, 0, 0, + 634, 646, 0, 0, 0, 634, 0, 634, 634, 635, + 634, 0, 647, 0, 635, 643, 635, 635, 648, 635, + 643, 644, 643, 643, 649, 643, 644, 0, 644, 644, + 650, 644, 0, 645, 0, 0, 651, 646, 645, 0, + 645, 645, 646, 645, 646, 646, 0, 646, 647, 652, + 0, 0, 0, 647, 648, 647, 647, 0, 647, 648, + 649, 648, 648, 653, 648, 649, 650, 649, 649, 654, + 649, 650, 651, 650, 650, 655, 650, 651, 0, 651, + 651, 656, 651, 0, 0, 652, 0, 657, 0, 0, + + 652, 0, 652, 652, 0, 652, 658, 0, 0, 653, + 659, 0, 0, 0, 653, 654, 653, 653, 0, 653, + 654, 655, 654, 654, 660, 654, 655, 656, 655, 655, + 661, 655, 656, 657, 656, 656, 662, 656, 657, 0, + 657, 657, 658, 657, 0, 663, 659, 658, 0, 658, + 658, 659, 658, 659, 659, 0, 659, 664, 0, 0, + 660, 665, 0, 0, 0, 660, 661, 660, 660, 0, + 660, 661, 662, 661, 661, 666, 661, 662, 0, 662, + 662, 663, 662, 0, 667, 0, 663, 0, 663, 663, + 673, 663, 0, 664, 0, 0, 674, 665, 664, 0, + + 664, 664, 665, 664, 665, 665, 0, 665, 675, 0, + 0, 666, 676, 0, 0, 0, 666, 0, 666, 666, + 667, 666, 0, 677, 0, 667, 673, 667, 667, 678, + 667, 673, 674, 673, 673, 679, 673, 674, 0, 674, + 674, 680, 674, 0, 675, 0, 0, 681, 676, 675, + 0, 675, 675, 676, 675, 676, 676, 0, 676, 677, + 682, 0, 0, 0, 677, 678, 677, 677, 0, 677, + 678, 679, 678, 678, 683, 678, 679, 680, 679, 679, + 684, 679, 680, 681, 680, 680, 685, 680, 681, 0, + 681, 681, 686, 681, 0, 0, 682, 0, 687, 0, + + 0, 682, 0, 682, 682, 0, 682, 688, 0, 0, + 683, 689, 0, 0, 0, 683, 684, 683, 683, 0, + 683, 684, 685, 684, 684, 690, 684, 685, 686, 685, + 685, 691, 685, 686, 687, 686, 686, 692, 686, 687, + 0, 687, 687, 688, 687, 0, 693, 689, 688, 0, + 688, 688, 689, 688, 689, 689, 0, 689, 694, 0, + 0, 690, 695, 0, 0, 0, 690, 691, 690, 690, + 0, 690, 691, 692, 691, 691, 696, 691, 692, 0, + 692, 692, 693, 692, 0, 697, 0, 693, 0, 693, + 693, 699, 693, 0, 694, 0, 0, 700, 695, 694, + + 0, 694, 694, 695, 694, 695, 695, 0, 695, 701, + 0, 0, 696, 702, 0, 0, 0, 696, 0, 696, + 696, 697, 696, 0, 703, 0, 697, 699, 697, 697, + 704, 697, 699, 700, 699, 699, 705, 699, 700, 0, + 700, 700, 706, 700, 0, 701, 0, 0, 707, 702, + 701, 0, 701, 701, 702, 701, 702, 702, 0, 702, + 703, 708, 0, 0, 0, 703, 704, 703, 703, 0, + 703, 704, 705, 704, 704, 709, 704, 705, 706, 705, + 705, 710, 705, 706, 707, 706, 706, 711, 706, 707, + 0, 707, 707, 712, 707, 0, 0, 708, 0, 713, + + 0, 0, 708, 0, 708, 708, 0, 708, 714, 0, + 0, 709, 715, 0, 0, 0, 709, 710, 709, 709, + 0, 709, 710, 711, 710, 710, 716, 710, 711, 712, + 711, 711, 717, 711, 712, 713, 712, 712, 718, 712, + 713, 0, 713, 713, 714, 713, 0, 719, 715, 714, + 0, 714, 714, 715, 714, 715, 715, 0, 715, 720, + 0, 0, 716, 721, 0, 0, 0, 716, 717, 716, + 716, 0, 716, 717, 718, 717, 717, 722, 717, 718, + 0, 718, 718, 719, 718, 0, 723, 0, 719, 0, + 719, 719, 747, 719, 0, 720, 0, 0, 748, 721, + + 720, 0, 720, 720, 721, 720, 721, 721, 0, 721, + 0, 0, 750, 722, 0, 0, 749, 0, 722, 749, + 722, 722, 723, 722, 0, 751, 0, 723, 747, 723, + 723, 752, 723, 747, 748, 747, 747, 0, 747, 748, + 0, 748, 748, 754, 748, 0, 749, 0, 750, 753, + 0, 0, 749, 750, 753, 750, 750, 749, 750, 749, + 749, 751, 749, 755, 0, 0, 751, 752, 751, 751, + 0, 751, 752, 0, 752, 752, 756, 752, 0, 754, + 757, 753, 0, 0, 754, 753, 754, 754, 0, 754, + 753, 758, 753, 753, 0, 753, 0, 759, 0, 755, + + 0, 0, 0, 760, 755, 0, 755, 755, 0, 755, + 0, 0, 756, 0, 761, 0, 757, 756, 762, 756, + 756, 757, 756, 757, 757, 0, 757, 758, 0, 763, + 0, 0, 758, 759, 758, 758, 0, 758, 759, 760, + 759, 759, 764, 759, 760, 0, 760, 760, 765, 760, + 761, 0, 0, 0, 762, 761, 0, 761, 761, 762, + 761, 762, 762, 766, 762, 763, 0, 767, 0, 0, + 763, 0, 763, 763, 0, 763, 768, 0, 764, 0, + 769, 0, 0, 764, 765, 764, 764, 0, 764, 765, + 0, 765, 765, 770, 765, 0, 0, 771, 0, 766, + + 0, 0, 0, 767, 766, 0, 766, 766, 767, 766, + 767, 767, 768, 767, 783, 0, 769, 768, 784, 768, + 768, 769, 768, 769, 769, 0, 769, 785, 0, 770, + 0, 786, 0, 771, 770, 0, 770, 770, 771, 770, + 771, 771, 787, 771, 0, 0, 0, 0, 0, 0, + 783, 788, 0, 0, 784, 783, 0, 783, 783, 784, + 783, 784, 784, 785, 784, 789, 788, 786, 785, 790, + 785, 785, 786, 785, 786, 786, 0, 786, 787, 0, + 791, 0, 0, 787, 792, 787, 787, 788, 787, 0, + 0, 0, 788, 788, 788, 788, 793, 788, 0, 0, + + 794, 789, 0, 0, 0, 790, 789, 0, 789, 789, + 790, 789, 790, 790, 795, 790, 791, 0, 796, 0, + 792, 791, 0, 791, 791, 792, 791, 792, 792, 797, + 792, 0, 793, 798, 0, 0, 794, 793, 0, 793, + 793, 794, 793, 794, 794, 799, 794, 0, 0, 800, + 795, 0, 0, 0, 796, 795, 0, 795, 795, 796, + 795, 796, 796, 801, 796, 797, 0, 802, 0, 798, + 797, 0, 797, 797, 798, 797, 798, 798, 803, 798, + 0, 799, 804, 0, 0, 800, 799, 0, 799, 799, + 800, 799, 800, 800, 805, 800, 0, 0, 806, 801, + + 0, 0, 0, 802, 801, 0, 801, 801, 802, 801, + 802, 802, 807, 802, 803, 0, 849, 0, 804, 803, + 0, 803, 803, 804, 803, 804, 804, 850, 804, 0, + 805, 851, 0, 0, 806, 805, 0, 805, 805, 806, + 805, 806, 806, 0, 806, 853, 0, 0, 807, 0, + 0, 0, 849, 807, 0, 807, 807, 849, 807, 849, + 849, 0, 849, 850, 852, 852, 0, 851, 850, 852, + 850, 850, 851, 850, 851, 851, 0, 851, 854, 852, + 0, 853, 0, 0, 855, 855, 853, 0, 853, 853, + 854, 853, 852, 856, 0, 854, 852, 0, 0, 857, + + 852, 0, 0, 0, 0, 852, 852, 852, 852, 0, + 852, 856, 855, 858, 854, 0, 0, 854, 0, 854, + 855, 854, 854, 0, 854, 855, 859, 855, 855, 856, + 855, 0, 860, 0, 856, 857, 856, 856, 856, 856, + 857, 861, 857, 857, 0, 857, 0, 862, 0, 858, + 0, 0, 0, 863, 858, 0, 858, 858, 0, 858, + 0, 0, 859, 0, 864, 0, 0, 859, 860, 859, + 859, 0, 859, 860, 0, 860, 860, 861, 860, 865, + 0, 0, 861, 862, 861, 861, 0, 861, 862, 863, + 862, 862, 866, 862, 863, 0, 863, 863, 867, 863, + + 864, 0, 0, 0, 868, 864, 0, 864, 864, 0, + 864, 0, 0, 869, 0, 865, 0, 870, 0, 0, + 865, 0, 865, 865, 0, 865, 871, 0, 866, 0, + 872, 0, 0, 866, 867, 866, 866, 0, 866, 867, + 868, 867, 867, 873, 867, 868, 0, 868, 868, 869, + 868, 0, 877, 870, 869, 0, 869, 869, 870, 869, + 870, 870, 871, 870, 878, 0, 872, 871, 879, 871, + 871, 872, 871, 872, 872, 0, 872, 880, 0, 873, + 0, 881, 0, 0, 873, 0, 873, 873, 877, 873, + 882, 0, 0, 877, 883, 877, 877, 0, 877, 0, + + 878, 0, 0, 884, 879, 878, 0, 878, 878, 879, + 878, 879, 879, 880, 879, 885, 0, 881, 880, 886, + 880, 880, 881, 880, 881, 881, 882, 881, 887, 0, + 883, 882, 888, 882, 882, 883, 882, 883, 883, 884, + 883, 889, 0, 0, 884, 890, 884, 884, 0, 884, + 0, 885, 0, 0, 891, 886, 885, 0, 885, 885, + 886, 885, 886, 886, 887, 886, 892, 0, 888, 887, + 893, 887, 887, 888, 887, 888, 888, 889, 888, 894, + 0, 890, 889, 895, 889, 889, 890, 889, 890, 890, + 891, 890, 896, 0, 0, 891, 897, 891, 891, 0, + + 891, 0, 892, 0, 0, 898, 893, 892, 0, 892, + 892, 893, 892, 893, 893, 894, 893, 899, 0, 895, + 894, 900, 894, 894, 895, 894, 895, 895, 896, 895, + 901, 0, 897, 896, 905, 896, 896, 897, 896, 897, + 897, 898, 897, 906, 0, 0, 898, 907, 898, 898, + 0, 898, 0, 899, 0, 0, 908, 900, 899, 0, + 899, 899, 900, 899, 900, 900, 901, 900, 909, 0, + 905, 901, 910, 901, 901, 905, 901, 905, 905, 906, + 905, 911, 0, 907, 906, 912, 906, 906, 907, 906, + 907, 907, 908, 907, 913, 0, 0, 908, 914, 908, + + 908, 0, 908, 0, 909, 0, 0, 915, 910, 909, + 0, 909, 909, 910, 909, 910, 910, 911, 910, 916, + 0, 912, 911, 917, 911, 911, 912, 911, 912, 912, + 913, 912, 918, 0, 914, 913, 919, 913, 913, 914, + 913, 914, 914, 915, 914, 920, 0, 0, 915, 921, + 915, 915, 0, 915, 0, 916, 0, 0, 922, 917, + 916, 0, 916, 916, 917, 916, 917, 917, 918, 917, + 923, 0, 919, 918, 924, 918, 918, 919, 918, 919, + 919, 920, 919, 925, 0, 921, 920, 926, 920, 920, + 921, 920, 921, 921, 922, 921, 927, 0, 0, 922, + + 928, 922, 922, 0, 922, 0, 923, 0, 0, 929, + 924, 923, 0, 923, 923, 924, 923, 924, 924, 925, + 924, 931, 0, 926, 925, 932, 925, 925, 926, 925, + 926, 926, 927, 926, 933, 0, 928, 927, 934, 927, + 927, 928, 927, 928, 928, 929, 928, 935, 0, 0, + 929, 936, 929, 929, 0, 929, 0, 931, 0, 0, + 937, 932, 931, 0, 931, 931, 932, 931, 932, 932, + 933, 932, 938, 0, 934, 933, 939, 933, 933, 934, + 933, 934, 934, 935, 934, 940, 0, 936, 935, 941, + 935, 935, 936, 935, 936, 936, 937, 936, 942, 0, + + 0, 937, 943, 937, 937, 0, 937, 0, 938, 0, + 0, 944, 939, 938, 0, 938, 938, 939, 938, 939, + 939, 940, 939, 945, 0, 941, 940, 946, 940, 940, + 941, 940, 941, 941, 942, 941, 947, 0, 943, 942, + 948, 942, 942, 943, 942, 943, 943, 944, 943, 949, + 0, 0, 944, 950, 944, 944, 0, 944, 0, 945, + 0, 0, 951, 946, 945, 0, 945, 945, 946, 945, + 946, 946, 947, 946, 952, 0, 948, 947, 953, 947, + 947, 948, 947, 948, 948, 949, 948, 954, 0, 950, + 949, 955, 949, 949, 950, 949, 950, 950, 951, 950, + + 974, 0, 0, 951, 975, 951, 951, 0, 951, 0, + 952, 0, 0, 976, 953, 952, 0, 952, 952, 953, + 952, 953, 953, 954, 953, 977, 0, 955, 954, 978, + 954, 954, 955, 954, 955, 955, 974, 955, 979, 0, + 975, 974, 980, 974, 974, 975, 974, 975, 975, 976, + 975, 981, 0, 0, 976, 982, 976, 976, 0, 976, + 0, 977, 0, 0, 983, 978, 977, 0, 977, 977, + 978, 977, 978, 978, 979, 978, 984, 0, 980, 979, + 985, 979, 979, 980, 979, 980, 980, 981, 980, 986, + 0, 982, 981, 987, 981, 981, 982, 981, 982, 982, + + 983, 982, 988, 0, 0, 983, 989, 983, 983, 0, + 983, 0, 984, 0, 0, 990, 985, 984, 0, 984, + 984, 985, 984, 985, 985, 986, 985, 991, 0, 987, + 986, 992, 986, 986, 987, 986, 987, 987, 988, 987, + 993, 0, 989, 988, 994, 988, 988, 989, 988, 989, + 989, 990, 989, 995, 0, 0, 990, 996, 990, 990, + 0, 990, 0, 991, 0, 0, 997, 992, 991, 0, + 991, 991, 992, 991, 992, 992, 993, 992, 998, 0, + 994, 993, 1016, 993, 993, 994, 993, 994, 994, 995, + 994, 1017, 0, 996, 995, 1018, 995, 995, 996, 995, + + 996, 996, 997, 996, 1019, 0, 0, 997, 1020, 997, + 997, 0, 997, 0, 998, 0, 0, 1021, 1016, 998, + 0, 998, 998, 1016, 998, 1016, 1016, 1017, 1016, 1022, + 0, 1018, 1017, 1023, 1017, 1017, 1018, 1017, 1018, 1018, + 1019, 1018, 1024, 0, 1020, 1019, 1025, 1019, 1019, 1020, + 1019, 1020, 1020, 1021, 1020, 1026, 0, 0, 1021, 1027, + 1021, 1021, 0, 1021, 0, 1022, 0, 0, 1028, 1023, + 1022, 0, 1022, 1022, 1023, 1022, 1023, 1023, 1024, 1023, + 1029, 0, 1025, 1024, 1030, 1024, 1024, 1025, 1024, 1025, + 1025, 1026, 1025, 1031, 0, 1027, 1026, 1032, 1026, 1026, + + 1027, 1026, 1027, 1027, 1028, 1027, 1033, 0, 0, 1028, + 1034, 1028, 1028, 0, 1028, 0, 1029, 0, 0, 1035, + 1030, 1029, 0, 1029, 1029, 1030, 1029, 1030, 1030, 1031, + 1030, 1036, 0, 1032, 1031, 1037, 1031, 1031, 1032, 1031, + 1032, 1032, 1033, 1032, 1038, 0, 1034, 1033, 1039, 1033, + 1033, 1034, 1033, 1034, 1034, 1035, 1034, 1040, 0, 0, + 1035, 1042, 1035, 1035, 0, 1035, 0, 1036, 0, 0, + 1043, 1037, 1036, 0, 1036, 1036, 1037, 1036, 1037, 1037, + 1038, 1037, 1044, 0, 1039, 1038, 1045, 1038, 1038, 1039, + 1038, 1039, 1039, 1040, 1039, 1046, 0, 1042, 1040, 1047, + + 1040, 1040, 1042, 1040, 1042, 1042, 1043, 1042, 1048, 0, + 0, 1043, 1049, 1043, 1043, 0, 1043, 0, 1044, 0, + 0, 1050, 1045, 1044, 0, 1044, 1044, 1045, 1044, 1045, + 1045, 1046, 1045, 1051, 0, 1047, 1046, 1052, 1046, 1046, + 1047, 1046, 1047, 1047, 1048, 1047, 1053, 0, 1049, 1048, + 1054, 1048, 1048, 1049, 1048, 1049, 1049, 1050, 1049, 1055, + 0, 0, 1050, 1056, 1050, 1050, 0, 1050, 0, 1051, + 0, 0, 1057, 1052, 1051, 0, 1051, 1051, 1052, 1051, + 1052, 1052, 1053, 1052, 1058, 0, 1054, 1053, 1059, 1053, + 1053, 1054, 1053, 1054, 1054, 1055, 1054, 1060, 0, 1056, + + 1055, 1061, 1055, 1055, 1056, 1055, 1056, 1056, 1057, 1056, + 1062, 0, 0, 1057, 1063, 1057, 1057, 0, 1057, 0, + 1058, 0, 0, 1064, 1059, 1058, 0, 1058, 1058, 1059, + 1058, 1059, 1059, 1060, 1059, 1065, 0, 1061, 1060, 1066, + 1060, 1060, 1061, 1060, 1061, 1061, 1062, 1061, 1068, 0, + 1063, 1062, 1069, 1062, 1062, 1063, 1062, 1063, 1063, 1064, + 1063, 1070, 0, 0, 1064, 1071, 1064, 1064, 0, 1064, + 0, 1065, 0, 0, 1072, 1066, 1065, 0, 1065, 1065, + 1066, 1065, 1066, 1066, 1068, 1066, 1073, 0, 1069, 1068, + 1074, 1068, 1068, 1069, 1068, 1069, 1069, 1070, 1069, 1075, + + 0, 1071, 1070, 1076, 1070, 1070, 1071, 1070, 1071, 1071, + 1072, 1071, 1077, 0, 0, 1072, 1078, 1072, 1072, 0, + 1072, 0, 1073, 0, 0, 1079, 1074, 1073, 0, 1073, + 1073, 1074, 1073, 1074, 1074, 1075, 1074, 1080, 0, 1076, + 1075, 1081, 1075, 1075, 1076, 1075, 1076, 1076, 1077, 1076, + 1082, 0, 1078, 1077, 1083, 1077, 1077, 1078, 1077, 1078, + 1078, 1079, 1078, 1084, 0, 0, 1079, 1085, 1079, 1079, + 0, 1079, 0, 1080, 0, 0, 1086, 1081, 1080, 0, + 1080, 1080, 1081, 1080, 1081, 1081, 1082, 1081, 1087, 0, + 1083, 1082, 1088, 1082, 1082, 1083, 1082, 1083, 1083, 1084, + + 1083, 1089, 0, 1085, 1084, 1090, 1084, 1084, 1085, 1084, + 1085, 1085, 1086, 1085, 1091, 0, 0, 1086, 1092, 1086, + 1086, 0, 1086, 0, 1087, 0, 0, 1103, 1088, 1087, + 0, 1087, 1087, 1088, 1087, 1088, 1088, 1089, 1088, 1104, + 0, 1090, 1089, 1105, 1089, 1089, 1090, 1089, 1090, 1090, + 1091, 1090, 1106, 0, 1092, 1091, 1107, 1091, 1091, 1092, + 1091, 1092, 1092, 1103, 1092, 1108, 0, 0, 1103, 1109, + 1103, 1103, 0, 1103, 0, 1104, 0, 0, 1110, 1105, + 1104, 0, 1104, 1104, 1105, 1104, 1105, 1105, 1106, 1105, + 1111, 0, 1107, 1106, 1112, 1106, 1106, 1107, 1106, 1107, + + 1107, 1108, 1107, 1113, 0, 1109, 1108, 1114, 1108, 1108, + 1109, 1108, 1109, 1109, 1110, 1109, 1115, 0, 0, 1110, + 1116, 1110, 1110, 0, 1110, 0, 1111, 0, 0, 1117, + 1112, 1111, 0, 1111, 1111, 1112, 1111, 1112, 1112, 1113, + 1112, 1118, 0, 1114, 1113, 1119, 1113, 1113, 1114, 1113, + 1114, 1114, 1115, 1114, 1120, 0, 1116, 1115, 1121, 1115, + 1115, 1116, 1115, 1116, 1116, 1117, 1116, 1122, 0, 0, + 1117, 1123, 1117, 1117, 0, 1117, 0, 1118, 0, 0, + 1124, 1119, 1118, 0, 1118, 1118, 1119, 1118, 1119, 1119, + 1120, 1119, 1125, 0, 1121, 1120, 1126, 1120, 1120, 1121, + + 1120, 1121, 1121, 1122, 1121, 1127, 0, 1123, 1122, 0, + 1122, 1122, 1123, 1122, 1123, 1123, 1124, 1123, 0, 0, + 0, 1124, 0, 1124, 1124, 0, 1124, 0, 1125, 0, + 0, 0, 1126, 1125, 0, 1125, 1125, 1126, 1125, 1126, + 1126, 1127, 1126, 0, 0, 0, 1127, 0, 1127, 1127, + 0, 1127, 2590, 2590, 2593, 2593, 2594, 2594, 2595, 2595, + 2596, 2596, 2597, 2597, 2598, 2598, 2599, 2599, 2600, 2600, + 2604, 2604, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, + + 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589 + } ; + +static yy_state_type yy_last_accepting_state; +static char *yy_last_accepting_cpos; + +extern int yy_flex_debug; +int yy_flex_debug = 0; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected +#define yymore() yymore_used_but_not_detected +#define YY_MORE_ADJ 0 +#define YY_RESTORE_YY_MORE_OFFSET +char *yytext; +#line 1 "ansel2uni.ll" +/* This is a lex(1) file, see http://dinosaur.compilertools.net/ +* or http://en.wikipedia.org/wiki/Lex_programming_tool . +* +* Compilation on UNIX systems is done by +* make ansel2uni +* On other systems one may need to call lex or flex and cc explicitly: +* lex -o ansel2uni.c ansel2uni.l +* cc [-s] [-O] [-D U_TRANSF_OS_LN] [-D GEDCOM_EXT] [-D GEDCOM_LDS_EXT] [-D MARC_EXT] -o wileyEndNoteFilt ansel2uni.c -ll +* +* The executable works as a filter (copies stdin to stdout) and converts +* a text stream encoded in 8-bit ANSEL (Z39-47-1993, ISO-IR-231) to UTF-8 unicode. +* If the preprocessor symbol U_TRANSF_OS_LN has been defined, the CR-LF +* combination of Unixes or DOS are modified to the Unicode +* line separator symbol on output, else they are copied unchanged. +* +* If the preprocessor symbol GEDCOM_EXT is defined, some Gedcom-5.5 extensions +* of the ANSEL standard are implemented. With the current implementation +* this only means support of the German sharp s. If the slash +* modifier that strikes through characters or of graphical symbols +* of open or filled boxes are also needed, GEDCOM_LDS_EXT should be defined. +* +* If the preprocessor symbol MARC_EXT is defined, the MARC-8 extensions +* of the ANSEL standard are implemented, as described in +* http://lcweb2.loc.gov/diglib/codetables/45.html . +* +* Templates of use: +* cat infile.ans | ansel2uni > infile.uni +* For use in HTML/XML pages, recoding with the � style +* can be done via http://billposer.org/Software/uni2ascii.html : +* cat infile.ans | ansel2uni | uni2ascii -q -a Q -a H > infile.xml +* +* http://en.wikipedia.org/wiki/GEDCOM +* http://marcpm.sourceforge.net/MARC/Charset.html +* +* @author Richard J. Mathar, 2009-01-13 +* @since 2209-01-18 use yyout instead of stdout. Implemented MARC_EXT. Use graph for alpha char class. +* @see http://www.uniocode.org/versions/Unicode5.1.0/ +*/ +#line 42 "ansel2uni.ll" +#include <stdio.h> + +/* Unicode ranges U+0000 to UFFFF +* @param hi the high (first) byte of the code point +* @param lo the low (2nd byte) of the code point +* @see D92 in the Unicode Standard, Table 3-6 +* @see http://en.wikipedia.org/wiki/UTF-8 +*/ +void utf3byte(const unsigned char hi, const unsigned char lo) +{ + const unsigned long c = 256*hi+lo ; + if ( c < 128) + fprintf(yyout,"%c",lo) ; + else if ( c < 2048 ) + { + /* mask lower 6 bits and prefix 10, second byte */ + const unsigned char b2 = 128 + ( c & 63 ); + /* remove lower 6 bits and prefix 110, first byte */ + const unsigned char b1 = 192 + ( c >> 6 ) ; + fprintf(yyout,"%c%c",b1,b2) ; + } + else + { + /* mask lower 6 bits and prefix 10, third byte */ + const unsigned char b3 = 128 + ( c & 63 ); + /* remove lower 6 bits and prefix 10 */ + const unsigned char b2 = 128 + ( ( c & 4032 ) >> 6 ) ; + /* remove lower 12 bits and prefix 1110 */ + const unsigned char b1 = 224 + ( (c & 61440 ) >> 12 ) ; + fprintf(yyout,"%c%c%c",b1,b2,b3) ; + } +} + +/* Unicode ranges U+0080 to U+00FF. +* @param c the low-byte of the unicode point in the range 0x00 to 0x7f +* @see http://en.wikipedia.org/wiki/UTF-8 +*/ +void utf2byte(const unsigned char c) +{ +#if 0 + /* explicit implementation */ + const unsigned char b2 = 128 + ( c & 63 ); + const unsigned char b1 = 192 + ( ( c & 192 ) >> 6 ) ; + fprintf(yyout,"%c%c",b1,b2) ; +#else + /* lazy implementation */ + utf3byte('\0',c) ; +#endif +} + +#ifdef U_TRANSF_OS_NL +/* Put the LS, U+2028 +* @param crlf the line feed in unix or dos representation +* @todo +*/ +void newl(char *crlf) +{ + utf3byte('\x20','\x28') ; +} +#else +/* +* @param crlf the line feed in unix or dos representation +*/ +void newl(char *crlf) +{ + fprintf(yyout,"%s",crlf) ; +} +#endif + +/* reserved for control characters */ +/* corners (reserved) */ +/* Gedcom 5.5 extension: German sharp s */ +/* rumors but not standard, see http://homepages.rootsweb.ancestry.com/~pmcbride/gedcom/55gcappd.htm#S2 */ +/* Strict ANSEL: reserved for future standardization, but not GEDCOM */ +/* not sure whether ANSEL allows a double grave to be represented as two accents */ +#line 3174 "ansel2uni.cc" + +#define INITIAL 0 + +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#include <unistd.h> +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +static int yy_init_globals (void ); + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int yylex_destroy (void ); + +int yyget_debug (void ); + +void yyset_debug (int debug_flag ); + +YY_EXTRA_TYPE yyget_extra (void ); + +void yyset_extra (YY_EXTRA_TYPE user_defined ); + +FILE *yyget_in (void ); + +void yyset_in (FILE * in_str ); + +FILE *yyget_out (void ); + +void yyset_out (FILE * out_str ); + +yy_size_t yyget_leng (void ); + +char *yyget_text (void ); + +int yyget_lineno (void ); + +void yyset_lineno (int line_number ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int yywrap (void ); +#else +extern int yywrap (void ); +#endif +#endif + + static void yyunput (int c,char *buf_ptr ); + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ); +#endif + +#ifndef YY_NO_INPUT + +#ifdef __cplusplus +static int yyinput (void ); +#else +static int input (void ); +#endif + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 8192 +#endif + +/* Copy whatever the last rule matched to the standard output. */ +#ifndef ECHO +/* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) +#endif + +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#ifndef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ + { \ + int c = '*'; \ + size_t n; \ + for ( n = 0; n < max_size && \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ + buf[n] = (char) c; \ + if ( c == '\n' ) \ + buf[n++] = (char) c; \ + if ( c == EOF && ferror( yyin ) ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + result = n; \ + } \ + else \ + { \ + errno=0; \ + while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + { \ + if( errno != EINTR) \ + { \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + break; \ + } \ + errno=0; \ + clearerr(yyin); \ + } \ + }\ +\ + +#endif + +/* No semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#ifndef yyterminate +#define yyterminate() return YY_NULL +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Report a fatal error. */ +#ifndef YY_FATAL_ERROR +#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) +#endif + +/* end tables serialization structures and prototypes */ + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int yylex (void); + +#define YY_DECL int yylex (void) +#endif /* !YY_DECL */ + +/* Code executed at the beginning of each rule, after yytext and yyleng + * have been set up. + */ +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +/* Code executed at the end of each rule. */ +#ifndef YY_BREAK +#define YY_BREAK break; +#endif + +#define YY_RULE_SETUP \ + YY_USER_ACTION + +/** The main scanner function which does all the work. + */ +YY_DECL +{ + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; + +#line 171 "ansel2uni.ll" + + +#line 3359 "ansel2uni.cc" + + if ( !(yy_init) ) + { + (yy_init) = 1; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! (yy_start) ) + (yy_start) = 1; /* first start state */ + + if ( ! yyin ) + yyin = stdin; + + if ( ! yyout ) + yyout = stdout; + + if ( ! YY_CURRENT_BUFFER ) { + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer(yyin,YY_BUF_SIZE ); + } + + yy_load_buffer_state( ); + } + + while ( 1 ) /* loops until end-of-file is reached */ + { + yy_cp = (yy_c_buf_p); + + /* Support of yytext. */ + *yy_cp = (yy_hold_char); + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = (yy_start); +yy_match: + do + { + register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + 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 >= 2590 ) + 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] != 7773 ); + +yy_find_action: + yy_act = yy_accept[yy_current_state]; + if ( yy_act == 0 ) + { /* have to back up */ + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + yy_act = yy_accept[yy_current_state]; + } + + YY_DO_BEFORE_ACTION; + +do_action: /* This label is used only to access EOF actions. */ + + switch ( yy_act ) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = (yy_hold_char); + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + goto yy_find_action; + +case 1: +YY_RULE_SETUP +#line 173 "ansel2uni.ll" +{ +#ifdef MARC_EXT + utf2byte('\x98') ; /* START OF STRING U+0098 */ +#else + ECHO ; +#endif + } + YY_BREAK +case 2: +YY_RULE_SETUP +#line 181 "ansel2uni.ll" +{ +#ifdef MARC_EXT + utf2byte('\x9c') ; /* STRING TERMINATOR U+009C */ +#else + ECHO ; +#endif + } + YY_BREAK +case 3: +YY_RULE_SETUP +#line 189 "ansel2uni.ll" +{ +#ifdef MARC_EXT + utf3byte('\x20','\x0d') ; /* ZERO WIDTH JOINER U+200D */ +#else + ECHO ; +#endif + } + YY_BREAK +case 4: +YY_RULE_SETUP +#line 197 "ansel2uni.ll" +{ +#ifdef MARC_EXT + utf3byte('\x20','\x0c') ; /* ZERO WIDTH NON-JOINER U+200C */ +#else + ECHO ; +#endif + } + YY_BREAK +/* C1 controls and latin supplement */ +/* utf2byte('\xa0') ; /* unassigned xxxxxxxxxxxxxxxxxxxxxxx U+00A0 */ +case 5: +YY_RULE_SETUP +#line 208 "ansel2uni.ll" +utf2byte('\xa1') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00A1 */ + YY_BREAK +/* utf2byte('\xa2') ; /* CENT SIGN U+00A2 */ +case 6: +YY_RULE_SETUP +#line 210 "ansel2uni.ll" +utf2byte('\xa3') ; /* POUND SIGN U+00A3 */ + YY_BREAK +/* utf2byte('\xa4') ; /* CURRENCY SIGN U+00A4 */ +/* utf2byte('\xa5') ; /* YEN SIGN U+00A5 */ +/* utf2byte('\xa6') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00A6 */ +/* utf2byte('\xa7') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00A7 */ +/* utf2byte('\xa8') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00A8 */ +case 7: +YY_RULE_SETUP +#line 216 "ansel2uni.ll" +utf2byte('\xa9') ; /* COPYRIGH SIGN U+00A9 */ + YY_BREAK +/* utf2byte('\xaa') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00AA */ +/* utf2byte('\xab') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00AB */ +/* utf2byte('\xac') ; /* NOT SIGN U+00AC */ +/* utf2byte('\xad') ; /* SOPFTHYPHEN U+00AD */ +case 8: +YY_RULE_SETUP +#line 221 "ansel2uni.ll" +utf2byte('\xae') ; /* REGISTRED SIGN U+00AE */ + YY_BREAK +/* utf2byte('\xaf') ; /* MACRON U+00AF */ +case 9: +YY_RULE_SETUP +#line 224 "ansel2uni.ll" +utf2byte('\xb0') ; /* DEGREE SIGN U+00B0 */ + YY_BREAK +case 10: +YY_RULE_SETUP +#line 225 "ansel2uni.ll" +utf2byte('\xb1') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00B1 */ + YY_BREAK +/* utf2byte('\xb2') ; /* SUPER SCRIPT TWO U+00B2 */ +/* utf2byte('\xb3') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00B3 */ +/* utf2byte('\xb4') ; /* ACUTE ACCENT U+00B4 */ +/* utf2byte('\xb5') ; /* MICRO SIGN U+00B5 */ +/* utf2byte('\xb6') ; /* PILCROW SIGN U+00B6 */ +case 11: +YY_RULE_SETUP +#line 231 "ansel2uni.ll" +utf2byte('\xb7') ; /* MIDDLE DOT U+00B7 */ + YY_BREAK +/* utf2byte('\xb8') ; /* CEDILLA U+00B8 */ +/* utf2byte('\xb9') ; /* SUPERSCRIPT ONE U+00B9 */ +/* utf2byte('\xba') ; /* MASCULINE ORIDNAL INDICATOR U+00BA */ +/* utf2byte('\xbb') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00BB */ +/* utf2byte('\xbc') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00BC */ +/* utf2byte('\xbd') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00BD */ +/* utf2byte('\xbe') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00BE */ +case 12: +YY_RULE_SETUP +#line 239 "ansel2uni.ll" +utf2byte('\xbf') ; /* INVERTED QUESTION MARK U+00BF */ + YY_BREAK +case 13: +YY_RULE_SETUP +#line 241 "ansel2uni.ll" +utf2byte('\xc0') ; /* A WITH ACUTE, LATIN CAPITAL LETTER U+00C0 */ + YY_BREAK +case 14: +YY_RULE_SETUP +#line 242 "ansel2uni.ll" +utf2byte('\xc1') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00C1 */ + YY_BREAK +case 15: +YY_RULE_SETUP +#line 243 "ansel2uni.ll" +utf2byte('\xc2') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00C2 */ + YY_BREAK +case 16: +YY_RULE_SETUP +#line 244 "ansel2uni.ll" +utf2byte('\xc3') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00C3 */ + YY_BREAK +case 17: +YY_RULE_SETUP +#line 245 "ansel2uni.ll" +utf2byte('\xc4') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00C4 */ + YY_BREAK +case 18: +YY_RULE_SETUP +#line 246 "ansel2uni.ll" +utf2byte('\xc5') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00C5 */ + YY_BREAK +case 19: +YY_RULE_SETUP +#line 247 "ansel2uni.ll" +utf2byte('\xc6') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00C6 */ + YY_BREAK +case 20: +YY_RULE_SETUP +#line 248 "ansel2uni.ll" +utf2byte('\xc7') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00C7 */ + YY_BREAK +case 21: +YY_RULE_SETUP +#line 249 "ansel2uni.ll" +utf2byte('\xc8') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00C8 */ + YY_BREAK +case 22: +YY_RULE_SETUP +#line 250 "ansel2uni.ll" +utf2byte('\xc9') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00C9 */ + YY_BREAK +case 23: +YY_RULE_SETUP +#line 251 "ansel2uni.ll" +utf2byte('\xca') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00CA */ + YY_BREAK +case 24: +YY_RULE_SETUP +#line 252 "ansel2uni.ll" +utf2byte('\xcb') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00CB */ + YY_BREAK +case 25: +YY_RULE_SETUP +#line 253 "ansel2uni.ll" +utf2byte('\xcc') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00CC */ + YY_BREAK +case 26: +YY_RULE_SETUP +#line 254 "ansel2uni.ll" +utf2byte('\xcd') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00CD */ + YY_BREAK +case 27: +YY_RULE_SETUP +#line 255 "ansel2uni.ll" +utf2byte('\xce') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00CE */ + YY_BREAK +case 28: +YY_RULE_SETUP +#line 256 "ansel2uni.ll" +utf2byte('\xcf') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00CF */ + YY_BREAK +case 29: +YY_RULE_SETUP +#line 258 "ansel2uni.ll" +utf2byte('\xd1') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00D1 */ + YY_BREAK +case 30: +YY_RULE_SETUP +#line 259 "ansel2uni.ll" +utf2byte('\xd2') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00D2 */ + YY_BREAK +case 31: +YY_RULE_SETUP +#line 260 "ansel2uni.ll" +utf2byte('\xd3') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00D3 */ + YY_BREAK +case 32: +YY_RULE_SETUP +#line 261 "ansel2uni.ll" +utf2byte('\xd4') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00D4 */ + YY_BREAK +case 33: +YY_RULE_SETUP +#line 262 "ansel2uni.ll" +utf2byte('\xd5') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00D5 */ + YY_BREAK +case 34: +YY_RULE_SETUP +#line 263 "ansel2uni.ll" +utf2byte('\xd6') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00D6 */ + YY_BREAK +/* utf2byte('\xd7') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00D7 */ +case 35: +YY_RULE_SETUP +#line 265 "ansel2uni.ll" +utf2byte('\xd8') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00D8 */ + YY_BREAK +case 36: +YY_RULE_SETUP +#line 266 "ansel2uni.ll" +utf2byte('\xd9') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00D9 */ + YY_BREAK +case 37: +YY_RULE_SETUP +#line 267 "ansel2uni.ll" +utf2byte('\xda') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00DA */ + YY_BREAK +case 38: +YY_RULE_SETUP +#line 268 "ansel2uni.ll" +utf2byte('\xdb') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00DB */ + YY_BREAK +case 39: +YY_RULE_SETUP +#line 269 "ansel2uni.ll" +utf2byte('\xdc') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00DC */ + YY_BREAK +case 40: +YY_RULE_SETUP +#line 270 "ansel2uni.ll" +utf2byte('\xdd') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00DD */ + YY_BREAK +case 41: +YY_RULE_SETUP +#line 271 "ansel2uni.ll" +utf2byte('\xde') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00DE */ + YY_BREAK +/* utf2byte('\xdf') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00DF */ +case 42: +YY_RULE_SETUP +#line 274 "ansel2uni.ll" +utf2byte('\xe0') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00E0 */ + YY_BREAK +case 43: +YY_RULE_SETUP +#line 275 "ansel2uni.ll" +utf2byte('\xe1') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00E1 */ + YY_BREAK +case 44: +YY_RULE_SETUP +#line 276 "ansel2uni.ll" +utf2byte('\xe2') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00E2 */ + YY_BREAK +case 45: +YY_RULE_SETUP +#line 277 "ansel2uni.ll" +utf2byte('\xe3') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00E3 */ + YY_BREAK +case 46: +YY_RULE_SETUP +#line 278 "ansel2uni.ll" +utf2byte('\xe4') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00E4 */ + YY_BREAK +case 47: +YY_RULE_SETUP +#line 279 "ansel2uni.ll" +utf2byte('\xe5') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00E5 */ + YY_BREAK +case 48: +YY_RULE_SETUP +#line 280 "ansel2uni.ll" +utf2byte('\xe6') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00E6 */ + YY_BREAK +case 49: +YY_RULE_SETUP +#line 281 "ansel2uni.ll" +utf2byte('\xe7') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00E7 */ + YY_BREAK +case 50: +YY_RULE_SETUP +#line 282 "ansel2uni.ll" +utf2byte('\xe8') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00E8 */ + YY_BREAK +case 51: +YY_RULE_SETUP +#line 283 "ansel2uni.ll" +utf2byte('\xe9') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00E9 */ + YY_BREAK +case 52: +YY_RULE_SETUP +#line 284 "ansel2uni.ll" +utf2byte('\xea') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00EA */ + YY_BREAK +case 53: +YY_RULE_SETUP +#line 285 "ansel2uni.ll" +utf2byte('\xeb') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00EB */ + YY_BREAK +case 54: +YY_RULE_SETUP +#line 286 "ansel2uni.ll" +utf2byte('\xec') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00EC */ + YY_BREAK +case 55: +YY_RULE_SETUP +#line 287 "ansel2uni.ll" +utf2byte('\xed') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00ED */ + YY_BREAK +case 56: +YY_RULE_SETUP +#line 288 "ansel2uni.ll" +utf2byte('\xee') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00EE */ + YY_BREAK +case 57: +YY_RULE_SETUP +#line 289 "ansel2uni.ll" +utf2byte('\xef') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00EF */ + YY_BREAK +case 58: +YY_RULE_SETUP +#line 291 "ansel2uni.ll" +utf2byte('\xf0') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00F0 */ + YY_BREAK +case 59: +YY_RULE_SETUP +#line 292 "ansel2uni.ll" +utf2byte('\xf1') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00F1 */ + YY_BREAK +case 60: +YY_RULE_SETUP +#line 293 "ansel2uni.ll" +utf2byte('\xf2') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00F2 */ + YY_BREAK +case 61: +YY_RULE_SETUP +#line 294 "ansel2uni.ll" +utf2byte('\xf3') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00F3 */ + YY_BREAK +case 62: +YY_RULE_SETUP +#line 295 "ansel2uni.ll" +utf2byte('\xf4') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00F4 */ + YY_BREAK +case 63: +YY_RULE_SETUP +#line 296 "ansel2uni.ll" +utf2byte('\xf5') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00F5 */ + YY_BREAK +case 64: +YY_RULE_SETUP +#line 297 "ansel2uni.ll" +utf2byte('\xf6') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00F6 */ + YY_BREAK +/* utf2byte('\xf7') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00F7 */ +case 65: +YY_RULE_SETUP +#line 299 "ansel2uni.ll" +utf2byte('\xf8') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00F8 */ + YY_BREAK +case 66: +YY_RULE_SETUP +#line 300 "ansel2uni.ll" +utf2byte('\xf9') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00F9 */ + YY_BREAK +case 67: +YY_RULE_SETUP +#line 301 "ansel2uni.ll" +utf2byte('\xfa') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00FA */ + YY_BREAK +case 68: +YY_RULE_SETUP +#line 302 "ansel2uni.ll" +utf2byte('\xfb') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00FB */ + YY_BREAK +case 69: +YY_RULE_SETUP +#line 303 "ansel2uni.ll" +utf2byte('\xfc') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00FC */ + YY_BREAK +case 70: +YY_RULE_SETUP +#line 304 "ansel2uni.ll" +utf2byte('\xfd') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00FD */ + YY_BREAK +case 71: +YY_RULE_SETUP +#line 305 "ansel2uni.ll" +utf2byte('\xfe') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00FE */ + YY_BREAK +case 72: +YY_RULE_SETUP +#line 306 "ansel2uni.ll" +utf2byte('\xff') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00FF */ + YY_BREAK +/* Latin-extended A */ +case 73: +YY_RULE_SETUP +#line 310 "ansel2uni.ll" +utf3byte('\x01','\x00') ; /* LATIN CAPITAL LETTER A WITH MACRON U+0100 */ + YY_BREAK +case 74: +YY_RULE_SETUP +#line 311 "ansel2uni.ll" +utf3byte('\x01','\x01') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0101 */ + YY_BREAK +case 75: +YY_RULE_SETUP +#line 312 "ansel2uni.ll" +utf3byte('\x01','\x02') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0102 */ + YY_BREAK +case 76: +YY_RULE_SETUP +#line 313 "ansel2uni.ll" +utf3byte('\x01','\x03') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0103 */ + YY_BREAK +case 77: +YY_RULE_SETUP +#line 314 "ansel2uni.ll" +utf3byte('\x01','\x04') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0104 */ + YY_BREAK +case 78: +YY_RULE_SETUP +#line 315 "ansel2uni.ll" +utf3byte('\x01','\x05') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0105 */ + YY_BREAK +case 79: +YY_RULE_SETUP +#line 316 "ansel2uni.ll" +utf3byte('\x01','\x06') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0106 */ + YY_BREAK +case 80: +YY_RULE_SETUP +#line 317 "ansel2uni.ll" +utf3byte('\x01','\x07') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0107 */ + YY_BREAK +case 81: +YY_RULE_SETUP +#line 318 "ansel2uni.ll" +utf3byte('\x01','\x08') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0108 */ + YY_BREAK +case 82: +YY_RULE_SETUP +#line 319 "ansel2uni.ll" +utf3byte('\x01','\x09') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0109 */ + YY_BREAK +case 83: +YY_RULE_SETUP +#line 320 "ansel2uni.ll" +utf3byte('\x01','\x0a') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+010a */ + YY_BREAK +case 84: +YY_RULE_SETUP +#line 321 "ansel2uni.ll" +utf3byte('\x01','\x0b') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+010b */ + YY_BREAK +case 85: +YY_RULE_SETUP +#line 322 "ansel2uni.ll" +utf3byte('\x01','\x0c') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+010c */ + YY_BREAK +case 86: +YY_RULE_SETUP +#line 323 "ansel2uni.ll" +utf3byte('\x01','\x0d') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+010d */ + YY_BREAK +case 87: +YY_RULE_SETUP +#line 324 "ansel2uni.ll" +utf3byte('\x01','\x0e') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+010e */ + YY_BREAK +case 88: +YY_RULE_SETUP +#line 325 "ansel2uni.ll" +utf3byte('\x01','\x0f') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+010f */ + YY_BREAK +/* could this rather be U+00D0, LATIN CAPITAL LETTER ETH ? */ +case 89: +YY_RULE_SETUP +#line 328 "ansel2uni.ll" +utf3byte('\x01','\x10') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0110 */ + YY_BREAK +case 90: +YY_RULE_SETUP +#line 329 "ansel2uni.ll" +utf3byte('\x01','\x11') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0111 */ + YY_BREAK +case 91: +YY_RULE_SETUP +#line 330 "ansel2uni.ll" +utf3byte('\x01','\x12') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0112 */ + YY_BREAK +case 92: +YY_RULE_SETUP +#line 331 "ansel2uni.ll" +utf3byte('\x01','\x13') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0113 */ + YY_BREAK +case 93: +YY_RULE_SETUP +#line 332 "ansel2uni.ll" +utf3byte('\x01','\x14') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0114 */ + YY_BREAK +case 94: +YY_RULE_SETUP +#line 333 "ansel2uni.ll" +utf3byte('\x01','\x15') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0115 */ + YY_BREAK +case 95: +YY_RULE_SETUP +#line 334 "ansel2uni.ll" +utf3byte('\x01','\x16') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0116 */ + YY_BREAK +case 96: +YY_RULE_SETUP +#line 335 "ansel2uni.ll" +utf3byte('\x01','\x17') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0117 */ + YY_BREAK +case 97: +YY_RULE_SETUP +#line 336 "ansel2uni.ll" +utf3byte('\x01','\x18') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0118 */ + YY_BREAK +case 98: +YY_RULE_SETUP +#line 337 "ansel2uni.ll" +utf3byte('\x01','\x19') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0119 */ + YY_BREAK +case 99: +YY_RULE_SETUP +#line 338 "ansel2uni.ll" +utf3byte('\x01','\x1a') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+011a */ + YY_BREAK +case 100: +YY_RULE_SETUP +#line 339 "ansel2uni.ll" +utf3byte('\x01','\x1b') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+011b */ + YY_BREAK +case 101: +YY_RULE_SETUP +#line 340 "ansel2uni.ll" +utf3byte('\x01','\x1c') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+011c */ + YY_BREAK +case 102: +YY_RULE_SETUP +#line 341 "ansel2uni.ll" +utf3byte('\x01','\x1d') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+011d */ + YY_BREAK +case 103: +YY_RULE_SETUP +#line 342 "ansel2uni.ll" +utf3byte('\x01','\x1e') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+011e */ + YY_BREAK +case 104: +YY_RULE_SETUP +#line 343 "ansel2uni.ll" +utf3byte('\x01','\x1f') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+011f */ + YY_BREAK +case 105: +YY_RULE_SETUP +#line 345 "ansel2uni.ll" +utf3byte('\x01','\x20') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0120 */ + YY_BREAK +case 106: +YY_RULE_SETUP +#line 346 "ansel2uni.ll" +utf3byte('\x01','\x21') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0121 */ + YY_BREAK +case 107: +YY_RULE_SETUP +#line 347 "ansel2uni.ll" +utf3byte('\x01','\x22') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0122 */ + YY_BREAK +case 108: +YY_RULE_SETUP +#line 348 "ansel2uni.ll" +utf3byte('\x01','\x23') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0123 */ + YY_BREAK +case 109: +YY_RULE_SETUP +#line 349 "ansel2uni.ll" +utf3byte('\x01','\x24') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0124 */ + YY_BREAK +case 110: +YY_RULE_SETUP +#line 350 "ansel2uni.ll" +utf3byte('\x01','\x25') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0125 */ + YY_BREAK +/* utf3byte('\x01','\x26') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0126 */ +/* utf3byte('\x01','\x27') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0127 */ +case 111: +YY_RULE_SETUP +#line 353 "ansel2uni.ll" +utf3byte('\x01','\x28') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0128 */ + YY_BREAK +case 112: +YY_RULE_SETUP +#line 354 "ansel2uni.ll" +utf3byte('\x01','\x29') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0129 */ + YY_BREAK +case 113: +YY_RULE_SETUP +#line 355 "ansel2uni.ll" +utf3byte('\x01','\x2a') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+012a */ + YY_BREAK +case 114: +YY_RULE_SETUP +#line 356 "ansel2uni.ll" +utf3byte('\x01','\x2b') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+012b */ + YY_BREAK +case 115: +YY_RULE_SETUP +#line 357 "ansel2uni.ll" +utf3byte('\x01','\x2c') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+012c */ + YY_BREAK +case 116: +YY_RULE_SETUP +#line 358 "ansel2uni.ll" +utf3byte('\x01','\x2d') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+012d */ + YY_BREAK +case 117: +YY_RULE_SETUP +#line 359 "ansel2uni.ll" +utf3byte('\x01','\x2e') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+012e */ + YY_BREAK +case 118: +YY_RULE_SETUP +#line 360 "ansel2uni.ll" +utf3byte('\x01','\x2f') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+012f */ + YY_BREAK +case 119: +YY_RULE_SETUP +#line 362 "ansel2uni.ll" +utf3byte('\x01','\x30') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0130 */ + YY_BREAK +case 120: +YY_RULE_SETUP +#line 363 "ansel2uni.ll" +utf3byte('\x01','\x31') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0131 */ + YY_BREAK +case 121: +YY_RULE_SETUP +#line 364 "ansel2uni.ll" +utf3byte('\x01','\x32') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0132 */ + YY_BREAK +case 122: +YY_RULE_SETUP +#line 365 "ansel2uni.ll" +utf3byte('\x01','\x33') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0133 */ + YY_BREAK +case 123: +YY_RULE_SETUP +#line 366 "ansel2uni.ll" +utf3byte('\x01','\x34') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0134 */ + YY_BREAK +case 124: +YY_RULE_SETUP +#line 367 "ansel2uni.ll" +utf3byte('\x01','\x35') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0135 */ + YY_BREAK +case 125: +#line 369 "ansel2uni.ll" +case 126: +YY_RULE_SETUP +#line 369 "ansel2uni.ll" +utf3byte('\x01','\x36') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0136 */ + YY_BREAK +case 127: +#line 371 "ansel2uni.ll" +case 128: +YY_RULE_SETUP +#line 371 "ansel2uni.ll" +utf3byte('\x01','\x37') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0137 */ + YY_BREAK +/* utf3byte('\x01','\x38') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0138 */ +case 129: +YY_RULE_SETUP +#line 373 "ansel2uni.ll" +utf3byte('\x01','\x39') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0139 */ + YY_BREAK +case 130: +YY_RULE_SETUP +#line 374 "ansel2uni.ll" +utf3byte('\x01','\x3a') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+013a */ + YY_BREAK +case 131: +#line 376 "ansel2uni.ll" +case 132: +YY_RULE_SETUP +#line 376 "ansel2uni.ll" +utf3byte('\x01','\x3b') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+013b */ + YY_BREAK +case 133: +#line 378 "ansel2uni.ll" +case 134: +YY_RULE_SETUP +#line 378 "ansel2uni.ll" +utf3byte('\x01','\x3c') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+013c */ + YY_BREAK +case 135: +YY_RULE_SETUP +#line 379 "ansel2uni.ll" +utf3byte('\x01','\x3d') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+013d */ + YY_BREAK +case 136: +YY_RULE_SETUP +#line 380 "ansel2uni.ll" +utf3byte('\x01','\x3e') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+013e */ + YY_BREAK +/* utf3byte('\x01','\x3f') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+013f */ +/* utf3byte('\x01','\x40') ; /* LATIN SMALL LETTER L WITH MIDDLE DOT+0140 */ +case 137: +YY_RULE_SETUP +#line 384 "ansel2uni.ll" +utf3byte('\x01','\x41') ; /* LATIN CAPITAL LETTER L WITH STROKE U+0141 */ + YY_BREAK +case 138: +YY_RULE_SETUP +#line 385 "ansel2uni.ll" +utf3byte('\x01','\x42') ; /* LATIN SMALL LETTER L WITH STROKE U+0142 */ + YY_BREAK +case 139: +YY_RULE_SETUP +#line 386 "ansel2uni.ll" +utf3byte('\x01','\x43') ; /* LATIN CAPITAL LETTER N WITH ACUTE U+0143 */ + YY_BREAK +case 140: +YY_RULE_SETUP +#line 387 "ansel2uni.ll" +utf3byte('\x01','\x44') ; /* LATIN SMALL LETTER N WITH ACUTE U+0144 */ + YY_BREAK +case 141: +#line 389 "ansel2uni.ll" +case 142: +YY_RULE_SETUP +#line 389 "ansel2uni.ll" +utf3byte('\x01','\x45') ; /* LATIN CAPITAL LETTER N WITH CEDILLA U+0145 */ + YY_BREAK +case 143: +#line 391 "ansel2uni.ll" +case 144: +YY_RULE_SETUP +#line 391 "ansel2uni.ll" +utf3byte('\x01','\x46') ; /* LATIN SMALL LETTER N WITH CEDILLA U+0146 */ + YY_BREAK +case 145: +YY_RULE_SETUP +#line 392 "ansel2uni.ll" +utf3byte('\x01','\x47') ; /* LATIN CAPITAL LETTER N WITH CARON U+0147 */ + YY_BREAK +case 146: +YY_RULE_SETUP +#line 393 "ansel2uni.ll" +utf3byte('\x01','\x48') ; /* LATIN SMALL LETTER N WITH CARON U+0148 */ + YY_BREAK +/* utf3byte('\x01','\x49') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0149 */ +/* utf3byte('\x01','\x4a') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+014a */ +/* utf3byte('\x01','\x4b') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+014b */ +case 147: +YY_RULE_SETUP +#line 397 "ansel2uni.ll" +utf3byte('\x01','\x4c') ; /* LATIN CAPITAL LETTER O WITH MACRON U+014c */ + YY_BREAK +case 148: +YY_RULE_SETUP +#line 398 "ansel2uni.ll" +utf3byte('\x01','\x4d') ; /* LATIN SMALL LETTER O WITH MACRON U+014d */ + YY_BREAK +case 149: +YY_RULE_SETUP +#line 399 "ansel2uni.ll" +utf3byte('\x01','\x4e') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+014e */ + YY_BREAK +case 150: +YY_RULE_SETUP +#line 400 "ansel2uni.ll" +utf3byte('\x01','\x4f') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+014f */ + YY_BREAK +case 151: +YY_RULE_SETUP +#line 402 "ansel2uni.ll" +utf3byte('\x01','\x50') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0150 */ + YY_BREAK +case 152: +YY_RULE_SETUP +#line 403 "ansel2uni.ll" +utf3byte('\x01','\x51') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0151 */ + YY_BREAK +case 153: +YY_RULE_SETUP +#line 404 "ansel2uni.ll" +utf3byte('\x01','\x52') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0152 */ + YY_BREAK +case 154: +YY_RULE_SETUP +#line 405 "ansel2uni.ll" +utf3byte('\x01','\x53') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0153 */ + YY_BREAK +case 155: +YY_RULE_SETUP +#line 406 "ansel2uni.ll" +utf3byte('\x01','\x54') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0154 */ + YY_BREAK +case 156: +YY_RULE_SETUP +#line 407 "ansel2uni.ll" +utf3byte('\x01','\x55') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0155 */ + YY_BREAK +case 157: +#line 409 "ansel2uni.ll" +case 158: +YY_RULE_SETUP +#line 409 "ansel2uni.ll" +utf3byte('\x01','\x56') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0156 */ + YY_BREAK +case 159: +#line 411 "ansel2uni.ll" +case 160: +YY_RULE_SETUP +#line 411 "ansel2uni.ll" +utf3byte('\x01','\x57') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0157 */ + YY_BREAK +case 161: +YY_RULE_SETUP +#line 412 "ansel2uni.ll" +utf3byte('\x01','\x58') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0158 */ + YY_BREAK +case 162: +YY_RULE_SETUP +#line 413 "ansel2uni.ll" +utf3byte('\x01','\x59') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0159 */ + YY_BREAK +case 163: +YY_RULE_SETUP +#line 414 "ansel2uni.ll" +utf3byte('\x01','\x5a') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+015a */ + YY_BREAK +case 164: +YY_RULE_SETUP +#line 415 "ansel2uni.ll" +utf3byte('\x01','\x5b') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+015b */ + YY_BREAK +case 165: +YY_RULE_SETUP +#line 416 "ansel2uni.ll" +utf3byte('\x01','\x5c') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+015c */ + YY_BREAK +case 166: +YY_RULE_SETUP +#line 417 "ansel2uni.ll" +utf3byte('\x01','\x5d') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+015d */ + YY_BREAK +case 167: +YY_RULE_SETUP +#line 418 "ansel2uni.ll" +utf3byte('\x01','\x5e') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+015e */ + YY_BREAK +case 168: +YY_RULE_SETUP +#line 419 "ansel2uni.ll" +utf3byte('\x01','\x5f') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+015f */ + YY_BREAK +case 169: +YY_RULE_SETUP +#line 421 "ansel2uni.ll" +utf3byte('\x01','\x60') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0160 */ + YY_BREAK +case 170: +YY_RULE_SETUP +#line 422 "ansel2uni.ll" +utf3byte('\x01','\x61') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0161 */ + YY_BREAK +case 171: +YY_RULE_SETUP +#line 423 "ansel2uni.ll" +utf3byte('\x01','\x62') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0162 */ + YY_BREAK +case 172: +YY_RULE_SETUP +#line 424 "ansel2uni.ll" +utf3byte('\x01','\x63') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0163 */ + YY_BREAK +case 173: +YY_RULE_SETUP +#line 425 "ansel2uni.ll" +utf3byte('\x01','\x64') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0164 */ + YY_BREAK +case 174: +YY_RULE_SETUP +#line 426 "ansel2uni.ll" +utf3byte('\x01','\x65') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0165 */ + YY_BREAK +/* utf3byte('\x01','\x66') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0166 */ +/* utf3byte('\x01','\x67') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0167 */ +case 175: +YY_RULE_SETUP +#line 429 "ansel2uni.ll" +utf3byte('\x01','\x68') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0168 */ + YY_BREAK +case 176: +YY_RULE_SETUP +#line 430 "ansel2uni.ll" +utf3byte('\x01','\x69') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0169 */ + YY_BREAK +case 177: +YY_RULE_SETUP +#line 431 "ansel2uni.ll" +utf3byte('\x01','\x6a') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+016a */ + YY_BREAK +case 178: +YY_RULE_SETUP +#line 432 "ansel2uni.ll" +utf3byte('\x01','\x6b') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+016b */ + YY_BREAK +case 179: +YY_RULE_SETUP +#line 433 "ansel2uni.ll" +utf3byte('\x01','\x6c') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+016c */ + YY_BREAK +case 180: +YY_RULE_SETUP +#line 434 "ansel2uni.ll" +utf3byte('\x01','\x6d') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+016d */ + YY_BREAK +case 181: +YY_RULE_SETUP +#line 435 "ansel2uni.ll" +utf3byte('\x01','\x6e') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+016e */ + YY_BREAK +case 182: +YY_RULE_SETUP +#line 436 "ansel2uni.ll" +utf3byte('\x01','\x6f') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+016f */ + YY_BREAK +case 183: +YY_RULE_SETUP +#line 438 "ansel2uni.ll" +utf3byte('\x01','\x70') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0170 */ + YY_BREAK +case 184: +YY_RULE_SETUP +#line 439 "ansel2uni.ll" +utf3byte('\x01','\x71') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0171 */ + YY_BREAK +case 185: +YY_RULE_SETUP +#line 440 "ansel2uni.ll" +utf3byte('\x01','\x72') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0172 */ + YY_BREAK +case 186: +YY_RULE_SETUP +#line 441 "ansel2uni.ll" +utf3byte('\x01','\x73') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0173 */ + YY_BREAK +case 187: +YY_RULE_SETUP +#line 442 "ansel2uni.ll" +utf3byte('\x01','\x74') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0174 */ + YY_BREAK +case 188: +YY_RULE_SETUP +#line 443 "ansel2uni.ll" +utf3byte('\x01','\x75') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0175 */ + YY_BREAK +case 189: +YY_RULE_SETUP +#line 444 "ansel2uni.ll" +utf3byte('\x01','\x76') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0176 */ + YY_BREAK +case 190: +YY_RULE_SETUP +#line 445 "ansel2uni.ll" +utf3byte('\x01','\x77') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0177 */ + YY_BREAK +case 191: +YY_RULE_SETUP +#line 446 "ansel2uni.ll" +utf3byte('\x01','\x78') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0178 */ + YY_BREAK +case 192: +YY_RULE_SETUP +#line 447 "ansel2uni.ll" +utf3byte('\x01','\x79') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0179 */ + YY_BREAK +case 193: +YY_RULE_SETUP +#line 448 "ansel2uni.ll" +utf3byte('\x01','\x7a') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+017a */ + YY_BREAK +case 194: +YY_RULE_SETUP +#line 449 "ansel2uni.ll" +utf3byte('\x01','\x7b') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+017b */ + YY_BREAK +case 195: +YY_RULE_SETUP +#line 450 "ansel2uni.ll" +utf3byte('\x01','\x7c') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+017c */ + YY_BREAK +case 196: +YY_RULE_SETUP +#line 451 "ansel2uni.ll" +utf3byte('\x01','\x7d') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+017d */ + YY_BREAK +case 197: +YY_RULE_SETUP +#line 452 "ansel2uni.ll" +utf3byte('\x01','\x7e') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+017e */ + YY_BREAK +/* utf3byte('\x01','\x7f') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+017f */ +/* end of Latin Extended A */ +/* Latin Extended B */ +/* utf3byte('\x01','\x80') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0170 */ +/* utf3byte('\x01','\x81') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0171 */ +case 198: +YY_RULE_SETUP +#line 461 "ansel2uni.ll" +utf3byte('\x01','\x82') ; /* LATIN CAPITAL LETTER B WITH TOPBAR U+0182 */ + YY_BREAK +case 199: +YY_RULE_SETUP +#line 462 "ansel2uni.ll" +utf3byte('\x01','\x83') ; /* LATIN SMALL LETTER B WITH TOPBAR U+0183 */ + YY_BREAK +case 200: +YY_RULE_SETUP +#line 464 "ansel2uni.ll" +utf3byte('\x01','\xa0') ; /* LATIN CAPITAL LETTER O WITH HORN U+01A0 */ + YY_BREAK +case 201: +YY_RULE_SETUP +#line 465 "ansel2uni.ll" +utf3byte('\x01','\xa1') ; /* LATIN SMALL LETTER O WITH HORN U+01A1 */ + YY_BREAK +case 202: +YY_RULE_SETUP +#line 466 "ansel2uni.ll" +utf3byte('\x01','\xaf') ; /* LATIN CAPITAL LETTER U WITH HORN U+01AF */ + YY_BREAK +case 203: +YY_RULE_SETUP +#line 467 "ansel2uni.ll" +utf3byte('\x01','\x80') ; /* LATIN SMALL LETTER U WIHT HORN U+0180 */ + YY_BREAK +case 204: +YY_RULE_SETUP +#line 469 "ansel2uni.ll" +utf3byte('\x01','\xc4') ; /* LATIN CAPITAL LETTER DZ WITH CARON U+01C4 */ + YY_BREAK +case 205: +YY_RULE_SETUP +#line 470 "ansel2uni.ll" +utf3byte('\x01','\xc5') ; /* LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON U+01C5 */ + YY_BREAK +case 206: +YY_RULE_SETUP +#line 471 "ansel2uni.ll" +utf3byte('\x01','\xc6') ; /* LATIN SMALL LETTER DZ WITH CARON U+01C6 */ + YY_BREAK +case 207: +YY_RULE_SETUP +#line 472 "ansel2uni.ll" +utf3byte('\x01','\xc7') ; /* LATIN CAPITAL LETTER LJ U+01C7 */ + YY_BREAK +case 208: +YY_RULE_SETUP +#line 473 "ansel2uni.ll" +utf3byte('\x01','\xc8') ; /* LATIN CAPITAL LETTER L WITH SMALL LTTER J U+01C8 */ + YY_BREAK +/* lj utf3byte('\x01','\xc9') ; LATIN CAPITAL LETTER L WITH SMALL LTTER J U+01C9 */ +case 209: +YY_RULE_SETUP +#line 475 "ansel2uni.ll" +utf3byte('\x01','\xca') ; /* LATIN CAPITAL LETTER NJ U+01CA */ + YY_BREAK +case 210: +YY_RULE_SETUP +#line 476 "ansel2uni.ll" +utf3byte('\x01','\xcb') ; /* LATIN CAPITAL LETTER N WITH SMALL LTTER J U+01CB */ + YY_BREAK +/* nj utf3byte('\x01','\xcc') ; LATIN SMALL LETTER NJ U+01CC */ +case 211: +YY_RULE_SETUP +#line 478 "ansel2uni.ll" +utf3byte('\x01','\xcd') ; /* U+01CD */ + YY_BREAK +case 212: +YY_RULE_SETUP +#line 479 "ansel2uni.ll" +utf3byte('\x01','\xce') ; /* U+01CE */ + YY_BREAK +case 213: +YY_RULE_SETUP +#line 480 "ansel2uni.ll" +utf3byte('\x01','\xcf') ; /* U+01CF */ + YY_BREAK +case 214: +YY_RULE_SETUP +#line 481 "ansel2uni.ll" +utf3byte('\x01','\xd0') ; /* U+01D0 */ + YY_BREAK +case 215: +YY_RULE_SETUP +#line 482 "ansel2uni.ll" +utf3byte('\x01','\xd1') ; /* U+01D1 */ + YY_BREAK +case 216: +YY_RULE_SETUP +#line 483 "ansel2uni.ll" +utf3byte('\x01','\xd2') ; /* U+01D2 */ + YY_BREAK +case 217: +YY_RULE_SETUP +#line 484 "ansel2uni.ll" +utf3byte('\x01','\xd3') ; /* U+01D3 */ + YY_BREAK +case 218: +YY_RULE_SETUP +#line 485 "ansel2uni.ll" +utf3byte('\x01','\xd4') ; /* U+01D4 */ + YY_BREAK +/* see U+1E7A for the opposite order */ +case 219: +YY_RULE_SETUP +#line 488 "ansel2uni.ll" +utf3byte('\x01','\xd5') ; /* U+01D5 */ + YY_BREAK +case 220: +YY_RULE_SETUP +#line 489 "ansel2uni.ll" +utf3byte('\x01','\xd6') ; /* U+01D6 */ + YY_BREAK +case 221: +#line 492 "ansel2uni.ll" +case 222: +YY_RULE_SETUP +#line 492 "ansel2uni.ll" +utf3byte('\x01','\xd7') ; /* U+01D7 */ + YY_BREAK +case 223: +#line 495 "ansel2uni.ll" +case 224: +YY_RULE_SETUP +#line 495 "ansel2uni.ll" +utf3byte('\x01','\xd8') ; /* U+01D8 */ + YY_BREAK +case 225: +#line 498 "ansel2uni.ll" +case 226: +YY_RULE_SETUP +#line 498 "ansel2uni.ll" +utf3byte('\x01','\xd9') ; /* U+01D9 */ + YY_BREAK +case 227: +#line 501 "ansel2uni.ll" +case 228: +YY_RULE_SETUP +#line 501 "ansel2uni.ll" +utf3byte('\x01','\xda') ; /* U+01DA */ + YY_BREAK +case 229: +#line 504 "ansel2uni.ll" +case 230: +YY_RULE_SETUP +#line 504 "ansel2uni.ll" +utf3byte('\x01','\xdb') ; /* U+01DB */ + YY_BREAK +case 231: +#line 507 "ansel2uni.ll" +case 232: +YY_RULE_SETUP +#line 507 "ansel2uni.ll" +utf3byte('\x01','\xdc') ; /* U+01DC */ + YY_BREAK +case 233: +#line 510 "ansel2uni.ll" +case 234: +YY_RULE_SETUP +#line 510 "ansel2uni.ll" +utf3byte('\x01','\xde') ; /* U+01DE */ + YY_BREAK +case 235: +#line 513 "ansel2uni.ll" +case 236: +YY_RULE_SETUP +#line 513 "ansel2uni.ll" +utf3byte('\x01','\xdf') ; /* U+01DF */ + YY_BREAK +case 237: +#line 516 "ansel2uni.ll" +case 238: +YY_RULE_SETUP +#line 516 "ansel2uni.ll" +utf3byte('\x01','\xe0') ; /* U+01E0 */ + YY_BREAK +case 239: +#line 519 "ansel2uni.ll" +case 240: +YY_RULE_SETUP +#line 519 "ansel2uni.ll" +utf3byte('\x01','\xe1') ; /* U+01E1 */ + YY_BREAK +case 241: +YY_RULE_SETUP +#line 521 "ansel2uni.ll" +utf3byte('\x01','\xe2') ; /* U+01E2 */ + YY_BREAK +case 242: +YY_RULE_SETUP +#line 522 "ansel2uni.ll" +utf3byte('\x01','\xe3') ; /* U+01E3 */ + YY_BREAK +case 243: +YY_RULE_SETUP +#line 523 "ansel2uni.ll" +utf3byte('\x01','\xe6') ; /* U+01E6 */ + YY_BREAK +case 244: +YY_RULE_SETUP +#line 524 "ansel2uni.ll" +utf3byte('\x01','\xe7') ; /* U+01E7 */ + YY_BREAK +case 245: +YY_RULE_SETUP +#line 525 "ansel2uni.ll" +utf3byte('\x01','\xe8') ; /* U+01E8 */ + YY_BREAK +case 246: +YY_RULE_SETUP +#line 526 "ansel2uni.ll" +utf3byte('\x01','\xe9') ; /* U+01E9 */ + YY_BREAK +case 247: +YY_RULE_SETUP +#line 527 "ansel2uni.ll" +utf3byte('\x01','\xea') ; /* U+01EA */ + YY_BREAK +case 248: +YY_RULE_SETUP +#line 528 "ansel2uni.ll" +utf3byte('\x01','\xeb') ; /* U+01EB */ + YY_BREAK +case 249: +#line 531 "ansel2uni.ll" +case 250: +YY_RULE_SETUP +#line 531 "ansel2uni.ll" +utf3byte('\x01','\xec') ; /* U+01EC */ + YY_BREAK +case 251: +#line 534 "ansel2uni.ll" +case 252: +YY_RULE_SETUP +#line 534 "ansel2uni.ll" +utf3byte('\x01','\xed') ; /* U+01ED */ + YY_BREAK +case 253: +YY_RULE_SETUP +#line 536 "ansel2uni.ll" +utf3byte('\x01','\xf0') ; /* U+01F0 */ + YY_BREAK +case 254: +YY_RULE_SETUP +#line 538 "ansel2uni.ll" +utf3byte('\x01','\xf1') ; /* U+01F1 */ + YY_BREAK +case 255: +YY_RULE_SETUP +#line 539 "ansel2uni.ll" +utf3byte('\x01','\xf2') ; /* U+01F2 */ + YY_BREAK +case 256: +YY_RULE_SETUP +#line 540 "ansel2uni.ll" +utf3byte('\x01','\xf3') ; /* U+01F3 */ + YY_BREAK +case 257: +YY_RULE_SETUP +#line 542 "ansel2uni.ll" +utf3byte('\x01','\xf4') ; /* U+01F4 */ + YY_BREAK +case 258: +YY_RULE_SETUP +#line 543 "ansel2uni.ll" +utf3byte('\x01','\xf5') ; /* U+01F5 */ + YY_BREAK +case 259: +YY_RULE_SETUP +#line 544 "ansel2uni.ll" +utf3byte('\x01','\xf8') ; /* U+01F8 */ + YY_BREAK +case 260: +YY_RULE_SETUP +#line 545 "ansel2uni.ll" +utf3byte('\x01','\xf9') ; /* U+01F9 */ + YY_BREAK +case 261: +#line 548 "ansel2uni.ll" +case 262: +YY_RULE_SETUP +#line 548 "ansel2uni.ll" +utf3byte('\x01','\xfa') ; /* U+01FA */ + YY_BREAK +case 263: +#line 551 "ansel2uni.ll" +case 264: +YY_RULE_SETUP +#line 551 "ansel2uni.ll" +utf3byte('\x01','\xfb') ; /* U+01FB */ + YY_BREAK +case 265: +YY_RULE_SETUP +#line 553 "ansel2uni.ll" +utf3byte('\x01','\xfc') ; /* U+01FC */ + YY_BREAK +case 266: +YY_RULE_SETUP +#line 554 "ansel2uni.ll" +utf3byte('\x01','\xfd') ; /* U+01FD */ + YY_BREAK +case 267: +YY_RULE_SETUP +#line 555 "ansel2uni.ll" +utf3byte('\x01','\xfe') ; /* U+01FE */ + YY_BREAK +case 268: +YY_RULE_SETUP +#line 556 "ansel2uni.ll" +utf3byte('\x01','\xff') ; /* U+01FF */ + YY_BREAK +case 269: +YY_RULE_SETUP +#line 557 "ansel2uni.ll" +utf3byte('\x02','\x00') ; /* U+0200 */ + YY_BREAK +case 270: +YY_RULE_SETUP +#line 558 "ansel2uni.ll" +utf3byte('\x02','\x01') ; /* U+0201 */ + YY_BREAK +case 271: +YY_RULE_SETUP +#line 559 "ansel2uni.ll" +utf3byte('\x02','\x04') ; /* U+0204 */ + YY_BREAK +case 272: +YY_RULE_SETUP +#line 560 "ansel2uni.ll" +utf3byte('\x02','\x05') ; /* U+0205 */ + YY_BREAK +case 273: +YY_RULE_SETUP +#line 561 "ansel2uni.ll" +utf3byte('\x02','\x08') ; /* U+0208 */ + YY_BREAK +case 274: +YY_RULE_SETUP +#line 562 "ansel2uni.ll" +utf3byte('\x02','\x09') ; /* U+0209 */ + YY_BREAK +case 275: +YY_RULE_SETUP +#line 563 "ansel2uni.ll" +utf3byte('\x02','\x0c') ; /* U+020C */ + YY_BREAK +case 276: +YY_RULE_SETUP +#line 564 "ansel2uni.ll" +utf3byte('\x02','\x0d') ; /* U+020D */ + YY_BREAK +case 277: +YY_RULE_SETUP +#line 565 "ansel2uni.ll" +utf3byte('\x02','\x10') ; /* U+0210 */ + YY_BREAK +case 278: +YY_RULE_SETUP +#line 566 "ansel2uni.ll" +utf3byte('\x02','\x11') ; /* U+0211 */ + YY_BREAK +case 279: +YY_RULE_SETUP +#line 567 "ansel2uni.ll" +utf3byte('\x02','\x14') ; /* U+0214 */ + YY_BREAK +case 280: +YY_RULE_SETUP +#line 568 "ansel2uni.ll" +utf3byte('\x02','\x15') ; /* U+0215 */ + YY_BREAK +case 281: +YY_RULE_SETUP +#line 569 "ansel2uni.ll" +utf3byte('\x02','\x18') ; /* U+0218 */ + YY_BREAK +case 282: +YY_RULE_SETUP +#line 570 "ansel2uni.ll" +utf3byte('\x02','\x19') ; /* U+0219 */ + YY_BREAK +case 283: +YY_RULE_SETUP +#line 571 "ansel2uni.ll" +utf3byte('\x02','\x1a') ; /* U+021A */ + YY_BREAK +case 284: +YY_RULE_SETUP +#line 572 "ansel2uni.ll" +utf3byte('\x02','\x1b') ; /* U+021B */ + YY_BREAK +case 285: +YY_RULE_SETUP +#line 573 "ansel2uni.ll" +utf3byte('\x02','\x1e') ; /* U+021E */ + YY_BREAK +case 286: +YY_RULE_SETUP +#line 574 "ansel2uni.ll" +utf3byte('\x02','\x1f') ; /* U+021F */ + YY_BREAK +case 287: +YY_RULE_SETUP +#line 575 "ansel2uni.ll" +utf3byte('\x02','\x26') ; /* U+0226 */ + YY_BREAK +case 288: +YY_RULE_SETUP +#line 576 "ansel2uni.ll" +utf3byte('\x02','\x27') ; /* U+0227 */ + YY_BREAK +case 289: +YY_RULE_SETUP +#line 577 "ansel2uni.ll" +utf3byte('\x02','\x28') ; /* U+0228 */ + YY_BREAK +case 290: +YY_RULE_SETUP +#line 578 "ansel2uni.ll" +utf3byte('\x02','\x29') ; /* U+0229 */ + YY_BREAK +case 291: +#line 581 "ansel2uni.ll" +case 292: +YY_RULE_SETUP +#line 581 "ansel2uni.ll" +utf3byte('\x02','\x2a') ; /* U+022A */ + YY_BREAK +case 293: +#line 584 "ansel2uni.ll" +case 294: +YY_RULE_SETUP +#line 584 "ansel2uni.ll" +utf3byte('\x02','\x2b') ; /* U+022B */ + YY_BREAK +case 295: +#line 587 "ansel2uni.ll" +case 296: +YY_RULE_SETUP +#line 587 "ansel2uni.ll" +utf3byte('\x02','\x2c') ; /* U+022C */ + YY_BREAK +case 297: +#line 590 "ansel2uni.ll" +case 298: +YY_RULE_SETUP +#line 590 "ansel2uni.ll" +utf3byte('\x02','\x2d') ; /* U+022D */ + YY_BREAK +case 299: +YY_RULE_SETUP +#line 592 "ansel2uni.ll" +utf3byte('\x02','\x2e') ; /* U+022E */ + YY_BREAK +case 300: +YY_RULE_SETUP +#line 593 "ansel2uni.ll" +utf3byte('\x02','\x2f') ; /* U+022F */ + YY_BREAK +case 301: +#line 596 "ansel2uni.ll" +case 302: +YY_RULE_SETUP +#line 596 "ansel2uni.ll" +utf3byte('\x02','\x30') ; /* U+0230 */ + YY_BREAK +case 303: +YY_RULE_SETUP +#line 598 "ansel2uni.ll" +{ +#ifdef GEDCOM_LDSEXT + utf3byte('\x02','\x3a') ; /* U+023A */ +#else + fprintf(yyout,"%c",yytext[1]) ; +#endif + } + YY_BREAK +case 304: +YY_RULE_SETUP +#line 606 "ansel2uni.ll" +{ +#ifdef GEDCOM_LDSEXT + utf3byte('\x02','\x3b') ; /* U+023B */ +#else + fprintf(yyout,"%c",yytext[1]) ; +#endif + } + YY_BREAK +case 305: +YY_RULE_SETUP +#line 614 "ansel2uni.ll" +{ +#ifdef GEDCOM_LDSEXT + utf3byte('\x02','\x3c') ; /* U+023C */ +#else + fprintf(yyout,"%c",yytext[1]) ; +#endif + } + YY_BREAK +case 306: +#line 623 "ansel2uni.ll" +case 307: +YY_RULE_SETUP +#line 623 "ansel2uni.ll" +utf3byte('\x02','\x31') ; /* U+0231 */ + YY_BREAK +case 308: +YY_RULE_SETUP +#line 625 "ansel2uni.ll" +utf3byte('\x02','\x32') ; /* U+0232 */ + YY_BREAK +case 309: +YY_RULE_SETUP +#line 626 "ansel2uni.ll" +utf3byte('\x02','\x33') ; /* U+0233 */ + YY_BREAK +case 310: +YY_RULE_SETUP +#line 628 "ansel2uni.ll" +{ +#ifdef GEDCOM_LDSEXT + utf3byte('\x02','\x3e') ; /* U+023E */ +#else + fprintf(yyout,"%c",yytext[1]) ; +#endif + } + YY_BREAK +case 311: +YY_RULE_SETUP +#line 636 "ansel2uni.ll" +{ +#ifdef GEDCOM_LDSEXT + utf3byte('\x02','\x46') ; /* U+0246 */ +#else + fprintf(yyout,"%c",yytext[1]) ; +#endif + } + YY_BREAK +case 312: +YY_RULE_SETUP +#line 644 "ansel2uni.ll" +{ +#ifdef GEDCOM_LDSEXT + utf3byte('\x02','\x47') ; /* U+0247 */ +#else + fprintf(yyout,"%c",yytext[1]) ; +#endif + } + YY_BREAK +/* end of Latin-extended B */ +/* Latin-extended Additional */ +case 313: +YY_RULE_SETUP +#line 655 "ansel2uni.ll" +utf3byte('\x1e','\x00') ; /* U+1E00 */ + YY_BREAK +case 314: +YY_RULE_SETUP +#line 656 "ansel2uni.ll" +utf3byte('\x1e','\x01') ; /* U+1E01 */ + YY_BREAK +case 315: +YY_RULE_SETUP +#line 657 "ansel2uni.ll" +utf3byte('\x1e','\x02') ; /* U+1E02 */ + YY_BREAK +case 316: +YY_RULE_SETUP +#line 658 "ansel2uni.ll" +utf3byte('\x1e','\x03') ; /* U+1E03 */ + YY_BREAK +case 317: +YY_RULE_SETUP +#line 659 "ansel2uni.ll" +utf3byte('\x1e','\x04') ; /* U+1E04 */ + YY_BREAK +case 318: +YY_RULE_SETUP +#line 660 "ansel2uni.ll" +utf3byte('\x1e','\x05') ; /* U+1E05 */ + YY_BREAK +case 319: +YY_RULE_SETUP +#line 661 "ansel2uni.ll" +utf3byte('\x1e','\x06') ; /* U+1E06 */ + YY_BREAK +case 320: +YY_RULE_SETUP +#line 662 "ansel2uni.ll" +utf3byte('\x1e','\x07') ; /* U+1E07 */ + YY_BREAK +case 321: +#line 665 "ansel2uni.ll" +case 322: +YY_RULE_SETUP +#line 665 "ansel2uni.ll" +utf3byte('\x1e','\x08') ; /* U+1E08 */ + YY_BREAK +case 323: +#line 668 "ansel2uni.ll" +case 324: +YY_RULE_SETUP +#line 668 "ansel2uni.ll" +utf3byte('\x1e','\x09') ; /* U+1E09 */ + YY_BREAK +case 325: +YY_RULE_SETUP +#line 670 "ansel2uni.ll" +utf3byte('\x1e','\x0a') ; /* U+1E0A */ + YY_BREAK +case 326: +YY_RULE_SETUP +#line 671 "ansel2uni.ll" +utf3byte('\x1e','\x0b') ; /* U+1E0B */ + YY_BREAK +case 327: +YY_RULE_SETUP +#line 672 "ansel2uni.ll" +utf3byte('\x1e','\x0c') ; /* U+1E0C */ + YY_BREAK +case 328: +YY_RULE_SETUP +#line 673 "ansel2uni.ll" +utf3byte('\x1e','\x0d') ; /* U+1E0D */ + YY_BREAK +case 329: +YY_RULE_SETUP +#line 674 "ansel2uni.ll" +utf3byte('\x1e','\x0e') ; /* U+1E0E */ + YY_BREAK +case 330: +YY_RULE_SETUP +#line 675 "ansel2uni.ll" +utf3byte('\x1e','\x0f') ; /* U+1E0F */ + YY_BREAK +case 331: +#line 677 "ansel2uni.ll" +case 332: +YY_RULE_SETUP +#line 677 "ansel2uni.ll" +utf3byte('\x1e','\x10') ; /* U+1E10 */ + YY_BREAK +case 333: +#line 679 "ansel2uni.ll" +case 334: +YY_RULE_SETUP +#line 679 "ansel2uni.ll" +utf3byte('\x1e','\x11') ; /* U+1E11 */ + YY_BREAK +case 335: +#line 682 "ansel2uni.ll" +case 336: +YY_RULE_SETUP +#line 682 "ansel2uni.ll" +utf3byte('\x1e','\x14') ; /* U+1E14 */ + YY_BREAK +case 337: +#line 685 "ansel2uni.ll" +case 338: +YY_RULE_SETUP +#line 685 "ansel2uni.ll" +utf3byte('\x1e','\x15') ; /* U+1E15 */ + YY_BREAK +case 339: +#line 688 "ansel2uni.ll" +case 340: +YY_RULE_SETUP +#line 688 "ansel2uni.ll" +utf3byte('\x1e','\x16') ; /* U+1E16 */ + YY_BREAK +case 341: +#line 691 "ansel2uni.ll" +case 342: +YY_RULE_SETUP +#line 691 "ansel2uni.ll" +utf3byte('\x1e','\x17') ; /* U+1E17 */ + YY_BREAK +case 343: +#line 694 "ansel2uni.ll" +case 344: +YY_RULE_SETUP +#line 694 "ansel2uni.ll" +utf3byte('\x1e','\x1c') ; /* U+1E1C */ + YY_BREAK +case 345: +#line 697 "ansel2uni.ll" +case 346: +YY_RULE_SETUP +#line 697 "ansel2uni.ll" +utf3byte('\x1e','\x1d') ; /* U+1E1D */ + YY_BREAK +case 347: +YY_RULE_SETUP +#line 699 "ansel2uni.ll" +utf3byte('\x1e','\x1e') ; /* U+1E1E */ + YY_BREAK +case 348: +YY_RULE_SETUP +#line 700 "ansel2uni.ll" +utf3byte('\x1e','\x1f') ; /* U+1E1F */ + YY_BREAK +case 349: +YY_RULE_SETUP +#line 701 "ansel2uni.ll" +utf3byte('\x1e','\x20') ; /* U+1E20 */ + YY_BREAK +case 350: +YY_RULE_SETUP +#line 702 "ansel2uni.ll" +utf3byte('\x1e','\x21') ; /* U+1E21 */ + YY_BREAK +case 351: +YY_RULE_SETUP +#line 703 "ansel2uni.ll" +utf3byte('\x1e','\x22') ; /* U+1E22 */ + YY_BREAK +case 352: +YY_RULE_SETUP +#line 704 "ansel2uni.ll" +utf3byte('\x1e','\x23') ; /* U+1E23 */ + YY_BREAK +case 353: +YY_RULE_SETUP +#line 705 "ansel2uni.ll" +utf3byte('\x1e','\x24') ; /* U+1E24 */ + YY_BREAK +case 354: +YY_RULE_SETUP +#line 706 "ansel2uni.ll" +utf3byte('\x1e','\x25') ; /* U+1E25 */ + YY_BREAK +case 355: +YY_RULE_SETUP +#line 707 "ansel2uni.ll" +utf3byte('\x1e','\x26') ; /* U+1E26 */ + YY_BREAK +case 356: +YY_RULE_SETUP +#line 708 "ansel2uni.ll" +utf3byte('\x1e','\x27') ; /* U+1E27 */ + YY_BREAK +case 357: +#line 710 "ansel2uni.ll" +case 358: +YY_RULE_SETUP +#line 710 "ansel2uni.ll" +utf3byte('\x1e','\x28') ; /* U+1E28 */ + YY_BREAK +case 359: +#line 712 "ansel2uni.ll" +case 360: +YY_RULE_SETUP +#line 712 "ansel2uni.ll" +utf3byte('\x1e','\x29') ; /* U+1E29 */ + YY_BREAK +case 361: +#line 715 "ansel2uni.ll" +case 362: +YY_RULE_SETUP +#line 715 "ansel2uni.ll" +utf3byte('\x1e','\x2e') ; /* U+1E2E */ + YY_BREAK +case 363: +#line 718 "ansel2uni.ll" +case 364: +YY_RULE_SETUP +#line 718 "ansel2uni.ll" +utf3byte('\x1e','\x2f') ; /* U+1E2F */ + YY_BREAK +case 365: +YY_RULE_SETUP +#line 720 "ansel2uni.ll" +utf3byte('\x1e','\x30') ; /* U+1E30 */ + YY_BREAK +case 366: +YY_RULE_SETUP +#line 721 "ansel2uni.ll" +utf3byte('\x1e','\x31') ; /* U+1E31 */ + YY_BREAK +case 367: +YY_RULE_SETUP +#line 722 "ansel2uni.ll" +utf3byte('\x1e','\x32') ; /* U+1E32 */ + YY_BREAK +case 368: +YY_RULE_SETUP +#line 723 "ansel2uni.ll" +utf3byte('\x1e','\x33') ; /* U+1E33 */ + YY_BREAK +case 369: +YY_RULE_SETUP +#line 724 "ansel2uni.ll" +utf3byte('\x1e','\x34') ; /* U+1E34 */ + YY_BREAK +case 370: +YY_RULE_SETUP +#line 725 "ansel2uni.ll" +utf3byte('\x1e','\x35') ; /* U+1E35 */ + YY_BREAK +case 371: +YY_RULE_SETUP +#line 726 "ansel2uni.ll" +utf3byte('\x1e','\x36') ; /* U+1E36 */ + YY_BREAK +case 372: +YY_RULE_SETUP +#line 727 "ansel2uni.ll" +utf3byte('\x1e','\x37') ; /* U+1E37 */ + YY_BREAK +case 373: +#line 730 "ansel2uni.ll" +case 374: +YY_RULE_SETUP +#line 730 "ansel2uni.ll" +utf3byte('\x1e','\x38') ; /* U+1E38 */ + YY_BREAK +case 375: +#line 733 "ansel2uni.ll" +case 376: +YY_RULE_SETUP +#line 733 "ansel2uni.ll" +utf3byte('\x1e','\x39') ; /* U+1E39 */ + YY_BREAK +case 377: +YY_RULE_SETUP +#line 735 "ansel2uni.ll" +utf3byte('\x1e','\x3a') ; /* U+1E3A */ + YY_BREAK +case 378: +YY_RULE_SETUP +#line 736 "ansel2uni.ll" +utf3byte('\x1e','\x3b') ; /* U+1E3B */ + YY_BREAK +case 379: +YY_RULE_SETUP +#line 737 "ansel2uni.ll" +utf3byte('\x1e','\x3e') ; /* U+1E3E */ + YY_BREAK +case 380: +YY_RULE_SETUP +#line 738 "ansel2uni.ll" +utf3byte('\x1e','\x3f') ; /* U+1E3F */ + YY_BREAK +case 381: +YY_RULE_SETUP +#line 739 "ansel2uni.ll" +utf3byte('\x1e','\x40') ; /* U+1E40 */ + YY_BREAK +case 382: +YY_RULE_SETUP +#line 740 "ansel2uni.ll" +utf3byte('\x1e','\x41') ; /* U+1E41 */ + YY_BREAK +case 383: +YY_RULE_SETUP +#line 741 "ansel2uni.ll" +utf3byte('\x1e','\x42') ; /* U+1E42 */ + YY_BREAK +case 384: +YY_RULE_SETUP +#line 742 "ansel2uni.ll" +utf3byte('\x1e','\x43') ; /* U+1E43 */ + YY_BREAK +case 385: +YY_RULE_SETUP +#line 743 "ansel2uni.ll" +utf3byte('\x1e','\x44') ; /* U+1E44 */ + YY_BREAK +case 386: +YY_RULE_SETUP +#line 744 "ansel2uni.ll" +utf3byte('\x1e','\x45') ; /* U+1E45 */ + YY_BREAK +case 387: +YY_RULE_SETUP +#line 745 "ansel2uni.ll" +utf3byte('\x1e','\x46') ; /* U+1E46 */ + YY_BREAK +case 388: +YY_RULE_SETUP +#line 746 "ansel2uni.ll" +utf3byte('\x1e','\x47') ; /* U+1E47 */ + YY_BREAK +case 389: +#line 749 "ansel2uni.ll" +case 390: +YY_RULE_SETUP +#line 749 "ansel2uni.ll" +utf3byte('\x1e','\x4c') ; /* U+1E4C */ + YY_BREAK +case 391: +#line 752 "ansel2uni.ll" +case 392: +YY_RULE_SETUP +#line 752 "ansel2uni.ll" +utf3byte('\x1e','\x4d') ; /* U+1E4D */ + YY_BREAK +case 393: +#line 755 "ansel2uni.ll" +case 394: +YY_RULE_SETUP +#line 755 "ansel2uni.ll" +utf3byte('\x1e','\x4e') ; /* U+1E4E */ + YY_BREAK +case 395: +#line 758 "ansel2uni.ll" +case 396: +YY_RULE_SETUP +#line 758 "ansel2uni.ll" +utf3byte('\x1e','\x4f') ; /* U+1E4F */ + YY_BREAK +case 397: +#line 761 "ansel2uni.ll" +case 398: +YY_RULE_SETUP +#line 761 "ansel2uni.ll" +utf3byte('\x1e','\x50') ; /* U+1E50 */ + YY_BREAK +case 399: +#line 764 "ansel2uni.ll" +case 400: +YY_RULE_SETUP +#line 764 "ansel2uni.ll" +utf3byte('\x1e','\x51') ; /* U+1E51 */ + YY_BREAK +case 401: +#line 767 "ansel2uni.ll" +case 402: +YY_RULE_SETUP +#line 767 "ansel2uni.ll" +utf3byte('\x1e','\x52') ; /* U+1E52 */ + YY_BREAK +case 403: +#line 770 "ansel2uni.ll" +case 404: +YY_RULE_SETUP +#line 770 "ansel2uni.ll" +utf3byte('\x1e','\x53') ; /* U+1E53 */ + YY_BREAK +case 405: +YY_RULE_SETUP +#line 772 "ansel2uni.ll" +utf3byte('\x1e','\x54') ; /* U+1E54 */ + YY_BREAK +case 406: +YY_RULE_SETUP +#line 773 "ansel2uni.ll" +utf3byte('\x1e','\x55') ; /* U+1E55 */ + YY_BREAK +case 407: +YY_RULE_SETUP +#line 774 "ansel2uni.ll" +utf3byte('\x1e','\x56') ; /* U+1E56 */ + YY_BREAK +case 408: +YY_RULE_SETUP +#line 775 "ansel2uni.ll" +utf3byte('\x1e','\x57') ; /* U+1E57 */ + YY_BREAK +case 409: +YY_RULE_SETUP +#line 776 "ansel2uni.ll" +utf3byte('\x1e','\x58') ; /* U+1E58 */ + YY_BREAK +case 410: +YY_RULE_SETUP +#line 777 "ansel2uni.ll" +utf3byte('\x1e','\x59') ; /* U+1E59 */ + YY_BREAK +case 411: +YY_RULE_SETUP +#line 778 "ansel2uni.ll" +utf3byte('\x1e','\x5a') ; /* U+1E5A */ + YY_BREAK +case 412: +YY_RULE_SETUP +#line 779 "ansel2uni.ll" +utf3byte('\x1e','\x5b') ; /* U+1E5B */ + YY_BREAK +case 413: +#line 782 "ansel2uni.ll" +case 414: +YY_RULE_SETUP +#line 782 "ansel2uni.ll" +utf3byte('\x1e','\x5c') ; /* U+1E5c */ + YY_BREAK +case 415: +#line 785 "ansel2uni.ll" +case 416: +YY_RULE_SETUP +#line 785 "ansel2uni.ll" +utf3byte('\x1e','\x5d') ; /* U+1E5D */ + YY_BREAK +case 417: +YY_RULE_SETUP +#line 787 "ansel2uni.ll" +utf3byte('\x1e','\x5e') ; /* U+1E5E */ + YY_BREAK +case 418: +YY_RULE_SETUP +#line 788 "ansel2uni.ll" +utf3byte('\x1e','\x5f') ; /* U+1E5F */ + YY_BREAK +case 419: +YY_RULE_SETUP +#line 789 "ansel2uni.ll" +utf3byte('\x1e','\x60') ; /* U+1E60 */ + YY_BREAK +case 420: +YY_RULE_SETUP +#line 790 "ansel2uni.ll" +utf3byte('\x1e','\x61') ; /* U+1E61 */ + YY_BREAK +case 421: +YY_RULE_SETUP +#line 791 "ansel2uni.ll" +utf3byte('\x1e','\x62') ; /* U+1E62 */ + YY_BREAK +case 422: +YY_RULE_SETUP +#line 792 "ansel2uni.ll" +utf3byte('\x1e','\x63') ; /* U+1E63 */ + YY_BREAK +case 423: +#line 795 "ansel2uni.ll" +case 424: +YY_RULE_SETUP +#line 795 "ansel2uni.ll" +utf3byte('\x1e','\x64') ; /* U+1E64 */ + YY_BREAK +case 425: +#line 798 "ansel2uni.ll" +case 426: +YY_RULE_SETUP +#line 798 "ansel2uni.ll" +utf3byte('\x1e','\x65') ; /* U+1E65 */ + YY_BREAK +case 427: +#line 801 "ansel2uni.ll" +case 428: +YY_RULE_SETUP +#line 801 "ansel2uni.ll" +utf3byte('\x1e','\x66') ; /* U+1E66 */ + YY_BREAK +case 429: +#line 804 "ansel2uni.ll" +case 430: +YY_RULE_SETUP +#line 804 "ansel2uni.ll" +utf3byte('\x1e','\x67') ; /* U+1E67 */ + YY_BREAK +case 431: +#line 807 "ansel2uni.ll" +case 432: +YY_RULE_SETUP +#line 807 "ansel2uni.ll" +utf3byte('\x1e','\x68') ; /* U+1E68 */ + YY_BREAK +case 433: +#line 810 "ansel2uni.ll" +case 434: +YY_RULE_SETUP +#line 810 "ansel2uni.ll" +utf3byte('\x1e','\x69') ; /* U+1E69 */ + YY_BREAK +case 435: +YY_RULE_SETUP +#line 812 "ansel2uni.ll" +utf3byte('\x1e','\x6a') ; /* U+1E6A */ + YY_BREAK +case 436: +YY_RULE_SETUP +#line 813 "ansel2uni.ll" +utf3byte('\x1e','\x6b') ; /* U+1E6B */ + YY_BREAK +case 437: +YY_RULE_SETUP +#line 814 "ansel2uni.ll" +utf3byte('\x1e','\x6c') ; /* U+1E6C */ + YY_BREAK +case 438: +YY_RULE_SETUP +#line 815 "ansel2uni.ll" +utf3byte('\x1e','\x6d') ; /* U+1E6d */ + YY_BREAK +case 439: +YY_RULE_SETUP +#line 816 "ansel2uni.ll" +utf3byte('\x1e','\x6e') ; /* U+1E6d */ + YY_BREAK +case 440: +YY_RULE_SETUP +#line 817 "ansel2uni.ll" +utf3byte('\x1e','\x6f') ; /* U+1E6F */ + YY_BREAK +case 441: +YY_RULE_SETUP +#line 818 "ansel2uni.ll" +utf3byte('\x1e','\x72') ; /* U+1E72 */ + YY_BREAK +case 442: +YY_RULE_SETUP +#line 819 "ansel2uni.ll" +utf3byte('\x1e','\x73') ; /* U+1E73 */ + YY_BREAK +case 443: +#line 822 "ansel2uni.ll" +case 444: +YY_RULE_SETUP +#line 822 "ansel2uni.ll" +utf3byte('\x1e','\x78') ; /* U+1E78 */ + YY_BREAK +case 445: +#line 825 "ansel2uni.ll" +case 446: +YY_RULE_SETUP +#line 825 "ansel2uni.ll" +utf3byte('\x1e','\x79') ; /* U+1E79 */ + YY_BREAK +/* see U+01D5 for the opposite order */ +case 447: +YY_RULE_SETUP +#line 828 "ansel2uni.ll" +utf3byte('\x1e','\x7a') ; /* U+1E7A */ + YY_BREAK +case 448: +YY_RULE_SETUP +#line 829 "ansel2uni.ll" +utf3byte('\x1e','\x7b') ; /* U+1E7B */ + YY_BREAK +case 449: +YY_RULE_SETUP +#line 831 "ansel2uni.ll" +utf3byte('\x1e','\x7c') ; /* U+1E7C */ + YY_BREAK +case 450: +YY_RULE_SETUP +#line 832 "ansel2uni.ll" +utf3byte('\x1e','\x7d') ; /* U+1E7D */ + YY_BREAK +case 451: +YY_RULE_SETUP +#line 833 "ansel2uni.ll" +utf3byte('\x1e','\x7e') ; /* U+1E7E */ + YY_BREAK +case 452: +YY_RULE_SETUP +#line 834 "ansel2uni.ll" +utf3byte('\x1e','\x7f') ; /* U+1E7F */ + YY_BREAK +case 453: +YY_RULE_SETUP +#line 835 "ansel2uni.ll" +utf3byte('\x1e','\x80') ; /* U+1E80 */ + YY_BREAK +case 454: +YY_RULE_SETUP +#line 836 "ansel2uni.ll" +utf3byte('\x1e','\x81') ; /* U+1E81 */ + YY_BREAK +case 455: +YY_RULE_SETUP +#line 837 "ansel2uni.ll" +utf3byte('\x1e','\x82') ; /* U+1E82 */ + YY_BREAK +case 456: +YY_RULE_SETUP +#line 838 "ansel2uni.ll" +utf3byte('\x1e','\x83') ; /* U+1E83 */ + YY_BREAK +case 457: +YY_RULE_SETUP +#line 839 "ansel2uni.ll" +utf3byte('\x1e','\x84') ; /* U+1E84 */ + YY_BREAK +case 458: +YY_RULE_SETUP +#line 840 "ansel2uni.ll" +utf3byte('\x1e','\x85') ; /* U+1E85 */ + YY_BREAK +case 459: +YY_RULE_SETUP +#line 841 "ansel2uni.ll" +utf3byte('\x1e','\x86') ; /* U+1E86 */ + YY_BREAK +case 460: +YY_RULE_SETUP +#line 842 "ansel2uni.ll" +utf3byte('\x1e','\x87') ; /* U+1E87 */ + YY_BREAK +case 461: +YY_RULE_SETUP +#line 843 "ansel2uni.ll" +utf3byte('\x1e','\x88') ; /* U+1E88 */ + YY_BREAK +case 462: +YY_RULE_SETUP +#line 844 "ansel2uni.ll" +utf3byte('\x1e','\x89') ; /* U+1E89 */ + YY_BREAK +case 463: +YY_RULE_SETUP +#line 845 "ansel2uni.ll" +utf3byte('\x1e','\x8a') ; /* U+1E8A */ + YY_BREAK +case 464: +YY_RULE_SETUP +#line 846 "ansel2uni.ll" +utf3byte('\x1e','\x8b') ; /* U+1E8B */ + YY_BREAK +case 465: +YY_RULE_SETUP +#line 847 "ansel2uni.ll" +utf3byte('\x1e','\x8c') ; /* U+1E8C */ + YY_BREAK +case 466: +YY_RULE_SETUP +#line 848 "ansel2uni.ll" +utf3byte('\x1e','\x8d') ; /* U+1E8D */ + YY_BREAK +case 467: +YY_RULE_SETUP +#line 849 "ansel2uni.ll" +utf3byte('\x1e','\x8e') ; /* U+1E8E */ + YY_BREAK +case 468: +YY_RULE_SETUP +#line 850 "ansel2uni.ll" +utf3byte('\x1e','\x8f') ; /* U+1E8F */ + YY_BREAK +case 469: +YY_RULE_SETUP +#line 851 "ansel2uni.ll" +utf3byte('\x1e','\x90') ; /* U+1E90 */ + YY_BREAK +case 470: +YY_RULE_SETUP +#line 852 "ansel2uni.ll" +utf3byte('\x1e','\x91') ; /* U+1E91 */ + YY_BREAK +case 471: +YY_RULE_SETUP +#line 853 "ansel2uni.ll" +utf3byte('\x1e','\x92') ; /* U+1E92 */ + YY_BREAK +case 472: +YY_RULE_SETUP +#line 854 "ansel2uni.ll" +utf3byte('\x1e','\x93') ; /* U+1E93 */ + YY_BREAK +case 473: +YY_RULE_SETUP +#line 855 "ansel2uni.ll" +utf3byte('\x1e','\x94') ; /* U+1E94 */ + YY_BREAK +case 474: +YY_RULE_SETUP +#line 856 "ansel2uni.ll" +utf3byte('\x1e','\x95') ; /* U+1E95 */ + YY_BREAK +case 475: +YY_RULE_SETUP +#line 857 "ansel2uni.ll" +utf3byte('\x1e','\x96') ; /* U+1E96 */ + YY_BREAK +case 476: +YY_RULE_SETUP +#line 858 "ansel2uni.ll" +utf3byte('\x1e','\x97') ; /* U+1E97 */ + YY_BREAK +case 477: +YY_RULE_SETUP +#line 859 "ansel2uni.ll" +utf3byte('\x1e','\x98') ; /* U+1E98 */ + YY_BREAK +case 478: +YY_RULE_SETUP +#line 860 "ansel2uni.ll" +utf3byte('\x1e','\x99') ; /* U+1E99 */ + YY_BREAK +case 479: +YY_RULE_SETUP +#line 861 "ansel2uni.ll" +utf3byte('\x1e','\xa0') ; /* U+1EA0 */ + YY_BREAK +case 480: +YY_RULE_SETUP +#line 862 "ansel2uni.ll" +utf3byte('\x1e','\xa1') ; /* U+1EA1 */ + YY_BREAK +case 481: +YY_RULE_SETUP +#line 863 "ansel2uni.ll" +utf3byte('\x1e','\xa2') ; /* U+1EA2 */ + YY_BREAK +case 482: +YY_RULE_SETUP +#line 864 "ansel2uni.ll" +utf3byte('\x1e','\xa3') ; /* U+1EA3 */ + YY_BREAK +case 483: +#line 867 "ansel2uni.ll" +case 484: +YY_RULE_SETUP +#line 867 "ansel2uni.ll" +utf3byte('\x1e','\xa4') ; /* U+1EA4 */ + YY_BREAK +case 485: +#line 870 "ansel2uni.ll" +case 486: +YY_RULE_SETUP +#line 870 "ansel2uni.ll" +utf3byte('\x1e','\xa5') ; /* U+1EA5 */ + YY_BREAK +case 487: +#line 873 "ansel2uni.ll" +case 488: +YY_RULE_SETUP +#line 873 "ansel2uni.ll" +utf3byte('\x1e','\xa6') ; /* U+1EA6 */ + YY_BREAK +case 489: +#line 876 "ansel2uni.ll" +case 490: +YY_RULE_SETUP +#line 876 "ansel2uni.ll" +utf3byte('\x1e','\xa7') ; /* U+1EA7 */ + YY_BREAK +case 491: +#line 879 "ansel2uni.ll" +case 492: +YY_RULE_SETUP +#line 879 "ansel2uni.ll" +utf3byte('\x1e','\xa8') ; /* U+1EA8 */ + YY_BREAK +case 493: +#line 882 "ansel2uni.ll" +case 494: +YY_RULE_SETUP +#line 882 "ansel2uni.ll" +utf3byte('\x1e','\xa9') ; /* U+1EA9 */ + YY_BREAK +case 495: +#line 885 "ansel2uni.ll" +case 496: +YY_RULE_SETUP +#line 885 "ansel2uni.ll" +utf3byte('\x1e','\xaa') ; /* U+1EAA */ + YY_BREAK +case 497: +#line 888 "ansel2uni.ll" +case 498: +YY_RULE_SETUP +#line 888 "ansel2uni.ll" +utf3byte('\x1e','\xab') ; /* U+1EAB */ + YY_BREAK +case 499: +#line 891 "ansel2uni.ll" +case 500: +YY_RULE_SETUP +#line 891 "ansel2uni.ll" +utf3byte('\x1e','\xac') ; /* U+1EAC */ + YY_BREAK +case 501: +#line 894 "ansel2uni.ll" +case 502: +YY_RULE_SETUP +#line 894 "ansel2uni.ll" +utf3byte('\x1e','\xad') ; /* U+1EAD */ + YY_BREAK +case 503: +#line 897 "ansel2uni.ll" +case 504: +YY_RULE_SETUP +#line 897 "ansel2uni.ll" +utf3byte('\x1e','\xae') ; /* U+1EAE */ + YY_BREAK +case 505: +#line 900 "ansel2uni.ll" +case 506: +YY_RULE_SETUP +#line 900 "ansel2uni.ll" +utf3byte('\x1e','\xaf') ; /* U+1EAF */ + YY_BREAK +case 507: +#line 903 "ansel2uni.ll" +case 508: +YY_RULE_SETUP +#line 903 "ansel2uni.ll" +utf3byte('\x1e','\xb0') ; /* U+1EB0 */ + YY_BREAK +case 509: +#line 906 "ansel2uni.ll" +case 510: +YY_RULE_SETUP +#line 906 "ansel2uni.ll" +utf3byte('\x1e','\xb1') ; /* U+1EB1 */ + YY_BREAK +case 511: +#line 909 "ansel2uni.ll" +case 512: +YY_RULE_SETUP +#line 909 "ansel2uni.ll" +utf3byte('\x1e','\xb2') ; /* U+1EB2 */ + YY_BREAK +case 513: +#line 912 "ansel2uni.ll" +case 514: +YY_RULE_SETUP +#line 912 "ansel2uni.ll" +utf3byte('\x1e','\xb3') ; /* U+1EB3 */ + YY_BREAK +case 515: +#line 915 "ansel2uni.ll" +case 516: +YY_RULE_SETUP +#line 915 "ansel2uni.ll" +utf3byte('\x1e','\xb4') ; /* U+1EB4 */ + YY_BREAK +case 517: +#line 918 "ansel2uni.ll" +case 518: +YY_RULE_SETUP +#line 918 "ansel2uni.ll" +utf3byte('\x1e','\xb5') ; /* U+1EB5 */ + YY_BREAK +case 519: +#line 921 "ansel2uni.ll" +case 520: +YY_RULE_SETUP +#line 921 "ansel2uni.ll" +utf3byte('\x1e','\xb6') ; /* U+1EB6 */ + YY_BREAK +case 521: +#line 924 "ansel2uni.ll" +case 522: +YY_RULE_SETUP +#line 924 "ansel2uni.ll" +utf3byte('\x1e','\xb7') ; /* U+1EB7 */ + YY_BREAK +case 523: +YY_RULE_SETUP +#line 926 "ansel2uni.ll" +utf3byte('\x1e','\xb8') ; /* U+1EB8 */ + YY_BREAK +case 524: +YY_RULE_SETUP +#line 927 "ansel2uni.ll" +utf3byte('\x1e','\xb9') ; /* U+1EB9 */ + YY_BREAK +case 525: +YY_RULE_SETUP +#line 929 "ansel2uni.ll" +utf3byte('\x1e','\xba') ; /* U+1EBA */ + YY_BREAK +case 526: +YY_RULE_SETUP +#line 930 "ansel2uni.ll" +utf3byte('\x1e','\xbb') ; /* U+1EBB */ + YY_BREAK +case 527: +YY_RULE_SETUP +#line 931 "ansel2uni.ll" +utf3byte('\x1e','\xbc') ; /* U+1EBC */ + YY_BREAK +case 528: +YY_RULE_SETUP +#line 932 "ansel2uni.ll" +utf3byte('\x1e','\xbd') ; /* U+1EBD */ + YY_BREAK +case 529: +#line 935 "ansel2uni.ll" +case 530: +YY_RULE_SETUP +#line 935 "ansel2uni.ll" +utf3byte('\x1e','\xbe') ; /* U+1EBE */ + YY_BREAK +case 531: +#line 938 "ansel2uni.ll" +case 532: +YY_RULE_SETUP +#line 938 "ansel2uni.ll" +utf3byte('\x1e','\xbf') ; /* U+1EBF */ + YY_BREAK +case 533: +#line 941 "ansel2uni.ll" +case 534: +YY_RULE_SETUP +#line 941 "ansel2uni.ll" +utf3byte('\x1e','\xc0') ; /* U+1EC0*/ + YY_BREAK +case 535: +#line 944 "ansel2uni.ll" +case 536: +YY_RULE_SETUP +#line 944 "ansel2uni.ll" +utf3byte('\x1e','\xc1') ; /* U+1EC1 */ + YY_BREAK +case 537: +#line 947 "ansel2uni.ll" +case 538: +YY_RULE_SETUP +#line 947 "ansel2uni.ll" +utf3byte('\x1e','\xc2') ; /* U+1EC2 */ + YY_BREAK +case 539: +#line 950 "ansel2uni.ll" +case 540: +YY_RULE_SETUP +#line 950 "ansel2uni.ll" +utf3byte('\x1e','\xc3') ; /* U+1EC3 */ + YY_BREAK +case 541: +#line 953 "ansel2uni.ll" +case 542: +YY_RULE_SETUP +#line 953 "ansel2uni.ll" +utf3byte('\x1e','\xc4') ; /* U+1EC4 */ + YY_BREAK +case 543: +#line 956 "ansel2uni.ll" +case 544: +YY_RULE_SETUP +#line 956 "ansel2uni.ll" +utf3byte('\x1e','\xc5') ; /* U+1EC5 */ + YY_BREAK +case 545: +#line 959 "ansel2uni.ll" +case 546: +YY_RULE_SETUP +#line 959 "ansel2uni.ll" +utf3byte('\x1e','\xc6') ; /* U+1EC6 */ + YY_BREAK +case 547: +#line 962 "ansel2uni.ll" +case 548: +YY_RULE_SETUP +#line 962 "ansel2uni.ll" +utf3byte('\x1e','\xc7') ; /* U+1EC7 */ + YY_BREAK +case 549: +YY_RULE_SETUP +#line 964 "ansel2uni.ll" +utf3byte('\x1e','\xc8') ; /* U+1EC8 */ + YY_BREAK +case 550: +YY_RULE_SETUP +#line 965 "ansel2uni.ll" +utf3byte('\x1e','\xc9') ; /* U+1EC9 */ + YY_BREAK +case 551: +YY_RULE_SETUP +#line 966 "ansel2uni.ll" +utf3byte('\x1e','\xca') ; /* U+1ECA */ + YY_BREAK +case 552: +YY_RULE_SETUP +#line 967 "ansel2uni.ll" +utf3byte('\x1e','\xcb') ; /* U+1ECB */ + YY_BREAK +case 553: +YY_RULE_SETUP +#line 968 "ansel2uni.ll" +utf3byte('\x1e','\xcc') ; /* U+1ECC */ + YY_BREAK +case 554: +YY_RULE_SETUP +#line 969 "ansel2uni.ll" +utf3byte('\x1e','\xcd') ; /* U+1ECD */ + YY_BREAK +case 555: +YY_RULE_SETUP +#line 970 "ansel2uni.ll" +utf3byte('\x1e','\xce') ; /* U+1ECE */ + YY_BREAK +case 556: +YY_RULE_SETUP +#line 971 "ansel2uni.ll" +utf3byte('\x1e','\xcf') ; /* U+1ECF */ + YY_BREAK +case 557: +#line 974 "ansel2uni.ll" +case 558: +YY_RULE_SETUP +#line 974 "ansel2uni.ll" +utf3byte('\x1e','\xd0') ; /* U+1ED0 */ + YY_BREAK +case 559: +#line 977 "ansel2uni.ll" +case 560: +YY_RULE_SETUP +#line 977 "ansel2uni.ll" +utf3byte('\x1e','\xd1') ; /* U+1Ed1 */ + YY_BREAK +case 561: +#line 980 "ansel2uni.ll" +case 562: +YY_RULE_SETUP +#line 980 "ansel2uni.ll" +utf3byte('\x1e','\xd2') ; /* U+1ED2 */ + YY_BREAK +case 563: +#line 983 "ansel2uni.ll" +case 564: +YY_RULE_SETUP +#line 983 "ansel2uni.ll" +utf3byte('\x1e','\xd3') ; /* U+1ED3 */ + YY_BREAK +case 565: +#line 986 "ansel2uni.ll" +case 566: +YY_RULE_SETUP +#line 986 "ansel2uni.ll" +utf3byte('\x1e','\xd4') ; /* U+1ED4 */ + YY_BREAK +case 567: +#line 989 "ansel2uni.ll" +case 568: +YY_RULE_SETUP +#line 989 "ansel2uni.ll" +utf3byte('\x1e','\xd5') ; /* U+1Ed5 */ + YY_BREAK +case 569: +#line 992 "ansel2uni.ll" +case 570: +YY_RULE_SETUP +#line 992 "ansel2uni.ll" +utf3byte('\x1e','\xd6') ; /* U+1ED6 */ + YY_BREAK +case 571: +#line 995 "ansel2uni.ll" +case 572: +YY_RULE_SETUP +#line 995 "ansel2uni.ll" +utf3byte('\x1e','\xd7') ; /* U+1ED7 */ + YY_BREAK +case 573: +#line 998 "ansel2uni.ll" +case 574: +YY_RULE_SETUP +#line 998 "ansel2uni.ll" +utf3byte('\x1e','\xd8') ; /* U+1ED8 */ + YY_BREAK +case 575: +#line 1001 "ansel2uni.ll" +case 576: +YY_RULE_SETUP +#line 1001 "ansel2uni.ll" +utf3byte('\x1e','\xd9') ; /* U+1ED9 */ + YY_BREAK +case 577: +YY_RULE_SETUP +#line 1003 "ansel2uni.ll" +utf3byte('\x1e','\xda') ; /* U+1EDA */ + YY_BREAK +case 578: +YY_RULE_SETUP +#line 1004 "ansel2uni.ll" +utf3byte('\x1e','\xdb') ; /* U+1EDB */ + YY_BREAK +case 579: +YY_RULE_SETUP +#line 1005 "ansel2uni.ll" +utf3byte('\x1e','\xdc') ; /* U+1EDC */ + YY_BREAK +case 580: +YY_RULE_SETUP +#line 1006 "ansel2uni.ll" +utf3byte('\x1e','\xdd') ; /* U+1EDD */ + YY_BREAK +case 581: +YY_RULE_SETUP +#line 1007 "ansel2uni.ll" +utf3byte('\x1e','\xde') ; /* U+1EDE */ + YY_BREAK +case 582: +YY_RULE_SETUP +#line 1008 "ansel2uni.ll" +utf3byte('\x1e','\xdf') ; /* U+1EDF */ + YY_BREAK +case 583: +YY_RULE_SETUP +#line 1009 "ansel2uni.ll" +utf3byte('\x1e','\xe0') ; /* U+1EE0 */ + YY_BREAK +case 584: +YY_RULE_SETUP +#line 1010 "ansel2uni.ll" +utf3byte('\x1e','\xe1') ; /* U+1EE1 */ + YY_BREAK +case 585: +YY_RULE_SETUP +#line 1011 "ansel2uni.ll" +utf3byte('\x1e','\xe2') ; /* U+1EE2 */ + YY_BREAK +case 586: +YY_RULE_SETUP +#line 1012 "ansel2uni.ll" +utf3byte('\x1e','\xe3') ; /* U+1EE3 */ + YY_BREAK +case 587: +YY_RULE_SETUP +#line 1013 "ansel2uni.ll" +utf3byte('\x1e','\xe4') ; /* U+1EE4 */ + YY_BREAK +case 588: +YY_RULE_SETUP +#line 1014 "ansel2uni.ll" +utf3byte('\x1e','\xe5') ; /* U+1EE5 */ + YY_BREAK +case 589: +YY_RULE_SETUP +#line 1015 "ansel2uni.ll" +utf3byte('\x1e','\xe6') ; /* U+1EE6 */ + YY_BREAK +case 590: +YY_RULE_SETUP +#line 1016 "ansel2uni.ll" +utf3byte('\x1e','\xe7') ; /* U+1EE7 */ + YY_BREAK +case 591: +YY_RULE_SETUP +#line 1017 "ansel2uni.ll" +utf3byte('\x1e','\xe8') ; /* U+1EE8 */ + YY_BREAK +case 592: +YY_RULE_SETUP +#line 1018 "ansel2uni.ll" +utf3byte('\x1e','\xe9') ; /* U+1EE9 */ + YY_BREAK +case 593: +YY_RULE_SETUP +#line 1019 "ansel2uni.ll" +utf3byte('\x1e','\xea') ; /* U+1EEA */ + YY_BREAK +case 594: +YY_RULE_SETUP +#line 1020 "ansel2uni.ll" +utf3byte('\x1e','\xeb') ; /* U+1EEB */ + YY_BREAK +case 595: +YY_RULE_SETUP +#line 1021 "ansel2uni.ll" +utf3byte('\x1e','\xec') ; /* U+1EEC */ + YY_BREAK +case 596: +YY_RULE_SETUP +#line 1022 "ansel2uni.ll" +utf3byte('\x1e','\xed') ; /* U+1EED */ + YY_BREAK +case 597: +YY_RULE_SETUP +#line 1023 "ansel2uni.ll" +utf3byte('\x1e','\xee') ; /* U+1EEE */ + YY_BREAK +case 598: +YY_RULE_SETUP +#line 1024 "ansel2uni.ll" +utf3byte('\x1e','\xef') ; /* U+1EEF */ + YY_BREAK +case 599: +YY_RULE_SETUP +#line 1025 "ansel2uni.ll" +utf3byte('\x1e','\xf0') ; /* U+1EF0 */ + YY_BREAK +case 600: +YY_RULE_SETUP +#line 1026 "ansel2uni.ll" +utf3byte('\x1e','\xf1') ; /* U+1EF1 */ + YY_BREAK +case 601: +YY_RULE_SETUP +#line 1027 "ansel2uni.ll" +utf3byte('\x1e','\xf2') ; /* U+1EF2 */ + YY_BREAK +case 602: +YY_RULE_SETUP +#line 1028 "ansel2uni.ll" +utf3byte('\x1e','\xf3') ; /* U+1EF3 */ + YY_BREAK +case 603: +YY_RULE_SETUP +#line 1029 "ansel2uni.ll" +utf3byte('\x1e','\xf4') ; /* U+1EF4 */ + YY_BREAK +case 604: +YY_RULE_SETUP +#line 1030 "ansel2uni.ll" +utf3byte('\x1e','\xf5') ; /* U+1EF5 */ + YY_BREAK +case 605: +YY_RULE_SETUP +#line 1031 "ansel2uni.ll" +utf3byte('\x1e','\xf6') ; /* U+1EF6 */ + YY_BREAK +case 606: +YY_RULE_SETUP +#line 1032 "ansel2uni.ll" +utf3byte('\x1e','\xf7') ; /* U+1EF7 */ + YY_BREAK +case 607: +YY_RULE_SETUP +#line 1033 "ansel2uni.ll" +utf3byte('\x1e','\xf8') ; /* U+1EF8 */ + YY_BREAK +case 608: +YY_RULE_SETUP +#line 1034 "ansel2uni.ll" +utf3byte('\x1e','\xf9') ; /* U+1EF9 */ + YY_BREAK +/* end of Latin Extended Additional */ +case 609: +YY_RULE_SETUP +#line 1038 "ansel2uni.ll" +utf3byte('\x02','\xbc') ; /* alif */ /* U+1EBC */ + YY_BREAK +case 610: +YY_RULE_SETUP +#line 1039 "ansel2uni.ll" +utf3byte('\x02','\xbb') ; /* ayn */ /* U+1EBB */ + YY_BREAK +/* MUSIC */ +case 611: +YY_RULE_SETUP +#line 1042 "ansel2uni.ll" +utf3byte('\x26','\x6d') ; /* MUSIC FLAT SIGN U+266D */ + YY_BREAK +case 612: +YY_RULE_SETUP +#line 1043 "ansel2uni.ll" +utf3byte('\x26','\x6f') ; /* MUSIC SHARP SIGN U+266F */ + YY_BREAK +case 613: +YY_RULE_SETUP +#line 1045 "ansel2uni.ll" +utf3byte('\x21','\x13') ; /* SCRIPT SMALL L U+2113 */ + YY_BREAK +case 614: +YY_RULE_SETUP +#line 1046 "ansel2uni.ll" +utf3byte('\x21','\x17') ; /* SOUNC RECORDING COPYRIGHT U+2117 */ + YY_BREAK +/* hard, soft signs */ +case 615: +YY_RULE_SETUP +#line 1049 "ansel2uni.ll" +{ +#ifdef MARC_EXT + utf3byte('\x02','\xba') ; /* MODIFIER LETTER DOUBLE PRIME U+02BA */ +#else + utf3byte('\x04','\x4a') ; /* CYRILLIC SMALL LETTER HARD SIGN U+044A */ +#endif + } + YY_BREAK +case 616: +YY_RULE_SETUP +#line 1057 "ansel2uni.ll" +{ +#ifdef MARC_EXT + utf3byte('\x02','\xb9') ; /* U+02B9 */ +#else + utf3byte('\x04','\x4c') ; /* CYRILLIC SMALL LETTER SOFT SIGN U+044A */ +#endif + } + YY_BREAK +/* Vietnamiese from Latin Extended-B */ +case 617: +YY_RULE_SETUP +#line 1066 "ansel2uni.ll" +utf3byte('\x01','\xa0') ; /* LATIN CAPITAL LETTER o WITH HORN U+01A0 */ + YY_BREAK +case 618: +YY_RULE_SETUP +#line 1067 "ansel2uni.ll" +utf3byte('\x01','\xa1') ; /* LATIN SMALL LETTER o WITH HORN U+01A1 */ + YY_BREAK +case 619: +YY_RULE_SETUP +#line 1068 "ansel2uni.ll" +utf3byte('\x01','\xaf') ; /* LATIN CAPITAL LETTER u WITH HORN U+01AF */ + YY_BREAK +case 620: +YY_RULE_SETUP +#line 1069 "ansel2uni.ll" +utf3byte('\x01','\xb0') ; /* LATIN SMALL LETTER u WITH HORN U+01B0 */ + YY_BREAK +case 621: +YY_RULE_SETUP +#line 1071 "ansel2uni.ll" +{ +#ifdef GEDCOM_LDSEXT + utf3byte('\x25','\xa1') ; /*WHITE SQUARE U+25A1 this is a rumor not in the 5.5 or 5.5.1 standard */ + ; +#else + ; +#endif + } + YY_BREAK +case 622: +YY_RULE_SETUP +#line 1080 "ansel2uni.ll" +{ +#ifdef GEDCOM_LDSEXT + utf3byte('\x25','\xa0') ; /* BLACK SQUARE U+25A0 a rumor again not in GEDCOM 5.5 or 5.5.1 */ + ; +#else + ; +#endif + } + YY_BREAK +case 623: +YY_RULE_SETUP +#line 1089 "ansel2uni.ll" +{ +#if defined GEDCOM_EXT || defined GEDCOM_LDSEXT + utf2byte('\xdf') ; /* LATIN SMALL LETTER SHARP S U+00DF */ + ; +#else + ; +#endif + } + YY_BREAK +case 624: +YY_RULE_SETUP +#line 1098 "ansel2uni.ll" +{ +#ifdef MARC_EXT + utf2byte('\xdf') ; /* LATIN SMALL LETTER SHARP S U+00DF */ +#else + ; +#endif + } + YY_BREAK +case 625: +YY_RULE_SETUP +#line 1106 "ansel2uni.ll" +{ +#ifdef MARC_EXT + utf3byte('\x20','\xac') ; /* EURO SIGN U+20AC */ +#else + ; +#endif + } + YY_BREAK +/* generic declarations follow. flex(1) specifies that they are + * superseded by those above if there are mutliple matchings of the same length */ +/* invalid codes in the standard use : ignore (delete on output) */ +case 626: +#line 1121 "ansel2uni.ll" +case 627: +#line 1122 "ansel2uni.ll" +case 628: +YY_RULE_SETUP +#line 1122 "ansel2uni.ll" +; + YY_BREAK +/* low rising tone mark */ +case 629: +YY_RULE_SETUP +#line 1125 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x09') ; /* COMBINING HOOK ABOVE U+0309 */ + } + YY_BREAK +/* grave accent */ +case 630: +YY_RULE_SETUP +#line 1131 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x00') ; /* COMBINING GRAVE ACCENT U+0300 */ + } + YY_BREAK +/* acute accent */ +case 631: +YY_RULE_SETUP +#line 1137 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x01') ; /* COMBINING ACUTE ACCENT U+0301 */ + } + YY_BREAK +/* circumflex accent */ +case 632: +YY_RULE_SETUP +#line 1143 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x02') ; /* COMBINING CIRCUMFLEX ACCENT U+0302 */ + } + YY_BREAK +/* tilde */ +case 633: +YY_RULE_SETUP +#line 1149 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x03') ; /* COMBINING TILDE U+0303 */ + } + YY_BREAK +/* Macron */ +case 634: +YY_RULE_SETUP +#line 1155 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x04') ; /* COMBINING MACRON U+0304 */ + } + YY_BREAK +/* Breve */ +case 635: +YY_RULE_SETUP +#line 1161 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x06') ; /* COMBINING BREVE U+0306 */ + } + YY_BREAK +/* dot above */ +case 636: +YY_RULE_SETUP +#line 1167 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x07') ; /* COMBINING DOT ABOVE U+0307 */ + } + YY_BREAK +/* Umlaut, diaresis, double dot above */ +case 637: +YY_RULE_SETUP +#line 1173 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x08') ; /* COMBINING DIARESIS U+0308 */ + } + YY_BREAK +/* Caron, hacek */ +case 638: +YY_RULE_SETUP +#line 1179 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x0c') ; /* COMBINING CARON U+030C */ + } + YY_BREAK +/* circle, ring above */ +case 639: +YY_RULE_SETUP +#line 1185 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x0a') ; /* COMBINING RING ABOVE U+030A */ + } + YY_BREAK +/* ligature, left half \xeb, ligature right half \xec. + * For the purpose of the conversion we assume that \xeb[someletter]\xec[secondletter] + * is always in use */ +case 640: +YY_RULE_SETUP +#line 1193 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x61') ; /* COMBINING DOUBLE INVERTED BREVE U+0361 */ + } + YY_BREAK +case 641: +YY_RULE_SETUP +#line 1198 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + } + YY_BREAK +/* high comma, off center */ +case 642: +YY_RULE_SETUP +#line 1203 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x15') ; /* COMBINING COMMA ABOVE RIGHT U+0315 */ + } + YY_BREAK +/* Hungarian double acute */ +case 643: +YY_RULE_SETUP +#line 1209 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x0b') ; /* COMBINING DOUBLE ACUTE ACCENT U+030B */ + } + YY_BREAK +/* combining candrabindu */ +case 644: +YY_RULE_SETUP +#line 1215 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x10') ; /* COMBININGCANDRABINDU U+0310 */ + } + YY_BREAK +/* cedilla */ +case 645: +YY_RULE_SETUP +#line 1221 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x27') ; /* COMBINING CEDILLA U+0327 */ + } + YY_BREAK +/* right hook */ +case 646: +YY_RULE_SETUP +#line 1228 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x28') ; /* COMBINING OGONEK U+0328 */ + } + YY_BREAK +/* dot below */ +case 647: +YY_RULE_SETUP +#line 1234 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x23') ; /* COMBINING DOT BELOW U+0323 */ + } + YY_BREAK +/* double dot below */ +case 648: +YY_RULE_SETUP +#line 1240 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x24') ; /* COMBINING DOUBLE DIARESIS BELOW U+0324 */ + } + YY_BREAK +/* circle below */ +case 649: +YY_RULE_SETUP +#line 1246 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x25') ; /* COMBINING RING BELOW U+0325 */ + } + YY_BREAK +/* double underscore */ +case 650: +YY_RULE_SETUP +#line 1252 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x33') ; /* COMBINING DOUBLE LOW LINE U+0333 */ + } + YY_BREAK +/* underscore */ +case 651: +YY_RULE_SETUP +#line 1258 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x32') ; /* COMBINING LOW LINE U+0332 */ + } + YY_BREAK +/* left hook */ +case 652: +YY_RULE_SETUP +#line 1264 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x26') ; /* COMBINING COMMA BELOW U+0326 */ + } + YY_BREAK +/* right cedilla */ +case 653: +YY_RULE_SETUP +#line 1270 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x1c') ; /* COMBINING LEFT HALF RING BELOW U+031C */ + } + YY_BREAK +/* half circle below hook */ +case 654: +YY_RULE_SETUP +#line 1276 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x2e') ; /* COMBINING BREVE BELOW U+032e */ + } + YY_BREAK +/* double tilde, left half and right half. + * For the purpose of the conversion we assume that \xfa[someletter]\xfb[secondletter] + * is always in use, without actually checking */ +case 655: +YY_RULE_SETUP +#line 1284 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x60') ; /* COMBINING DOUBLE TILDE U+0360 */ + } + YY_BREAK +case 656: +YY_RULE_SETUP +#line 1289 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + } + YY_BREAK +/* high comma */ +case 657: +YY_RULE_SETUP +#line 1294 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x13') ; /* COMBINING COMMA ABOVE U+0313 */ + } + YY_BREAK +case 658: +YY_RULE_SETUP +#line 1299 "ansel2uni.ll" +{ +#ifdef GEDCOM_LDSEXT + /* the corresponding multiple diacretics with the slash are not implemented below...*/ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x38') ; /* COMBINING LONG SOLIDUS OVERLAY U+0337 , perhaps U+0337 */ +#else + fprintf(yyout,"%c",yytext[1]) ; +#endif + } + YY_BREAK +/* three forms of newline in MAC, Unixes and DOS */ +case 659: +YY_RULE_SETUP +#line 1310 "ansel2uni.ll" +newl(yytext) ; + YY_BREAK +case 660: +/* rule 660 can match eol */ +YY_RULE_SETUP +#line 1312 "ansel2uni.ll" +newl(yytext) ; + YY_BREAK +case 661: +/* rule 661 can match eol */ +YY_RULE_SETUP +#line 1314 "ansel2uni.ll" +newl(yytext) ; + YY_BREAK +/* Generic double accents. The U+1DC4 to U+1DCC are probably not + * meant to be used as double combining accents. + */ +case 662: +YY_RULE_SETUP +#line 1319 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 663: +YY_RULE_SETUP +#line 1324 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 664: +YY_RULE_SETUP +#line 1329 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 665: +YY_RULE_SETUP +#line 1334 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 666: +YY_RULE_SETUP +#line 1339 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 667: +YY_RULE_SETUP +#line 1344 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 668: +YY_RULE_SETUP +#line 1349 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 669: +YY_RULE_SETUP +#line 1354 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 670: +YY_RULE_SETUP +#line 1359 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 671: +YY_RULE_SETUP +#line 1364 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 672: +YY_RULE_SETUP +#line 1369 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 673: +YY_RULE_SETUP +#line 1374 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 674: +YY_RULE_SETUP +#line 1379 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 675: +YY_RULE_SETUP +#line 1384 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 676: +YY_RULE_SETUP +#line 1389 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 677: +YY_RULE_SETUP +#line 1394 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 678: +YY_RULE_SETUP +#line 1399 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 679: +YY_RULE_SETUP +#line 1404 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 680: +YY_RULE_SETUP +#line 1409 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 681: +YY_RULE_SETUP +#line 1414 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 682: +YY_RULE_SETUP +#line 1419 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 683: +YY_RULE_SETUP +#line 1424 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 684: +YY_RULE_SETUP +#line 1429 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 685: +YY_RULE_SETUP +#line 1434 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 686: +YY_RULE_SETUP +#line 1439 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x09') ; + } + YY_BREAK +case 687: +YY_RULE_SETUP +#line 1444 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 688: +YY_RULE_SETUP +#line 1449 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0f') ; + } + YY_BREAK +case 689: +YY_RULE_SETUP +#line 1453 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 690: +YY_RULE_SETUP +#line 1458 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 691: +YY_RULE_SETUP +#line 1463 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 692: +YY_RULE_SETUP +#line 1468 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 693: +YY_RULE_SETUP +#line 1473 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 694: +YY_RULE_SETUP +#line 1478 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 695: +YY_RULE_SETUP +#line 1483 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 696: +YY_RULE_SETUP +#line 1488 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 697: +YY_RULE_SETUP +#line 1493 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 698: +YY_RULE_SETUP +#line 1498 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 699: +YY_RULE_SETUP +#line 1503 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 700: +YY_RULE_SETUP +#line 1508 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 701: +YY_RULE_SETUP +#line 1513 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 702: +YY_RULE_SETUP +#line 1518 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 703: +YY_RULE_SETUP +#line 1523 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 704: +YY_RULE_SETUP +#line 1528 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 705: +YY_RULE_SETUP +#line 1533 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 706: +YY_RULE_SETUP +#line 1538 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 707: +YY_RULE_SETUP +#line 1543 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 708: +YY_RULE_SETUP +#line 1548 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 709: +YY_RULE_SETUP +#line 1553 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 710: +YY_RULE_SETUP +#line 1558 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 711: +YY_RULE_SETUP +#line 1563 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x00') ; + } + YY_BREAK +case 712: +YY_RULE_SETUP +#line 1568 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 713: +YY_RULE_SETUP +#line 1573 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 714: +YY_RULE_SETUP +#line 1578 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 715: +YY_RULE_SETUP +#line 1583 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 716: +YY_RULE_SETUP +#line 1588 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 717: +YY_RULE_SETUP +#line 1593 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 718: +YY_RULE_SETUP +#line 1598 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 719: +YY_RULE_SETUP +#line 1603 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 720: +YY_RULE_SETUP +#line 1608 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 721: +YY_RULE_SETUP +#line 1613 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 722: +YY_RULE_SETUP +#line 1618 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 723: +YY_RULE_SETUP +#line 1623 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 724: +YY_RULE_SETUP +#line 1628 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 725: +YY_RULE_SETUP +#line 1633 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 726: +YY_RULE_SETUP +#line 1638 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 727: +YY_RULE_SETUP +#line 1643 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 728: +YY_RULE_SETUP +#line 1648 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 729: +YY_RULE_SETUP +#line 1653 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 730: +YY_RULE_SETUP +#line 1658 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 731: +YY_RULE_SETUP +#line 1663 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 732: +YY_RULE_SETUP +#line 1668 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 733: +YY_RULE_SETUP +#line 1673 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 734: +YY_RULE_SETUP +#line 1678 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 735: +YY_RULE_SETUP +#line 1683 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 736: +YY_RULE_SETUP +#line 1688 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x01') ; + } + YY_BREAK +case 737: +YY_RULE_SETUP +#line 1693 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 738: +YY_RULE_SETUP +#line 1698 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 739: +YY_RULE_SETUP +#line 1703 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 740: +YY_RULE_SETUP +#line 1708 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 741: +YY_RULE_SETUP +#line 1713 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 742: +YY_RULE_SETUP +#line 1718 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 743: +YY_RULE_SETUP +#line 1723 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 744: +YY_RULE_SETUP +#line 1728 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 745: +YY_RULE_SETUP +#line 1733 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 746: +YY_RULE_SETUP +#line 1738 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 747: +YY_RULE_SETUP +#line 1743 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 748: +YY_RULE_SETUP +#line 1748 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 749: +YY_RULE_SETUP +#line 1753 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 750: +YY_RULE_SETUP +#line 1758 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 751: +YY_RULE_SETUP +#line 1763 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 752: +YY_RULE_SETUP +#line 1768 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 753: +YY_RULE_SETUP +#line 1773 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 754: +YY_RULE_SETUP +#line 1778 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 755: +YY_RULE_SETUP +#line 1783 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 756: +YY_RULE_SETUP +#line 1788 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 757: +YY_RULE_SETUP +#line 1793 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 758: +YY_RULE_SETUP +#line 1798 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 759: +YY_RULE_SETUP +#line 1803 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 760: +YY_RULE_SETUP +#line 1808 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 761: +YY_RULE_SETUP +#line 1813 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x02') ; + } + YY_BREAK +case 762: +YY_RULE_SETUP +#line 1818 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 763: +YY_RULE_SETUP +#line 1823 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 764: +YY_RULE_SETUP +#line 1828 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 765: +YY_RULE_SETUP +#line 1833 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 766: +YY_RULE_SETUP +#line 1838 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 767: +YY_RULE_SETUP +#line 1843 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 768: +YY_RULE_SETUP +#line 1848 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 769: +YY_RULE_SETUP +#line 1853 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 770: +YY_RULE_SETUP +#line 1858 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 771: +YY_RULE_SETUP +#line 1863 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 772: +YY_RULE_SETUP +#line 1868 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 773: +YY_RULE_SETUP +#line 1873 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 774: +YY_RULE_SETUP +#line 1878 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 775: +YY_RULE_SETUP +#line 1883 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 776: +YY_RULE_SETUP +#line 1888 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 777: +YY_RULE_SETUP +#line 1893 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 778: +YY_RULE_SETUP +#line 1898 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 779: +YY_RULE_SETUP +#line 1903 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 780: +YY_RULE_SETUP +#line 1908 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 781: +YY_RULE_SETUP +#line 1913 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 782: +YY_RULE_SETUP +#line 1918 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 783: +YY_RULE_SETUP +#line 1923 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 784: +YY_RULE_SETUP +#line 1928 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 785: +YY_RULE_SETUP +#line 1933 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 786: +YY_RULE_SETUP +#line 1938 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x03') ; + } + YY_BREAK +case 787: +YY_RULE_SETUP +#line 1943 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 788: +YY_RULE_SETUP +#line 1948 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 789: +YY_RULE_SETUP +#line 1953 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 790: +YY_RULE_SETUP +#line 1958 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 791: +YY_RULE_SETUP +#line 1963 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 792: +YY_RULE_SETUP +#line 1968 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 793: +YY_RULE_SETUP +#line 1973 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 794: +YY_RULE_SETUP +#line 1978 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 795: +YY_RULE_SETUP +#line 1983 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 796: +YY_RULE_SETUP +#line 1988 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 797: +YY_RULE_SETUP +#line 1993 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 798: +YY_RULE_SETUP +#line 1998 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 799: +YY_RULE_SETUP +#line 2003 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 800: +YY_RULE_SETUP +#line 2008 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 801: +YY_RULE_SETUP +#line 2013 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 802: +YY_RULE_SETUP +#line 2018 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 803: +YY_RULE_SETUP +#line 2023 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 804: +YY_RULE_SETUP +#line 2028 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 805: +YY_RULE_SETUP +#line 2033 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 806: +YY_RULE_SETUP +#line 2038 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 807: +YY_RULE_SETUP +#line 2043 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 808: +YY_RULE_SETUP +#line 2048 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 809: +YY_RULE_SETUP +#line 2053 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 810: +YY_RULE_SETUP +#line 2058 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 811: +YY_RULE_SETUP +#line 2063 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x04') ; + } + YY_BREAK +case 812: +YY_RULE_SETUP +#line 2068 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 813: +YY_RULE_SETUP +#line 2073 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 814: +YY_RULE_SETUP +#line 2078 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 815: +YY_RULE_SETUP +#line 2083 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 816: +YY_RULE_SETUP +#line 2088 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 817: +YY_RULE_SETUP +#line 2093 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 818: +YY_RULE_SETUP +#line 2098 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 819: +YY_RULE_SETUP +#line 2103 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 820: +YY_RULE_SETUP +#line 2108 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 821: +YY_RULE_SETUP +#line 2113 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 822: +YY_RULE_SETUP +#line 2118 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 823: +YY_RULE_SETUP +#line 2123 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 824: +YY_RULE_SETUP +#line 2128 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 825: +YY_RULE_SETUP +#line 2133 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 826: +YY_RULE_SETUP +#line 2138 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 827: +YY_RULE_SETUP +#line 2143 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 828: +YY_RULE_SETUP +#line 2148 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 829: +YY_RULE_SETUP +#line 2153 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 830: +YY_RULE_SETUP +#line 2158 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 831: +YY_RULE_SETUP +#line 2163 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 832: +YY_RULE_SETUP +#line 2168 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 833: +YY_RULE_SETUP +#line 2173 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 834: +YY_RULE_SETUP +#line 2178 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 835: +YY_RULE_SETUP +#line 2183 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 836: +YY_RULE_SETUP +#line 2188 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x06') ; + } + YY_BREAK +case 837: +YY_RULE_SETUP +#line 2193 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 838: +YY_RULE_SETUP +#line 2198 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 839: +YY_RULE_SETUP +#line 2203 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 840: +YY_RULE_SETUP +#line 2208 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 841: +YY_RULE_SETUP +#line 2213 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 842: +YY_RULE_SETUP +#line 2218 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 843: +YY_RULE_SETUP +#line 2223 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 844: +YY_RULE_SETUP +#line 2228 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 845: +YY_RULE_SETUP +#line 2233 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 846: +YY_RULE_SETUP +#line 2238 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 847: +YY_RULE_SETUP +#line 2243 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 848: +YY_RULE_SETUP +#line 2248 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 849: +YY_RULE_SETUP +#line 2253 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 850: +YY_RULE_SETUP +#line 2258 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 851: +YY_RULE_SETUP +#line 2263 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 852: +YY_RULE_SETUP +#line 2268 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 853: +YY_RULE_SETUP +#line 2273 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 854: +YY_RULE_SETUP +#line 2278 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 855: +YY_RULE_SETUP +#line 2283 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 856: +YY_RULE_SETUP +#line 2288 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 857: +YY_RULE_SETUP +#line 2293 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 858: +YY_RULE_SETUP +#line 2298 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 859: +YY_RULE_SETUP +#line 2303 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 860: +YY_RULE_SETUP +#line 2308 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 861: +YY_RULE_SETUP +#line 2313 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x07') ; + } + YY_BREAK +case 862: +YY_RULE_SETUP +#line 2318 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 863: +YY_RULE_SETUP +#line 2323 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 864: +YY_RULE_SETUP +#line 2328 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 865: +YY_RULE_SETUP +#line 2333 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 866: +YY_RULE_SETUP +#line 2338 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 867: +YY_RULE_SETUP +#line 2343 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 868: +YY_RULE_SETUP +#line 2348 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 869: +YY_RULE_SETUP +#line 2353 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 870: +YY_RULE_SETUP +#line 2358 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 871: +YY_RULE_SETUP +#line 2363 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 872: +YY_RULE_SETUP +#line 2368 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 873: +YY_RULE_SETUP +#line 2373 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 874: +YY_RULE_SETUP +#line 2378 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 875: +YY_RULE_SETUP +#line 2383 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 876: +YY_RULE_SETUP +#line 2388 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 877: +YY_RULE_SETUP +#line 2393 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 878: +YY_RULE_SETUP +#line 2398 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 879: +YY_RULE_SETUP +#line 2403 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 880: +YY_RULE_SETUP +#line 2408 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 881: +YY_RULE_SETUP +#line 2413 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 882: +YY_RULE_SETUP +#line 2418 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 883: +YY_RULE_SETUP +#line 2423 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 884: +YY_RULE_SETUP +#line 2428 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 885: +YY_RULE_SETUP +#line 2433 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 886: +YY_RULE_SETUP +#line 2438 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x08') ; + } + YY_BREAK +case 887: +YY_RULE_SETUP +#line 2443 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 888: +YY_RULE_SETUP +#line 2448 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 889: +YY_RULE_SETUP +#line 2453 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 890: +YY_RULE_SETUP +#line 2458 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 891: +YY_RULE_SETUP +#line 2463 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 892: +YY_RULE_SETUP +#line 2468 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 893: +YY_RULE_SETUP +#line 2473 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 894: +YY_RULE_SETUP +#line 2478 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 895: +YY_RULE_SETUP +#line 2483 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 896: +YY_RULE_SETUP +#line 2488 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 897: +YY_RULE_SETUP +#line 2493 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 898: +YY_RULE_SETUP +#line 2498 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 899: +YY_RULE_SETUP +#line 2503 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 900: +YY_RULE_SETUP +#line 2508 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 901: +YY_RULE_SETUP +#line 2513 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 902: +YY_RULE_SETUP +#line 2518 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 903: +YY_RULE_SETUP +#line 2523 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 904: +YY_RULE_SETUP +#line 2528 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 905: +YY_RULE_SETUP +#line 2533 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 906: +YY_RULE_SETUP +#line 2538 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 907: +YY_RULE_SETUP +#line 2543 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 908: +YY_RULE_SETUP +#line 2548 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 909: +YY_RULE_SETUP +#line 2553 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 910: +YY_RULE_SETUP +#line 2558 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 911: +YY_RULE_SETUP +#line 2563 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x0c') ; + } + YY_BREAK +case 912: +YY_RULE_SETUP +#line 2568 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 913: +YY_RULE_SETUP +#line 2573 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 914: +YY_RULE_SETUP +#line 2578 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 915: +YY_RULE_SETUP +#line 2583 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 916: +YY_RULE_SETUP +#line 2588 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 917: +YY_RULE_SETUP +#line 2593 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 918: +YY_RULE_SETUP +#line 2598 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 919: +YY_RULE_SETUP +#line 2603 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 920: +YY_RULE_SETUP +#line 2608 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 921: +YY_RULE_SETUP +#line 2613 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 922: +YY_RULE_SETUP +#line 2618 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 923: +YY_RULE_SETUP +#line 2623 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 924: +YY_RULE_SETUP +#line 2628 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 925: +YY_RULE_SETUP +#line 2633 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 926: +YY_RULE_SETUP +#line 2638 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 927: +YY_RULE_SETUP +#line 2643 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 928: +YY_RULE_SETUP +#line 2648 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 929: +YY_RULE_SETUP +#line 2653 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 930: +YY_RULE_SETUP +#line 2658 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 931: +YY_RULE_SETUP +#line 2663 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 932: +YY_RULE_SETUP +#line 2668 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 933: +YY_RULE_SETUP +#line 2673 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 934: +YY_RULE_SETUP +#line 2678 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 935: +YY_RULE_SETUP +#line 2683 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 936: +YY_RULE_SETUP +#line 2688 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x0a') ; + } + YY_BREAK +case 937: +YY_RULE_SETUP +#line 2693 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 938: +YY_RULE_SETUP +#line 2698 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 939: +YY_RULE_SETUP +#line 2703 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 940: +YY_RULE_SETUP +#line 2708 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 941: +YY_RULE_SETUP +#line 2713 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 942: +YY_RULE_SETUP +#line 2718 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 943: +YY_RULE_SETUP +#line 2723 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 944: +YY_RULE_SETUP +#line 2728 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 945: +YY_RULE_SETUP +#line 2733 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 946: +YY_RULE_SETUP +#line 2738 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 947: +YY_RULE_SETUP +#line 2743 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 948: +YY_RULE_SETUP +#line 2748 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 949: +YY_RULE_SETUP +#line 2753 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 950: +YY_RULE_SETUP +#line 2758 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 951: +YY_RULE_SETUP +#line 2763 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 952: +YY_RULE_SETUP +#line 2768 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 953: +YY_RULE_SETUP +#line 2773 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 954: +YY_RULE_SETUP +#line 2778 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 955: +YY_RULE_SETUP +#line 2783 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 956: +YY_RULE_SETUP +#line 2788 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 957: +YY_RULE_SETUP +#line 2793 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 958: +YY_RULE_SETUP +#line 2798 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 959: +YY_RULE_SETUP +#line 2803 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 960: +YY_RULE_SETUP +#line 2808 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 961: +YY_RULE_SETUP +#line 2813 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x15') ; + } + YY_BREAK +case 962: +YY_RULE_SETUP +#line 2818 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 963: +YY_RULE_SETUP +#line 2823 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 964: +YY_RULE_SETUP +#line 2828 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 965: +YY_RULE_SETUP +#line 2833 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 966: +YY_RULE_SETUP +#line 2838 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 967: +YY_RULE_SETUP +#line 2843 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 968: +YY_RULE_SETUP +#line 2848 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 969: +YY_RULE_SETUP +#line 2853 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 970: +YY_RULE_SETUP +#line 2858 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 971: +YY_RULE_SETUP +#line 2863 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 972: +YY_RULE_SETUP +#line 2868 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 973: +YY_RULE_SETUP +#line 2873 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 974: +YY_RULE_SETUP +#line 2878 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 975: +YY_RULE_SETUP +#line 2883 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 976: +YY_RULE_SETUP +#line 2888 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 977: +YY_RULE_SETUP +#line 2893 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 978: +YY_RULE_SETUP +#line 2898 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 979: +YY_RULE_SETUP +#line 2903 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 980: +YY_RULE_SETUP +#line 2908 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 981: +YY_RULE_SETUP +#line 2913 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 982: +YY_RULE_SETUP +#line 2918 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 983: +YY_RULE_SETUP +#line 2923 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 984: +YY_RULE_SETUP +#line 2928 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 985: +YY_RULE_SETUP +#line 2933 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 986: +YY_RULE_SETUP +#line 2938 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x0b') ; + } + YY_BREAK +case 987: +YY_RULE_SETUP +#line 2943 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 988: +YY_RULE_SETUP +#line 2948 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 989: +YY_RULE_SETUP +#line 2953 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 990: +YY_RULE_SETUP +#line 2958 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 991: +YY_RULE_SETUP +#line 2963 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 992: +YY_RULE_SETUP +#line 2968 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 993: +YY_RULE_SETUP +#line 2973 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 994: +YY_RULE_SETUP +#line 2978 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 995: +YY_RULE_SETUP +#line 2983 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 996: +YY_RULE_SETUP +#line 2988 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 997: +YY_RULE_SETUP +#line 2993 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 998: +YY_RULE_SETUP +#line 2998 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 999: +YY_RULE_SETUP +#line 3003 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 1000: +YY_RULE_SETUP +#line 3008 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 1001: +YY_RULE_SETUP +#line 3013 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 1002: +YY_RULE_SETUP +#line 3018 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 1003: +YY_RULE_SETUP +#line 3023 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 1004: +YY_RULE_SETUP +#line 3028 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 1005: +YY_RULE_SETUP +#line 3033 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 1006: +YY_RULE_SETUP +#line 3038 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 1007: +YY_RULE_SETUP +#line 3043 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 1008: +YY_RULE_SETUP +#line 3048 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 1009: +YY_RULE_SETUP +#line 3053 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 1010: +YY_RULE_SETUP +#line 3058 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 1011: +YY_RULE_SETUP +#line 3063 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x10') ; + } + YY_BREAK +case 1012: +YY_RULE_SETUP +#line 3068 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1013: +YY_RULE_SETUP +#line 3073 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1014: +YY_RULE_SETUP +#line 3078 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1015: +YY_RULE_SETUP +#line 3083 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1016: +YY_RULE_SETUP +#line 3088 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1017: +YY_RULE_SETUP +#line 3093 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1018: +YY_RULE_SETUP +#line 3098 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1019: +YY_RULE_SETUP +#line 3103 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1020: +YY_RULE_SETUP +#line 3108 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1021: +YY_RULE_SETUP +#line 3113 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1022: +YY_RULE_SETUP +#line 3118 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1023: +YY_RULE_SETUP +#line 3123 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1024: +YY_RULE_SETUP +#line 3128 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1025: +YY_RULE_SETUP +#line 3133 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1026: +YY_RULE_SETUP +#line 3138 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1027: +YY_RULE_SETUP +#line 3143 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1028: +YY_RULE_SETUP +#line 3148 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1029: +YY_RULE_SETUP +#line 3153 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1030: +YY_RULE_SETUP +#line 3158 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1031: +YY_RULE_SETUP +#line 3163 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1032: +YY_RULE_SETUP +#line 3168 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1033: +YY_RULE_SETUP +#line 3173 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1034: +YY_RULE_SETUP +#line 3178 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1035: +YY_RULE_SETUP +#line 3183 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1036: +YY_RULE_SETUP +#line 3188 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x27') ; + } + YY_BREAK +case 1037: +YY_RULE_SETUP +#line 3193 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1038: +YY_RULE_SETUP +#line 3198 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1039: +YY_RULE_SETUP +#line 3203 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1040: +YY_RULE_SETUP +#line 3208 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1041: +YY_RULE_SETUP +#line 3213 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1042: +YY_RULE_SETUP +#line 3218 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1043: +YY_RULE_SETUP +#line 3223 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1044: +YY_RULE_SETUP +#line 3228 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1045: +YY_RULE_SETUP +#line 3233 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1046: +YY_RULE_SETUP +#line 3238 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1047: +YY_RULE_SETUP +#line 3243 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1048: +YY_RULE_SETUP +#line 3248 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1049: +YY_RULE_SETUP +#line 3253 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1050: +YY_RULE_SETUP +#line 3258 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1051: +YY_RULE_SETUP +#line 3263 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1052: +YY_RULE_SETUP +#line 3268 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1053: +YY_RULE_SETUP +#line 3273 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1054: +YY_RULE_SETUP +#line 3278 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1055: +YY_RULE_SETUP +#line 3283 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1056: +YY_RULE_SETUP +#line 3288 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1057: +YY_RULE_SETUP +#line 3293 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1058: +YY_RULE_SETUP +#line 3298 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1059: +YY_RULE_SETUP +#line 3303 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1060: +YY_RULE_SETUP +#line 3308 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1061: +YY_RULE_SETUP +#line 3313 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x28') ; + } + YY_BREAK +case 1062: +YY_RULE_SETUP +#line 3318 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1063: +YY_RULE_SETUP +#line 3323 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1064: +YY_RULE_SETUP +#line 3328 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1065: +YY_RULE_SETUP +#line 3333 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1066: +YY_RULE_SETUP +#line 3338 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1067: +YY_RULE_SETUP +#line 3343 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1068: +YY_RULE_SETUP +#line 3348 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1069: +YY_RULE_SETUP +#line 3353 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1070: +YY_RULE_SETUP +#line 3358 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1071: +YY_RULE_SETUP +#line 3363 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1072: +YY_RULE_SETUP +#line 3368 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1073: +YY_RULE_SETUP +#line 3373 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1074: +YY_RULE_SETUP +#line 3378 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1075: +YY_RULE_SETUP +#line 3383 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1076: +YY_RULE_SETUP +#line 3388 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1077: +YY_RULE_SETUP +#line 3393 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1078: +YY_RULE_SETUP +#line 3398 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1079: +YY_RULE_SETUP +#line 3403 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1080: +YY_RULE_SETUP +#line 3408 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1081: +YY_RULE_SETUP +#line 3413 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1082: +YY_RULE_SETUP +#line 3418 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1083: +YY_RULE_SETUP +#line 3423 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1084: +YY_RULE_SETUP +#line 3428 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1085: +YY_RULE_SETUP +#line 3433 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1086: +YY_RULE_SETUP +#line 3438 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x23') ; + } + YY_BREAK +case 1087: +YY_RULE_SETUP +#line 3443 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1088: +YY_RULE_SETUP +#line 3448 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1089: +YY_RULE_SETUP +#line 3453 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1090: +YY_RULE_SETUP +#line 3458 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1091: +YY_RULE_SETUP +#line 3463 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1092: +YY_RULE_SETUP +#line 3468 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1093: +YY_RULE_SETUP +#line 3473 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1094: +YY_RULE_SETUP +#line 3478 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1095: +YY_RULE_SETUP +#line 3483 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1096: +YY_RULE_SETUP +#line 3488 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1097: +YY_RULE_SETUP +#line 3493 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1098: +YY_RULE_SETUP +#line 3498 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1099: +YY_RULE_SETUP +#line 3503 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1100: +YY_RULE_SETUP +#line 3508 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1101: +YY_RULE_SETUP +#line 3513 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1102: +YY_RULE_SETUP +#line 3518 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1103: +YY_RULE_SETUP +#line 3523 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1104: +YY_RULE_SETUP +#line 3528 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1105: +YY_RULE_SETUP +#line 3533 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1106: +YY_RULE_SETUP +#line 3538 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1107: +YY_RULE_SETUP +#line 3543 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1108: +YY_RULE_SETUP +#line 3548 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1109: +YY_RULE_SETUP +#line 3553 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1110: +YY_RULE_SETUP +#line 3558 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1111: +YY_RULE_SETUP +#line 3563 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x24') ; + } + YY_BREAK +case 1112: +YY_RULE_SETUP +#line 3568 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1113: +YY_RULE_SETUP +#line 3573 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1114: +YY_RULE_SETUP +#line 3578 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1115: +YY_RULE_SETUP +#line 3583 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1116: +YY_RULE_SETUP +#line 3588 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1117: +YY_RULE_SETUP +#line 3593 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1118: +YY_RULE_SETUP +#line 3598 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1119: +YY_RULE_SETUP +#line 3603 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1120: +YY_RULE_SETUP +#line 3608 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1121: +YY_RULE_SETUP +#line 3613 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1122: +YY_RULE_SETUP +#line 3618 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1123: +YY_RULE_SETUP +#line 3623 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1124: +YY_RULE_SETUP +#line 3628 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1125: +YY_RULE_SETUP +#line 3633 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1126: +YY_RULE_SETUP +#line 3638 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1127: +YY_RULE_SETUP +#line 3643 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1128: +YY_RULE_SETUP +#line 3648 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1129: +YY_RULE_SETUP +#line 3653 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1130: +YY_RULE_SETUP +#line 3658 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1131: +YY_RULE_SETUP +#line 3663 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1132: +YY_RULE_SETUP +#line 3668 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1133: +YY_RULE_SETUP +#line 3673 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1134: +YY_RULE_SETUP +#line 3678 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1135: +YY_RULE_SETUP +#line 3683 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1136: +YY_RULE_SETUP +#line 3688 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x25') ; + } + YY_BREAK +case 1137: +YY_RULE_SETUP +#line 3693 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1138: +YY_RULE_SETUP +#line 3698 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1139: +YY_RULE_SETUP +#line 3703 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1140: +YY_RULE_SETUP +#line 3708 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1141: +YY_RULE_SETUP +#line 3713 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1142: +YY_RULE_SETUP +#line 3718 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1143: +YY_RULE_SETUP +#line 3723 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1144: +YY_RULE_SETUP +#line 3728 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1145: +YY_RULE_SETUP +#line 3733 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1146: +YY_RULE_SETUP +#line 3738 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1147: +YY_RULE_SETUP +#line 3743 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1148: +YY_RULE_SETUP +#line 3748 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1149: +YY_RULE_SETUP +#line 3753 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1150: +YY_RULE_SETUP +#line 3758 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1151: +YY_RULE_SETUP +#line 3763 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1152: +YY_RULE_SETUP +#line 3768 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1153: +YY_RULE_SETUP +#line 3773 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1154: +YY_RULE_SETUP +#line 3778 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1155: +YY_RULE_SETUP +#line 3783 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1156: +YY_RULE_SETUP +#line 3788 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1157: +YY_RULE_SETUP +#line 3793 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1158: +YY_RULE_SETUP +#line 3798 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1159: +YY_RULE_SETUP +#line 3803 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1160: +YY_RULE_SETUP +#line 3808 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1161: +YY_RULE_SETUP +#line 3813 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x33') ; + } + YY_BREAK +case 1162: +YY_RULE_SETUP +#line 3818 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1163: +YY_RULE_SETUP +#line 3823 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1164: +YY_RULE_SETUP +#line 3828 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1165: +YY_RULE_SETUP +#line 3833 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1166: +YY_RULE_SETUP +#line 3838 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1167: +YY_RULE_SETUP +#line 3843 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1168: +YY_RULE_SETUP +#line 3848 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1169: +YY_RULE_SETUP +#line 3853 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1170: +YY_RULE_SETUP +#line 3858 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1171: +YY_RULE_SETUP +#line 3863 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1172: +YY_RULE_SETUP +#line 3868 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1173: +YY_RULE_SETUP +#line 3873 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1174: +YY_RULE_SETUP +#line 3878 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1175: +YY_RULE_SETUP +#line 3883 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1176: +YY_RULE_SETUP +#line 3888 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1177: +YY_RULE_SETUP +#line 3893 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1178: +YY_RULE_SETUP +#line 3898 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1179: +YY_RULE_SETUP +#line 3903 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1180: +YY_RULE_SETUP +#line 3908 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1181: +YY_RULE_SETUP +#line 3913 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1182: +YY_RULE_SETUP +#line 3918 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1183: +YY_RULE_SETUP +#line 3923 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1184: +YY_RULE_SETUP +#line 3928 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1185: +YY_RULE_SETUP +#line 3933 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1186: +YY_RULE_SETUP +#line 3938 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x32') ; + } + YY_BREAK +case 1187: +YY_RULE_SETUP +#line 3943 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1188: +YY_RULE_SETUP +#line 3948 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1189: +YY_RULE_SETUP +#line 3953 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1190: +YY_RULE_SETUP +#line 3958 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1191: +YY_RULE_SETUP +#line 3963 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1192: +YY_RULE_SETUP +#line 3968 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1193: +YY_RULE_SETUP +#line 3973 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1194: +YY_RULE_SETUP +#line 3978 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1195: +YY_RULE_SETUP +#line 3983 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1196: +YY_RULE_SETUP +#line 3988 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1197: +YY_RULE_SETUP +#line 3993 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1198: +YY_RULE_SETUP +#line 3998 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1199: +YY_RULE_SETUP +#line 4003 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1200: +YY_RULE_SETUP +#line 4008 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1201: +YY_RULE_SETUP +#line 4013 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1202: +YY_RULE_SETUP +#line 4018 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1203: +YY_RULE_SETUP +#line 4023 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1204: +YY_RULE_SETUP +#line 4028 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1205: +YY_RULE_SETUP +#line 4033 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1206: +YY_RULE_SETUP +#line 4038 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1207: +YY_RULE_SETUP +#line 4043 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1208: +YY_RULE_SETUP +#line 4048 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1209: +YY_RULE_SETUP +#line 4053 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1210: +YY_RULE_SETUP +#line 4058 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1211: +YY_RULE_SETUP +#line 4063 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x26') ; + } + YY_BREAK +case 1212: +YY_RULE_SETUP +#line 4068 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1213: +YY_RULE_SETUP +#line 4073 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1214: +YY_RULE_SETUP +#line 4078 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1215: +YY_RULE_SETUP +#line 4083 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1216: +YY_RULE_SETUP +#line 4088 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1217: +YY_RULE_SETUP +#line 4093 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1218: +YY_RULE_SETUP +#line 4098 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1219: +YY_RULE_SETUP +#line 4103 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1220: +YY_RULE_SETUP +#line 4108 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1221: +YY_RULE_SETUP +#line 4113 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1222: +YY_RULE_SETUP +#line 4118 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1223: +YY_RULE_SETUP +#line 4123 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1224: +YY_RULE_SETUP +#line 4128 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1225: +YY_RULE_SETUP +#line 4133 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1226: +YY_RULE_SETUP +#line 4138 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1227: +YY_RULE_SETUP +#line 4143 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1228: +YY_RULE_SETUP +#line 4148 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1229: +YY_RULE_SETUP +#line 4153 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1230: +YY_RULE_SETUP +#line 4158 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1231: +YY_RULE_SETUP +#line 4163 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1232: +YY_RULE_SETUP +#line 4168 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1233: +YY_RULE_SETUP +#line 4173 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1234: +YY_RULE_SETUP +#line 4178 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1235: +YY_RULE_SETUP +#line 4183 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1236: +YY_RULE_SETUP +#line 4188 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x1c') ; + } + YY_BREAK +case 1237: +YY_RULE_SETUP +#line 4193 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1238: +YY_RULE_SETUP +#line 4198 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1239: +YY_RULE_SETUP +#line 4203 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1240: +YY_RULE_SETUP +#line 4208 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1241: +YY_RULE_SETUP +#line 4213 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1242: +YY_RULE_SETUP +#line 4218 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1243: +YY_RULE_SETUP +#line 4223 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1244: +YY_RULE_SETUP +#line 4228 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1245: +YY_RULE_SETUP +#line 4233 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1246: +YY_RULE_SETUP +#line 4238 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1247: +YY_RULE_SETUP +#line 4243 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1248: +YY_RULE_SETUP +#line 4248 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1249: +YY_RULE_SETUP +#line 4253 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1250: +YY_RULE_SETUP +#line 4258 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1251: +YY_RULE_SETUP +#line 4263 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1252: +YY_RULE_SETUP +#line 4268 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1253: +YY_RULE_SETUP +#line 4273 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1254: +YY_RULE_SETUP +#line 4278 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1255: +YY_RULE_SETUP +#line 4283 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1256: +YY_RULE_SETUP +#line 4288 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1257: +YY_RULE_SETUP +#line 4293 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1258: +YY_RULE_SETUP +#line 4298 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1259: +YY_RULE_SETUP +#line 4303 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1260: +YY_RULE_SETUP +#line 4308 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1261: +YY_RULE_SETUP +#line 4313 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x2e') ; + } + YY_BREAK +case 1262: +YY_RULE_SETUP +#line 4318 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1263: +YY_RULE_SETUP +#line 4323 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1264: +YY_RULE_SETUP +#line 4328 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1265: +YY_RULE_SETUP +#line 4333 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1266: +YY_RULE_SETUP +#line 4338 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1267: +YY_RULE_SETUP +#line 4343 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1268: +YY_RULE_SETUP +#line 4348 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1269: +YY_RULE_SETUP +#line 4353 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1270: +YY_RULE_SETUP +#line 4358 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1271: +YY_RULE_SETUP +#line 4363 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1272: +YY_RULE_SETUP +#line 4368 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1273: +YY_RULE_SETUP +#line 4373 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1274: +YY_RULE_SETUP +#line 4378 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1275: +YY_RULE_SETUP +#line 4383 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1276: +YY_RULE_SETUP +#line 4388 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1277: +YY_RULE_SETUP +#line 4393 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1278: +YY_RULE_SETUP +#line 4398 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1279: +YY_RULE_SETUP +#line 4403 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1280: +YY_RULE_SETUP +#line 4408 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1281: +YY_RULE_SETUP +#line 4413 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1282: +YY_RULE_SETUP +#line 4418 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1283: +YY_RULE_SETUP +#line 4423 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1284: +YY_RULE_SETUP +#line 4428 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1285: +YY_RULE_SETUP +#line 4433 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1286: +YY_RULE_SETUP +#line 4438 "ansel2uni.ll" +{ + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x13') ; + } + YY_BREAK +case 1287: +YY_RULE_SETUP +#line 4444 "ansel2uni.ll" +ECHO; + YY_BREAK +#line 12357 "ansel2uni.cc" +case YY_STATE_EOF(INITIAL): + yyterminate(); + + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = (yy_hold_char); + YY_RESTORE_YY_MORE_OFFSET + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * yylex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state ); + + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* Consume the NUL. */ + yy_cp = ++(yy_c_buf_p); + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { + yy_cp = (yy_c_buf_p); + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_END_OF_FILE: + { + (yy_did_buffer_switch_on_eof) = 0; + + if ( yywrap( ) ) + { + /* Note: because we've taken care in + * yy_get_next_buffer() to have set up + * yytext, we can now set up + * yy_c_buf_p so that if some total + * hoser (like flex itself) wants to + * call the scanner after we return the + * YY_NULL, it'll still work - another + * YY_NULL will get returned. + */ + (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } + + else + { + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = + (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + (yy_c_buf_p) = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ +} /* end of yylex */ + +/* yy_get_next_buffer - try to read in a new buffer + * + * Returns a code representing an action: + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ +static int yy_get_next_buffer (void) +{ + register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + register char *source = (yytext_ptr); + register int number_to_move, i; + int ret_val; + + if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) + { /* Don't try to fill the buffer, so this is an EOF. */ + if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. + */ + return EOB_ACT_END_OF_FILE; + } + + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } + + /* Try to read more data. */ + + /* First move last chars to start of buffer. */ + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; + + else + { + yy_size_t num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; + + while ( num_to_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ + + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; + + int yy_c_buf_p_offset = + (int) ((yy_c_buf_p) - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { + yy_size_t new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( + "fatal error - scanner input buffer overflow" ); + + (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if ( num_to_read > YY_READ_BUF_SIZE ) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + (yy_n_chars), num_to_read ); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + if ( (yy_n_chars) == 0 ) + { + if ( number_to_move == YY_MORE_ADJ ) + { + ret_val = EOB_ACT_END_OF_FILE; + yyrestart(yyin ); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + /* Extend the array by 50%, plus the number we really need. */ + yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + } + + (yy_n_chars) += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; + + (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; +} + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + + static yy_state_type yy_get_previous_state (void) +{ + register yy_state_type yy_current_state; + register char *yy_cp; + + yy_current_state = (yy_start); + + for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) + { + register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + 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 >= 2590 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } + + return yy_current_state; +} + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ + static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) +{ + register int yy_is_jam; + register char *yy_cp = (yy_c_buf_p); + + register YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + 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 >= 2590 ) + 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 == 2589); + + return yy_is_jam ? 0 : yy_current_state; +} + + static void yyunput (int c, register char * yy_bp ) +{ + register char *yy_cp; + + yy_cp = (yy_c_buf_p); + + /* undo effects of setting up yytext */ + *yy_cp = (yy_hold_char); + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + { /* need to shift things up to make room */ + /* +2 for EOB chars. */ + register yy_size_t number_to_move = (yy_n_chars) + 2; + register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; + register char *source = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; + + while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + *--dest = *--source; + + yy_cp += (int) (dest - source); + yy_bp += (int) (dest - source); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + YY_FATAL_ERROR( "flex scanner push-back overflow" ); + } + + *--yy_cp = (char) c; + + (yytext_ptr) = yy_bp; + (yy_hold_char) = *yy_cp; + (yy_c_buf_p) = yy_cp; +} + +#ifndef YY_NO_INPUT +#ifdef __cplusplus + static int yyinput (void) +#else + static int input (void) +#endif + +{ + int c; + + *(yy_c_buf_p) = (yy_hold_char); + + if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + /* This was really a NUL. */ + *(yy_c_buf_p) = '\0'; + + else + { /* need more input */ + yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + ++(yy_c_buf_p); + + switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + yyrestart(yyin ); + + /*FALLTHROUGH*/ + + case EOB_ACT_END_OF_FILE: + { + if ( yywrap( ) ) + return EOF; + + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; +#ifdef __cplusplus + return yyinput(); +#else + return input(); +#endif + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = (yytext_ptr) + offset; + break; + } + } + } + + c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ + *(yy_c_buf_p) = '\0'; /* preserve yytext */ + (yy_hold_char) = *++(yy_c_buf_p); + + return c; +} +#endif /* ifndef YY_NO_INPUT */ + +/** Immediately switch to a different input stream. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ + void yyrestart (FILE * input_file ) +{ + + if ( ! YY_CURRENT_BUFFER ){ + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer(yyin,YY_BUF_SIZE ); + } + + yy_init_buffer(YY_CURRENT_BUFFER,input_file ); + yy_load_buffer_state( ); +} + +/** Switch to a different input buffer. + * @param new_buffer The new input buffer. + * + */ + void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) +{ + + /* TODO. We should be able to replace this entire function body + * with + * yypop_buffer_state(); + * yypush_buffer_state(new_buffer); + */ + yyensure_buffer_stack (); + if ( YY_CURRENT_BUFFER == new_buffer ) + return; + + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + yy_load_buffer_state( ); + + /* We don't actually know whether we did this switch during + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe + * to go ahead and always set it. + */ + (yy_did_buffer_switch_on_eof) = 1; +} + +static void yy_load_buffer_state (void) +{ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + (yy_hold_char) = *(yy_c_buf_p); +} + +/** Allocate and initialize an input buffer state. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) +{ + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_buf_size = size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_is_our_buffer = 1; + + yy_init_buffer(b,file ); + + return b; +} + +/** Destroy the buffer. + * @param b a buffer created with yy_create_buffer() + * + */ + void yy_delete_buffer (YY_BUFFER_STATE b ) +{ + + if ( ! b ) + return; + + if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + + if ( b->yy_is_our_buffer ) + yyfree((void *) b->yy_ch_buf ); + + yyfree((void *) b ); +} + +/* Initializes or reinitializes a buffer. + * This function is sometimes called more than once on the same buffer, + * such as during a yyrestart() or at EOF. + */ + static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) + +{ + int oerrno = errno; + + yy_flush_buffer(b ); + + b->yy_input_file = file; + b->yy_fill_buffer = 1; + + /* If b is the current buffer, then yy_init_buffer was _probably_ + * called from yyrestart() or through yy_get_next_buffer. + * In that case, we don't want to reset the lineno or column. + */ + if (b != YY_CURRENT_BUFFER){ + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; + + errno = oerrno; +} + +/** Discard all buffered characters. On the next scan, YY_INPUT will be called. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. + * + */ + void yy_flush_buffer (YY_BUFFER_STATE b ) +{ + if ( ! b ) + return; + + b->yy_n_chars = 0; + + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[0]; + + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; + + if ( b == YY_CURRENT_BUFFER ) + yy_load_buffer_state( ); +} + +/** Pushes the new state onto the stack. The new state becomes + * the current state. This function will allocate the stack + * if necessary. + * @param new_buffer The new state. + * + */ +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) +{ + if (new_buffer == NULL) + return; + + yyensure_buffer_stack(); + + /* This block is copied from yy_switch_to_buffer. */ + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + (yy_buffer_stack_top)++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from yy_switch_to_buffer. */ + yy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; +} + +/** Removes and deletes the top of the stack, if present. + * The next element becomes the new top. + * + */ +void yypop_buffer_state (void) +{ + if (!YY_CURRENT_BUFFER) + return; + + yy_delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + if ((yy_buffer_stack_top) > 0) + --(yy_buffer_stack_top); + + if (YY_CURRENT_BUFFER) { + yy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; + } +} + +/* Allocates the stack if it does not exist. + * Guarantees space for at least one push. + */ +static void yyensure_buffer_stack (void) +{ + yy_size_t num_to_alloc; + + if (!(yy_buffer_stack)) { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc + (num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); + + (yy_buffer_stack_max) = num_to_alloc; + (yy_buffer_stack_top) = 0; + return; + } + + if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ + + /* Increase the buffer to prepare for a possible push. */ + int grow_size = 8 /* arbitrary grow size */; + + num_to_alloc = (yy_buffer_stack_max) + grow_size; + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc + ((yy_buffer_stack), + num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + /* zero only the new slots.*/ + memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); + (yy_buffer_stack_max) = num_to_alloc; + } +} + +/** Setup the input buffer state to scan directly from a user-specified character buffer. + * @param base the character buffer + * @param size the size in bytes of the character buffer + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) +{ + YY_BUFFER_STATE b; + + if ( size < 2 || + base[size-2] != YY_END_OF_BUFFER_CHAR || + base[size-1] != YY_END_OF_BUFFER_CHAR ) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + yy_switch_to_buffer(b ); + + return b; +} + +/** Setup the input buffer state to scan a string. The next call to yylex() will + * scan from a @e copy of @a str. + * @param yystr a NUL-terminated string to scan + * + * @return the newly allocated buffer state object. + * @note If you want to scan bytes that may contain NUL values, then use + * yy_scan_bytes() instead. + */ +YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) +{ + + return yy_scan_bytes(yystr,strlen(yystr) ); +} + +/** Setup the input buffer state to scan the given bytes. The next call to yylex() will + * scan from a @e copy of @a bytes. + * @param yybytes the byte buffer to scan + * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +{ + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + int i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = _yybytes_len + 2; + buf = (char *) yyalloc(n ); + if ( ! buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); + + for ( i = 0; i < _yybytes_len; ++i ) + buf[i] = yybytes[i]; + + buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; + + b = yy_scan_buffer(buf,n ); + if ( ! b ) + YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; +} + +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 +#endif + +static void yy_fatal_error (yyconst char* msg ) +{ + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); +} + +/* Redefine yyless() so it works in section 3 code. */ + +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + yytext[yyleng] = (yy_hold_char); \ + (yy_c_buf_p) = yytext + yyless_macro_arg; \ + (yy_hold_char) = *(yy_c_buf_p); \ + *(yy_c_buf_p) = '\0'; \ + yyleng = yyless_macro_arg; \ + } \ + while ( 0 ) + +/* Accessor methods (get/set functions) to struct members. */ + +/** Get the current line number. + * + */ +int yyget_lineno (void) +{ + + return yylineno; +} + +/** Get the input stream. + * + */ +FILE *yyget_in (void) +{ + return yyin; +} + +/** Get the output stream. + * + */ +FILE *yyget_out (void) +{ + return yyout; +} + +/** Get the length of the current token. + * + */ +yy_size_t yyget_leng (void) +{ + return yyleng; +} + +/** Get the current token. + * + */ + +char *yyget_text (void) +{ + return yytext; +} + +/** Set the current line number. + * @param line_number + * + */ +void yyset_lineno (int line_number ) +{ + + yylineno = line_number; +} + +/** Set the input stream. This does not discard the current + * input buffer. + * @param in_str A readable stream. + * + * @see yy_switch_to_buffer + */ +void yyset_in (FILE * in_str ) +{ + yyin = in_str ; +} + +void yyset_out (FILE * out_str ) +{ + yyout = out_str ; +} + +int yyget_debug (void) +{ + return yy_flex_debug; +} + +void yyset_debug (int bdebug ) +{ + yy_flex_debug = bdebug ; +} + +static int yy_init_globals (void) +{ + /* Initialization is the same as for the non-reentrant scanner. + * This function is called from yylex_destroy(), so don't allocate here. + */ + + (yy_buffer_stack) = 0; + (yy_buffer_stack_top) = 0; + (yy_buffer_stack_max) = 0; + (yy_c_buf_p) = (char *) 0; + (yy_init) = 0; + (yy_start) = 0; + +/* Defined in main.c */ +#ifdef YY_STDINIT + yyin = stdin; + yyout = stdout; +#else + yyin = (FILE *) 0; + yyout = (FILE *) 0; +#endif + + /* For future reference: Set errno on error, since we are called by + * yylex_init() + */ + return 0; +} + +/* yylex_destroy is for both reentrant and non-reentrant scanners. */ +int yylex_destroy (void) +{ + + /* Pop the buffer stack, destroying each element. */ + while(YY_CURRENT_BUFFER){ + yy_delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + yypop_buffer_state(); + } + + /* Destroy the stack itself. */ + yyfree((yy_buffer_stack) ); + (yy_buffer_stack) = NULL; + + /* Reset the globals. This is important in a non-reentrant scanner so the next time + * yylex() is called, initialization will occur. */ + yy_init_globals( ); + + return 0; +} + +/* + * Internal utility routines. + */ + +#ifndef yytext_ptr +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +{ + register int i; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; +} +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * s ) +{ + register int n; + for ( n = 0; s[n]; ++n ) + ; + + return n; +} +#endif + +void *yyalloc (yy_size_t size ) +{ + return (void *) malloc( size ); +} + +void *yyrealloc (void * ptr, yy_size_t size ) +{ + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return (void *) realloc( (char *) ptr, size ); +} + +void yyfree (void * ptr ) +{ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ +} + +#define YYTABLES_NAME "yytables" + +#line 4444 "ansel2uni.ll" + + + +int main(int argc, char *argv[]) +{ + ++argv, --argc; /* Skip over program name. */ + if (argc > 0) + yyin = fopen(argv[0], "r"); + else + yyin = stdin; + yylex(); + return 0 ; +} + + diff --git a/biblio/bibtex/utils/r2bib/ansel2uni.ll b/biblio/bibtex/utils/r2bib/ansel2uni.ll new file mode 100644 index 0000000000..aadea84cd0 --- /dev/null +++ b/biblio/bibtex/utils/r2bib/ansel2uni.ll @@ -0,0 +1,4456 @@ + /* This is a lex(1) file, see http://dinosaur.compilertools.net/ + * or http://en.wikipedia.org/wiki/Lex_programming_tool . + * + * Compilation on UNIX systems is done by + * make ansel2uni + * On other systems one may need to call lex or flex and cc explicitly: + * lex -o ansel2uni.c ansel2uni.l + * cc [-s] [-O] [-D U_TRANSF_OS_LN] [-D GEDCOM_EXT] [-D GEDCOM_LDS_EXT] [-D MARC_EXT] -o wileyEndNoteFilt ansel2uni.c -ll + * + * The executable works as a filter (copies stdin to stdout) and converts + * a text stream encoded in 8-bit ANSEL (Z39-47-1993, ISO-IR-231) to UTF-8 unicode. + * If the preprocessor symbol U_TRANSF_OS_LN has been defined, the CR-LF + * combination of Unixes or DOS are modified to the Unicode + * line separator symbol on output, else they are copied unchanged. + * + * If the preprocessor symbol GEDCOM_EXT is defined, some Gedcom-5.5 extensions + * of the ANSEL standard are implemented. With the current implementation + * this only means support of the German sharp s. If the slash + * modifier that strikes through characters or of graphical symbols + * of open or filled boxes are also needed, GEDCOM_LDS_EXT should be defined. + * + * If the preprocessor symbol MARC_EXT is defined, the MARC-8 extensions + * of the ANSEL standard are implemented, as described in + * http://lcweb2.loc.gov/diglib/codetables/45.html . + * + * Templates of use: + * cat infile.ans | ansel2uni > infile.uni + * For use in HTML/XML pages, recoding with the � style + * can be done via http://billposer.org/Software/uni2ascii.html : + * cat infile.ans | ansel2uni | uni2ascii -q -a Q -a H > infile.xml + * + * http://en.wikipedia.org/wiki/GEDCOM + * http://marcpm.sourceforge.net/MARC/Charset.html + * + * @author Richard J. Mathar, 2009-01-13 + * @since 2209-01-18 use yyout instead of stdout. Implemented MARC_EXT. Use graph for alpha char class. + * @see http://www.uniocode.org/versions/Unicode5.1.0/ + */ + +%option noyywrap +%{ +#include <stdio.h> + +/* Unicode ranges U+0000 to UFFFF +* @param hi the high (first) byte of the code point +* @param lo the low (2nd byte) of the code point +* @see D92 in the Unicode Standard, Table 3-6 +* @see http://en.wikipedia.org/wiki/UTF-8 +*/ +void utf3byte(const unsigned char hi, const unsigned char lo) +{ + const unsigned long c = 256*hi+lo ; + if ( c < 128) + fprintf(yyout,"%c",lo) ; + else if ( c < 2048 ) + { + /* mask lower 6 bits and prefix 10, second byte */ + const unsigned char b2 = 128 + ( c & 63 ); + /* remove lower 6 bits and prefix 110, first byte */ + const unsigned char b1 = 192 + ( c >> 6 ) ; + fprintf(yyout,"%c%c",b1,b2) ; + } + else + { + /* mask lower 6 bits and prefix 10, third byte */ + const unsigned char b3 = 128 + ( c & 63 ); + /* remove lower 6 bits and prefix 10 */ + const unsigned char b2 = 128 + ( ( c & 4032 ) >> 6 ) ; + /* remove lower 12 bits and prefix 1110 */ + const unsigned char b1 = 224 + ( (c & 61440 ) >> 12 ) ; + fprintf(yyout,"%c%c%c",b1,b2,b3) ; + } +} + +/* Unicode ranges U+0080 to U+00FF. +* @param c the low-byte of the unicode point in the range 0x00 to 0x7f +* @see http://en.wikipedia.org/wiki/UTF-8 +*/ +void utf2byte(const unsigned char c) +{ +#if 0 + /* explicit implementation */ + const unsigned char b2 = 128 + ( c & 63 ); + const unsigned char b1 = 192 + ( ( c & 192 ) >> 6 ) ; + fprintf(yyout,"%c%c",b1,b2) ; +#else + /* lazy implementation */ + utf3byte('\0',c) ; +#endif +} + +#ifdef U_TRANSF_OS_NL +/* Put the LS, U+2028 +* @param crlf the line feed in unix or dos representation +* @todo +*/ +void newl(char *crlf) +{ + utf3byte('\x20','\x28') ; +} +#else +/* +* @param crlf the line feed in unix or dos representation +*/ +void newl(char *crlf) +{ + fprintf(yyout,"%s",crlf) ; +} +#endif + +%} + +ANSEL_VIETO \xac +ANSEL_VIETU \xad +ANSEL_VIETo \xbc +ANSEL_VIETu \xbd + +ANSEL_LOWRISINGTONE \xe0 +ANSEL_GRAVEACCENT \xe1 +ANSEL_ACUTEACCENT \xe2 +ANSEL_CIRCUMFLEXACC \xe3 +ANSEL_TILDE \xe4 +ANSEL_MACRON \xe5 +ANSEL_BREVE \xe6 +ANSEL_DOTABOVE \xe7 +ANSEL_DIARESIS \xe8 +ANSEL_CARON \xe9 +ANSEL_CIRCLEABOVE \xea +ANSEL_LIGATURELEFT \xeb +ANSEL_LIGATURERIGHT \xec +ANSEL_HIGHCOMMAOFFC \xed +ANSEL_DOUBLEACUTEACC \xee +ANSEL_CANDRABINDU \xef +ANSEL_CEDILLA \xf0 +ANSEL_RIGHTHOOK \xf1 +ANSEL_DOTBELOW \xf2 +ANSEL_DOUBLEDOTBELOW \xf3 +ANSEL_CIRCLEBELOW \xf4 +ANSEL_DOUBLEUNDERSC \xf5 +ANSEL_UNDERSCORE \xf6 +ANSEL_LEFTHOOK \xf7 +ANSEL_RIGHTCEDILLA \xf8 +ANSEL_HALFCIRCLBELOW \xf9 +ANSEL_DOUBLETILDLEFT \xfa +ANSEL_DOUBLETILDRIGH \xfb +ANSEL_HIGHCOMMACENT \xfe + + /* reserved for control characters */ +ANSEL_RES_C1 [\x80-\x9f] + + /* corners (reserved) */ +ANSEL_CORN \xa0|\xff + + /* Gedcom 5.5 extension: German sharp s */ +GEDCOM55_SZ \xcf + + /* rumors but not standard, see http://homepages.rootsweb.ancestry.com/~pmcbride/gedcom/55gcappd.htm#S2 */ +GEDCOM55_EMPTYBOX \xbe +GEDCOM55_BLACKBOX \xbf +GEDCOM55_EMIDDLE \xcd +GEDCOM55_OMIDDLE \xce +GEDCOM55_SLASH \xfc + + /* Strict ANSEL: reserved for future standardization, but not GEDCOM */ +ANSEL_RES_FUT \xaf|\xbb|\xbe|\xbf|[\xc7-\xdf]|\xfc|\xfd + + /* not sure whether ANSEL allows a double grave to be represented as two accents */ +ANSEL_DGRAVE {ANSEL_GRAVEACCENT}{ANSEL_GRAVEACCENT} +ANSEL_DTILDE {ANSEL_TILDE}{ANSEL_TILDE} + +%% + +\x88 { +#ifdef MARC_EXT + utf2byte('\x98') ; /* START OF STRING U+0098 */ +#else + ECHO ; +#endif + } + +\x89 { +#ifdef MARC_EXT + utf2byte('\x9c') ; /* STRING TERMINATOR U+009C */ +#else + ECHO ; +#endif + } + +\x8d { +#ifdef MARC_EXT + utf3byte('\x20','\x0d') ; /* ZERO WIDTH JOINER U+200D */ +#else + ECHO ; +#endif + } + +\x8e { +#ifdef MARC_EXT + utf3byte('\x20','\x0c') ; /* ZERO WIDTH NON-JOINER U+200C */ +#else + ECHO ; +#endif + } + + /* C1 controls and latin supplement */ + + /* utf2byte('\xa0') ; /* unassigned xxxxxxxxxxxxxxxxxxxxxxx U+00A0 */ +\xc6 utf2byte('\xa1') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00A1 */ + /* utf2byte('\xa2') ; /* CENT SIGN U+00A2 */ +\xb9 utf2byte('\xa3') ; /* POUND SIGN U+00A3 */ + /* utf2byte('\xa4') ; /* CURRENCY SIGN U+00A4 */ + /* utf2byte('\xa5') ; /* YEN SIGN U+00A5 */ + /* utf2byte('\xa6') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00A6 */ + /* utf2byte('\xa7') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00A7 */ + /* utf2byte('\xa8') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00A8 */ +\xc3 utf2byte('\xa9') ; /* COPYRIGH SIGN U+00A9 */ + /* utf2byte('\xaa') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00AA */ + /* utf2byte('\xab') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00AB */ + /* utf2byte('\xac') ; /* NOT SIGN U+00AC */ + /* utf2byte('\xad') ; /* SOPFTHYPHEN U+00AD */ +\xaa utf2byte('\xae') ; /* REGISTRED SIGN U+00AE */ + /* utf2byte('\xaf') ; /* MACRON U+00AF */ + +\xc0 utf2byte('\xb0') ; /* DEGREE SIGN U+00B0 */ +\xab utf2byte('\xb1') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00B1 */ + /* utf2byte('\xb2') ; /* SUPER SCRIPT TWO U+00B2 */ + /* utf2byte('\xb3') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00B3 */ + /* utf2byte('\xb4') ; /* ACUTE ACCENT U+00B4 */ + /* utf2byte('\xb5') ; /* MICRO SIGN U+00B5 */ + /* utf2byte('\xb6') ; /* PILCROW SIGN U+00B6 */ +\xa8 utf2byte('\xb7') ; /* MIDDLE DOT U+00B7 */ + /* utf2byte('\xb8') ; /* CEDILLA U+00B8 */ + /* utf2byte('\xb9') ; /* SUPERSCRIPT ONE U+00B9 */ + /* utf2byte('\xba') ; /* MASCULINE ORIDNAL INDICATOR U+00BA */ + /* utf2byte('\xbb') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00BB */ + /* utf2byte('\xbc') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00BC */ + /* utf2byte('\xbd') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00BD */ + /* utf2byte('\xbe') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00BE */ +\xc5 utf2byte('\xbf') ; /* INVERTED QUESTION MARK U+00BF */ + +{ANSEL_GRAVEACCENT}A utf2byte('\xc0') ; /* A WITH ACUTE, LATIN CAPITAL LETTER U+00C0 */ +{ANSEL_ACUTEACCENT}A utf2byte('\xc1') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00C1 */ +{ANSEL_CIRCUMFLEXACC}A utf2byte('\xc2') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00C2 */ +{ANSEL_TILDE}A utf2byte('\xc3') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00C3 */ +{ANSEL_DIARESIS}A utf2byte('\xc4') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00C4 */ +{ANSEL_CIRCLEABOVE}A utf2byte('\xc5') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00C5 */ +\xa5 utf2byte('\xc6') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00C6 */ +{ANSEL_CEDILLA}C utf2byte('\xc7') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00C7 */ +{ANSEL_GRAVEACCENT}E utf2byte('\xc8') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00C8 */ +{ANSEL_ACUTEACCENT}E utf2byte('\xc9') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00C9 */ +{ANSEL_CIRCUMFLEXACC}E utf2byte('\xca') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00CA */ +{ANSEL_DIARESIS}E utf2byte('\xcb') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00CB */ +{ANSEL_GRAVEACCENT}I utf2byte('\xcc') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00CC */ +{ANSEL_ACUTEACCENT}I utf2byte('\xcd') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00CD */ +{ANSEL_CIRCUMFLEXACC}I utf2byte('\xce') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00CE */ +{ANSEL_DIARESIS}I utf2byte('\xcf') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00CF */ + +{ANSEL_TILDE}N utf2byte('\xd1') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00D1 */ +{ANSEL_GRAVEACCENT}O utf2byte('\xd2') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00D2 */ +{ANSEL_ACUTEACCENT}O utf2byte('\xd3') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00D3 */ +{ANSEL_CIRCUMFLEXACC}O utf2byte('\xd4') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00D4 */ +{ANSEL_TILDE}O utf2byte('\xd5') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00D5 */ +\xa8O utf2byte('\xd6') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00D6 */ + /* utf2byte('\xd7') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00D7 */ +\xa2 utf2byte('\xd8') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00D8 */ +{ANSEL_GRAVEACCENT}U utf2byte('\xd9') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00D9 */ +{ANSEL_ACUTEACCENT}U utf2byte('\xda') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00DA */ +{ANSEL_CIRCUMFLEXACC}U utf2byte('\xdb') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00DB */ +{ANSEL_DIARESIS}U utf2byte('\xdc') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00DC */ +{ANSEL_ACUTEACCENT}Y utf2byte('\xdd') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00DD */ +\xa4 utf2byte('\xde') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00DE */ + /* utf2byte('\xdf') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00DF */ + +{ANSEL_GRAVEACCENT}a utf2byte('\xe0') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00E0 */ +{ANSEL_ACUTEACCENT}a utf2byte('\xe1') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00E1 */ +{ANSEL_CIRCUMFLEXACC}a utf2byte('\xe2') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00E2 */ +{ANSEL_TILDE}a utf2byte('\xe3') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00E3 */ +{ANSEL_DIARESIS}a utf2byte('\xe4') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00E4 */ +{ANSEL_CIRCLEABOVE}a utf2byte('\xe5') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00E5 */ +\xb5 utf2byte('\xe6') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00E6 */ +{ANSEL_CEDILLA}c utf2byte('\xe7') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00E7 */ +{ANSEL_GRAVEACCENT}e utf2byte('\xe8') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00E8 */ +{ANSEL_ACUTEACCENT}e utf2byte('\xe9') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00E9 */ +{ANSEL_CIRCUMFLEXACC}e utf2byte('\xea') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00EA */ +{ANSEL_DIARESIS}e utf2byte('\xeb') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00EB */ +{ANSEL_GRAVEACCENT}i utf2byte('\xec') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00EC */ +{ANSEL_ACUTEACCENT}i utf2byte('\xed') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00ED */ +{ANSEL_CIRCUMFLEXACC}i utf2byte('\xee') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00EE */ +{ANSEL_DIARESIS}i utf2byte('\xef') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00EF */ + +\xba utf2byte('\xf0') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00F0 */ +{ANSEL_TILDE}n utf2byte('\xf1') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00F1 */ +{ANSEL_GRAVEACCENT}o utf2byte('\xf2') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00F2 */ +{ANSEL_ACUTEACCENT}o utf2byte('\xf3') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00F3 */ +{ANSEL_CIRCUMFLEXACC}o utf2byte('\xf4') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00F4 */ +{ANSEL_TILDE}o utf2byte('\xf5') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00F5 */ +{ANSEL_DIARESIS}o utf2byte('\xf6') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00F6 */ + /* utf2byte('\xf7') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00F7 */ +\xb2 utf2byte('\xf8') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00F8 */ +{ANSEL_GRAVEACCENT}u utf2byte('\xf9') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00F9 */ +{ANSEL_ACUTEACCENT}u utf2byte('\xfa') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00FA */ +{ANSEL_CIRCUMFLEXACC}u utf2byte('\xfb') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00FB */ +{ANSEL_DIARESIS}u utf2byte('\xfc') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00FC */ +{ANSEL_ACUTEACCENT}y utf2byte('\xfd') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00FD */ +\xb4 utf2byte('\xfe') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00FE */ +{ANSEL_DIARESIS}y utf2byte('\xff') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+00FF */ + + /* Latin-extended A */ + +{ANSEL_MACRON}A utf3byte('\x01','\x00') ; /* LATIN CAPITAL LETTER A WITH MACRON U+0100 */ +{ANSEL_MACRON}a utf3byte('\x01','\x01') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0101 */ +{ANSEL_BREVE}A utf3byte('\x01','\x02') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0102 */ +{ANSEL_BREVE}a utf3byte('\x01','\x03') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0103 */ +{ANSEL_RIGHTHOOK}A utf3byte('\x01','\x04') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0104 */ +{ANSEL_RIGHTHOOK}a utf3byte('\x01','\x05') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0105 */ +{ANSEL_ACUTEACCENT}C utf3byte('\x01','\x06') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0106 */ +{ANSEL_ACUTEACCENT}c utf3byte('\x01','\x07') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0107 */ +{ANSEL_CIRCUMFLEXACC}C utf3byte('\x01','\x08') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0108 */ +{ANSEL_CIRCUMFLEXACC}c utf3byte('\x01','\x09') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0109 */ +{ANSEL_DOTABOVE}C utf3byte('\x01','\x0a') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+010a */ +{ANSEL_DOTABOVE}c utf3byte('\x01','\x0b') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+010b */ +{ANSEL_CARON}C utf3byte('\x01','\x0c') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+010c */ +{ANSEL_CARON}c utf3byte('\x01','\x0d') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+010d */ +{ANSEL_CARON}D utf3byte('\x01','\x0e') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+010e */ +{ANSEL_CARON}d utf3byte('\x01','\x0f') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+010f */ + + /* could this rather be U+00D0, LATIN CAPITAL LETTER ETH ? */ +\xa3 utf3byte('\x01','\x10') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0110 */ +\xb3 utf3byte('\x01','\x11') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0111 */ +{ANSEL_MACRON}E utf3byte('\x01','\x12') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0112 */ +{ANSEL_MACRON}e utf3byte('\x01','\x13') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0113 */ +{ANSEL_BREVE}E utf3byte('\x01','\x14') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0114 */ +{ANSEL_BREVE}e utf3byte('\x01','\x15') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0115 */ +{ANSEL_DOTABOVE}E utf3byte('\x01','\x16') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0116 */ +{ANSEL_DOTABOVE}e utf3byte('\x01','\x17') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0117 */ +{ANSEL_RIGHTHOOK}E utf3byte('\x01','\x18') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0118 */ +{ANSEL_RIGHTHOOK}e utf3byte('\x01','\x19') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0119 */ +{ANSEL_CARON}E utf3byte('\x01','\x1a') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+011a */ +{ANSEL_CARON}e utf3byte('\x01','\x1b') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+011b */ +{ANSEL_CIRCUMFLEXACC}G utf3byte('\x01','\x1c') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+011c */ +{ANSEL_CIRCUMFLEXACC}g utf3byte('\x01','\x1d') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+011d */ +{ANSEL_BREVE}G utf3byte('\x01','\x1e') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+011e */ +{ANSEL_BREVE}g utf3byte('\x01','\x1f') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+011f */ + +{ANSEL_DOTABOVE}G utf3byte('\x01','\x20') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0120 */ +{ANSEL_DOTABOVE}g utf3byte('\x01','\x21') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0121 */ +{ANSEL_CEDILLA}G utf3byte('\x01','\x22') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0122 */ +{ANSEL_CEDILLA}g utf3byte('\x01','\x23') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0123 */ +{ANSEL_CIRCUMFLEXACC}H utf3byte('\x01','\x24') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0124 */ +{ANSEL_CIRCUMFLEXACC}h utf3byte('\x01','\x25') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0125 */ + /* utf3byte('\x01','\x26') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0126 */ + /* utf3byte('\x01','\x27') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0127 */ +{ANSEL_TILDE}I utf3byte('\x01','\x28') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0128 */ +{ANSEL_TILDE}i utf3byte('\x01','\x29') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0129 */ +{ANSEL_MACRON}I utf3byte('\x01','\x2a') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+012a */ +{ANSEL_MACRON}i utf3byte('\x01','\x2b') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+012b */ +{ANSEL_BREVE}I utf3byte('\x01','\x2c') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+012c */ +{ANSEL_BREVE}i utf3byte('\x01','\x2d') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+012d */ +{ANSEL_RIGHTHOOK}I utf3byte('\x01','\x2e') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+012e */ +{ANSEL_RIGHTHOOK}i utf3byte('\x01','\x2f') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+012f */ + +{ANSEL_DOTABOVE}I utf3byte('\x01','\x30') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0130 */ +\xb8 utf3byte('\x01','\x31') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0131 */ +IJ utf3byte('\x01','\x32') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0132 */ +ij utf3byte('\x01','\x33') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0133 */ +{ANSEL_CIRCUMFLEXACC}J utf3byte('\x01','\x34') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0134 */ +{ANSEL_CIRCUMFLEXACC}j utf3byte('\x01','\x35') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0135 */ +{ANSEL_CEDILLA}K | +{ANSEL_LEFTHOOK}K utf3byte('\x01','\x36') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0136 */ +{ANSEL_CEDILLA}k | +{ANSEL_LEFTHOOK}k utf3byte('\x01','\x37') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0137 */ + /* utf3byte('\x01','\x38') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0138 */ +{ANSEL_ACUTEACCENT}L utf3byte('\x01','\x39') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0139 */ +{ANSEL_ACUTEACCENT}l utf3byte('\x01','\x3a') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+013a */ +{ANSEL_CEDILLA}L | +{ANSEL_LEFTHOOK}L utf3byte('\x01','\x3b') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+013b */ +{ANSEL_CEDILLA}l | +{ANSEL_LEFTHOOK}l utf3byte('\x01','\x3c') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+013c */ +{ANSEL_CARON}L utf3byte('\x01','\x3d') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+013d */ +{ANSEL_CARON}l utf3byte('\x01','\x3e') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+013e */ + /* utf3byte('\x01','\x3f') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+013f */ + + /* utf3byte('\x01','\x40') ; /* LATIN SMALL LETTER L WITH MIDDLE DOT+0140 */ +\xa1 utf3byte('\x01','\x41') ; /* LATIN CAPITAL LETTER L WITH STROKE U+0141 */ +\xb1 utf3byte('\x01','\x42') ; /* LATIN SMALL LETTER L WITH STROKE U+0142 */ +{ANSEL_ACUTEACCENT}N utf3byte('\x01','\x43') ; /* LATIN CAPITAL LETTER N WITH ACUTE U+0143 */ +{ANSEL_ACUTEACCENT}n utf3byte('\x01','\x44') ; /* LATIN SMALL LETTER N WITH ACUTE U+0144 */ +{ANSEL_CEDILLA}N | +{ANSEL_LEFTHOOK}N utf3byte('\x01','\x45') ; /* LATIN CAPITAL LETTER N WITH CEDILLA U+0145 */ +{ANSEL_CEDILLA}n | +{ANSEL_LEFTHOOK}n utf3byte('\x01','\x46') ; /* LATIN SMALL LETTER N WITH CEDILLA U+0146 */ +{ANSEL_CARON}N utf3byte('\x01','\x47') ; /* LATIN CAPITAL LETTER N WITH CARON U+0147 */ +{ANSEL_CARON}n utf3byte('\x01','\x48') ; /* LATIN SMALL LETTER N WITH CARON U+0148 */ + /* utf3byte('\x01','\x49') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0149 */ + /* utf3byte('\x01','\x4a') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+014a */ + /* utf3byte('\x01','\x4b') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+014b */ +{ANSEL_MACRON}O utf3byte('\x01','\x4c') ; /* LATIN CAPITAL LETTER O WITH MACRON U+014c */ +{ANSEL_MACRON}o utf3byte('\x01','\x4d') ; /* LATIN SMALL LETTER O WITH MACRON U+014d */ +{ANSEL_BREVE}O utf3byte('\x01','\x4e') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+014e */ +{ANSEL_BREVE}o utf3byte('\x01','\x4f') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+014f */ + +{ANSEL_DOUBLEACUTEACC}O utf3byte('\x01','\x50') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0150 */ +{ANSEL_DOUBLEACUTEACC}o utf3byte('\x01','\x51') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0151 */ +\xa6 utf3byte('\x01','\x52') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0152 */ +\xb6 utf3byte('\x01','\x53') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0153 */ +{ANSEL_ACUTEACCENT}R utf3byte('\x01','\x54') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0154 */ +{ANSEL_ACUTEACCENT}r utf3byte('\x01','\x55') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0155 */ +{ANSEL_CEDILLA}R | +{ANSEL_LEFTHOOK}R utf3byte('\x01','\x56') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0156 */ +{ANSEL_CEDILLA}r | +{ANSEL_LEFTHOOK}r utf3byte('\x01','\x57') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0157 */ +{ANSEL_CARON}R utf3byte('\x01','\x58') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0158 */ +{ANSEL_CARON}r utf3byte('\x01','\x59') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0159 */ +{ANSEL_ACUTEACCENT}S utf3byte('\x01','\x5a') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+015a */ +{ANSEL_ACUTEACCENT}s utf3byte('\x01','\x5b') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+015b */ +{ANSEL_CIRCUMFLEXACC}S utf3byte('\x01','\x5c') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+015c */ +{ANSEL_CIRCUMFLEXACC}s utf3byte('\x01','\x5d') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+015d */ +{ANSEL_CEDILLA}S utf3byte('\x01','\x5e') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+015e */ +{ANSEL_CEDILLA}s utf3byte('\x01','\x5f') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+015f */ + +{ANSEL_CARON}S utf3byte('\x01','\x60') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0160 */ +{ANSEL_CARON}s utf3byte('\x01','\x61') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0161 */ +{ANSEL_CEDILLA}T utf3byte('\x01','\x62') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0162 */ +{ANSEL_CEDILLA}t utf3byte('\x01','\x63') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0163 */ +{ANSEL_CARON}T utf3byte('\x01','\x64') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0164 */ +{ANSEL_CARON}t utf3byte('\x01','\x65') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0165 */ + /* utf3byte('\x01','\x66') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0166 */ + /* utf3byte('\x01','\x67') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0167 */ +{ANSEL_TILDE}U utf3byte('\x01','\x68') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0168 */ +{ANSEL_TILDE}u utf3byte('\x01','\x69') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0169 */ +{ANSEL_MACRON}U utf3byte('\x01','\x6a') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+016a */ +{ANSEL_MACRON}u utf3byte('\x01','\x6b') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+016b */ +{ANSEL_BREVE}U utf3byte('\x01','\x6c') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+016c */ +{ANSEL_BREVE}u utf3byte('\x01','\x6d') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+016d */ +{ANSEL_CIRCLEABOVE}U utf3byte('\x01','\x6e') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+016e */ +{ANSEL_CIRCLEABOVE}u utf3byte('\x01','\x6f') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+016f */ + +{ANSEL_DOUBLEACUTEACC}U utf3byte('\x01','\x70') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0170 */ +{ANSEL_DOUBLEACUTEACC}u utf3byte('\x01','\x71') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0171 */ +{ANSEL_RIGHTHOOK}U utf3byte('\x01','\x72') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0172 */ +{ANSEL_RIGHTHOOK}u utf3byte('\x01','\x73') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0173 */ +{ANSEL_CIRCUMFLEXACC}W utf3byte('\x01','\x74') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0174 */ +{ANSEL_CIRCUMFLEXACC}w utf3byte('\x01','\x75') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0175 */ +{ANSEL_CIRCUMFLEXACC}Y utf3byte('\x01','\x76') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0176 */ +{ANSEL_CIRCUMFLEXACC}y utf3byte('\x01','\x77') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0177 */ +{ANSEL_DIARESIS}Y utf3byte('\x01','\x78') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0178 */ +{ANSEL_ACUTEACCENT}Z utf3byte('\x01','\x79') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0179 */ +{ANSEL_ACUTEACCENT}z utf3byte('\x01','\x7a') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+017a */ +{ANSEL_DOTABOVE}Z utf3byte('\x01','\x7b') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+017b */ +{ANSEL_DOTABOVE}z utf3byte('\x01','\x7c') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+017c */ +{ANSEL_CARON}Z utf3byte('\x01','\x7d') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+017d */ +{ANSEL_CARON}z utf3byte('\x01','\x7e') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+017e */ + /* utf3byte('\x01','\x7f') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+017f */ + + /* end of Latin Extended A */ + + /* Latin Extended B */ + + /* utf3byte('\x01','\x80') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0170 */ + /* utf3byte('\x01','\x81') ; /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx U+0171 */ +{ANSEL_MACRON}B utf3byte('\x01','\x82') ; /* LATIN CAPITAL LETTER B WITH TOPBAR U+0182 */ +{ANSEL_MACRON}b utf3byte('\x01','\x83') ; /* LATIN SMALL LETTER B WITH TOPBAR U+0183 */ + +{ANSEL_HIGHCOMMAOFFC}O utf3byte('\x01','\xa0') ; /* LATIN CAPITAL LETTER O WITH HORN U+01A0 */ +{ANSEL_HIGHCOMMAOFFC}o utf3byte('\x01','\xa1') ; /* LATIN SMALL LETTER O WITH HORN U+01A1 */ +{ANSEL_HIGHCOMMAOFFC}U utf3byte('\x01','\xaf') ; /* LATIN CAPITAL LETTER U WITH HORN U+01AF */ +{ANSEL_HIGHCOMMAOFFC}u utf3byte('\x01','\x80') ; /* LATIN SMALL LETTER U WIHT HORN U+0180 */ + +D{ANSEL_CARON}Z utf3byte('\x01','\xc4') ; /* LATIN CAPITAL LETTER DZ WITH CARON U+01C4 */ +D{ANSEL_CARON}z utf3byte('\x01','\xc5') ; /* LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON U+01C5 */ +d{ANSEL_CARON}z utf3byte('\x01','\xc6') ; /* LATIN SMALL LETTER DZ WITH CARON U+01C6 */ +LJ utf3byte('\x01','\xc7') ; /* LATIN CAPITAL LETTER LJ U+01C7 */ +Lj utf3byte('\x01','\xc8') ; /* LATIN CAPITAL LETTER L WITH SMALL LTTER J U+01C8 */ + /* lj utf3byte('\x01','\xc9') ; LATIN CAPITAL LETTER L WITH SMALL LTTER J U+01C9 */ +NJ utf3byte('\x01','\xca') ; /* LATIN CAPITAL LETTER NJ U+01CA */ +Nj utf3byte('\x01','\xcb') ; /* LATIN CAPITAL LETTER N WITH SMALL LTTER J U+01CB */ + /* nj utf3byte('\x01','\xcc') ; LATIN SMALL LETTER NJ U+01CC */ +{ANSEL_CARON}A utf3byte('\x01','\xcd') ; /* U+01CD */ +{ANSEL_CARON}a utf3byte('\x01','\xce') ; /* U+01CE */ +{ANSEL_CARON}I utf3byte('\x01','\xcf') ; /* U+01CF */ +{ANSEL_CARON}i utf3byte('\x01','\xd0') ; /* U+01D0 */ +{ANSEL_CARON}O utf3byte('\x01','\xd1') ; /* U+01D1 */ +{ANSEL_CARON}o utf3byte('\x01','\xd2') ; /* U+01D2 */ +{ANSEL_CARON}U utf3byte('\x01','\xd3') ; /* U+01D3 */ +{ANSEL_CARON}u utf3byte('\x01','\xd4') ; /* U+01D4 */ + + /* see U+1E7A for the opposite order */ +{ANSEL_MACRON}{ANSEL_DIARESIS}U utf3byte('\x01','\xd5') ; /* U+01D5 */ +{ANSEL_MACRON}{ANSEL_DIARESIS}u utf3byte('\x01','\xd6') ; /* U+01D6 */ + +{ANSEL_ACUTEACCENT}{ANSEL_DIARESIS}U | +{ANSEL_DIARESIS}{ANSEL_ACUTEACCENT}U utf3byte('\x01','\xd7') ; /* U+01D7 */ + +{ANSEL_ACUTEACCENT}{ANSEL_DIARESIS}u | +{ANSEL_DIARESIS}{ANSEL_ACUTEACCENT}u utf3byte('\x01','\xd8') ; /* U+01D8 */ + +{ANSEL_CARON}{ANSEL_DIARESIS}U | +{ANSEL_DIARESIS}{ANSEL_CARON}U utf3byte('\x01','\xd9') ; /* U+01D9 */ + +{ANSEL_CARON}{ANSEL_DIARESIS}u | +{ANSEL_DIARESIS}{ANSEL_CARON}u utf3byte('\x01','\xda') ; /* U+01DA */ + +{ANSEL_GRAVEACCENT}{ANSEL_DIARESIS}U | +{ANSEL_DIARESIS}{ANSEL_GRAVEACCENT}U utf3byte('\x01','\xdb') ; /* U+01DB */ + +{ANSEL_GRAVEACCENT}{ANSEL_DIARESIS}u | +{ANSEL_DIARESIS}{ANSEL_GRAVEACCENT}u utf3byte('\x01','\xdc') ; /* U+01DC */ + +{ANSEL_MACRON}{ANSEL_DIARESIS}A | +{ANSEL_DIARESIS}{ANSEL_MACRON}A utf3byte('\x01','\xde') ; /* U+01DE */ + +{ANSEL_MACRON}{ANSEL_DIARESIS}a | +{ANSEL_DIARESIS}{ANSEL_MACRON}a utf3byte('\x01','\xdf') ; /* U+01DF */ + +{ANSEL_MACRON}{ANSEL_DOTABOVE}A | +{ANSEL_DOTABOVE}{ANSEL_MACRON}A utf3byte('\x01','\xe0') ; /* U+01E0 */ + +{ANSEL_MACRON}{ANSEL_DOTABOVE}a | +{ANSEL_DOTABOVE}{ANSEL_MACRON}a utf3byte('\x01','\xe1') ; /* U+01E1 */ + +{ANSEL_MACRON}\xa5 utf3byte('\x01','\xe2') ; /* U+01E2 */ +{ANSEL_MACRON}\xb5 utf3byte('\x01','\xe3') ; /* U+01E3 */ +{ANSEL_CARON}G utf3byte('\x01','\xe6') ; /* U+01E6 */ +{ANSEL_CARON}g utf3byte('\x01','\xe7') ; /* U+01E7 */ +{ANSEL_CARON}K utf3byte('\x01','\xe8') ; /* U+01E8 */ +{ANSEL_CARON}k utf3byte('\x01','\xe9') ; /* U+01E9 */ +{ANSEL_RIGHTHOOK}O utf3byte('\x01','\xea') ; /* U+01EA */ +{ANSEL_RIGHTHOOK}o utf3byte('\x01','\xeb') ; /* U+01EB */ + +{ANSEL_MACRON}{ANSEL_RIGHTHOOK}O | +{ANSEL_RIGHTHOOK}{ANSEL_MACRON}O utf3byte('\x01','\xec') ; /* U+01EC */ + +{ANSEL_MACRON}{ANSEL_RIGHTHOOK}o | +{ANSEL_RIGHTHOOK}{ANSEL_MACRON}o utf3byte('\x01','\xed') ; /* U+01ED */ + +{ANSEL_CARON}j utf3byte('\x01','\xf0') ; /* U+01F0 */ + +DZ utf3byte('\x01','\xf1') ; /* U+01F1 */ +Dz utf3byte('\x01','\xf2') ; /* U+01F2 */ +dz utf3byte('\x01','\xf3') ; /* U+01F3 */ + +{ANSEL_ACUTEACCENT}G utf3byte('\x01','\xf4') ; /* U+01F4 */ +{ANSEL_ACUTEACCENT}g utf3byte('\x01','\xf5') ; /* U+01F5 */ +{ANSEL_GRAVEACCENT}N utf3byte('\x01','\xf8') ; /* U+01F8 */ +{ANSEL_GRAVEACCENT}n utf3byte('\x01','\xf9') ; /* U+01F9 */ + +{ANSEL_CIRCLEABOVE}{ANSEL_ACUTEACCENT}A | +{ANSEL_ACUTEACCENT}{ANSEL_CIRCLEABOVE}A utf3byte('\x01','\xfa') ; /* U+01FA */ + +{ANSEL_CIRCLEABOVE}{ANSEL_ACUTEACCENT}a | +{ANSEL_ACUTEACCENT}{ANSEL_CIRCLEABOVE}a utf3byte('\x01','\xfb') ; /* U+01FB */ + +{ANSEL_ACUTEACCENT}\xa5 utf3byte('\x01','\xfc') ; /* U+01FC */ +{ANSEL_ACUTEACCENT}\xb5 utf3byte('\x01','\xfd') ; /* U+01FD */ +{ANSEL_ACUTEACCENT}\xa2 utf3byte('\x01','\xfe') ; /* U+01FE */ +{ANSEL_ACUTEACCENT}\xb2 utf3byte('\x01','\xff') ; /* U+01FF */ +{ANSEL_DGRAVE}A utf3byte('\x02','\x00') ; /* U+0200 */ +{ANSEL_DGRAVE}a utf3byte('\x02','\x01') ; /* U+0201 */ +{ANSEL_DGRAVE}E utf3byte('\x02','\x04') ; /* U+0204 */ +{ANSEL_DGRAVE}e utf3byte('\x02','\x05') ; /* U+0205 */ +{ANSEL_DGRAVE}I utf3byte('\x02','\x08') ; /* U+0208 */ +{ANSEL_DGRAVE}i utf3byte('\x02','\x09') ; /* U+0209 */ +{ANSEL_DGRAVE}O utf3byte('\x02','\x0c') ; /* U+020C */ +{ANSEL_DGRAVE}o utf3byte('\x02','\x0d') ; /* U+020D */ +{ANSEL_DGRAVE}R utf3byte('\x02','\x10') ; /* U+0210 */ +{ANSEL_DGRAVE}r utf3byte('\x02','\x11') ; /* U+0211 */ +{ANSEL_DGRAVE}U utf3byte('\x02','\x14') ; /* U+0214 */ +{ANSEL_DGRAVE}u utf3byte('\x02','\x15') ; /* U+0215 */ +{ANSEL_LEFTHOOK}S utf3byte('\x02','\x18') ; /* U+0218 */ +{ANSEL_LEFTHOOK}s utf3byte('\x02','\x19') ; /* U+0219 */ +{ANSEL_LEFTHOOK}T utf3byte('\x02','\x1a') ; /* U+021A */ +{ANSEL_LEFTHOOK}t utf3byte('\x02','\x1b') ; /* U+021B */ +{ANSEL_CARON}H utf3byte('\x02','\x1e') ; /* U+021E */ +{ANSEL_CARON}h utf3byte('\x02','\x1f') ; /* U+021F */ +{ANSEL_DOTABOVE}A utf3byte('\x02','\x26') ; /* U+0226 */ +{ANSEL_DOTABOVE}a utf3byte('\x02','\x27') ; /* U+0227 */ +{ANSEL_CEDILLA}E utf3byte('\x02','\x28') ; /* U+0228 */ +{ANSEL_CEDILLA}e utf3byte('\x02','\x29') ; /* U+0229 */ + +{ANSEL_MACRON}{ANSEL_DIARESIS}O | +{ANSEL_DIARESIS}{ANSEL_MACRON}O utf3byte('\x02','\x2a') ; /* U+022A */ + +{ANSEL_MACRON}{ANSEL_DIARESIS}o | +{ANSEL_DIARESIS}{ANSEL_MACRON}o utf3byte('\x02','\x2b') ; /* U+022B */ + +{ANSEL_MACRON}{ANSEL_TILDE}O | +{ANSEL_TILDE}{ANSEL_MACRON}O utf3byte('\x02','\x2c') ; /* U+022C */ + +{ANSEL_MACRON}{ANSEL_TILDE}o | +{ANSEL_TILDE}{ANSEL_MACRON}o utf3byte('\x02','\x2d') ; /* U+022D */ + +{ANSEL_DOTABOVE}O utf3byte('\x02','\x2e') ; /* U+022E */ +{ANSEL_DOTABOVE}o utf3byte('\x02','\x2f') ; /* U+022F */ + +{ANSEL_MACRON}{ANSEL_DOTABOVE}O | +{ANSEL_DOTABOVE}{ANSEL_MACRON}O utf3byte('\x02','\x30') ; /* U+0230 */ + +{GEDCOM55_SLASH}A { +#ifdef GEDCOM_LDSEXT + utf3byte('\x02','\x3a') ; /* U+023A */ +#else + fprintf(yyout,"%c",yytext[1]) ; +#endif + } + +{GEDCOM55_SLASH}C { +#ifdef GEDCOM_LDSEXT + utf3byte('\x02','\x3b') ; /* U+023B */ +#else + fprintf(yyout,"%c",yytext[1]) ; +#endif + } + +{GEDCOM55_SLASH}c { +#ifdef GEDCOM_LDSEXT + utf3byte('\x02','\x3c') ; /* U+023C */ +#else + fprintf(yyout,"%c",yytext[1]) ; +#endif + } + +{ANSEL_MACRON}{ANSEL_DOTABOVE}o | +{ANSEL_DOTABOVE}{ANSEL_MACRON}o utf3byte('\x02','\x31') ; /* U+0231 */ + +{ANSEL_MACRON}Y utf3byte('\x02','\x32') ; /* U+0232 */ +{ANSEL_MACRON}y utf3byte('\x02','\x33') ; /* U+0233 */ + +{GEDCOM55_SLASH}T { +#ifdef GEDCOM_LDSEXT + utf3byte('\x02','\x3e') ; /* U+023E */ +#else + fprintf(yyout,"%c",yytext[1]) ; +#endif + } + +{GEDCOM55_SLASH}E { +#ifdef GEDCOM_LDSEXT + utf3byte('\x02','\x46') ; /* U+0246 */ +#else + fprintf(yyout,"%c",yytext[1]) ; +#endif + } + +{GEDCOM55_SLASH}e { +#ifdef GEDCOM_LDSEXT + utf3byte('\x02','\x47') ; /* U+0247 */ +#else + fprintf(yyout,"%c",yytext[1]) ; +#endif + } + + /* end of Latin-extended B */ + + /* Latin-extended Additional */ +{ANSEL_CIRCLEBELOW}A utf3byte('\x1e','\x00') ; /* U+1E00 */ +{ANSEL_CIRCLEBELOW}a utf3byte('\x1e','\x01') ; /* U+1E01 */ +{ANSEL_DOTABOVE}B utf3byte('\x1e','\x02') ; /* U+1E02 */ +{ANSEL_DOTABOVE}b utf3byte('\x1e','\x03') ; /* U+1E03 */ +{ANSEL_DOTBELOW}B utf3byte('\x1e','\x04') ; /* U+1E04 */ +{ANSEL_DOTBELOW}b utf3byte('\x1e','\x05') ; /* U+1E05 */ +{ANSEL_UNDERSCORE}B utf3byte('\x1e','\x06') ; /* U+1E06 */ +{ANSEL_UNDERSCORE}b utf3byte('\x1e','\x07') ; /* U+1E07 */ + +{ANSEL_ACUTEACCENT}{ANSEL_CEDILLA}C | +{ANSEL_CEDILLA}{ANSEL_ACUTEACCENT}C utf3byte('\x1e','\x08') ; /* U+1E08 */ + +{ANSEL_ACUTEACCENT}{ANSEL_CEDILLA}c | +{ANSEL_CEDILLA}{ANSEL_ACUTEACCENT}c utf3byte('\x1e','\x09') ; /* U+1E09 */ + +{ANSEL_DOTABOVE}D utf3byte('\x1e','\x0a') ; /* U+1E0A */ +{ANSEL_DOTABOVE}d utf3byte('\x1e','\x0b') ; /* U+1E0B */ +{ANSEL_DOTBELOW}D utf3byte('\x1e','\x0c') ; /* U+1E0C */ +{ANSEL_DOTBELOW}d utf3byte('\x1e','\x0d') ; /* U+1E0D */ +{ANSEL_UNDERSCORE}D utf3byte('\x1e','\x0e') ; /* U+1E0E */ +{ANSEL_UNDERSCORE}d utf3byte('\x1e','\x0f') ; /* U+1E0F */ +{ANSEL_CEDILLA}D | +{ANSEL_LEFTHOOK}D utf3byte('\x1e','\x10') ; /* U+1E10 */ +{ANSEL_CEDILLA}d | +{ANSEL_LEFTHOOK}d utf3byte('\x1e','\x11') ; /* U+1E11 */ + +{ANSEL_GRAVEACCENT}{ANSEL_MACRON}E | +{ANSEL_MACRON}{ANSEL_GRAVEACCENT}E utf3byte('\x1e','\x14') ; /* U+1E14 */ + +{ANSEL_GRAVEACCENT}{ANSEL_MACRON}e | +{ANSEL_MACRON}{ANSEL_GRAVEACCENT}e utf3byte('\x1e','\x15') ; /* U+1E15 */ + +{ANSEL_ACUTEACCENT}{ANSEL_MACRON}E | +{ANSEL_MACRON}{ANSEL_ACUTEACCENT}E utf3byte('\x1e','\x16') ; /* U+1E16 */ + +{ANSEL_ACUTEACCENT}{ANSEL_MACRON}e | +{ANSEL_MACRON}{ANSEL_ACUTEACCENT}e utf3byte('\x1e','\x17') ; /* U+1E17 */ + +{ANSEL_CEDILLA}{ANSEL_BREVE}E | +{ANSEL_BREVE}{ANSEL_CEDILLA}E utf3byte('\x1e','\x1c') ; /* U+1E1C */ + +{ANSEL_CEDILLA}{ANSEL_BREVE}e | +{ANSEL_BREVE}{ANSEL_CEDILLA}e utf3byte('\x1e','\x1d') ; /* U+1E1D */ + +{ANSEL_DOTABOVE}F utf3byte('\x1e','\x1e') ; /* U+1E1E */ +{ANSEL_DOTABOVE}f utf3byte('\x1e','\x1f') ; /* U+1E1F */ +{ANSEL_MACRON}G utf3byte('\x1e','\x20') ; /* U+1E20 */ +{ANSEL_MACRON}g utf3byte('\x1e','\x21') ; /* U+1E21 */ +{ANSEL_DOTABOVE}H utf3byte('\x1e','\x22') ; /* U+1E22 */ +{ANSEL_DOTABOVE}h utf3byte('\x1e','\x23') ; /* U+1E23 */ +{ANSEL_DOTBELOW}H utf3byte('\x1e','\x24') ; /* U+1E24 */ +{ANSEL_DOTBELOW}h utf3byte('\x1e','\x25') ; /* U+1E25 */ +{ANSEL_DIARESIS}H utf3byte('\x1e','\x26') ; /* U+1E26 */ +{ANSEL_DIARESIS}h utf3byte('\x1e','\x27') ; /* U+1E27 */ +{ANSEL_CEDILLA}H | +{ANSEL_LEFTHOOK}H utf3byte('\x1e','\x28') ; /* U+1E28 */ +{ANSEL_CEDILLA}h | +{ANSEL_LEFTHOOK}h utf3byte('\x1e','\x29') ; /* U+1E29 */ + +{ANSEL_ACUTEACCENT}{ANSEL_DIARESIS}I | +{ANSEL_DIARESIS}{ANSEL_ACUTEACCENT}I utf3byte('\x1e','\x2e') ; /* U+1E2E */ + +{ANSEL_ACUTEACCENT}{ANSEL_DIARESIS}i | +{ANSEL_DIARESIS}{ANSEL_ACUTEACCENT}i utf3byte('\x1e','\x2f') ; /* U+1E2F */ + +{ANSEL_ACUTEACCENT}K utf3byte('\x1e','\x30') ; /* U+1E30 */ +{ANSEL_ACUTEACCENT}k utf3byte('\x1e','\x31') ; /* U+1E31 */ +{ANSEL_DOTBELOW}K utf3byte('\x1e','\x32') ; /* U+1E32 */ +{ANSEL_DOTBELOW}k utf3byte('\x1e','\x33') ; /* U+1E33 */ +{ANSEL_UNDERSCORE}K utf3byte('\x1e','\x34') ; /* U+1E34 */ +{ANSEL_UNDERSCORE}k utf3byte('\x1e','\x35') ; /* U+1E35 */ +{ANSEL_DOTBELOW}L utf3byte('\x1e','\x36') ; /* U+1E36 */ +{ANSEL_DOTBELOW}l utf3byte('\x1e','\x37') ; /* U+1E37 */ + +{ANSEL_DOTBELOW}{ANSEL_MACRON}L | +{ANSEL_MACRON}{ANSEL_DOTBELOW}L utf3byte('\x1e','\x38') ; /* U+1E38 */ + +{ANSEL_DOTBELOW}{ANSEL_MACRON}l | +{ANSEL_MACRON}{ANSEL_DOTBELOW}l utf3byte('\x1e','\x39') ; /* U+1E39 */ + +{ANSEL_UNDERSCORE}L utf3byte('\x1e','\x3a') ; /* U+1E3A */ +{ANSEL_UNDERSCORE}l utf3byte('\x1e','\x3b') ; /* U+1E3B */ +{ANSEL_ACUTEACCENT}M utf3byte('\x1e','\x3e') ; /* U+1E3E */ +{ANSEL_ACUTEACCENT}m utf3byte('\x1e','\x3f') ; /* U+1E3F */ +{ANSEL_DOTABOVE}M utf3byte('\x1e','\x40') ; /* U+1E40 */ +{ANSEL_DOTABOVE}m utf3byte('\x1e','\x41') ; /* U+1E41 */ +{ANSEL_DOTBELOW}M utf3byte('\x1e','\x42') ; /* U+1E42 */ +{ANSEL_DOTBELOW}m utf3byte('\x1e','\x43') ; /* U+1E43 */ +{ANSEL_DOTABOVE}N utf3byte('\x1e','\x44') ; /* U+1E44 */ +{ANSEL_DOTABOVE}n utf3byte('\x1e','\x45') ; /* U+1E45 */ +{ANSEL_UNDERSCORE}N utf3byte('\x1e','\x46') ; /* U+1E46 */ +{ANSEL_UNDERSCORE}n utf3byte('\x1e','\x47') ; /* U+1E47 */ + +{ANSEL_ACUTEACCENT}{ANSEL_TILDE}O | +{ANSEL_TILDE}{ANSEL_ACUTEACCENT}O utf3byte('\x1e','\x4c') ; /* U+1E4C */ + +{ANSEL_ACUTEACCENT}{ANSEL_TILDE}o | +{ANSEL_TILDE}{ANSEL_ACUTEACCENT}o utf3byte('\x1e','\x4d') ; /* U+1E4D */ + +{ANSEL_DIARESIS}{ANSEL_TILDE}O | +{ANSEL_TILDE}{ANSEL_DIARESIS}O utf3byte('\x1e','\x4e') ; /* U+1E4E */ + +{ANSEL_DIARESIS}{ANSEL_TILDE}o | +{ANSEL_TILDE}{ANSEL_DIARESIS}o utf3byte('\x1e','\x4f') ; /* U+1E4F */ + +{ANSEL_GRAVEACCENT}{ANSEL_MACRON}O | +{ANSEL_MACRON}{ANSEL_GRAVEACCENT}O utf3byte('\x1e','\x50') ; /* U+1E50 */ + +{ANSEL_GRAVEACCENT}{ANSEL_MACRON}o | +{ANSEL_MACRON}{ANSEL_GRAVEACCENT}o utf3byte('\x1e','\x51') ; /* U+1E51 */ + +{ANSEL_ACUTEACCENT}{ANSEL_MACRON}O | +{ANSEL_MACRON}{ANSEL_ACUTEACCENT}O utf3byte('\x1e','\x52') ; /* U+1E52 */ + +{ANSEL_ACUTEACCENT}{ANSEL_MACRON}o | +{ANSEL_MACRON}{ANSEL_ACUTEACCENT}o utf3byte('\x1e','\x53') ; /* U+1E53 */ + +{ANSEL_ACUTEACCENT}P utf3byte('\x1e','\x54') ; /* U+1E54 */ +{ANSEL_ACUTEACCENT}p utf3byte('\x1e','\x55') ; /* U+1E55 */ +{ANSEL_DOTABOVE}P utf3byte('\x1e','\x56') ; /* U+1E56 */ +{ANSEL_DOTABOVE}p utf3byte('\x1e','\x57') ; /* U+1E57 */ +{ANSEL_DOTABOVE}R utf3byte('\x1e','\x58') ; /* U+1E58 */ +{ANSEL_DOTABOVE}r utf3byte('\x1e','\x59') ; /* U+1E59 */ +{ANSEL_DOTBELOW}R utf3byte('\x1e','\x5a') ; /* U+1E5A */ +{ANSEL_DOTBELOW}r utf3byte('\x1e','\x5b') ; /* U+1E5B */ + +{ANSEL_DOTBELOW}{ANSEL_MACRON}R | +{ANSEL_MACRON}{ANSEL_DOTBELOW}R utf3byte('\x1e','\x5c') ; /* U+1E5c */ + +{ANSEL_DOTBELOW}{ANSEL_MACRON}r | +{ANSEL_MACRON}{ANSEL_DOTBELOW}r utf3byte('\x1e','\x5d') ; /* U+1E5D */ + +{ANSEL_UNDERSCORE}R utf3byte('\x1e','\x5e') ; /* U+1E5E */ +{ANSEL_UNDERSCORE}r utf3byte('\x1e','\x5f') ; /* U+1E5F */ +{ANSEL_DOTABOVE}S utf3byte('\x1e','\x60') ; /* U+1E60 */ +{ANSEL_DOTABOVE}s utf3byte('\x1e','\x61') ; /* U+1E61 */ +{ANSEL_DOTBELOW}S utf3byte('\x1e','\x62') ; /* U+1E62 */ +{ANSEL_DOTBELOW}s utf3byte('\x1e','\x63') ; /* U+1E63 */ + +{ANSEL_ACUTEACCENT}{ANSEL_DOTABOVE}S | +{ANSEL_DOTABOVE}{ANSEL_ACUTEACCENT}S utf3byte('\x1e','\x64') ; /* U+1E64 */ + +{ANSEL_ACUTEACCENT}{ANSEL_DOTABOVE}s | +{ANSEL_DOTABOVE}{ANSEL_ACUTEACCENT}s utf3byte('\x1e','\x65') ; /* U+1E65 */ + +{ANSEL_CARON}{ANSEL_DOTABOVE}S | +{ANSEL_DOTABOVE}{ANSEL_CARON}S utf3byte('\x1e','\x66') ; /* U+1E66 */ + +{ANSEL_CARON}{ANSEL_DOTABOVE}s | +{ANSEL_DOTABOVE}{ANSEL_CARON}s utf3byte('\x1e','\x67') ; /* U+1E67 */ + +{ANSEL_DOTBELOW}{ANSEL_DOTABOVE}S | +{ANSEL_DOTABOVE}{ANSEL_DOTBELOW}S utf3byte('\x1e','\x68') ; /* U+1E68 */ + +{ANSEL_DOTBELOW}{ANSEL_DOTABOVE}s | +{ANSEL_DOTABOVE}{ANSEL_DOTBELOW}s utf3byte('\x1e','\x69') ; /* U+1E69 */ + +{ANSEL_DOTABOVE}T utf3byte('\x1e','\x6a') ; /* U+1E6A */ +{ANSEL_DOTABOVE}t utf3byte('\x1e','\x6b') ; /* U+1E6B */ +{ANSEL_DOTBELOW}T utf3byte('\x1e','\x6c') ; /* U+1E6C */ +{ANSEL_DOTBELOW}t utf3byte('\x1e','\x6d') ; /* U+1E6d */ +{ANSEL_UNDERSCORE}T utf3byte('\x1e','\x6e') ; /* U+1E6d */ +{ANSEL_UNDERSCORE}t utf3byte('\x1e','\x6f') ; /* U+1E6F */ +{ANSEL_DOUBLEDOTBELOW}U utf3byte('\x1e','\x72') ; /* U+1E72 */ +{ANSEL_DOUBLEDOTBELOW}u utf3byte('\x1e','\x73') ; /* U+1E73 */ + +{ANSEL_ACUTEACCENT}{ANSEL_TILDE}U | +{ANSEL_TILDE}{ANSEL_ACUTEACCENT}U utf3byte('\x1e','\x78') ; /* U+1E78 */ + +{ANSEL_ACUTEACCENT}{ANSEL_TILDE}u | +{ANSEL_TILDE}{ANSEL_ACUTEACCENT}u utf3byte('\x1e','\x79') ; /* U+1E79 */ + + /* see U+01D5 for the opposite order */ +{ANSEL_DIARESIS}{ANSEL_MACRON}U utf3byte('\x1e','\x7a') ; /* U+1E7A */ +{ANSEL_DIARESIS}{ANSEL_MACRON}u utf3byte('\x1e','\x7b') ; /* U+1E7B */ + +{ANSEL_TILDE}V utf3byte('\x1e','\x7c') ; /* U+1E7C */ +{ANSEL_TILDE}v utf3byte('\x1e','\x7d') ; /* U+1E7D */ +{ANSEL_DOTBELOW}V utf3byte('\x1e','\x7e') ; /* U+1E7E */ +{ANSEL_DOTBELOW}v utf3byte('\x1e','\x7f') ; /* U+1E7F */ +{ANSEL_GRAVEACCENT}W utf3byte('\x1e','\x80') ; /* U+1E80 */ +{ANSEL_GRAVEACCENT}w utf3byte('\x1e','\x81') ; /* U+1E81 */ +{ANSEL_ACUTEACCENT}W utf3byte('\x1e','\x82') ; /* U+1E82 */ +{ANSEL_ACUTEACCENT}w utf3byte('\x1e','\x83') ; /* U+1E83 */ +{ANSEL_DIARESIS}W utf3byte('\x1e','\x84') ; /* U+1E84 */ +{ANSEL_DIARESIS}w utf3byte('\x1e','\x85') ; /* U+1E85 */ +{ANSEL_DOTABOVE}W utf3byte('\x1e','\x86') ; /* U+1E86 */ +{ANSEL_DOTABOVE}w utf3byte('\x1e','\x87') ; /* U+1E87 */ +{ANSEL_DOTBELOW}W utf3byte('\x1e','\x88') ; /* U+1E88 */ +{ANSEL_DOTBELOW}w utf3byte('\x1e','\x89') ; /* U+1E89 */ +{ANSEL_DOTABOVE}X utf3byte('\x1e','\x8a') ; /* U+1E8A */ +{ANSEL_DOTABOVE}x utf3byte('\x1e','\x8b') ; /* U+1E8B */ +{ANSEL_DIARESIS}X utf3byte('\x1e','\x8c') ; /* U+1E8C */ +{ANSEL_DIARESIS}x utf3byte('\x1e','\x8d') ; /* U+1E8D */ +{ANSEL_DOTABOVE}Y utf3byte('\x1e','\x8e') ; /* U+1E8E */ +{ANSEL_DOTABOVE}y utf3byte('\x1e','\x8f') ; /* U+1E8F */ +{ANSEL_CIRCUMFLEXACC}Z utf3byte('\x1e','\x90') ; /* U+1E90 */ +{ANSEL_CIRCUMFLEXACC}z utf3byte('\x1e','\x91') ; /* U+1E91 */ +{ANSEL_DOTBELOW}Z utf3byte('\x1e','\x92') ; /* U+1E92 */ +{ANSEL_DOTBELOW}z utf3byte('\x1e','\x93') ; /* U+1E93 */ +{ANSEL_UNDERSCORE}Z utf3byte('\x1e','\x94') ; /* U+1E94 */ +{ANSEL_UNDERSCORE}z utf3byte('\x1e','\x95') ; /* U+1E95 */ +{ANSEL_UNDERSCORE}h utf3byte('\x1e','\x96') ; /* U+1E96 */ +{ANSEL_DIARESIS}t utf3byte('\x1e','\x97') ; /* U+1E97 */ +{ANSEL_CIRCLEABOVE}w utf3byte('\x1e','\x98') ; /* U+1E98 */ +{ANSEL_CIRCLEABOVE}y utf3byte('\x1e','\x99') ; /* U+1E99 */ +{ANSEL_DOTBELOW}A utf3byte('\x1e','\xa0') ; /* U+1EA0 */ +{ANSEL_DOTBELOW}a utf3byte('\x1e','\xa1') ; /* U+1EA1 */ +{ANSEL_LOWRISINGTONE}A utf3byte('\x1e','\xa2') ; /* U+1EA2 */ +{ANSEL_LOWRISINGTONE}a utf3byte('\x1e','\xa3') ; /* U+1EA3 */ + +{ANSEL_ACUTEACCENT}{ANSEL_CIRCUMFLEXACC}A | +{ANSEL_CIRCUMFLEXACC}{ANSEL_ACUTEACCENT}A utf3byte('\x1e','\xa4') ; /* U+1EA4 */ + +{ANSEL_ACUTEACCENT}{ANSEL_CIRCUMFLEXACC}a | +{ANSEL_CIRCUMFLEXACC}{ANSEL_ACUTEACCENT}a utf3byte('\x1e','\xa5') ; /* U+1EA5 */ + +{ANSEL_GRAVEACCENT}{ANSEL_CIRCUMFLEXACC}A | +{ANSEL_CIRCUMFLEXACC}{ANSEL_GRAVEACCENT}A utf3byte('\x1e','\xa6') ; /* U+1EA6 */ + +{ANSEL_GRAVEACCENT}{ANSEL_CIRCUMFLEXACC}a | +{ANSEL_CIRCUMFLEXACC}{ANSEL_GRAVEACCENT}a utf3byte('\x1e','\xa7') ; /* U+1EA7 */ + +{ANSEL_LOWRISINGTONE}{ANSEL_CIRCUMFLEXACC}A | +{ANSEL_CIRCUMFLEXACC}{ANSEL_LOWRISINGTONE}A utf3byte('\x1e','\xa8') ; /* U+1EA8 */ + +{ANSEL_LOWRISINGTONE}{ANSEL_CIRCUMFLEXACC}a | +{ANSEL_CIRCUMFLEXACC}{ANSEL_LOWRISINGTONE}a utf3byte('\x1e','\xa9') ; /* U+1EA9 */ + +{ANSEL_TILDE}{ANSEL_CIRCUMFLEXACC}A | +{ANSEL_CIRCUMFLEXACC}{ANSEL_TILDE}A utf3byte('\x1e','\xaa') ; /* U+1EAA */ + +{ANSEL_TILDE}{ANSEL_CIRCUMFLEXACC}a | +{ANSEL_CIRCUMFLEXACC}{ANSEL_TILDE}a utf3byte('\x1e','\xab') ; /* U+1EAB */ + +{ANSEL_DOTBELOW}{ANSEL_CIRCUMFLEXACC}A | +{ANSEL_CIRCUMFLEXACC}{ANSEL_DOTBELOW}A utf3byte('\x1e','\xac') ; /* U+1EAC */ + +{ANSEL_DOTBELOW}{ANSEL_CIRCUMFLEXACC}a | +{ANSEL_CIRCUMFLEXACC}{ANSEL_DOTBELOW}a utf3byte('\x1e','\xad') ; /* U+1EAD */ + +{ANSEL_ACUTEACCENT}{ANSEL_BREVE}A | +{ANSEL_BREVE}{ANSEL_ACUTEACCENT}A utf3byte('\x1e','\xae') ; /* U+1EAE */ + +{ANSEL_ACUTEACCENT}{ANSEL_BREVE}a | +{ANSEL_BREVE}{ANSEL_ACUTEACCENT}a utf3byte('\x1e','\xaf') ; /* U+1EAF */ + +{ANSEL_GRAVEACCENT}{ANSEL_BREVE}A | +{ANSEL_BREVE}{ANSEL_GRAVEACCENT}A utf3byte('\x1e','\xb0') ; /* U+1EB0 */ + +{ANSEL_GRAVEACCENT}{ANSEL_BREVE}a | +{ANSEL_BREVE}{ANSEL_GRAVEACCENT}a utf3byte('\x1e','\xb1') ; /* U+1EB1 */ + +{ANSEL_LOWRISINGTONE}{ANSEL_BREVE}A | +{ANSEL_BREVE}{ANSEL_LOWRISINGTONE}A utf3byte('\x1e','\xb2') ; /* U+1EB2 */ + +{ANSEL_LOWRISINGTONE}{ANSEL_BREVE}a | +{ANSEL_BREVE}{ANSEL_LOWRISINGTONE}a utf3byte('\x1e','\xb3') ; /* U+1EB3 */ + +{ANSEL_TILDE}{ANSEL_BREVE}A | +{ANSEL_BREVE}{ANSEL_TILDE}A utf3byte('\x1e','\xb4') ; /* U+1EB4 */ + +{ANSEL_TILDE}{ANSEL_BREVE}a | +{ANSEL_BREVE}{ANSEL_TILDE}a utf3byte('\x1e','\xb5') ; /* U+1EB5 */ + +{ANSEL_DOTBELOW}{ANSEL_BREVE}A | +{ANSEL_BREVE}{ANSEL_DOTBELOW}A utf3byte('\x1e','\xb6') ; /* U+1EB6 */ + +{ANSEL_DOTBELOW}{ANSEL_BREVE}a | +{ANSEL_BREVE}{ANSEL_DOTBELOW}a utf3byte('\x1e','\xb7') ; /* U+1EB7 */ + +{ANSEL_DOTBELOW}E utf3byte('\x1e','\xb8') ; /* U+1EB8 */ +{ANSEL_DOTBELOW}e utf3byte('\x1e','\xb9') ; /* U+1EB9 */ + +{ANSEL_LOWRISINGTONE}E utf3byte('\x1e','\xba') ; /* U+1EBA */ +{ANSEL_LOWRISINGTONE}e utf3byte('\x1e','\xbb') ; /* U+1EBB */ +{ANSEL_TILDE}E utf3byte('\x1e','\xbc') ; /* U+1EBC */ +{ANSEL_TILDE}e utf3byte('\x1e','\xbd') ; /* U+1EBD */ + +{ANSEL_ACUTEACCENT}{ANSEL_CIRCUMFLEXACC}E | +{ANSEL_CIRCUMFLEXACC}{ANSEL_ACUTEACCENT}E utf3byte('\x1e','\xbe') ; /* U+1EBE */ + +{ANSEL_ACUTEACCENT}{ANSEL_CIRCUMFLEXACC}e | +{ANSEL_CIRCUMFLEXACC}{ANSEL_ACUTEACCENT}e utf3byte('\x1e','\xbf') ; /* U+1EBF */ + +{ANSEL_GRAVEACCENT}{ANSEL_CIRCUMFLEXACC}E | +{ANSEL_CIRCUMFLEXACC}{ANSEL_GRAVEACCENT}E utf3byte('\x1e','\xc0') ; /* U+1EC0*/ + +{ANSEL_GRAVEACCENT}{ANSEL_CIRCUMFLEXACC}e | +{ANSEL_CIRCUMFLEXACC}{ANSEL_GRAVEACCENT}e utf3byte('\x1e','\xc1') ; /* U+1EC1 */ + +{ANSEL_LOWRISINGTONE}{ANSEL_CIRCUMFLEXACC}E | +{ANSEL_CIRCUMFLEXACC}{ANSEL_LOWRISINGTONE}E utf3byte('\x1e','\xc2') ; /* U+1EC2 */ + +{ANSEL_LOWRISINGTONE}{ANSEL_CIRCUMFLEXACC}e | +{ANSEL_CIRCUMFLEXACC}{ANSEL_LOWRISINGTONE}e utf3byte('\x1e','\xc3') ; /* U+1EC3 */ + +{ANSEL_TILDE}{ANSEL_CIRCUMFLEXACC}E | +{ANSEL_CIRCUMFLEXACC}{ANSEL_TILDE}E utf3byte('\x1e','\xc4') ; /* U+1EC4 */ + +{ANSEL_TILDE}{ANSEL_CIRCUMFLEXACC}e | +{ANSEL_CIRCUMFLEXACC}{ANSEL_TILDE}e utf3byte('\x1e','\xc5') ; /* U+1EC5 */ + +{ANSEL_DOTBELOW}{ANSEL_CIRCUMFLEXACC}E | +{ANSEL_CIRCUMFLEXACC}{ANSEL_DOTBELOW}E utf3byte('\x1e','\xc6') ; /* U+1EC6 */ + +{ANSEL_DOTBELOW}{ANSEL_CIRCUMFLEXACC}e | +{ANSEL_CIRCUMFLEXACC}{ANSEL_DOTBELOW}e utf3byte('\x1e','\xc7') ; /* U+1EC7 */ + +{ANSEL_LOWRISINGTONE}I utf3byte('\x1e','\xc8') ; /* U+1EC8 */ +{ANSEL_LOWRISINGTONE}i utf3byte('\x1e','\xc9') ; /* U+1EC9 */ +{ANSEL_DOTBELOW}I utf3byte('\x1e','\xca') ; /* U+1ECA */ +{ANSEL_DOTBELOW}i utf3byte('\x1e','\xcb') ; /* U+1ECB */ +{ANSEL_DOTBELOW}O utf3byte('\x1e','\xcc') ; /* U+1ECC */ +{ANSEL_DOTBELOW}o utf3byte('\x1e','\xcd') ; /* U+1ECD */ +{ANSEL_LOWRISINGTONE}O utf3byte('\x1e','\xce') ; /* U+1ECE */ +{ANSEL_LOWRISINGTONE}o utf3byte('\x1e','\xcf') ; /* U+1ECF */ + +{ANSEL_ACUTEACCENT}{ANSEL_CIRCUMFLEXACC}O | +{ANSEL_CIRCUMFLEXACC}{ANSEL_ACUTEACCENT}O utf3byte('\x1e','\xd0') ; /* U+1ED0 */ + +{ANSEL_ACUTEACCENT}{ANSEL_CIRCUMFLEXACC}o | +{ANSEL_CIRCUMFLEXACC}{ANSEL_ACUTEACCENT}o utf3byte('\x1e','\xd1') ; /* U+1Ed1 */ + +{ANSEL_GRAVEACCENT}{ANSEL_CIRCUMFLEXACC}O | +{ANSEL_CIRCUMFLEXACC}{ANSEL_GRAVEACCENT}O utf3byte('\x1e','\xd2') ; /* U+1ED2 */ + +{ANSEL_GRAVEACCENT}{ANSEL_CIRCUMFLEXACC}o | +{ANSEL_CIRCUMFLEXACC}{ANSEL_GRAVEACCENT}o utf3byte('\x1e','\xd3') ; /* U+1ED3 */ + +{ANSEL_LOWRISINGTONE}{ANSEL_CIRCUMFLEXACC}O | +{ANSEL_CIRCUMFLEXACC}{ANSEL_LOWRISINGTONE}O utf3byte('\x1e','\xd4') ; /* U+1ED4 */ + +{ANSEL_LOWRISINGTONE}{ANSEL_CIRCUMFLEXACC}o | +{ANSEL_CIRCUMFLEXACC}{ANSEL_LOWRISINGTONE}o utf3byte('\x1e','\xd5') ; /* U+1Ed5 */ + +{ANSEL_TILDE}{ANSEL_CIRCUMFLEXACC}O | +{ANSEL_CIRCUMFLEXACC}{ANSEL_TILDE}O utf3byte('\x1e','\xd6') ; /* U+1ED6 */ + +{ANSEL_TILDE}{ANSEL_CIRCUMFLEXACC}o | +{ANSEL_CIRCUMFLEXACC}{ANSEL_TILDE}o utf3byte('\x1e','\xd7') ; /* U+1ED7 */ + +{ANSEL_DOTBELOW}{ANSEL_CIRCUMFLEXACC}O | +{ANSEL_CIRCUMFLEXACC}{ANSEL_DOTBELOW}O utf3byte('\x1e','\xd8') ; /* U+1ED8 */ + +{ANSEL_DOTBELOW}{ANSEL_CIRCUMFLEXACC}o | +{ANSEL_CIRCUMFLEXACC}{ANSEL_DOTBELOW}o utf3byte('\x1e','\xd9') ; /* U+1ED9 */ + +{ANSEL_ACUTEACCENT}{ANSEL_VIETO} utf3byte('\x1e','\xda') ; /* U+1EDA */ +{ANSEL_ACUTEACCENT}{ANSEL_VIETo} utf3byte('\x1e','\xdb') ; /* U+1EDB */ +{ANSEL_GRAVEACCENT}{ANSEL_VIETO} utf3byte('\x1e','\xdc') ; /* U+1EDC */ +{ANSEL_GRAVEACCENT}{ANSEL_VIETo} utf3byte('\x1e','\xdd') ; /* U+1EDD */ +{ANSEL_LOWRISINGTONE}{ANSEL_VIETO} utf3byte('\x1e','\xde') ; /* U+1EDE */ +{ANSEL_LOWRISINGTONE}{ANSEL_VIETo} utf3byte('\x1e','\xdf') ; /* U+1EDF */ +{ANSEL_TILDE}{ANSEL_VIETO} utf3byte('\x1e','\xe0') ; /* U+1EE0 */ +{ANSEL_TILDE}{ANSEL_VIETo} utf3byte('\x1e','\xe1') ; /* U+1EE1 */ +{ANSEL_DOTBELOW}{ANSEL_VIETO} utf3byte('\x1e','\xe2') ; /* U+1EE2 */ +{ANSEL_DOTBELOW}{ANSEL_VIETo} utf3byte('\x1e','\xe3') ; /* U+1EE3 */ +{ANSEL_DOTBELOW}U utf3byte('\x1e','\xe4') ; /* U+1EE4 */ +{ANSEL_DOTBELOW}u utf3byte('\x1e','\xe5') ; /* U+1EE5 */ +{ANSEL_LOWRISINGTONE}U utf3byte('\x1e','\xe6') ; /* U+1EE6 */ +{ANSEL_LOWRISINGTONE}u utf3byte('\x1e','\xe7') ; /* U+1EE7 */ +{ANSEL_ACUTEACCENT}{ANSEL_VIETU} utf3byte('\x1e','\xe8') ; /* U+1EE8 */ +{ANSEL_ACUTEACCENT}{ANSEL_VIETu} utf3byte('\x1e','\xe9') ; /* U+1EE9 */ +{ANSEL_GRAVEACCENT}{ANSEL_VIETU} utf3byte('\x1e','\xea') ; /* U+1EEA */ +{ANSEL_GRAVEACCENT}{ANSEL_VIETu} utf3byte('\x1e','\xeb') ; /* U+1EEB */ +{ANSEL_LOWRISINGTONE}{ANSEL_VIETU} utf3byte('\x1e','\xec') ; /* U+1EEC */ +{ANSEL_LOWRISINGTONE}{ANSEL_VIETu} utf3byte('\x1e','\xed') ; /* U+1EED */ +{ANSEL_TILDE}{ANSEL_VIETU} utf3byte('\x1e','\xee') ; /* U+1EEE */ +{ANSEL_TILDE}{ANSEL_VIETu} utf3byte('\x1e','\xef') ; /* U+1EEF */ +{ANSEL_DOTBELOW}{ANSEL_VIETU} utf3byte('\x1e','\xf0') ; /* U+1EF0 */ +{ANSEL_DOTBELOW}{ANSEL_VIETu} utf3byte('\x1e','\xf1') ; /* U+1EF1 */ +{ANSEL_GRAVEACCENT}Y utf3byte('\x1e','\xf2') ; /* U+1EF2 */ +{ANSEL_GRAVEACCENT}y utf3byte('\x1e','\xf3') ; /* U+1EF3 */ +{ANSEL_DOTBELOW}Y utf3byte('\x1e','\xf4') ; /* U+1EF4 */ +{ANSEL_DOTBELOW}y utf3byte('\x1e','\xf5') ; /* U+1EF5 */ +{ANSEL_LOWRISINGTONE}Y utf3byte('\x1e','\xf6') ; /* U+1EF6 */ +{ANSEL_LOWRISINGTONE}y utf3byte('\x1e','\xf7') ; /* U+1EF7 */ +{ANSEL_TILDE}Y utf3byte('\x1e','\xf8') ; /* U+1EF8 */ +{ANSEL_TILDE}y utf3byte('\x1e','\xf9') ; /* U+1EF9 */ + + /* end of Latin Extended Additional */ + +\xae utf3byte('\x02','\xbc') ; /* alif */ /* U+1EBC */ +\xb0 utf3byte('\x02','\xbb') ; /* ayn */ /* U+1EBB */ + + /* MUSIC */ +\xa9 utf3byte('\x26','\x6d') ; /* MUSIC FLAT SIGN U+266D */ +\xc4 utf3byte('\x26','\x6f') ; /* MUSIC SHARP SIGN U+266F */ + +\xc1 utf3byte('\x21','\x13') ; /* SCRIPT SMALL L U+2113 */ +\xc2 utf3byte('\x21','\x17') ; /* SOUNC RECORDING COPYRIGHT U+2117 */ + + /* hard, soft signs */ +\xb7 { +#ifdef MARC_EXT + utf3byte('\x02','\xba') ; /* MODIFIER LETTER DOUBLE PRIME U+02BA */ +#else + utf3byte('\x04','\x4a') ; /* CYRILLIC SMALL LETTER HARD SIGN U+044A */ +#endif + } + +\xa7 { +#ifdef MARC_EXT + utf3byte('\x02','\xb9') ; /* U+02B9 */ +#else + utf3byte('\x04','\x4c') ; /* CYRILLIC SMALL LETTER SOFT SIGN U+044A */ +#endif + } + + /* Vietnamiese from Latin Extended-B */ +ANSEL_VIETO utf3byte('\x01','\xa0') ; /* LATIN CAPITAL LETTER o WITH HORN U+01A0 */ +ANSEL_VIETo utf3byte('\x01','\xa1') ; /* LATIN SMALL LETTER o WITH HORN U+01A1 */ +ANSEL_VIETU utf3byte('\x01','\xaf') ; /* LATIN CAPITAL LETTER u WITH HORN U+01AF */ +ANSEL_VIETu utf3byte('\x01','\xb0') ; /* LATIN SMALL LETTER u WITH HORN U+01B0 */ + +{GEDCOM55_EMPTYBOX} { +#ifdef GEDCOM_LDSEXT + utf3byte('\x25','\xa1') ; /*WHITE SQUARE U+25A1 this is a rumor not in the 5.5 or 5.5.1 standard */ + ; +#else + ; +#endif + } + +{GEDCOM55_BLACKBOX} { +#ifdef GEDCOM_LDSEXT + utf3byte('\x25','\xa0') ; /* BLACK SQUARE U+25A0 a rumor again not in GEDCOM 5.5 or 5.5.1 */ + ; +#else + ; +#endif + } + +{GEDCOM55_SZ} { +#if defined GEDCOM_EXT || defined GEDCOM_LDSEXT + utf2byte('\xdf') ; /* LATIN SMALL LETTER SHARP S U+00DF */ + ; +#else + ; +#endif + } + +\xc7 { +#ifdef MARC_EXT + utf2byte('\xdf') ; /* LATIN SMALL LETTER SHARP S U+00DF */ +#else + ; +#endif + } + +\xc8 { +#ifdef MARC_EXT + utf3byte('\x20','\xac') ; /* EURO SIGN U+20AC */ +#else + ; +#endif + } + + + + /* generic declarations follow. flex(1) specifies that they are + * superseded by those above if there are mutliple matchings of the same length */ + + /* invalid codes in the standard use : ignore (delete on output) */ +{ANSEL_RES_C1} | +{ANSEL_CORN} | +{ANSEL_RES_FUT} ; + + /* low rising tone mark */ +{ANSEL_LOWRISINGTONE}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x09') ; /* COMBINING HOOK ABOVE U+0309 */ + } + + /* grave accent */ +{ANSEL_GRAVEACCENT}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x00') ; /* COMBINING GRAVE ACCENT U+0300 */ + } + + /* acute accent */ +{ANSEL_ACUTEACCENT}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x01') ; /* COMBINING ACUTE ACCENT U+0301 */ + } + + /* circumflex accent */ +{ANSEL_CIRCUMFLEXACC}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x02') ; /* COMBINING CIRCUMFLEX ACCENT U+0302 */ + } + + /* tilde */ +{ANSEL_TILDE}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x03') ; /* COMBINING TILDE U+0303 */ + } + + /* Macron */ +{ANSEL_MACRON}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x04') ; /* COMBINING MACRON U+0304 */ + } + + /* Breve */ +{ANSEL_BREVE}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x06') ; /* COMBINING BREVE U+0306 */ + } + + /* dot above */ +{ANSEL_DOTABOVE}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x07') ; /* COMBINING DOT ABOVE U+0307 */ + } + + /* Umlaut, diaresis, double dot above */ +{ANSEL_DIARESIS}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x08') ; /* COMBINING DIARESIS U+0308 */ + } + + /* Caron, hacek */ +{ANSEL_CARON}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x0c') ; /* COMBINING CARON U+030C */ + } + + /* circle, ring above */ +{ANSEL_CIRCLEABOVE}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x0a') ; /* COMBINING RING ABOVE U+030A */ + } + + /* ligature, left half \xeb, ligature right half \xec. + * For the purpose of the conversion we assume that \xeb[someletter]\xec[secondletter] + * is always in use */ +{ANSEL_LIGATURELEFT}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x61') ; /* COMBINING DOUBLE INVERTED BREVE U+0361 */ + } + +{ANSEL_LIGATURERIGHT}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + } + + /* high comma, off center */ +{ANSEL_HIGHCOMMAOFFC}([[:graph:]]) { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x15') ; /* COMBINING COMMA ABOVE RIGHT U+0315 */ + } + + /* Hungarian double acute */ +{ANSEL_DOUBLEACUTEACC}([[:graph:]]) { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x0b') ; /* COMBINING DOUBLE ACUTE ACCENT U+030B */ + } + + /* combining candrabindu */ +{ANSEL_CANDRABINDU}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x10') ; /* COMBININGCANDRABINDU U+0310 */ + } + + /* cedilla */ +{ANSEL_CEDILLA}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x27') ; /* COMBINING CEDILLA U+0327 */ + } + + + /* right hook */ +{ANSEL_RIGHTHOOK}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x28') ; /* COMBINING OGONEK U+0328 */ + } + + /* dot below */ +{ANSEL_DOTBELOW}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x23') ; /* COMBINING DOT BELOW U+0323 */ + } + + /* double dot below */ +{ANSEL_DOUBLEDOTBELOW}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x24') ; /* COMBINING DOUBLE DIARESIS BELOW U+0324 */ + } + + /* circle below */ +{ANSEL_CIRCLEBELOW}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x25') ; /* COMBINING RING BELOW U+0325 */ + } + + /* double underscore */ +{ANSEL_DOUBLEUNDERSC}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x33') ; /* COMBINING DOUBLE LOW LINE U+0333 */ + } + + /* underscore */ +{ANSEL_UNDERSCORE}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x32') ; /* COMBINING LOW LINE U+0332 */ + } + + /* left hook */ +{ANSEL_LEFTHOOK}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x26') ; /* COMBINING COMMA BELOW U+0326 */ + } + + /* right cedilla */ +{ANSEL_RIGHTCEDILLA}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x1c') ; /* COMBINING LEFT HALF RING BELOW U+031C */ + } + + /* half circle below hook */ +{ANSEL_HALFCIRCLBELOW}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x2e') ; /* COMBINING BREVE BELOW U+032e */ + } + + /* double tilde, left half and right half. + * For the purpose of the conversion we assume that \xfa[someletter]\xfb[secondletter] + * is always in use, without actually checking */ +{ANSEL_DOUBLETILDLEFT}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x60') ; /* COMBINING DOUBLE TILDE U+0360 */ + } + +{ANSEL_DOUBLETILDRIGH}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + } + + /* high comma */ +{ANSEL_HIGHCOMMACENT}[[:graph:]] { + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x13') ; /* COMBINING COMMA ABOVE U+0313 */ + } + +{GEDCOM55_SLASH}[[:graph:]] { +#ifdef GEDCOM_LDSEXT + /* the corresponding multiple diacretics with the slash are not implemented below...*/ + fprintf(yyout,"%c",yytext[1]) ; + utf3byte('\x03','\x38') ; /* COMBINING LONG SOLIDUS OVERLAY U+0337 , perhaps U+0337 */ +#else + fprintf(yyout,"%c",yytext[1]) ; +#endif + } + + /* three forms of newline in MAC, Unixes and DOS */ +\l newl(yytext) ; + +\l\n newl(yytext) ; + +\n newl(yytext) ; + + /* Generic double accents. The U+1DC4 to U+1DCC are probably not + * meant to be used as double combining accents. + */ +{ANSEL_LOWRISINGTONE}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_LOWRISINGTONE}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x09') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0f') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_GRAVEACCENT}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x00') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_ACUTEACCENT}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x01') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_CIRCUMFLEXACC}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x02') ; + } +{ANSEL_TILDE}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_TILDE}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x03') ; + } +{ANSEL_MACRON}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_MACRON}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x04') ; + } +{ANSEL_BREVE}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_BREVE}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x06') ; + } +{ANSEL_DOTABOVE}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DOTABOVE}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x07') ; + } +{ANSEL_DIARESIS}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_DIARESIS}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x08') ; + } +{ANSEL_CARON}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CARON}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x0c') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_CIRCLEABOVE}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x0a') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_HIGHCOMMAOFFC}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x15') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_DOUBLEACUTEACC}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x0b') ; + } +{ANSEL_CANDRABINDU}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CANDRABINDU}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x10') ; + } +{ANSEL_CEDILLA}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_CEDILLA}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x27') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_RIGHTHOOK}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x28') ; + } +{ANSEL_DOTBELOW}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOTBELOW}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x23') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_DOUBLEDOTBELOW}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x24') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_CIRCLEBELOW}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x25') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_DOUBLEUNDERSC}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x33') ; + } +{ANSEL_UNDERSCORE}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_UNDERSCORE}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x32') ; + } +{ANSEL_LEFTHOOK}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_LEFTHOOK}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x26') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_RIGHTCEDILLA}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x1c') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HALFCIRCLBELOW}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x2e') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_LOWRISINGTONE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x09') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_GRAVEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x00') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_ACUTEACCENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x01') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_CIRCUMFLEXACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x02') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_TILDE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x03') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_MACRON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x04') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_BREVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x06') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_DOTABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x07') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_DIARESIS}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x08') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_CARON}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0c') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_CIRCLEABOVE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0a') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_HIGHCOMMAOFFC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x15') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_DOUBLEACUTEACC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x0b') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_CANDRABINDU}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x10') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_CEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x27') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_RIGHTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x28') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_DOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x23') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_DOUBLEDOTBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x24') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_CIRCLEBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x25') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_DOUBLEUNDERSC}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x33') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_UNDERSCORE}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x32') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_LEFTHOOK}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x26') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_RIGHTCEDILLA}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x1c') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_HALFCIRCLBELOW}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x2e') ; + utf3byte('\x03','\x13') ; + } +{ANSEL_HIGHCOMMACENT}{ANSEL_HIGHCOMMACENT}[[:print::]] { + fprintf(yyout,"%c",yytext[2]); + utf3byte('\x03','\x13') ; + utf3byte('\x03','\x13') ; + } + +%% + +int main(int argc, char *argv[]) +{ + ++argv, --argc; /* Skip over program name. */ + if (argc > 0) + yyin = fopen(argv[0], "r"); + else + yyin = stdin; + yylex(); + return 0 ; +} + diff --git a/biblio/bibtex/utils/r2bib/config.h.in b/biblio/bibtex/utils/r2bib/config.h.in new file mode 100644 index 0000000000..af916ab14d --- /dev/null +++ b/biblio/bibtex/utils/r2bib/config.h.in @@ -0,0 +1,62 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if you have the <ctype.h> header file. */ +#undef HAVE_CTYPE_H + +/* Define to 1 if you have the <inttypes.h> header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the <memory.h> header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the <stdint.h> header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the <stdio.h> header file. */ +#undef HAVE_STDIO_H + +/* Define to 1 if you have the <stdlib.h> header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the <strings.h> header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the <string.h> header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the <sys/types.h> header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the <time.h> header file. */ +#undef HAVE_TIME_H + +/* Define to 1 if you have the <unistd.h> header file. */ +#undef HAVE_UNISTD_H + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a + `char[]'. */ +#undef YYTEXT_POINTER diff --git a/biblio/bibtex/utils/r2bib/configure b/biblio/bibtex/utils/r2bib/configure new file mode 100755 index 0000000000..67399df68b --- /dev/null +++ b/biblio/bibtex/utils/r2bib/configure @@ -0,0 +1,6095 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.69 for r2bib 2015.12.07. +# +# Report bugs to <mathar@mpia.de>. +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and mathar@mpia.de +$0: about your system, including any error possibly output +$0: before this message. Then install a modern shell, or +$0: manually run the script under such a shell if you do +$0: have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +test -n "$DJDIR" || exec 7<&0 </dev/null +exec 6>&1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='r2bib' +PACKAGE_TARNAME='r2bib' +PACKAGE_VERSION='2015.12.07' +PACKAGE_STRING='r2bib 2015.12.07' +PACKAGE_BUGREPORT='mathar@mpia.de' +PACKAGE_URL='http://www.ctan.org/tex-archive/biblio/bibtex/utils/r2bib/' + +ac_unique_file="r2bib.c" +# Factoring default headers for most tests. +ac_includes_default="\ +#include <stdio.h> +#ifdef HAVE_SYS_TYPES_H +# include <sys/types.h> +#endif +#ifdef HAVE_SYS_STAT_H +# include <sys/stat.h> +#endif +#ifdef STDC_HEADERS +# include <stdlib.h> +# include <stddef.h> +#else +# ifdef HAVE_STDLIB_H +# include <stdlib.h> +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include <memory.h> +# endif +# include <string.h> +#endif +#ifdef HAVE_STRINGS_H +# include <strings.h> +#endif +#ifdef HAVE_INTTYPES_H +# include <inttypes.h> +#endif +#ifdef HAVE_STDINT_H +# include <stdint.h> +#endif +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +EGREP +GREP +CPP +LEXLIB +LEX_OUTPUT_ROOT +LEX +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +ac_ct_CC +CFLAGS +CC +am__fastdepCXX_FALSE +am__fastdepCXX_TRUE +CXXDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CXX +CPPFLAGS +LDFLAGS +CXXFLAGS +CXX +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_silent_rules +enable_dependency_tracking +' + ac_precious_vars='build_alias +host_alias +target_alias +CXX +CXXFLAGS +LDFLAGS +LIBS +CPPFLAGS +CCC +CC +CFLAGS +CPP' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures r2bib 2015.12.07 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/r2bib] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of r2bib 2015.12.07:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + +Some influential environment variables: + CXX C++ compiler command + CXXFLAGS C++ compiler flags + LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a + nonstandard directory <lib dir> + LIBS libraries to pass to the linker, e.g. -l<library> + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if + you have headers in a nonstandard directory <include dir> + CC C compiler command + CFLAGS C compiler flags + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to <mathar@mpia.de>. +r2bib home page: <http://www.ctan.org/tex-archive/biblio/bibtex/utils/r2bib/>. +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +r2bib configure 2015.12.07 +generated by GNU Autoconf 2.69 + +Copyright (C) 2012 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_cxx_try_compile LINENO +# ---------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_compile + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists, giving a warning if it cannot be compiled using +# the include files in INCLUDES and setting the cache variable VAR +# accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## ----------------------------- ## +## Report this to mathar@mpia.de ## +## ----------------------------- ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_mongrel + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by r2bib $as_me 2015.12.07, which was +generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +am__api_version='1.13' + +ac_aux_dir= +for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='r2bib' + VERSION='2015.12.07' + + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> +# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + + + + + + +ac_config_headers="$ac_config_headers config.h" + + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +$as_echo "$CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 +$as_echo "$ac_ct_CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CXX" && break +done + + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi +fi + + fi +fi +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5 +$as_echo_n "checking whether the C++ compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C++ compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5 +$as_echo_n "checking for C++ compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdio.h> +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C++ compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 +$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } +if ${ac_cv_cxx_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 +$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GXX=yes +else + GXX= +fi +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 +$as_echo_n "checking whether $CXX accepts -g... " >&6; } +if ${ac_cv_prog_cxx_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +else + CXXFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + +else + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 +$as_echo "$ac_cv_prog_cxx_g" >&6; } +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + + +depcc="$CXX" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CXX_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CXX_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CXX_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdarg.h> +#include <stdio.h> +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +# AC_PROG_CPP + + +for ac_prog in flex lex +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LEX"; then + ac_cv_prog_LEX="$LEX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LEX="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LEX=$ac_cv_prog_LEX +if test -n "$LEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5 +$as_echo "$LEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$LEX" && break +done +test -n "$LEX" || LEX=":" + +if test "x$LEX" != "x:"; then + cat >conftest.l <<_ACEOF +%% +a { ECHO; } +b { REJECT; } +c { yymore (); } +d { yyless (1); } +e { /* IRIX 6.5 flex 2.5.4 underquotes its yyless argument. */ + yyless ((input () != 0)); } +f { unput (yytext[0]); } +. { BEGIN INITIAL; } +%% +#ifdef YYTEXT_POINTER +extern char *yytext; +#endif +int +main (void) +{ + return ! yylex () + ! yywrap (); +} +_ACEOF +{ { ac_try="$LEX conftest.l" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$LEX conftest.l") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5 +$as_echo_n "checking lex output file root... " >&6; } +if ${ac_cv_prog_lex_root+:} false; then : + $as_echo_n "(cached) " >&6 +else + +if test -f lex.yy.c; then + ac_cv_prog_lex_root=lex.yy +elif test -f lexyy.c; then + ac_cv_prog_lex_root=lexyy +else + as_fn_error $? "cannot find output from $LEX; giving up" "$LINENO" 5 +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5 +$as_echo "$ac_cv_prog_lex_root" >&6; } +LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root + +if test -z "${LEXLIB+set}"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5 +$as_echo_n "checking lex library... " >&6; } +if ${ac_cv_lib_lex+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ac_save_LIBS=$LIBS + ac_cv_lib_lex='none needed' + for ac_lib in '' -lfl -ll; do + LIBS="$ac_lib $ac_save_LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +`cat $LEX_OUTPUT_ROOT.c` +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_lex=$ac_lib +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + test "$ac_cv_lib_lex" != 'none needed' && break + done + LIBS=$ac_save_LIBS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5 +$as_echo "$ac_cv_lib_lex" >&6; } + test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5 +$as_echo_n "checking whether yytext is a pointer... " >&6; } +if ${ac_cv_prog_lex_yytext_pointer+:} false; then : + $as_echo_n "(cached) " >&6 +else + # POSIX says lex can declare yytext either as a pointer or an array; the +# default is implementation-dependent. Figure out which it is, since +# not all implementations provide the %pointer and %array declarations. +ac_cv_prog_lex_yytext_pointer=no +ac_save_LIBS=$LIBS +LIBS="$LEXLIB $ac_save_LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #define YYTEXT_POINTER 1 +`cat $LEX_OUTPUT_ROOT.c` +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_prog_lex_yytext_pointer=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_save_LIBS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5 +$as_echo "$ac_cv_prog_lex_yytext_pointer" >&6; } +if test $ac_cv_prog_lex_yytext_pointer = yes; then + +$as_echo "#define YYTEXT_POINTER 1" >>confdefs.h + +fi +rm -f conftest.l $LEX_OUTPUT_ROOT.c + +fi +if test "$LEX" = :; then + LEX=${am_missing_run}flex +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + # <limits.h> exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <ac_nonexistent.h> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + # <limits.h> exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <ac_nonexistent.h> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdlib.h> +#include <stdarg.h> +#include <string.h> +#include <float.h> + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <string.h> + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdlib.h> + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <ctype.h> +#include <stdlib.h> +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in stdlib.h ctype.h stdio.h unistd.h time.h string.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +ac_config_files="$ac_config_files Makefile" + + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by r2bib $as_me 2015.12.07, which was +generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to <mathar@mpia.de>. +r2bib home page: <http://www.ctan.org/tex-archive/biblio/bibtex/utils/r2bib/>." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +r2bib config.status 2015.12.07 +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2012 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' <conf$$subs.awk | sed ' +/^[^""]/{ + N + s/\n// +} +' >>$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' <confdefs.h | sed ' +s/'"$ac_delim"'/"\\\ +"/g' >>$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + diff --git a/biblio/bibtex/utils/r2bib/configure.ac b/biblio/bibtex/utils/r2bib/configure.ac new file mode 100644 index 0000000000..84e5a8cb89 --- /dev/null +++ b/biblio/bibtex/utils/r2bib/configure.ac @@ -0,0 +1,24 @@ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +# $Header:$ + +AC_PREREQ([2.68]) +AC_INIT([r2bib], [2015.12.07], [mathar@mpia.de],[r2bib],[http://www.ctan.org/tex-archive/biblio/bibtex/utils/r2bib/]) +AC_CONFIG_SRCDIR([r2bib.c]) +AM_INIT_AUTOMAKE([no-define foreign subdir-objects]) +AC_CONFIG_HEADERS([config.h]) + +AC_PROG_CXX + +AC_PROG_CC +# AC_PROG_CPP +AC_PROG_INSTALL +AM_PROG_LEX + +AC_CHECK_HEADERS([stdlib.h ctype.h stdio.h unistd.h time.h string.h]) + +AC_CONFIG_FILES([Makefile]) + +AC_OUTPUT + diff --git a/biblio/bibtex/utils/r2bib/depcomp b/biblio/bibtex/utils/r2bib/depcomp new file mode 100755 index 0000000000..4ebd5b3a2f --- /dev/null +++ b/biblio/bibtex/utils/r2bib/depcomp @@ -0,0 +1,791 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2013-05-30.07; # UTC + +# Copyright (C) 1999-2013 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by 'PROGRAMS ARGS'. + object Object file output by 'PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputting dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to <bug-automake@gnu.org>. +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +# Get the directory component of the given path, and save it in the +# global variables '$dir'. Note that this directory component will +# be either empty or ending with a '/' character. This is deliberate. +set_dir_from () +{ + case $1 in + */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; + *) dir=;; + esac +} + +# Get the suffix-stripped basename of the given path, and save it the +# global variable '$base'. +set_base_from () +{ + base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` +} + +# If no dependency file was actually created by the compiler invocation, +# we still have to create a dummy depfile, to avoid errors with the +# Makefile "include basename.Plo" scheme. +make_dummy_depfile () +{ + echo "#dummy" > "$depfile" +} + +# Factor out some common post-processing of the generated depfile. +# Requires the auxiliary global variable '$tmpdepfile' to be set. +aix_post_process_depfile () +{ + # If the compiler actually managed to produce a dependency file, + # post-process it. + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependency.h'. + # Do two passes, one to just change these to + # $object: dependency.h + # and one to simply output + # dependency.h: + # which is needed to avoid the deleted-header problem. + { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" + sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" + } > "$depfile" + rm -f "$tmpdepfile" + else + make_dummy_depfile + fi +} + +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' +# Character ranges might be problematic outside the C locale. +# These definitions help. +upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ +lower=abcdefghijklmnopqrstuvwxyz +digits=0123456789 +alpha=${upper}${lower} + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Avoid interferences from the environment. +gccflag= dashmflag= + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp +fi + +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + +if test "$depmode" = xlc; then + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. + gccflag=-qmakedep=gcc,-MF + depmode=gcc +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The second -e expression handles DOS-style file names with drive + # letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the "deleted header file" problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. +## Some versions of gcc put a space before the ':'. On the theory +## that the space means something, we add a space to the output as +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like '#:fec' to the end of the + # dependency line. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ + | tr "$nl" ' ' >> "$depfile" + echo >> "$depfile" + # The second pass generates a dummy entry for each header file. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" + ;; + +xlc) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts '$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + aix_post_process_depfile + ;; + +tcc) + # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 + # FIXME: That version still under development at the moment of writing. + # Make that this statement remains true also for stable, released + # versions. + # It will wrap lines (doesn't matter whether long or short) with a + # trailing '\', as in: + # + # foo.o : \ + # foo.c \ + # foo.h \ + # + # It will put a trailing '\' even on the last line, and will use leading + # spaces rather than leading tabs (at least since its commit 0394caf7 + # "Emit spaces for -MD"). + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. + # We have to change lines of the first kind to '$object: \'. + sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" + # And for each line of the second kind, we have to emit a 'dep.h:' + # dummy dependency, to avoid the deleted-header problem. + sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" + rm -f "$tmpdepfile" + ;; + +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using '\' : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + set_dir_from "$object" + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + set_base_from "$source" + tmpdepfile=$base.d + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir=$base.d-lock + trap " + echo '$0: caught signal, cleaning up...' >&2 + rmdir '$lockdir' + exit 1 + " 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0; do + # mkdir is a portable test-and-set. + if mkdir "$lockdir" 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rmdir "$lockdir" + break + else + # If the lock is being held by a different process, wait + # until the winning process is done or we timeout. + while test -d "$lockdir" && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi + + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" + # Add 'dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + set_dir_from "$object" + set_base_from "$object" + + if test "$libtool" = yes; then + # Libtool generates 2 separate objects for the 2 libraries. These + # two compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir$base.o.d # libtool 1.5 + tmpdepfile2=$dir.libs/$base.o.d # Likewise. + tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + # Same post-processing that is required for AIX mode. + aix_post_process_depfile + ;; + +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/'"$tab"'\1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/'"$tab"'/ + G + p +}' >> "$depfile" + echo >> "$depfile" # make sure the fragment doesn't end with a backslash + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for ':' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. + "$@" $dashmflag | + sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this sed invocation + # correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process the last invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed '1,2d' "$tmpdepfile" \ + | tr ' ' "$nl" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E \ + | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + | sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/biblio/bibtex/utils/r2bib/dosToTex.1 b/biblio/bibtex/utils/r2bib/dosToTex.1 new file mode 100644 index 0000000000..3863557f8a --- /dev/null +++ b/biblio/bibtex/utils/r2bib/dosToTex.1 @@ -0,0 +1,54 @@ +.TH "dosToTex" 1 "Mon Dec 7 2015" "Version 2015-12-07" "r2bib" \" -*- nroff -*- +.ad l +.nh +.SH NAME +dosToTex \- convert an 8bit input stream to TeX coding +.PP +.SH "\&.SH SYNOPSIS " +.PP +.PP +dosToTex [-1 | -u] +.PP +dosToTex [-h] +.PP +.SH "OPTIONS " +.PP +.PP +-1 interpret input as cp1252 (Windows) encoding +.PP +-u interpret input as US ASCII encoding +.PP +-h print a usage summary and exit +.PP +.SH "DESCRIPTION " +.PP +.PP +\fIdosToTex\fP reads the standard input and converts some 8bit bytes to the TeX (LaTeX) equivalent sequences on standard output\&. If neither the option -1 nor the option -u is used, the encoding in the input sequence is supposed to follow the ANSI standard as described in the EndNote 8 reference manuals\&. +.PP +.SH "CAUTION " +.PP +.PP +\fIdosToTex\fP should not be used in conjunction with EndNote X2 or later, since the encoding standard has become Unicode, which is not supported by \fIdosToTex\fP\&. With respect to EndNote, the program is now superfluous\&. +.PP +.SH "EXAMPLES " +.PP +.PP +dosToTex -h +.PP +dosToTex < dosinfile\&.asc > outfile\&.tex +.PP +dosToTex -1 < windowsf\&.txt > outfile\&.tex +.PP +dos2unix < windowsf\&.txt | dosToTex -1 > outfile\&.tex +.PP +cat windowsf1\&.txt windosf2\&.txt windosf3\&.txt | dosToTex > outfile\&.tex +.PP +.SH "SEE ALSO " +.PP +.PP +dos2unix(1) dos2tex(1) recode(1) +.PP +.SH "AUTHOR " +.PP +.PP +Richard J\&. Mathar, http://www.mpia.de/~mathar diff --git a/biblio/bibtex/utils/r2bib/dosToTex.c b/biblio/bibtex/utils/r2bib/dosToTex.c new file mode 100644 index 0000000000..ff20068709 --- /dev/null +++ b/biblio/bibtex/utils/r2bib/dosToTex.c @@ -0,0 +1,463 @@ +/****************************************** +dosToTex - converts 8bit encodings to (La)TeX + multibyte escape sequences. + +usage: + +dosToTex [ -1 | -u ] < inputfile.dos > outputfile.tex +dosToTex -h + +Switches: +-1 : assume that the input file has been encoded in the cp1252 + (Windows) character set +-u : assume that the input file has been encoded in the "US ASCII" + (EndNote terminology) character set +-h : print a help line +neither -1 nor -u: assume that the input file has been encoded in + the ANSI (EndNote terminology) character set + +Note that it does NOT convert line feeds etc as does dos2unix; therefore +piping in addition through dos2unix may be useful: + +dosToTex [ -1 | -u ] < inputfile.dos | dos2unix > outputfile.tex +dosToTex [ -1 | -u ] < inputfile.dos | sed 's/\r//' > outputfile.tex + +As a more versatile alternative, one might combine the converter 'recode' with +the use of + \usepackage{latin1}[inputenc] +in the LaTeX source: http://recode.progiciels-bpi.ca/ + http://directory.fsf.org/recode.html + +See also + http://www.cs.uu.nl/wais/html/na-dir/internationalization/font-faq.html + http://wwwvms.mppmu.mpg.de/FAQ/iso-charset.faq + http://budling.nytud.hu/~szigetva/etcetera/Hungarian/converters/dos2tex + http://www.ctan.org/tex-archive/support/xtexshell/tfc.cc + http://billposer.org/Software/uni2ascii.html + +Richard J. Mathar, http://www.mpia.de/~mathar +Dec 07, 2015 +*****************************************/ +#include "config.h" + +#ifdef HAVE_STDLIB_H +#include <stdlib.h> +#endif + +#ifdef HAVE_STDIO_H +#include <stdio.h> +#endif + +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif + +void usage(char *argv0) +{ + printf("usage: %s ; # decode EndNote\n",argv0) ; + printf("\t %s -1 ; # decode the CP1252 Windows character set\n",argv0) ; + printf("\t %s -u ; # decode US ASCII\n",argv0) ; + printf("\t %s -h ; # help: print these usage lines here\n",argv0) ; + printf("Reads from the standard input, writes to the standard output.\n") ; +} + +int main(int argc, char *argv[]) +{ + int c ; + char oc ; + int useendnote = 1 , /* according to page 108 of the EndNote 7 Manual, default */ + useUs = 0 , /* US ASCII according to the table on p 109 of the EndNote 7 manual */ + usecpc1252 = 0 ; /* according to http://czyborra.com/charsets/cp1252.gif */ + while ( (oc=getopt(argc,argv,"1hu")) != -1 ) + { + switch(oc) + { + case '1' : + usecpc1252 = 1 ; + useendnote = 0 ; + break ; + case 'u' : + useUs = 1 ; + useendnote = 0 ; + break ; + case 'h' : + usage(argv[0]) ; + return 0 ; + case '?' : + fprintf(stderr,"Invalid command line option %c\n",oc) ; + usage(argv[0]) ; + break ; + } + } + + /* start at 0x80, end at 0xff, according to http://czyborra.com/charsets/cp1252.gif */ + char *cpc1252[] = { + NULL, + NULL, + ",", + "$f$", + "``", + "$\\ldots$", + "\\dag ", + "\\ddag ", + "\\symbol{94}", + NULL, + "\\v{S}", + "<", + "{\\OE}", + NULL, + "\\v{Z}", + NULL, + NULL, + "'", + "'", + "``", + "''", + NULL, + "-", + "--", + "\\symbol{126}", + NULL, + "\\v{s}", + ">", + "{\\oe}", + NULL, + "\\v{z}", + "{\\\"Y}", + NULL, + "!'", + NULL, + "\\pounds ", + NULL, + NULL, + "$\\mid$", + "\\S ", + "\\symbol{127}", + "\\copyright ", + NULL, + "$\\ll$", + "$\\neg$", + NULL, + NULL, + "\\symbol{22}", + "$^0$", + "$\\pm$", + "$^2$", + "$^3$", + "'", + "$\\mu$", + "\\P ", + "$\\cdot$", + NULL, + "$^1$", + NULL, + "$\\gg$", + "1/4", + "1/2", + "3/4", + "?'", + "\\`A" , + "\\'A" , + "\\^A" , + "\\~A" , + "{\\\"A}" , + "{\\AA}" , + "{\\AE}" , + "\\c{C}" , + "\\`E" , + "\\'E" , + "\\^E" , + "{\\\"E}" , + "\\`I" , + "\\'I" , + "\\^I" , + "{\\\"I}" , + NULL, + "\\~N" , + "\\`O" , + "\\'O" , + "\\^O" , + "\\~O" , + "{\\\"O}" , + "$\\times$" , + "{\\O}" , + "\\`U" , + "\\'U" , + "\\^U" , + "{\\\"U}" , + "\\'Y" , + NULL, + "\\ss " , + "\\`a" , + "\\'a" , + "\\^a" , + "\\~a" , + "{\\\"a}" , + "{\\aa}" , + "{\\ae}" , + "\\c{c}" , + "\\`e" , + "\\'e" , + "\\^e" , + "{\\\"e}" , + "\\`{\\i}" , + "\\'{\\i}" , + "\\^{\\i}" , + "{\\\"{\\i}}" , + NULL, + "\\~n" , + "\\`o" , + "\\'o" , + "\\^o" , + "\\~o" , + "\\\"o" , + "$\\div$" , + "{\\o}" , + "\\`u" , + "\\'u" , + "\\^u" , + "{\\\"u}" , + "\\'y" , + NULL, + "{\\\"y}" + } ; + /* starts at 129, ends at 255, according to page 108 of the EndNote 7 Manual */ + char *endn[] = { + "\\_", + NULL, + NULL, + NULL, + "$\\ldots$", + "\\dag ", + "\\ddag ", + "\\symbol{94}", + NULL, + NULL, + NULL, + "{\\OE}", + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + "``", + "''", + NULL, + NULL, + "--", + "\\symbol{126}", + NULL, + NULL, + NULL, + "{\\oe}", + NULL, + NULL, + "{\\\"Y}", + NULL, + "!`", + NULL, + "\\pounds ", + NULL, + NULL, + "$\\mid$", + "\\S ", + "\\symbol{127}", + "\\copyright ", + NULL, + "$\\ll$", + "$\\neg$", + NULL, + NULL, + "\\symbol{22}", + "\\symbol{23}", + "$\\pm$", + "$^2$", + NULL, + "'", + "$\\mu$", + "\\P ", + "$\\cdot$", + NULL, + "$^1$", + "$^0$", + "$\\gg$", + "1/4","1/2","3/4", + "?`", + "\\`A", + "\\'A", + "\\^A", + "\\~A", + "{\\\"A}", + "{\\AA}", + "{\\AE}", + "\\c{C}", + "\\`E", + "\\'E", + "\\^E", + "{\\\"E}", + "\\`I", + "\\'I", + "\\^I", + "{\\\"I}", + NULL, + "\\~N", + "\\`O", + "\\'O", + "\\^O", + "\\~O", + "{\\\"O}", + "$\\times$", + "{\\O}", + "\\`U", + "\\'U", + "\\^U", + "{\\\"U}", + "\\'Y", + NULL, + "\\ss ", + "\\`a", + "\\'a", + "\\^a", + "\\~a", + "{\\\"a}", + "{\\aa}", + "{\\ae}", + "\\c{c}", + "\\`e", + "\\'e", + "\\^e", + "{\\\"e}", + "\\`{\\i}", + "\\'{\\i}", + "\\^{\\i}", + "{\\\"{\\i}}", + NULL, + "\\~n", + "\\`o", + "\\'o", + "\\^o", + "\\~o", + "{\\\"o}", + "$\\div$", + "{\\o}", + "\\`u", + "\\'u", + "\\^u", + "{\\\"u}", + "\\'y", + NULL, + "{\\\"y}" + } ; + /* starts at 128, ends at 165 */ + char *usasc[] = { + "\\c{C}", + "{\\\"u}", + "\\'e", + "\\^a", + "{\\\"a}", + "\\`a", + "{\\aa}", + "\\c{c}", + "\\^e", + "{\\\"e}", + "\\`e", + "{\\\"{\\i}}", + "\\^{\\i}", + "\\`{\\i}", + "{\\\"A}", + "{\\AA}", + "\\'E", + "{\\ae}", + "{\\AE}", + "\\^o", + "{\\\"o}", + "\\`o", + "\\^u", + "\\`u", + "{\\\"y}", + "{\\\"O}", + "{\\\"U}", + NULL, + "\\pounds ",NULL, + "P", + "$f$", + "\\'a", + "\\'{\\i}", + "\\'o", + "\\'u", + "\\~n", + "\\~N",NULL,NULL, + "?'", + "\\_", + "$\\neg$", + "1/2", + "1/4", + "!'", + "$\\ll$", + "$\\gg$" + /* + case 225 : + "\\ss ", + case 246 : + "$\\div$", + */ + } ; + + if ( usecpc1252) + { + while( (c=getchar()) != EOF) + { + if( c >= 0x80 && c <= 0xff) /* in the table ? */ + if ( cpc1252[c-0x80] ) + printf("%s",cpc1252[c-0x80]) ; + else + putchar(c) ; + else + putchar(c) ; + } + } + else if ( useendnote) + { + while( (c=getchar()) != EOF) + { + if( c >= 128 && c <= 255) /* in the table ? */ + { + if ( endn[c-128] ) + printf("%s",endn[c-128]) ; + else + putchar(c) ; + } + else + putchar(c) ; + } + } + else if ( useUs) + { + while( (c=getchar()) != EOF) + { + if( c >= 128 && c <= 175) /* in the table ? */ + if ( usasc[c-128] ) + printf("%s",usasc[c-128]) ; + else + putchar(c) ; + else if ( c == 179) + printf("$^3$") ; + else if ( c == 225) + printf("\\ss ") ; + else if ( c == 227) + printf("\\P ") ; + else if ( c == 230) + printf("$\\mu$") ; + else if ( c == 241) + printf("$\\pm$") ; + else if ( c == 246) + printf("$\\div$") ; + else if ( c == 253) + printf("$^2$") ; + else + putchar(c) ; + } + } + return 0 ; +} diff --git a/biblio/bibtex/utils/r2bib/install-sh b/biblio/bibtex/utils/r2bib/install-sh new file mode 100755 index 0000000000..377bb8687f --- /dev/null +++ b/biblio/bibtex/utils/r2bib/install-sh @@ -0,0 +1,527 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2011-11-20.07; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# 'make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +nl=' +' +IFS=" "" $nl" + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit=${DOITPROG-} +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +no_target_directory= + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) no_target_directory=true;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call 'install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names problematic for 'test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + dst=$dst_arg + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test -n "$no_target_directory"; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; + esac + + eval "$initialize_posix_glob" + + oIFS=$IFS + IFS=/ + $posix_glob set -f + set fnord $dstdir + shift + $posix_glob set +f + IFS=$oIFS + + prefixes= + + for d + do + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + + eval "$initialize_posix_glob" && + $posix_glob set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + $posix_glob set +f && + + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/biblio/bibtex/utils/r2bib/missing b/biblio/bibtex/utils/r2bib/missing new file mode 100755 index 0000000000..cdea514931 --- /dev/null +++ b/biblio/bibtex/utils/r2bib/missing @@ -0,0 +1,215 @@ +#! /bin/sh +# Common wrapper for a few potentially missing GNU programs. + +scriptversion=2012-06-26.16; # UTC + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try '$0 --help' for more information" + exit 1 +fi + +case $1 in + + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; + + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + +Supported PROGRAM values: + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man + +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. + +Send bug reports to <bug-automake@gnu.org>." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" + exit 1 + ;; + +esac + +# Run the given program, remember its exit status. +"$@"; st=$? + +# If it succeeded, we are done. +test $st -eq 0 && exit 0 + +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi + +perl_URL=http://www.perl.org/ +flex_URL=http://flex.sourceforge.net/ +gnu_software_URL=http://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'automa4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/biblio/bibtex/utils/r2bib/r2bib.1 b/biblio/bibtex/utils/r2bib/r2bib.1 new file mode 100644 index 0000000000..233d6f516a --- /dev/null +++ b/biblio/bibtex/utils/r2bib/r2bib.1 @@ -0,0 +1,49 @@ +.TH "r2bib" 1 "Mon Dec 7 2015" "Version 2015-12-07" "r2bib" \" -*- nroff -*- +.ad l +.nh +.SH NAME +r2bib \- +.IP "\(bu" 2 +convert refer input to BibTex \&.bib files +.PP +.PP +.SH "SYNOPSIS " +.PP +.PP +\fIr2bib\fP \fIfile\fP \&.\&.\&. +.PP +.SH "DESCRIPTION " +.PP +.PP +\fIr2bib\fP reads the \fIfiles\fP and produces a \fIbibtex\fP reference list (a \&.bib file) on the standard output\&. If no files are given, r2bib reads standard input\&. +.PP +Since \fIrefer\fP files are inherently unstructured (compared to \fIbibtex\fP ) \fIr2bib\fP only does a passable job\&. In particular \fIrefer\fP doesn't require a keyword, while \fIbibtex\fP does\&. The heuristic that \fIr2bib\fP uses for cooking up a keyword, in order of precedence, is: +.PP +.IP "\(bu" 2 +Use the keyword entry (%K) if it's only one word\&. +.IP "\(bu" 2 +Use the label entry (%L) if it's only one word\&. +.IP "\(bu" 2 +Otherwise just use the string 'keyN' where N is the count of this bibliographic entry in the refer file(s)\&. +.PP +.PP +To determine the type of reference that the \fIrefer\fP entry is, \fIr2bib\fP has to do some 'calculated guessing'\&. The heuristic used here (again, in order of precedence) is: +.PP +.IP "\(bu" 2 +If it has a journal entry (%J) then it's considered to be an @article\&. +.IP "\(bu" 2 +If it has a report entry (%R) then it's considered to be a @techreport\&. +.IP "\(bu" 2 +If it has a issuer entry (%I) then it's considered to be a @book\&. +.IP "\(bu" 2 +Otherwise it's considered to be a @misc\&. +.PP +.PP +Quite often \fIr2bib\fP will misguess and you will need to edit (by hand) the resulting \&.bib file\&. +.PP +Any fields that \fIr2bib\fP doesn't know about it will ignore (and complain about on stderr)\&. +.PP +.SH "AUTHOR " +.PP +.PP +Rusty Wright, Center For Music Experiment, University of California San Diego\&. diff --git a/biblio/bibtex/utils/r2bib/r2bib.c b/biblio/bibtex/utils/r2bib/r2bib.c new file mode 100644 index 0000000000..b577c75402 --- /dev/null +++ b/biblio/bibtex/utils/r2bib/r2bib.c @@ -0,0 +1,334 @@ +/* http://www.ctan.org/tex-archive/biblio/bibtex/utils/r2bib/ */ +# include <ctype.h> +# include <stdio.h> +# include <stdlib.h> +# include <string.h> + +struct rb { + char rb_kl; /* refer key letter */ + char * rb_kw; /* bibtex string */ + char rb_emit; /* don't print data if 0 */ + char * rb_data; /* refer data */ +}; + +struct rb rb[] = { + { 'A', "author", 1, NULL }, + { 'B', "booktitle", 1, NULL }, + { 'C', "address", 1, NULL }, + { 'D', "year", 1, NULL }, /* mismatch */ + { 'E', "editor", 1, NULL }, +/* { 'H', "commentary1", 1, NULL },*/ + { 'I', "publisher", 1, NULL }, + { 'J', "journal", 1, NULL }, + { 'K', "note", 1, NULL }, /* mismatch */ + { 'L', "label", 0, NULL }, /* use as bibtex key */ + { 'N', "number", 1, NULL }, +/* { 'O', "commentary2", 1, NULL },*/ + { 'P', "pages", 1, NULL }, + { 'Q', "institution", 1, NULL }, + { 'R', "report", 0, NULL }, + { 'S', "series", 1, NULL }, + { 'T', "title", 1, NULL }, + { 'V', "volume", 1, NULL }, +/* { 'X', "abstract", 1, NULL },*/ + { 0, 0, 0, 0 } +}; + +struct bmap { + char bm_kl; + char *bm_entry; +}; + +/* + * entries are in order of precedence. + * any entry with a 'J' field must be + * an article, but anthing with an 'I' + * field doesn't have to be a book (if + * an entry has both 'J' and 'I' it is + * considered to be an article). + */ +struct bmap bmap[] = { + { 'J', "article" }, + { 'R', "techreport" }, + { 'I', "book" }, + { 0, 0 } +}; + +void dumprb() { + register struct rb *trb; + register struct bmap *bm; + static int key; + char *bibkey; + char *cp; + int first; + + /* + * first, figure out what type of entry this + * is. + */ + for (bm = &bmap[0]; bm->bm_kl != 0; bm++) { + for (trb = &rb[0]; trb->rb_kl != 0; trb++) { + if ((trb->rb_kl == bm->bm_kl) && (trb->rb_data != NULL)) { + printf("@%s{", bm->bm_entry); + goto out; + } + } + } +out: + if (bm->bm_kl == 0) + printf("@misc{"); + + /* + * in order of precedence; how to determine the + * bibtex key: + * 1. use keyword (%K) if only one word. + * 2. use refer label (%L). + * 3. otherwise just use the string "keyN" where N + * is the count of this bibliographic entry in + * the refer file. + */ + key++; + for (trb = &rb[0]; trb->rb_kl != 0; trb++) { + if ((trb->rb_kl == 'K') && (trb->rb_data != NULL)) { + for (cp = trb->rb_data; *cp ; cp++) { + if (isspace(*cp)) + break; + } + + /* ran to end of string? */ + if (*cp == 0) { + printf("%s,\n", trb->rb_data); + + /* if used here then free & zero it */ + (void) free(trb->rb_data); + trb->rb_data = NULL; + break; + } + } + + if ((trb->rb_kl == 'L') && (trb->rb_data != NULL)) { + for (cp = trb->rb_data; *cp ; cp++) { + if (isspace(*cp)) + break; + } + + /* ran to end of string? */ + if (*cp == 0) { + printf("%s,\n", trb->rb_data); + break; + } + } + } + + /* nothing reasonable to use, punt */ + if (trb->rb_kl == 0) + printf("key%d,\n", key); + + first = 1; + + for (trb = &rb[0]; trb->rb_kl != 0; trb++) { + if (trb->rb_data == NULL) + continue; + + if (trb->rb_emit != 0) { + /* + * clank, + * this is so that things will line up. + */ + if (strlen(trb->rb_kw) < 6) + cp = "\t\t"; + else + cp = "\t"; + + if (! first) + printf(",\n"); + + printf("\t%s =%s\"%s\"", trb->rb_kw, cp, trb->rb_data); + first = 0; + } + + (void) free(trb->rb_data); + trb->rb_data = NULL; + } + + printf("\n}\n\n"); +} + +void stuffrb(struct rb *lrb, char *cp) +{ + extern char *andfix(); + extern char *sanz(); + + /* empty data field */ + if ((cp = sanz(cp)) == NULL) + return; + + if (lrb->rb_kl == 'A') + cp = andfix(cp); + + if (lrb->rb_data == NULL) { + if ((lrb->rb_data = malloc(strlen(cp) + 1)) == NULL) { + perror("malloc"); + exit(1); + } + + strcpy(lrb->rb_data, cp); + } + else { + char *conj; + + if (lrb->rb_kl == 'A') + conj = " and "; + else + conj = " "; + + if ((lrb->rb_data = realloc(lrb->rb_data, strlen(lrb->rb_data) + strlen(cp) + strlen(conj) + 1)) == NULL) { + perror("realloc"); + exit(1); + } + + strcat(lrb->rb_data, conj); + strcat(lrb->rb_data, cp); + } +} + +int r2bib(char * file, FILE * fid) +{ + extern char *sanz(); + register char *cp; + struct rb *lrb; /* last rb stored into */ + int line; + char buf[BUFSIZ]; + int err; + + lrb = NULL; + err = 0; + line = 0; + + while (fgets(buf, sizeof(buf), fid) != NULL) { + line++; + + if ((cp = sanz(buf)) == NULL) { + if (lrb != NULL) { + dumprb(); + lrb = NULL; + } + continue; + } + + /* + * if the first letter is a % then it's the + * a new record, otherwise it's a continuation + * of the previous one. + */ + if (cp[0] == '%') { + for (lrb = &rb[0]; lrb->rb_kl != 0; lrb++) { + if (lrb->rb_kl == cp[1]) { + stuffrb(lrb, &cp[2]); + break; + } + } + if (lrb->rb_kl == 0) { + fprintf(stderr, "r2b: %s: line %d: unknown key letter %c, ignoring\n", file, line, cp[1]); + err = 1; + } + } + else { + if (lrb == NULL) { + fprintf(stderr, "r2b: %s: line %d: bad format, ignoring\n", file, line); + err = 1; + continue; + } + + stuffrb(lrb, &cp[0]); + } + } + + if (lrb != NULL) + dumprb(); + + return(err); +} + +int main(int argc, char *argv[]) +{ + register FILE *fid; + register int i; + int err; + + err = 0; + + if (argc > 1) { + for (i = 1; i < argc; i++) { + if ((fid = fopen(argv[i], "r")) == NULL) { + fprintf(stderr, "fopen: "); + perror(argv[i]); + continue; + } + err += r2bib(argv[i], fid); + } + } + else + err += r2bib("stdin", stdin); + + if (err) + exit(1); + + exit(0); +} + +/* + */ +char * andfix(char *string) +{ + register char *tmp; + register char *cp; + + tmp = string; + + for (cp = string; *cp ; cp++) { + if (strncmp(cp, " and ", 5) == 0) { + /* + * +2 for the curly braces around "{and}", + * +1 for the null at the end. + */ + if ((tmp = malloc(strlen(string) + 2 + 1)) == NULL) { + perror("malloc"); + exit(1); + } + + strncpy(tmp, string, cp - string); + tmp[cp - string] = 0; /* strncpy doesn't */ + strcat(tmp, " {and} "); + strcat(tmp, cp + 5); + } + } + + return(tmp); +} + +char * sanz(char *bp) +{ + register char *cp; + + cp = &bp[strlen(bp) - 1]; + + /* + * back up over any spaces chars + */ + while (isspace(*cp) && (cp >= bp)) + cp--; + + if (cp < bp) + return(NULL); /* empty line */ + + *++cp = 0; + + while (isspace(*bp) && (bp < cp)) + bp++; + + if (cp == bp) + return(NULL); /* empty line */ + + return(bp); +} diff --git a/biblio/bibtex/utils/r2bib/risDateAdj.cc b/biblio/bibtex/utils/r2bib/risDateAdj.cc new file mode 100644 index 0000000000..d21207b46f --- /dev/null +++ b/biblio/bibtex/utils/r2bib/risDateAdj.cc @@ -0,0 +1,1960 @@ + +#line 3 "risDateAdj.cc" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 37 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include <stdio.h> +#include <string.h> +#include <errno.h> +#include <stdlib.h> + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include <inttypes.h> +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! C99 */ + +#endif /* ! FLEXINT_H */ + +#ifdef __cplusplus + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +/* C99 requires __STDC__ to be defined as 1. */ +#if defined (__STDC__) + +#define YY_USE_CONST + +#endif /* defined (__STDC__) */ +#endif /* ! __cplusplus */ + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + +/* Returned upon end-of-file. */ +#define YY_NULL 0 + +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. + */ +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) + +/* Enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN. + */ +#define BEGIN (yy_start) = 1 + 2 * + +/* Translate the current start state into a value that can be later handed + * to BEGIN to return to the state. The YYSTATE alias is for lex + * compatibility. + */ +#define YY_START (((yy_start) - 1) / 2) +#define YYSTATE YY_START + +/* Action number for EOF rule of a given start state. */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + +/* Special action meaning "start processing a new file". */ +#define YY_NEW_FILE yyrestart(yyin ) + +#define YY_END_OF_BUFFER_CHAR 0 + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#define YY_BUF_SIZE 16384 +#endif + +/* The state buf must be large enough to hold one state per character in the main buffer. + */ +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +extern yy_size_t yyleng; + +extern FILE *yyin, *yyout; + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + + #define YY_LESS_LINENO(n) + +/* Return all but the first "n" matched characters back to the input stream. */ +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + *yy_cp = (yy_hold_char); \ + YY_RESTORE_YY_MORE_OFFSET \ + (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + } \ + while ( 0 ) + +#define unput(c) yyunput( c, (yytext_ptr) ) + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + yy_size_t yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + +#define YY_BUFFER_NEW 0 +#define YY_BUFFER_NORMAL 1 + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ +#define YY_BUFFER_EOF_PENDING 2 + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +/* Stack of input buffers. */ +static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ +static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ +static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ + +/* We provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state". + * + * Returns the top of the stack, or NULL. + */ +#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ + ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ + : NULL) + +/* Same as previous macro, but useful when we know that the buffer stack is not + * NULL or when we need an lvalue. For internal use only. + */ +#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] + +/* yy_hold_char holds the character lost when yytext is formed. */ +static char yy_hold_char; +static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ +yy_size_t yyleng; + +/* Points to current character in buffer. */ +static char *yy_c_buf_p = (char *) 0; +static int yy_init = 0; /* whether we need to initialize */ +static int yy_start = 0; /* start state number */ + +/* Flag which is used to allow yywrap()'s to do buffer switches + * instead of setting up a fresh yyin. A bit of a hack ... + */ +static int yy_did_buffer_switch_on_eof; + +void yyrestart (FILE *input_file ); +void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); +void yy_delete_buffer (YY_BUFFER_STATE b ); +void yy_flush_buffer (YY_BUFFER_STATE b ); +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state (void ); + +static void yyensure_buffer_stack (void ); +static void yy_load_buffer_state (void ); +static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); + +#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) + +YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); +YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ); + +void *yyalloc (yy_size_t ); +void *yyrealloc (void *,yy_size_t ); +void yyfree (void * ); + +#define yy_new_buffer yy_create_buffer + +#define yy_set_interactive(is_interactive) \ + { \ + if ( ! YY_CURRENT_BUFFER ){ \ + yyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ + } + +#define yy_set_bol(at_bol) \ + { \ + if ( ! YY_CURRENT_BUFFER ){\ + yyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ + } + +#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) + +/* Begin user sect3 */ + +#define yywrap() 1 +#define YY_SKIP_YYWRAP + +typedef unsigned char YY_CHAR; + +FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; + +typedef int yy_state_type; + +extern int yylineno; + +int yylineno = 1; + +extern char *yytext; +#define yytext_ptr yytext + +static yy_state_type yy_get_previous_state (void ); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); +static int yy_get_next_buffer (void ); +static void yy_fatal_error (yyconst char msg[] ); + +/* Done after the current pattern has been matched and before the + * corresponding action - sets up yytext. + */ +#define YY_DO_BEFORE_ACTION \ + (yytext_ptr) = yy_bp; \ + yyleng = (size_t) (yy_cp - yy_bp); \ + (yy_hold_char) = *yy_cp; \ + *yy_cp = '\0'; \ + (yy_c_buf_p) = yy_cp; + +#define YY_NUM_RULES 5 +#define YY_END_OF_BUFFER 6 +/* This struct is not used in this scanner, + but its presence is necessary. */ +struct yy_trans_info + { + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +static yyconst flex_int16_t yy_accept[63] = + { 0, + 0, 0, 6, 5, 5, 5, 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, 2, 0, 0, 0, 1, 0, + 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, + 4, 0 + } ; + +static yyconst flex_int32_t yy_ec[256] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 6, 1, 7, 8, 9, 10, + 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, + 1, 1, 1, 1, 11, 1, 1, 12, 1, 13, + 1, 1, 1, 14, 1, 1, 15, 16, 17, 18, + 1, 1, 19, 1, 1, 1, 1, 1, 20, 1, + 1, 1, 1, 1, 1, 1, 21, 22, 23, 1, + + 24, 1, 25, 1, 1, 1, 1, 26, 1, 27, + 28, 29, 1, 30, 1, 31, 32, 33, 1, 1, + 34, 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, 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, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 + } ; + +static yyconst flex_int32_t yy_meta[35] = + { 0, + 1, 1, 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, 1, 1, 1, + 1, 1, 1, 1 + } ; + +static yyconst flex_int16_t yy_base[66] = + { 0, + 0, 1, 111, 112, 90, 0, 104, 103, 102, 101, + 100, 99, 97, 96, 95, 95, 94, 93, 14, 3, + 3, 73, 72, 13, 74, 66, 70, 68, 6, 61, + 65, 66, 66, 60, 10, 8, 53, 35, 36, 31, + 0, 44, 41, 0, 112, 40, 44, 47, 112, 50, + 59, 11, 68, 112, 5, 72, 70, 73, 0, 4, + 112, 112, 83, 5, 0 + } ; + +static yyconst flex_int16_t yy_def[66] = + { 0, + 63, 63, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 64, 62, 64, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 65, 65, + 62, 0, 62, 62, 62 + } ; + +static yyconst flex_int16_t yy_nxt[147] = + { 0, + 60, 44, 45, 46, 44, 43, 61, 54, 8, 9, + 29, 29, 29, 40, 40, 40, 57, 5, 5, 6, + 6, 20, 20, 20, 21, 22, 23, 24, 25, 26, + 27, 30, 28, 34, 31, 41, 41, 41, 42, 42, + 42, 41, 45, 49, 35, 44, 45, 46, 44, 47, + 48, 50, 50, 50, 51, 51, 51, 52, 52, 52, + 53, 54, 55, 53, 41, 41, 56, 56, 56, 53, + 54, 55, 53, 53, 54, 55, 53, 58, 58, 58, + 59, 59, 59, 4, 4, 41, 41, 41, 41, 41, + 41, 39, 38, 37, 36, 33, 32, 19, 19, 19, + + 18, 17, 16, 15, 14, 13, 12, 11, 10, 7, + 62, 3, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62 + } ; + +static yyconst flex_int16_t yy_chk[147] = + { 0, + 65, 44, 44, 44, 44, 64, 60, 55, 6, 6, + 20, 20, 20, 29, 29, 29, 52, 1, 2, 1, + 2, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 21, 19, 24, 21, 35, 35, 36, 40, 40, + 40, 36, 46, 43, 24, 42, 42, 42, 42, 42, + 42, 47, 47, 47, 48, 48, 48, 50, 50, 50, + 51, 51, 51, 51, 39, 38, 51, 51, 51, 53, + 53, 53, 53, 56, 56, 56, 56, 57, 57, 57, + 58, 58, 58, 63, 63, 37, 34, 33, 32, 31, + 30, 28, 27, 26, 25, 23, 22, 18, 17, 16, + + 15, 14, 13, 12, 11, 10, 9, 8, 7, 5, + 3, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62 + } ; + +static yy_state_type yy_last_accepting_state; +static char *yy_last_accepting_cpos; + +extern int yy_flex_debug; +int yy_flex_debug = 0; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected +#define yymore() yymore_used_but_not_detected +#define YY_MORE_ADJ 0 +#define YY_RESTORE_YY_MORE_OFFSET +char *yytext; +#line 1 "risDateAdj.ll" +/* This is a lex(1) file, see http://dinosaur.compilertools.net/ +* or http://en.wikipedia.org/wiki/Lex_programming_tool . +* +* Compilation on UNIX systems is done by +* make risDateAdj +* On other systems one may need to call lex or flex and cc explicitly: +* lex -8 -o risDateAdj.c risDateAdj.l +* cc [-std=gnu99] [-s] [-O] -o risDateAdj risDateAdj.c -ll +* +* The executable works as a filter and patches the Y1, Y2 and PY fields of RIS +* files (the standard input) from a +* Apr., YYYY +* type produced for example by JSTOR or a +* YYYY-MM-DD +* or a +* YYYY +* or a +* YYYY/DD +* type to the standard defined in http://www.refman.com/support/risformat_intro.asp . +* +* TODO: +* ingentaconnect produces lines PY -- ///January 2009 +* which also fall into the category of faulty but recoverable inputs. +* And this ought also be implemented. +* Richard J. Mathar, 2009-02-11 +*/ +#line 30 "risDateAdj.ll" +#include <strings.h> +#include <sys/types.h> +#include <regex.h> + +#define Y1PATCH_PMAT_SIZ 7 + +regex_t preg1, + preg2 , + preg3 , + preg4 ; +regmatch_t pmat[Y1PATCH_PMAT_SIZ] ; + +/* Fit monam month to integer in the range 1 to 12. +* @return Return a number from 1 to 12 if the month is recognized, 0 if not. +*/ +int name2Month(const char *monam) +{ + static const char *jan2dec[] = {"jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"} ; + for(int i=0; i < 12 ; i++) + if( strncasecmp(monam,jan2dec[i],3) == 0 ) + return i+1 ; + return 0 ; +} + +/* Generate a line YYY/MM/DD/otherinfo line on output. +* @param tagline the original line, including the tag and the <CR></LF> +*/ +void y1patch(const char *yytext) +{ + /* the original tag including the mandatory white space copied thru + */ + fprintf(yyout,"%.6s",yytext) ; + + if( regexec(&preg2,yytext+6,0,0,0) == 0 ) + { + /* The ISO case. Replace dashes by slashes + */ + fprintf(yyout,"%.4s/%.2s/%.2s/ %s",yytext+6,yytext+11,yytext+14,yytext+17) ; + } + else if( regexec(&preg1,yytext+6,Y1PATCH_PMAT_SIZ,pmat,0) == 0 ) + { + /* pmat[0] all, pmat[1] the mont, pmat[2] any intermediate dots and blanks, pmat[3] the year. + */ + int mon = name2Month(yytext+6) ; + int yr = atoi(yytext+6+pmat[3].rm_so) ; + if ( mon ) + fprintf(yyout,"%d/%02d// ",yr,mon) ; + else + fprintf(yyout,"%d/// ",yr) ; + + /* the original pattern plus any <CR><NL> + */ + fprintf(yyout,"%s",yytext+6) ; + } + else if( regexec(&preg3,yytext+6,Y1PATCH_PMAT_SIZ,pmat,0) == 0 ) + { + /* pmat[0] all, pmat[1] the mont, pmat[2] the date, pmat[3] the year. + */ + int mon = name2Month(yytext+6) ; + int dat = atoi(yytext+6+pmat[2].rm_so) ; + int yr = atoi(yytext+6+pmat[3].rm_so) ; + if ( mon ) + fprintf(yyout,"%d/%02d/%02d/ ",yr,mon,dat) ; + else + fprintf(yyout,"%d//%02d/ ",yr,dat) ; + + /* the original pattern plus any <CR><NL> + */ + fprintf(yyout,"%s",yytext+6) ; + } + else if( regexec(&preg4,yytext+6,Y1PATCH_PMAT_SIZ,pmat,0) == 0 ) + { + int yr = atoi(yytext+6) ; + if ( pmat[1].rm_so >=0 ) + { + int mon = atoi(yytext+6+pmat[1].rm_so+1) ; + fprintf(yyout,"%d/%02d//",yr,mon) ; + } + else + fprintf(yyout,"%d///",yr) ; + + /* the original <CR><NL> + */ + fprintf(yyout,"%s",yytext+6+pmat[0].rm_eo) ; + } + else + /* give up and copy through + */ + fprintf(yyout,"%s",yytext+6) ; + +} +#undef Y1PATCH_PMAT_SIZ + +/* the scanner ought be compiled with the "-i" flag to +* trigger also on the various upper/lowercase variants of these patterns +*/ +#line 627 "risDateAdj.cc" + +#define INITIAL 0 + +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#include <unistd.h> +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +static int yy_init_globals (void ); + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int yylex_destroy (void ); + +int yyget_debug (void ); + +void yyset_debug (int debug_flag ); + +YY_EXTRA_TYPE yyget_extra (void ); + +void yyset_extra (YY_EXTRA_TYPE user_defined ); + +FILE *yyget_in (void ); + +void yyset_in (FILE * in_str ); + +FILE *yyget_out (void ); + +void yyset_out (FILE * out_str ); + +yy_size_t yyget_leng (void ); + +char *yyget_text (void ); + +int yyget_lineno (void ); + +void yyset_lineno (int line_number ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int yywrap (void ); +#else +extern int yywrap (void ); +#endif +#endif + + static void yyunput (int c,char *buf_ptr ); + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ); +#endif + +#ifndef YY_NO_INPUT + +#ifdef __cplusplus +static int yyinput (void ); +#else +static int input (void ); +#endif + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 8192 +#endif + +/* Copy whatever the last rule matched to the standard output. */ +#ifndef ECHO +/* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) +#endif + +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#ifndef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ + { \ + int c = '*'; \ + size_t n; \ + for ( n = 0; n < max_size && \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ + buf[n] = (char) c; \ + if ( c == '\n' ) \ + buf[n++] = (char) c; \ + if ( c == EOF && ferror( yyin ) ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + result = n; \ + } \ + else \ + { \ + errno=0; \ + while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + { \ + if( errno != EINTR) \ + { \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + break; \ + } \ + errno=0; \ + clearerr(yyin); \ + } \ + }\ +\ + +#endif + +/* No semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#ifndef yyterminate +#define yyterminate() return YY_NULL +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Report a fatal error. */ +#ifndef YY_FATAL_ERROR +#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) +#endif + +/* end tables serialization structures and prototypes */ + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int yylex (void); + +#define YY_DECL int yylex (void) +#endif /* !YY_DECL */ + +/* Code executed at the beginning of each rule, after yytext and yyleng + * have been set up. + */ +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +/* Code executed at the end of each rule. */ +#ifndef YY_BREAK +#define YY_BREAK break; +#endif + +#define YY_RULE_SETUP \ + YY_USER_ACTION + +/** The main scanner function which does all the work. + */ +YY_DECL +{ + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; + +#line 133 "risDateAdj.ll" + + + /* Lines which look correct are copied trough as they are. + * This means they contain no 3-letter mont acronyms as substrings. + */ + + /* If the tag is immediately followed by one of the TLA (three-letter + * acronyms above), or looks like an ISO date we try conversion. + */ +#line 819 "risDateAdj.cc" + + if ( !(yy_init) ) + { + (yy_init) = 1; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! (yy_start) ) + (yy_start) = 1; /* first start state */ + + if ( ! yyin ) + yyin = stdin; + + if ( ! yyout ) + yyout = stdout; + + if ( ! YY_CURRENT_BUFFER ) { + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer(yyin,YY_BUF_SIZE ); + } + + yy_load_buffer_state( ); + } + + while ( 1 ) /* loops until end-of-file is reached */ + { + yy_cp = (yy_c_buf_p); + + /* Support of yytext. */ + *yy_cp = (yy_hold_char); + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = (yy_start); +yy_match: + do + { + register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + 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 >= 63 ) + 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] != 112 ); + +yy_find_action: + yy_act = yy_accept[yy_current_state]; + if ( yy_act == 0 ) + { /* have to back up */ + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + yy_act = yy_accept[yy_current_state]; + } + + YY_DO_BEFORE_ACTION; + +do_action: /* This label is used only to access EOF actions. */ + + switch ( yy_act ) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = (yy_hold_char); + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + goto yy_find_action; + +case 1: +/* rule 1 can match eol */ +#line 143 "risDateAdj.ll" +case 2: +/* rule 2 can match eol */ +#line 144 "risDateAdj.ll" +case 3: +/* rule 3 can match eol */ +#line 145 "risDateAdj.ll" +case 4: +/* rule 4 can match eol */ +YY_RULE_SETUP +#line 145 "risDateAdj.ll" +{ + + /* debugging + * printf("%d\n",__LINE__) ; + */ + y1patch(yytext) ; + } + YY_BREAK +case 5: +YY_RULE_SETUP +#line 154 "risDateAdj.ll" +ECHO; + YY_BREAK +#line 928 "risDateAdj.cc" +case YY_STATE_EOF(INITIAL): + yyterminate(); + + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = (yy_hold_char); + YY_RESTORE_YY_MORE_OFFSET + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * yylex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state ); + + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* Consume the NUL. */ + yy_cp = ++(yy_c_buf_p); + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { + yy_cp = (yy_c_buf_p); + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_END_OF_FILE: + { + (yy_did_buffer_switch_on_eof) = 0; + + if ( yywrap( ) ) + { + /* Note: because we've taken care in + * yy_get_next_buffer() to have set up + * yytext, we can now set up + * yy_c_buf_p so that if some total + * hoser (like flex itself) wants to + * call the scanner after we return the + * YY_NULL, it'll still work - another + * YY_NULL will get returned. + */ + (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } + + else + { + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = + (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + (yy_c_buf_p) = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ +} /* end of yylex */ + +/* yy_get_next_buffer - try to read in a new buffer + * + * Returns a code representing an action: + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ +static int yy_get_next_buffer (void) +{ + register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + register char *source = (yytext_ptr); + register int number_to_move, i; + int ret_val; + + if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) + { /* Don't try to fill the buffer, so this is an EOF. */ + if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. + */ + return EOB_ACT_END_OF_FILE; + } + + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } + + /* Try to read more data. */ + + /* First move last chars to start of buffer. */ + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; + + else + { + yy_size_t num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; + + while ( num_to_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ + + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; + + int yy_c_buf_p_offset = + (int) ((yy_c_buf_p) - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { + yy_size_t new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( + "fatal error - scanner input buffer overflow" ); + + (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if ( num_to_read > YY_READ_BUF_SIZE ) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + (yy_n_chars), num_to_read ); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + if ( (yy_n_chars) == 0 ) + { + if ( number_to_move == YY_MORE_ADJ ) + { + ret_val = EOB_ACT_END_OF_FILE; + yyrestart(yyin ); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + /* Extend the array by 50%, plus the number we really need. */ + yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + } + + (yy_n_chars) += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; + + (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; +} + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + + static yy_state_type yy_get_previous_state (void) +{ + register yy_state_type yy_current_state; + register char *yy_cp; + + yy_current_state = (yy_start); + + for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) + { + register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + 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 >= 63 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } + + return yy_current_state; +} + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ + static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) +{ + register int yy_is_jam; + register char *yy_cp = (yy_c_buf_p); + + register YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + 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 >= 63 ) + 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 == 62); + + return yy_is_jam ? 0 : yy_current_state; +} + + static void yyunput (int c, register char * yy_bp ) +{ + register char *yy_cp; + + yy_cp = (yy_c_buf_p); + + /* undo effects of setting up yytext */ + *yy_cp = (yy_hold_char); + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + { /* need to shift things up to make room */ + /* +2 for EOB chars. */ + register yy_size_t number_to_move = (yy_n_chars) + 2; + register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; + register char *source = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; + + while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + *--dest = *--source; + + yy_cp += (int) (dest - source); + yy_bp += (int) (dest - source); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + YY_FATAL_ERROR( "flex scanner push-back overflow" ); + } + + *--yy_cp = (char) c; + + (yytext_ptr) = yy_bp; + (yy_hold_char) = *yy_cp; + (yy_c_buf_p) = yy_cp; +} + +#ifndef YY_NO_INPUT +#ifdef __cplusplus + static int yyinput (void) +#else + static int input (void) +#endif + +{ + int c; + + *(yy_c_buf_p) = (yy_hold_char); + + if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + /* This was really a NUL. */ + *(yy_c_buf_p) = '\0'; + + else + { /* need more input */ + yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + ++(yy_c_buf_p); + + switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + yyrestart(yyin ); + + /*FALLTHROUGH*/ + + case EOB_ACT_END_OF_FILE: + { + if ( yywrap( ) ) + return EOF; + + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; +#ifdef __cplusplus + return yyinput(); +#else + return input(); +#endif + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = (yytext_ptr) + offset; + break; + } + } + } + + c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ + *(yy_c_buf_p) = '\0'; /* preserve yytext */ + (yy_hold_char) = *++(yy_c_buf_p); + + return c; +} +#endif /* ifndef YY_NO_INPUT */ + +/** Immediately switch to a different input stream. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ + void yyrestart (FILE * input_file ) +{ + + if ( ! YY_CURRENT_BUFFER ){ + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer(yyin,YY_BUF_SIZE ); + } + + yy_init_buffer(YY_CURRENT_BUFFER,input_file ); + yy_load_buffer_state( ); +} + +/** Switch to a different input buffer. + * @param new_buffer The new input buffer. + * + */ + void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) +{ + + /* TODO. We should be able to replace this entire function body + * with + * yypop_buffer_state(); + * yypush_buffer_state(new_buffer); + */ + yyensure_buffer_stack (); + if ( YY_CURRENT_BUFFER == new_buffer ) + return; + + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + yy_load_buffer_state( ); + + /* We don't actually know whether we did this switch during + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe + * to go ahead and always set it. + */ + (yy_did_buffer_switch_on_eof) = 1; +} + +static void yy_load_buffer_state (void) +{ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + (yy_hold_char) = *(yy_c_buf_p); +} + +/** Allocate and initialize an input buffer state. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) +{ + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_buf_size = size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_is_our_buffer = 1; + + yy_init_buffer(b,file ); + + return b; +} + +/** Destroy the buffer. + * @param b a buffer created with yy_create_buffer() + * + */ + void yy_delete_buffer (YY_BUFFER_STATE b ) +{ + + if ( ! b ) + return; + + if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + + if ( b->yy_is_our_buffer ) + yyfree((void *) b->yy_ch_buf ); + + yyfree((void *) b ); +} + +/* Initializes or reinitializes a buffer. + * This function is sometimes called more than once on the same buffer, + * such as during a yyrestart() or at EOF. + */ + static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) + +{ + int oerrno = errno; + + yy_flush_buffer(b ); + + b->yy_input_file = file; + b->yy_fill_buffer = 1; + + /* If b is the current buffer, then yy_init_buffer was _probably_ + * called from yyrestart() or through yy_get_next_buffer. + * In that case, we don't want to reset the lineno or column. + */ + if (b != YY_CURRENT_BUFFER){ + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; + + errno = oerrno; +} + +/** Discard all buffered characters. On the next scan, YY_INPUT will be called. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. + * + */ + void yy_flush_buffer (YY_BUFFER_STATE b ) +{ + if ( ! b ) + return; + + b->yy_n_chars = 0; + + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[0]; + + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; + + if ( b == YY_CURRENT_BUFFER ) + yy_load_buffer_state( ); +} + +/** Pushes the new state onto the stack. The new state becomes + * the current state. This function will allocate the stack + * if necessary. + * @param new_buffer The new state. + * + */ +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) +{ + if (new_buffer == NULL) + return; + + yyensure_buffer_stack(); + + /* This block is copied from yy_switch_to_buffer. */ + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + (yy_buffer_stack_top)++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from yy_switch_to_buffer. */ + yy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; +} + +/** Removes and deletes the top of the stack, if present. + * The next element becomes the new top. + * + */ +void yypop_buffer_state (void) +{ + if (!YY_CURRENT_BUFFER) + return; + + yy_delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + if ((yy_buffer_stack_top) > 0) + --(yy_buffer_stack_top); + + if (YY_CURRENT_BUFFER) { + yy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; + } +} + +/* Allocates the stack if it does not exist. + * Guarantees space for at least one push. + */ +static void yyensure_buffer_stack (void) +{ + yy_size_t num_to_alloc; + + if (!(yy_buffer_stack)) { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc + (num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); + + (yy_buffer_stack_max) = num_to_alloc; + (yy_buffer_stack_top) = 0; + return; + } + + if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ + + /* Increase the buffer to prepare for a possible push. */ + int grow_size = 8 /* arbitrary grow size */; + + num_to_alloc = (yy_buffer_stack_max) + grow_size; + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc + ((yy_buffer_stack), + num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + /* zero only the new slots.*/ + memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); + (yy_buffer_stack_max) = num_to_alloc; + } +} + +/** Setup the input buffer state to scan directly from a user-specified character buffer. + * @param base the character buffer + * @param size the size in bytes of the character buffer + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) +{ + YY_BUFFER_STATE b; + + if ( size < 2 || + base[size-2] != YY_END_OF_BUFFER_CHAR || + base[size-1] != YY_END_OF_BUFFER_CHAR ) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + yy_switch_to_buffer(b ); + + return b; +} + +/** Setup the input buffer state to scan a string. The next call to yylex() will + * scan from a @e copy of @a str. + * @param yystr a NUL-terminated string to scan + * + * @return the newly allocated buffer state object. + * @note If you want to scan bytes that may contain NUL values, then use + * yy_scan_bytes() instead. + */ +YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) +{ + + return yy_scan_bytes(yystr,strlen(yystr) ); +} + +/** Setup the input buffer state to scan the given bytes. The next call to yylex() will + * scan from a @e copy of @a bytes. + * @param yybytes the byte buffer to scan + * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +{ + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + int i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = _yybytes_len + 2; + buf = (char *) yyalloc(n ); + if ( ! buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); + + for ( i = 0; i < _yybytes_len; ++i ) + buf[i] = yybytes[i]; + + buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; + + b = yy_scan_buffer(buf,n ); + if ( ! b ) + YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; +} + +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 +#endif + +static void yy_fatal_error (yyconst char* msg ) +{ + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); +} + +/* Redefine yyless() so it works in section 3 code. */ + +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + yytext[yyleng] = (yy_hold_char); \ + (yy_c_buf_p) = yytext + yyless_macro_arg; \ + (yy_hold_char) = *(yy_c_buf_p); \ + *(yy_c_buf_p) = '\0'; \ + yyleng = yyless_macro_arg; \ + } \ + while ( 0 ) + +/* Accessor methods (get/set functions) to struct members. */ + +/** Get the current line number. + * + */ +int yyget_lineno (void) +{ + + return yylineno; +} + +/** Get the input stream. + * + */ +FILE *yyget_in (void) +{ + return yyin; +} + +/** Get the output stream. + * + */ +FILE *yyget_out (void) +{ + return yyout; +} + +/** Get the length of the current token. + * + */ +yy_size_t yyget_leng (void) +{ + return yyleng; +} + +/** Get the current token. + * + */ + +char *yyget_text (void) +{ + return yytext; +} + +/** Set the current line number. + * @param line_number + * + */ +void yyset_lineno (int line_number ) +{ + + yylineno = line_number; +} + +/** Set the input stream. This does not discard the current + * input buffer. + * @param in_str A readable stream. + * + * @see yy_switch_to_buffer + */ +void yyset_in (FILE * in_str ) +{ + yyin = in_str ; +} + +void yyset_out (FILE * out_str ) +{ + yyout = out_str ; +} + +int yyget_debug (void) +{ + return yy_flex_debug; +} + +void yyset_debug (int bdebug ) +{ + yy_flex_debug = bdebug ; +} + +static int yy_init_globals (void) +{ + /* Initialization is the same as for the non-reentrant scanner. + * This function is called from yylex_destroy(), so don't allocate here. + */ + + (yy_buffer_stack) = 0; + (yy_buffer_stack_top) = 0; + (yy_buffer_stack_max) = 0; + (yy_c_buf_p) = (char *) 0; + (yy_init) = 0; + (yy_start) = 0; + +/* Defined in main.c */ +#ifdef YY_STDINIT + yyin = stdin; + yyout = stdout; +#else + yyin = (FILE *) 0; + yyout = (FILE *) 0; +#endif + + /* For future reference: Set errno on error, since we are called by + * yylex_init() + */ + return 0; +} + +/* yylex_destroy is for both reentrant and non-reentrant scanners. */ +int yylex_destroy (void) +{ + + /* Pop the buffer stack, destroying each element. */ + while(YY_CURRENT_BUFFER){ + yy_delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + yypop_buffer_state(); + } + + /* Destroy the stack itself. */ + yyfree((yy_buffer_stack) ); + (yy_buffer_stack) = NULL; + + /* Reset the globals. This is important in a non-reentrant scanner so the next time + * yylex() is called, initialization will occur. */ + yy_init_globals( ); + + return 0; +} + +/* + * Internal utility routines. + */ + +#ifndef yytext_ptr +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +{ + register int i; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; +} +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * s ) +{ + register int n; + for ( n = 0; s[n]; ++n ) + ; + + return n; +} +#endif + +void *yyalloc (yy_size_t size ) +{ + return (void *) malloc( size ); +} + +void *yyrealloc (void * ptr, yy_size_t size ) +{ + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return (void *) realloc( (char *) ptr, size ); +} + +void yyfree (void * ptr ) +{ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ +} + +#define YYTABLES_NAME "yytables" + +#line 154 "risDateAdj.ll" + + +int main(int argc, char *argv[]) +{ + /* preg1: at least three characters (matching months supposedly) + * followed by any comma, dot and white space, and the year + */ + int stat =regcomp(&preg1, + "\\([[:alpha:]]\\{3,\\}\\)\\([[:space:],\\./]*\\)\\([[:digit:]]\\{4\\}\\)\\(.*\\)", REG_ICASE) ; + if ( stat ) + fprintf(stderr,"line %d - Internal error %d\n",__LINE__,stat) ; + + /* preg2: the ISO YYYY-MM-DD format + */ + stat =regcomp(&preg2, "[[:digit:]]\\{4\\}-[[:digit:]]\\{2\\}-[[:digit:]]\\{2\\}.*", REG_ICASE) ; + if ( stat ) + fprintf(stderr,"line %d - Internal error %d\n",__LINE__,stat) ; + + /* preg3: the fullmontname 1-or-2digit-date, 4-digityear + */ + stat =regcomp(&preg3, + "\\([[:alpha:]]\\{3,\\}\\) \\([[:digit:]]\\{1,2\\}\\)[ ,]*\\([[:digit:]]\\{4\\}\\).*", REG_ICASE) ; + if ( stat ) + fprintf(stderr,"line %d - Internal error %d\n",__LINE__,stat) ; + + /* preg4: a sole 4-digit year, optionally with a slash and 2-digit month + */ + stat =regcomp(&preg4, "[[:digit:]]{4}(/[[:digit:]]{1,2})?[[:blank:]]*", REG_ICASE|REG_EXTENDED) ; + if ( stat ) + fprintf(stderr,"line %d - Internal error %d\n",__LINE__,stat) ; + + yylex() ; + regfree(& preg4) ; + regfree(& preg3) ; + regfree(& preg2) ; + regfree(& preg1) ; + return 0 ; +} + diff --git a/biblio/bibtex/utils/r2bib/risDateAdj.ll b/biblio/bibtex/utils/r2bib/risDateAdj.ll new file mode 100644 index 0000000000..5bef2c8f5f --- /dev/null +++ b/biblio/bibtex/utils/r2bib/risDateAdj.ll @@ -0,0 +1,190 @@ + /* This is a lex(1) file, see http://dinosaur.compilertools.net/ + * or http://en.wikipedia.org/wiki/Lex_programming_tool . + * + * Compilation on UNIX systems is done by + * make risDateAdj + * On other systems one may need to call lex or flex and cc explicitly: + * lex -8 -o risDateAdj.c risDateAdj.l + * cc [-std=gnu99] [-s] [-O] -o risDateAdj risDateAdj.c -ll + * + * The executable works as a filter and patches the Y1, Y2 and PY fields of RIS + * files (the standard input) from a + * Apr., YYYY + * type produced for example by JSTOR or a + * YYYY-MM-DD + * or a + * YYYY + * or a + * YYYY/DD + * type to the standard defined in http://www.refman.com/support/risformat_intro.asp . + * + * TODO: + * ingentaconnect produces lines PY -- ///January 2009 + * which also fall into the category of faulty but recoverable inputs. + * And this ought also be implemented. + * Richard J. Mathar, 2009-02-11 + */ +%option noyywrap + +%{ +#include <strings.h> +#include <sys/types.h> +#include <regex.h> + +#define Y1PATCH_PMAT_SIZ 7 + +regex_t preg1, + preg2 , + preg3 , + preg4 ; +regmatch_t pmat[Y1PATCH_PMAT_SIZ] ; + +/* Fit monam month to integer in the range 1 to 12. +* @return Return a number from 1 to 12 if the month is recognized, 0 if not. +*/ +int name2Month(const char *monam) +{ + static const char *jan2dec[] = {"jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"} ; + for(int i=0; i < 12 ; i++) + if( strncasecmp(monam,jan2dec[i],3) == 0 ) + return i+1 ; + return 0 ; +} + +/* Generate a line YYY/MM/DD/otherinfo line on output. +* @param tagline the original line, including the tag and the <CR></LF> +*/ +void y1patch(const char *yytext) +{ + /* the original tag including the mandatory white space copied thru + */ + fprintf(yyout,"%.6s",yytext) ; + + if( regexec(&preg2,yytext+6,0,0,0) == 0 ) + { + /* The ISO case. Replace dashes by slashes + */ + fprintf(yyout,"%.4s/%.2s/%.2s/ %s",yytext+6,yytext+11,yytext+14,yytext+17) ; + } + else if( regexec(&preg1,yytext+6,Y1PATCH_PMAT_SIZ,pmat,0) == 0 ) + { + /* pmat[0] all, pmat[1] the mont, pmat[2] any intermediate dots and blanks, pmat[3] the year. + */ + int mon = name2Month(yytext+6) ; + int yr = atoi(yytext+6+pmat[3].rm_so) ; + if ( mon ) + fprintf(yyout,"%d/%02d// ",yr,mon) ; + else + fprintf(yyout,"%d/// ",yr) ; + + /* the original pattern plus any <CR><NL> + */ + fprintf(yyout,"%s",yytext+6) ; + } + else if( regexec(&preg3,yytext+6,Y1PATCH_PMAT_SIZ,pmat,0) == 0 ) + { + /* pmat[0] all, pmat[1] the mont, pmat[2] the date, pmat[3] the year. + */ + int mon = name2Month(yytext+6) ; + int dat = atoi(yytext+6+pmat[2].rm_so) ; + int yr = atoi(yytext+6+pmat[3].rm_so) ; + if ( mon ) + fprintf(yyout,"%d/%02d/%02d/ ",yr,mon,dat) ; + else + fprintf(yyout,"%d//%02d/ ",yr,dat) ; + + /* the original pattern plus any <CR><NL> + */ + fprintf(yyout,"%s",yytext+6) ; + } + else if( regexec(&preg4,yytext+6,Y1PATCH_PMAT_SIZ,pmat,0) == 0 ) + { + int yr = atoi(yytext+6) ; + if ( pmat[1].rm_so >=0 ) + { + int mon = atoi(yytext+6+pmat[1].rm_so+1) ; + fprintf(yyout,"%d/%02d//",yr,mon) ; + } + else + fprintf(yyout,"%d///",yr) ; + + /* the original <CR><NL> + */ + fprintf(yyout,"%s",yytext+6+pmat[0].rm_eo) ; + } + else + /* give up and copy through + */ + fprintf(yyout,"%s",yytext+6) ; + +} +#undef Y1PATCH_PMAT_SIZ + +%} + +RISTAG "Y1 - "|"PY - "|"Y2 - " +DIGIT [0-9] + + /* the scanner ought be compiled with the "-i" flag to + * trigger also on the various upper/lowercase variants of these patterns + */ +MONTH "Jan"|"Feb"|"Mar"|"Apr"|"May"|"Jun"|"Jul"|"Aug"|"Sep"|"Oct"|"Nov"|"Dec" + +%% + + /* Lines which look correct are copied trough as they are. + * This means they contain no 3-letter mont acronyms as substrings. + */ + + /* If the tag is immediately followed by one of the TLA (three-letter + * acronyms above), or looks like an ISO date we try conversion. + */ +{RISTAG}{MONTH}.+\n | +{RISTAG}{DIGIT}{4}[[:blank:]]*\r?\n | +{RISTAG}{DIGIT}{4}\/{DIGIT}{1,2}[[:blank:]]*\r?\n | +{RISTAG}{DIGIT}{4}-{DIGIT}{2}-{DIGIT}{2}.+\n { + + /* debugging + * printf("%d\n",__LINE__) ; + */ + y1patch(yytext) ; + } + + +%% +int main(int argc, char *argv[]) +{ + /* preg1: at least three characters (matching months supposedly) + * followed by any comma, dot and white space, and the year + */ + int stat =regcomp(&preg1, + "\\([[:alpha:]]\\{3,\\}\\)\\([[:space:],\\./]*\\)\\([[:digit:]]\\{4\\}\\)\\(.*\\)", REG_ICASE) ; + if ( stat ) + fprintf(stderr,"line %d - Internal error %d\n",__LINE__,stat) ; + + /* preg2: the ISO YYYY-MM-DD format + */ + stat =regcomp(&preg2, "[[:digit:]]\\{4\\}-[[:digit:]]\\{2\\}-[[:digit:]]\\{2\\}.*", REG_ICASE) ; + if ( stat ) + fprintf(stderr,"line %d - Internal error %d\n",__LINE__,stat) ; + + /* preg3: the fullmontname 1-or-2digit-date, 4-digityear + */ + stat =regcomp(&preg3, + "\\([[:alpha:]]\\{3,\\}\\) \\([[:digit:]]\\{1,2\\}\\)[ ,]*\\([[:digit:]]\\{4\\}\\).*", REG_ICASE) ; + if ( stat ) + fprintf(stderr,"line %d - Internal error %d\n",__LINE__,stat) ; + + /* preg4: a sole 4-digit year, optionally with a slash and 2-digit month + */ + stat =regcomp(&preg4, "[[:digit:]]{4}(/[[:digit:]]{1,2})?[[:blank:]]*", REG_ICASE|REG_EXTENDED) ; + if ( stat ) + fprintf(stderr,"line %d - Internal error %d\n",__LINE__,stat) ; + + yylex() ; + regfree(& preg4) ; + regfree(& preg3) ; + regfree(& preg2) ; + regfree(& preg1) ; + return 0 ; +} diff --git a/biblio/bibtex/utils/r2bib/wileyEndNoteFilt.1 b/biblio/bibtex/utils/r2bib/wileyEndNoteFilt.1 new file mode 100644 index 0000000000..e69d1f26cb --- /dev/null +++ b/biblio/bibtex/utils/r2bib/wileyEndNoteFilt.1 @@ -0,0 +1,54 @@ +.TH "wileyEndNoteFilt" 1 "Mon Dec 7 2015" "Version 2015-12-07" "r2bib" \" -*- nroff -*- +.ad l +.nh +.SH NAME +wileyEndNoteFilt \- convert Wiley's EndNote author tags to the standard +.PP +.SH "SYNOPSIS " +.PP +.PP +\fIwileyEndNoteFilt\fP +.PP +.SH "OPTIONS " +.PP +.PP +none +.PP +.SH "DESCRIPTION " +.PP +.PP +\fIwileyEndNoteFilt\fP interprets the standard input as an EndNote bibligraphy file and rewrites lines with %A and %E tags if they contain at least one author and if each author is followed by a comma\&. Basically the format +.PP +%A firstinit firstM\&. firstAfam, sendinit secondM\&. secondM2\&. secondAfam, +.PP +is dispersed into lines +.PP +%A firstAfam, firstinit firstM\&. +.PP +%A secondAfam, sendinit secondM\&. secondM2\&. +.PP +with only one person per tag, regrouping first names and middle names relative to family names\&. +.PP +Need of this type of filter arises with EndNote files produced by Wiley's web interfaces\&. The obvious problem with the plain format which shows all authors in the natural language format is that fillers of two kinds, namely the roman numbers and 'Jr\&.' and 'Sr\&.' tags on one hand and any qualifiers like 'de' and 'van' particularly frequent in languages like Dutch on the other, cannot easily be dispatched into the standard format, which is first-names-and-initials, de-von-van-dos-etc last-name, Jr-Sr-numerals\&. In addition, it is not obvious (to European readers) whether Chinese names have already been swapped once or are in the traditional format\&. +.PP +Keeping this in mind, this filter ought only be run if the input is of the aforementioned comma-delimited format, but not if it originates from multiple sources of mixed author-editor styles\&. In addition, the EndNote import filter provided on the Wiley web page is certainly to be favoured if the data are imported into the native EndNote\&. +.PP +.SH "EXAMPLES " +.PP +.PP +cat foo*\&.enw | wileyEndNoteFilt > bar\&.end +.PP +.SH "CAUTION " +.PP +.PP +An attempt is made to swap first and family names on the fly\&. Generally, the last string of the name is interpreted as the family name\&. If the name contains strings like ' von ' or ' dos ', they are classified as modifiers which are frequent in Dutch, German, Spanish and Italian compound names, and these are also attributed to the family name\&. The source code contains a hard-coded list of these initialiasers; this may certainly fail in some cases\&. +.PP +.SH "BUGS " +.PP +.PP +The filter will stumble if some names contain HTML-components which use commas\&. No such cases exist in the character entity references in HTML 4\&.0, so this seems not to be an issue\&. +.PP +.SH "AUTHOR " +.PP +.PP +Richard J\&. Mathar, http://www.mpia.de/~mathar diff --git a/biblio/bibtex/utils/r2bib/wileyEndNoteFilt.cc b/biblio/bibtex/utils/r2bib/wileyEndNoteFilt.cc new file mode 100644 index 0000000000..ac7397eefb --- /dev/null +++ b/biblio/bibtex/utils/r2bib/wileyEndNoteFilt.cc @@ -0,0 +1,2075 @@ + +#line 3 "wileyEndNoteFilt.cc" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 37 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include <stdio.h> +#include <string.h> +#include <errno.h> +#include <stdlib.h> + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include <inttypes.h> +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! C99 */ + +#endif /* ! FLEXINT_H */ + +#ifdef __cplusplus + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +/* C99 requires __STDC__ to be defined as 1. */ +#if defined (__STDC__) + +#define YY_USE_CONST + +#endif /* defined (__STDC__) */ +#endif /* ! __cplusplus */ + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + +/* Returned upon end-of-file. */ +#define YY_NULL 0 + +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. + */ +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) + +/* Enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN. + */ +#define BEGIN (yy_start) = 1 + 2 * + +/* Translate the current start state into a value that can be later handed + * to BEGIN to return to the state. The YYSTATE alias is for lex + * compatibility. + */ +#define YY_START (((yy_start) - 1) / 2) +#define YYSTATE YY_START + +/* Action number for EOF rule of a given start state. */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + +/* Special action meaning "start processing a new file". */ +#define YY_NEW_FILE yyrestart(yyin ) + +#define YY_END_OF_BUFFER_CHAR 0 + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#define YY_BUF_SIZE 16384 +#endif + +/* The state buf must be large enough to hold one state per character in the main buffer. + */ +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +extern yy_size_t yyleng; + +extern FILE *yyin, *yyout; + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + + #define YY_LESS_LINENO(n) + +/* Return all but the first "n" matched characters back to the input stream. */ +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + *yy_cp = (yy_hold_char); \ + YY_RESTORE_YY_MORE_OFFSET \ + (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + } \ + while ( 0 ) + +#define unput(c) yyunput( c, (yytext_ptr) ) + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + yy_size_t yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + +#define YY_BUFFER_NEW 0 +#define YY_BUFFER_NORMAL 1 + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ +#define YY_BUFFER_EOF_PENDING 2 + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +/* Stack of input buffers. */ +static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ +static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ +static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ + +/* We provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state". + * + * Returns the top of the stack, or NULL. + */ +#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ + ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ + : NULL) + +/* Same as previous macro, but useful when we know that the buffer stack is not + * NULL or when we need an lvalue. For internal use only. + */ +#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] + +/* yy_hold_char holds the character lost when yytext is formed. */ +static char yy_hold_char; +static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ +yy_size_t yyleng; + +/* Points to current character in buffer. */ +static char *yy_c_buf_p = (char *) 0; +static int yy_init = 0; /* whether we need to initialize */ +static int yy_start = 0; /* start state number */ + +/* Flag which is used to allow yywrap()'s to do buffer switches + * instead of setting up a fresh yyin. A bit of a hack ... + */ +static int yy_did_buffer_switch_on_eof; + +void yyrestart (FILE *input_file ); +void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); +void yy_delete_buffer (YY_BUFFER_STATE b ); +void yy_flush_buffer (YY_BUFFER_STATE b ); +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state (void ); + +static void yyensure_buffer_stack (void ); +static void yy_load_buffer_state (void ); +static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); + +#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) + +YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); +YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ); + +void *yyalloc (yy_size_t ); +void *yyrealloc (void *,yy_size_t ); +void yyfree (void * ); + +#define yy_new_buffer yy_create_buffer + +#define yy_set_interactive(is_interactive) \ + { \ + if ( ! YY_CURRENT_BUFFER ){ \ + yyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ + } + +#define yy_set_bol(at_bol) \ + { \ + if ( ! YY_CURRENT_BUFFER ){\ + yyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ + } + +#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) + +/* Begin user sect3 */ + +#define yywrap() 1 +#define YY_SKIP_YYWRAP + +typedef unsigned char YY_CHAR; + +FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; + +typedef int yy_state_type; + +extern int yylineno; + +int yylineno = 1; + +extern char *yytext; +#define yytext_ptr yytext + +static yy_state_type yy_get_previous_state (void ); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); +static int yy_get_next_buffer (void ); +static void yy_fatal_error (yyconst char msg[] ); + +/* Done after the current pattern has been matched and before the + * corresponding action - sets up yytext. + */ +#define YY_DO_BEFORE_ACTION \ + (yytext_ptr) = yy_bp; \ + yyleng = (size_t) (yy_cp - yy_bp); \ + (yy_hold_char) = *yy_cp; \ + *yy_cp = '\0'; \ + (yy_c_buf_p) = yy_cp; + +#define YY_NUM_RULES 5 +#define YY_END_OF_BUFFER 6 +/* This struct is not used in this scanner, + but its presence is necessary. */ +struct yy_trans_info + { + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +static yyconst flex_int16_t yy_accept[30] = + { 0, + 0, 0, 6, 5, 5, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, + 0, 0, 0, 0, 0, 0, 2, 4, 0 + } ; + +static yyconst flex_int32_t yy_ec[256] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 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, 4, 1, 1, 1, + 1, 1, 1, 1, 5, 1, 1, 1, 6, 7, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 8, 1, 1, 1, 9, 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, + 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, 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, 1, 1, 1 + } ; + +static yyconst flex_int32_t yy_meta[10] = + { 0, + 1, 2, 1, 1, 1, 1, 1, 1, 1 + } ; + +static yyconst flex_int16_t yy_base[35] = + { 0, + 0, 5, 29, 30, 6, 10, 25, 24, 23, 22, + 0, 0, 21, 20, 20, 19, 15, 7, 30, 30, + 8, 7, 0, 0, 5, 4, 30, 30, 30, 17, + 4, 2, 1, 0 + } ; + +static yyconst flex_int16_t yy_def[35] = + { 0, + 30, 30, 29, 29, 29, 29, 29, 29, 29, 29, + 31, 32, 29, 29, 31, 32, 29, 29, 29, 29, + 29, 29, 33, 34, 33, 34, 29, 29, 0, 29, + 29, 29, 29, 29 + } ; + +static yyconst flex_int16_t yy_nxt[40] = + { 0, + 26, 25, 16, 5, 15, 28, 27, 6, 5, 24, + 23, 22, 6, 7, 8, 9, 10, 4, 4, 21, + 20, 19, 18, 17, 14, 13, 12, 11, 29, 3, + 29, 29, 29, 29, 29, 29, 29, 29, 29 + } ; + +static yyconst flex_int16_t yy_chk[40] = + { 0, + 34, 33, 32, 1, 31, 26, 25, 1, 2, 22, + 21, 18, 2, 5, 5, 6, 6, 30, 30, 17, + 16, 15, 14, 13, 10, 9, 8, 7, 3, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29 + } ; + +static yy_state_type yy_last_accepting_state; +static char *yy_last_accepting_cpos; + +extern int yy_flex_debug; +int yy_flex_debug = 0; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected +#define yymore() yymore_used_but_not_detected +#define YY_MORE_ADJ 0 +#define YY_RESTORE_YY_MORE_OFFSET +char *yytext; +#line 1 "wileyEndNoteFilt.ll" +/* This is a lex(1) file, see http://dinosaur.compilertools.net/ +* or http://en.wikipedia.org/wiki/Lex_programming_tool . +* +* Compilation on UNIX systems is done by +* make wileyEndNoteFilt +* On other systems one may need to call lex or flex and cc explicitly: +* lex -8 -o wileyEndNoteFilt.c wileyEndNoteFilt.l +* cc [-s] [-O] [-D MSDOS] [-D WILEYENDNOTERIS] -o wileyEndNoteFilt wileyEndNoteFilt.c -ll +* +* Definition of the macro MSDOS means that the output is rewritten +* with CR+LF line terminators (which alternatively can be achieved +* by the standard unix2dos(1)). +* +* Definition of the macro WILEYENDNOTERIS means that the RIS type tags +* "A1 - " and "A2 - " are handled supposing that there is only +* one name per line and swapping first and last names. +* +* The executable works as a filter and converts author names produced +* by downloading EndNote files from Wiley's web pages such that they become +* standardized. This means: the initials (first names) and last names of authors +* are swapped and separated by a comma on output, and multiple +* authors become separate lines. +* +* Use examples: +* cat *.enw | wileyEndNoteFilt +* cat *.enw | recode h1..h4 | wileyEndNoteFilt > tmp.end ; end2xml tmp.end > tmp.xml +* +* Notes: +* The filter changes lines of the %A or %E tag containing at least one author. +* This means (i) the author list is only parsed until a line feed, so author +* lists continued on lines that do not start with another tag will remain +* incomplete +* (ii) a tag followed by no author is copied through unchanged. +* +* Richard J. Mathar, 2010-01-21 +*/ +#line 40 "wileyEndNoteFilt.ll" +#include <string.h> +#include <stdlib.h> + +/* remove trailing carriage return and line feeds from inp +* (this string may be changed on output). +*/ +void trimlf(char *inp) +{ + /* point to the last non-0 character */ + char *c = inp+strlen(inp)-1 ; + while ( *c == '\n' || *c == '\r' ) + *c-- = '\0' ; +} + +/* remove blanks at the start and/or end of inp +* (this string may be changed on output). +*/ +void trim(char *inp) +{ + /* point to the last non-0 character */ + char *c = inp+strlen(inp)-1 ; + while ( *c == ' ') + *c-- = '\0' ; + + while( *inp == ' ') + memmove(inp,inp+1,strlen(inp)) ; +} + +#define WILEYENDNOTEFILT_MAX_AUTH 2048 +#define WILEYENDNOTEFILT_MAX_TRAIL 32 + +/* Handle a single name without any separator +* @param inp A string of the form "firstname middle-name lastname". +*/ +void revStr1(char *inp, const char *tag) +{ + + /* Search for the last blank, usually right before the last name. + * This does not yet handle cases like Marvin D. den Anker + * with composite last names, or Henry Ford II with roman numbers like I + * or II following... + */ + char * lastbl=strrchr(inp,' ') ; + + if ( lastbl != inp ) + { + /* the revised string: lastname, firstinitls[, trail]; */ + char resul[WILEYENDNOTEFILT_MAX_AUTH] ; + + /* a trailing portion like Jr., II etc. German cases like Dr. Werner von Braun, where "Dr." is + * part of the trialing portion but syntactically in front of the first name are not handled + * correctly. Similarly "Pope Paul Benedict" will yield strange results. + * We also assume that the roman numerals are not followed by dots. + */ + char trail[WILEYENDNOTEFILT_MAX_TRAIL] ; + + int lastl ; + + memset(trail,'\0',WILEYENDNOTEFILT_MAX_TRAIL) ; + + /* back up if this is a composite name followed by Jr., Sr. or a dotless Roman numeral from I to VII */ + if ( strcmp(lastbl," I")==0 || strcmp(lastbl," II")==0 || strcmp(lastbl," III")==0 || strcmp(lastbl," Jr.")==0 + || strcmp(lastbl," IV")==0 || strcmp(lastbl," V")==0 || strcmp(lastbl," VI")==0 || strcmp(lastbl," VII")==0 + || strcmp(lastbl," Sr.")==0 + ) + { + /* copy the trailing piece over and chop it off the original string + */ + sprintf(trail,",%s",lastbl) ; + *lastbl = '\0' ; + lastbl=strrchr(inp,' ') ; + } + + /* Start of the surname. Derived names of Spanish, Dutch or German origin. Does not catch the German + * "Graefin" or similar titles which use diacritical vocals. + * Start with the longest matches (that is: catch the "Baron" in "Baron von Munchhausen", not the "von"). + */ + char * surn= strstr(inp," Baron ") ; /* triggers also Baron von Munchhausen, for example */ + if ( surn == NULL) + surn= strstr(inp," Duke ") ; + if ( surn == NULL) + surn= strstr(inp," Earl ") ; + if ( surn == NULL) + surn= strstr(inp," Graf ") ; /* triggers also "Graf von", "Graf zu" etc */ + if ( surn == NULL) + surn= strstr(inp," Gr\344fin ") ; /* assume U+00E4 for the diaresis in UTF-8 */ + if ( surn == NULL) + surn= strstr(inp," Herzog ") ; + if ( surn == NULL) + surn= strstr(inp," v. d. ") ; + if ( surn == NULL) + surn= strstr(inp," von ") ; /* triggers also on "von der" */ + if ( surn == NULL) + surn= strstr(inp," Von ") ; + if ( surn == NULL) + surn= strstr(inp," van ") ; /* triggers also "van den", "van der", "van de" */ + if ( surn == NULL) + surn= strstr(inp," Van ") ; /* Van Morrisson is intepreted as a last name */ + if ( surn == NULL) + surn= strstr(inp," da ") ; + if ( surn == NULL) + surn= strstr(inp," Da ") ; + if ( surn == NULL) + surn= strstr(inp," de ") ; + if ( surn == NULL) + surn= strstr(inp," De ") ; + if ( surn == NULL) + surn= strstr(inp," du ") ; + if ( surn == NULL) + surn= strstr(inp," Du ") ; + if ( surn == NULL) + surn= strstr(inp," do ") ; + if ( surn == NULL) + surn= strstr(inp," Do ") ; + if ( surn == NULL) + surn= strstr(inp," della ") ; + if ( surn == NULL) + surn= strstr(inp," Della ") ; + if ( surn == NULL) + surn= strstr(inp," le ") ; + if ( surn == NULL) + surn= strstr(inp," Le ") ; + if ( surn == NULL) + surn= strstr(inp," dos ") ; + if ( surn == NULL) + surn= strstr(inp," Dos ") ; + if ( surn == NULL) + surn= strstr(inp," ter ") ; + if ( surn == NULL) + surn= strstr(inp," Ter ") ; + if ( surn == NULL) + surn= strstr(inp," ten ") ; + if ( surn == NULL) + surn= strstr(inp," Ten ") ; + /* the cases "e" and "i" are handled unsafely here: + * probably another component of the family name + * precedes these */ + if ( surn == NULL) + surn= strstr(inp," e ") ; + if ( surn == NULL) + surn= strstr(inp," E ") ; + if ( surn == NULL) + surn= strstr(inp," i ") ; + if ( surn == NULL) + surn= strstr(inp," de ") ; + if ( surn == NULL) + surn= strstr(inp," De ") ; + if ( surn == NULL) + surn= strstr(inp," den ") ; + if ( surn == NULL) + surn= strstr(inp," Den ") ; + + /* if no such modifier is found: assume the last name starts at the last blank */ + if ( surn == NULL) + surn= lastbl ; + + lastl= strlen(inp)-(surn-inp)-1 ; + memset(resul,'\0',WILEYENDNOTEFILT_MAX_AUTH) ; + strncpy(resul,surn+1,lastl) ; + + if ( surn != inp) + { + /* output separator comma: lastname, firstname. Firstname starts with a blank. */ + strcat(resul,",") ; +#ifdef WILEYENDNOTEFILT_RIS + strcat(resul," ") ; +#endif + strncat(resul,inp,surn-inp) ; + } + + /* if there is a trailing portion append. Usually this is + * just '\0' and appending does not hurt. + */ + strcat(resul,trail) ; + + trim(resul) ; +#ifdef MSDOS + fprintf(yyout,"%s %s\r\n",tag,resul) ; +#else + fprintf(yyout,"%s %s\n",tag,resul) ; +#endif + } + else + /* If there is no blank, this is probably a single last name, which we copy as is + * (without comma) to stdout. + */ +#ifdef MSDOS + fprintf(yyout,"%s%s\r\n",tag,inp) ; +#else + fprintf(yyout,"%s%s\n",tag,inp) ; +#endif +} +#undef WILEYENDNOTEFILT_MAX_AUTH +#undef WILEYENDNOTEFILT_MAX_TRAIL + +/** Split the line (without the starting "%A " or "%E " EndNote tag) into +* the individual authors (which are each followed by a comma). +* @param inp A string of the form "first-author, second-author, last-author," +* or "first-author, second-author, last-author" or "first-author". +* @param tag The "%A" or "%E" +*/ +void revStr(const char *inp, const char *tag) +{ + /* strtok(3) modifies 'inp', so we construct a temporary copy. + */ + char *inpsave = (char *) malloc((strlen(inp)+1)*sizeof(char)) ; + char *tok ; + char *tokreent ; + + strcpy(inpsave,inp) ; + trimlf(inpsave) ; + /* Loop over all terminating separators (=commas) */ + tok = inpsave ; + +#ifdef WILEYENDNOTEFILT_RIS + trim(tok) ; + revStr1(tok,tag) ; +#else + + + tok = strtok_r(inpsave,",",&tokreent) ; + while(tok) + { + + /* skip leading white space in author names + while(*tok == ' ') + tok++ ; + */ + + /* pass the "firstinit secndinit lastname" to the subroutine + * without the comma separator. + */ + revStr1(tok,tag) ; + tok = strtok_r(NULL,",",&tokreent) ; + } +#endif + free(inpsave) ; +} +#line 742 "wileyEndNoteFilt.cc" + +#define INITIAL 0 + +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#include <unistd.h> +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +static int yy_init_globals (void ); + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int yylex_destroy (void ); + +int yyget_debug (void ); + +void yyset_debug (int debug_flag ); + +YY_EXTRA_TYPE yyget_extra (void ); + +void yyset_extra (YY_EXTRA_TYPE user_defined ); + +FILE *yyget_in (void ); + +void yyset_in (FILE * in_str ); + +FILE *yyget_out (void ); + +void yyset_out (FILE * out_str ); + +yy_size_t yyget_leng (void ); + +char *yyget_text (void ); + +int yyget_lineno (void ); + +void yyset_lineno (int line_number ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int yywrap (void ); +#else +extern int yywrap (void ); +#endif +#endif + + static void yyunput (int c,char *buf_ptr ); + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ); +#endif + +#ifndef YY_NO_INPUT + +#ifdef __cplusplus +static int yyinput (void ); +#else +static int input (void ); +#endif + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 8192 +#endif + +/* Copy whatever the last rule matched to the standard output. */ +#ifndef ECHO +/* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) +#endif + +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#ifndef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ + { \ + int c = '*'; \ + size_t n; \ + for ( n = 0; n < max_size && \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ + buf[n] = (char) c; \ + if ( c == '\n' ) \ + buf[n++] = (char) c; \ + if ( c == EOF && ferror( yyin ) ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + result = n; \ + } \ + else \ + { \ + errno=0; \ + while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + { \ + if( errno != EINTR) \ + { \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + break; \ + } \ + errno=0; \ + clearerr(yyin); \ + } \ + }\ +\ + +#endif + +/* No semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#ifndef yyterminate +#define yyterminate() return YY_NULL +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Report a fatal error. */ +#ifndef YY_FATAL_ERROR +#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) +#endif + +/* end tables serialization structures and prototypes */ + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int yylex (void); + +#define YY_DECL int yylex (void) +#endif /* !YY_DECL */ + +/* Code executed at the beginning of each rule, after yytext and yyleng + * have been set up. + */ +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +/* Code executed at the end of each rule. */ +#ifndef YY_BREAK +#define YY_BREAK break; +#endif + +#define YY_RULE_SETUP \ + YY_USER_ACTION + +/** The main scanner function which does all the work. + */ +YY_DECL +{ + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; + +#line 284 "wileyEndNoteFilt.ll" + +#line 926 "wileyEndNoteFilt.cc" + + if ( !(yy_init) ) + { + (yy_init) = 1; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! (yy_start) ) + (yy_start) = 1; /* first start state */ + + if ( ! yyin ) + yyin = stdin; + + if ( ! yyout ) + yyout = stdout; + + if ( ! YY_CURRENT_BUFFER ) { + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer(yyin,YY_BUF_SIZE ); + } + + yy_load_buffer_state( ); + } + + while ( 1 ) /* loops until end-of-file is reached */ + { + yy_cp = (yy_c_buf_p); + + /* Support of yytext. */ + *yy_cp = (yy_hold_char); + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = (yy_start); +yy_match: + do + { + register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + 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 >= 30 ) + 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] != 30 ); + +yy_find_action: + yy_act = yy_accept[yy_current_state]; + if ( yy_act == 0 ) + { /* have to back up */ + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + yy_act = yy_accept[yy_current_state]; + } + + YY_DO_BEFORE_ACTION; + +do_action: /* This label is used only to access EOF actions. */ + + switch ( yy_act ) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = (yy_hold_char); + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + goto yy_find_action; + +case 1: +/* rule 1 can match eol */ +YY_RULE_SETUP +#line 285 "wileyEndNoteFilt.ll" +{ + + /* if this is a tag followed by one or more authors, push the list + * of authors, including the LF, the initial blank after the tag and all commas, to revStr(). + */ + revStr(yytext+2,"%A") ; + } + YY_BREAK +case 2: +/* rule 2 can match eol */ +YY_RULE_SETUP +#line 292 "wileyEndNoteFilt.ll" +{ + +#ifdef WILEYENDNOTEFILT_RIS + /* if this is a tag followed by one or more authors, push the list + * of authors, including the LF, the initial blank after the tag and all commas, to revStr(). + */ + revStr(yytext+5,"A1 -") ; +#else + fprintf(yyout,"%s",yytext) ; +#endif + } + YY_BREAK +case 3: +/* rule 3 can match eol */ +YY_RULE_SETUP +#line 304 "wileyEndNoteFilt.ll" +{ + + /* Same as above for the list of editors. + */ + revStr(yytext+2,"%E") ; + } + YY_BREAK +case 4: +/* rule 4 can match eol */ +YY_RULE_SETUP +#line 311 "wileyEndNoteFilt.ll" +{ + +#ifdef WILEYENDNOTEFILT_RIS + /* Same as above for the list of editors. + */ + revStr(yytext+5,"A2 -") ; +#else + fprintf(yyout,"%s",yytext) ; +#endif + } + YY_BREAK +case 5: +YY_RULE_SETUP +#line 321 "wileyEndNoteFilt.ll" +ECHO; + YY_BREAK +#line 1068 "wileyEndNoteFilt.cc" +case YY_STATE_EOF(INITIAL): + yyterminate(); + + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = (yy_hold_char); + YY_RESTORE_YY_MORE_OFFSET + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * yylex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state ); + + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* Consume the NUL. */ + yy_cp = ++(yy_c_buf_p); + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { + yy_cp = (yy_c_buf_p); + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_END_OF_FILE: + { + (yy_did_buffer_switch_on_eof) = 0; + + if ( yywrap( ) ) + { + /* Note: because we've taken care in + * yy_get_next_buffer() to have set up + * yytext, we can now set up + * yy_c_buf_p so that if some total + * hoser (like flex itself) wants to + * call the scanner after we return the + * YY_NULL, it'll still work - another + * YY_NULL will get returned. + */ + (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } + + else + { + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = + (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + (yy_c_buf_p) = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ +} /* end of yylex */ + +/* yy_get_next_buffer - try to read in a new buffer + * + * Returns a code representing an action: + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ +static int yy_get_next_buffer (void) +{ + register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + register char *source = (yytext_ptr); + register int number_to_move, i; + int ret_val; + + if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) + { /* Don't try to fill the buffer, so this is an EOF. */ + if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. + */ + return EOB_ACT_END_OF_FILE; + } + + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } + + /* Try to read more data. */ + + /* First move last chars to start of buffer. */ + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; + + else + { + yy_size_t num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; + + while ( num_to_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ + + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; + + int yy_c_buf_p_offset = + (int) ((yy_c_buf_p) - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { + yy_size_t new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( + "fatal error - scanner input buffer overflow" ); + + (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if ( num_to_read > YY_READ_BUF_SIZE ) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + (yy_n_chars), num_to_read ); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + if ( (yy_n_chars) == 0 ) + { + if ( number_to_move == YY_MORE_ADJ ) + { + ret_val = EOB_ACT_END_OF_FILE; + yyrestart(yyin ); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + /* Extend the array by 50%, plus the number we really need. */ + yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + } + + (yy_n_chars) += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; + + (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; +} + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + + static yy_state_type yy_get_previous_state (void) +{ + register yy_state_type yy_current_state; + register char *yy_cp; + + yy_current_state = (yy_start); + + for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) + { + register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + 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 >= 30 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } + + return yy_current_state; +} + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ + static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) +{ + register int yy_is_jam; + register char *yy_cp = (yy_c_buf_p); + + register YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + 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 >= 30 ) + 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 == 29); + + return yy_is_jam ? 0 : yy_current_state; +} + + static void yyunput (int c, register char * yy_bp ) +{ + register char *yy_cp; + + yy_cp = (yy_c_buf_p); + + /* undo effects of setting up yytext */ + *yy_cp = (yy_hold_char); + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + { /* need to shift things up to make room */ + /* +2 for EOB chars. */ + register yy_size_t number_to_move = (yy_n_chars) + 2; + register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; + register char *source = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; + + while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + *--dest = *--source; + + yy_cp += (int) (dest - source); + yy_bp += (int) (dest - source); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + YY_FATAL_ERROR( "flex scanner push-back overflow" ); + } + + *--yy_cp = (char) c; + + (yytext_ptr) = yy_bp; + (yy_hold_char) = *yy_cp; + (yy_c_buf_p) = yy_cp; +} + +#ifndef YY_NO_INPUT +#ifdef __cplusplus + static int yyinput (void) +#else + static int input (void) +#endif + +{ + int c; + + *(yy_c_buf_p) = (yy_hold_char); + + if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + /* This was really a NUL. */ + *(yy_c_buf_p) = '\0'; + + else + { /* need more input */ + yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + ++(yy_c_buf_p); + + switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + yyrestart(yyin ); + + /*FALLTHROUGH*/ + + case EOB_ACT_END_OF_FILE: + { + if ( yywrap( ) ) + return EOF; + + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; +#ifdef __cplusplus + return yyinput(); +#else + return input(); +#endif + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = (yytext_ptr) + offset; + break; + } + } + } + + c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ + *(yy_c_buf_p) = '\0'; /* preserve yytext */ + (yy_hold_char) = *++(yy_c_buf_p); + + return c; +} +#endif /* ifndef YY_NO_INPUT */ + +/** Immediately switch to a different input stream. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ + void yyrestart (FILE * input_file ) +{ + + if ( ! YY_CURRENT_BUFFER ){ + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer(yyin,YY_BUF_SIZE ); + } + + yy_init_buffer(YY_CURRENT_BUFFER,input_file ); + yy_load_buffer_state( ); +} + +/** Switch to a different input buffer. + * @param new_buffer The new input buffer. + * + */ + void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) +{ + + /* TODO. We should be able to replace this entire function body + * with + * yypop_buffer_state(); + * yypush_buffer_state(new_buffer); + */ + yyensure_buffer_stack (); + if ( YY_CURRENT_BUFFER == new_buffer ) + return; + + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + yy_load_buffer_state( ); + + /* We don't actually know whether we did this switch during + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe + * to go ahead and always set it. + */ + (yy_did_buffer_switch_on_eof) = 1; +} + +static void yy_load_buffer_state (void) +{ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + (yy_hold_char) = *(yy_c_buf_p); +} + +/** Allocate and initialize an input buffer state. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) +{ + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_buf_size = size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_is_our_buffer = 1; + + yy_init_buffer(b,file ); + + return b; +} + +/** Destroy the buffer. + * @param b a buffer created with yy_create_buffer() + * + */ + void yy_delete_buffer (YY_BUFFER_STATE b ) +{ + + if ( ! b ) + return; + + if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + + if ( b->yy_is_our_buffer ) + yyfree((void *) b->yy_ch_buf ); + + yyfree((void *) b ); +} + +/* Initializes or reinitializes a buffer. + * This function is sometimes called more than once on the same buffer, + * such as during a yyrestart() or at EOF. + */ + static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) + +{ + int oerrno = errno; + + yy_flush_buffer(b ); + + b->yy_input_file = file; + b->yy_fill_buffer = 1; + + /* If b is the current buffer, then yy_init_buffer was _probably_ + * called from yyrestart() or through yy_get_next_buffer. + * In that case, we don't want to reset the lineno or column. + */ + if (b != YY_CURRENT_BUFFER){ + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; + + errno = oerrno; +} + +/** Discard all buffered characters. On the next scan, YY_INPUT will be called. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. + * + */ + void yy_flush_buffer (YY_BUFFER_STATE b ) +{ + if ( ! b ) + return; + + b->yy_n_chars = 0; + + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[0]; + + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; + + if ( b == YY_CURRENT_BUFFER ) + yy_load_buffer_state( ); +} + +/** Pushes the new state onto the stack. The new state becomes + * the current state. This function will allocate the stack + * if necessary. + * @param new_buffer The new state. + * + */ +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) +{ + if (new_buffer == NULL) + return; + + yyensure_buffer_stack(); + + /* This block is copied from yy_switch_to_buffer. */ + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + (yy_buffer_stack_top)++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from yy_switch_to_buffer. */ + yy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; +} + +/** Removes and deletes the top of the stack, if present. + * The next element becomes the new top. + * + */ +void yypop_buffer_state (void) +{ + if (!YY_CURRENT_BUFFER) + return; + + yy_delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + if ((yy_buffer_stack_top) > 0) + --(yy_buffer_stack_top); + + if (YY_CURRENT_BUFFER) { + yy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; + } +} + +/* Allocates the stack if it does not exist. + * Guarantees space for at least one push. + */ +static void yyensure_buffer_stack (void) +{ + yy_size_t num_to_alloc; + + if (!(yy_buffer_stack)) { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc + (num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); + + (yy_buffer_stack_max) = num_to_alloc; + (yy_buffer_stack_top) = 0; + return; + } + + if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ + + /* Increase the buffer to prepare for a possible push. */ + int grow_size = 8 /* arbitrary grow size */; + + num_to_alloc = (yy_buffer_stack_max) + grow_size; + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc + ((yy_buffer_stack), + num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + /* zero only the new slots.*/ + memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); + (yy_buffer_stack_max) = num_to_alloc; + } +} + +/** Setup the input buffer state to scan directly from a user-specified character buffer. + * @param base the character buffer + * @param size the size in bytes of the character buffer + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) +{ + YY_BUFFER_STATE b; + + if ( size < 2 || + base[size-2] != YY_END_OF_BUFFER_CHAR || + base[size-1] != YY_END_OF_BUFFER_CHAR ) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + yy_switch_to_buffer(b ); + + return b; +} + +/** Setup the input buffer state to scan a string. The next call to yylex() will + * scan from a @e copy of @a str. + * @param yystr a NUL-terminated string to scan + * + * @return the newly allocated buffer state object. + * @note If you want to scan bytes that may contain NUL values, then use + * yy_scan_bytes() instead. + */ +YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) +{ + + return yy_scan_bytes(yystr,strlen(yystr) ); +} + +/** Setup the input buffer state to scan the given bytes. The next call to yylex() will + * scan from a @e copy of @a bytes. + * @param yybytes the byte buffer to scan + * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +{ + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + int i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = _yybytes_len + 2; + buf = (char *) yyalloc(n ); + if ( ! buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); + + for ( i = 0; i < _yybytes_len; ++i ) + buf[i] = yybytes[i]; + + buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; + + b = yy_scan_buffer(buf,n ); + if ( ! b ) + YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; +} + +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 +#endif + +static void yy_fatal_error (yyconst char* msg ) +{ + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); +} + +/* Redefine yyless() so it works in section 3 code. */ + +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + yytext[yyleng] = (yy_hold_char); \ + (yy_c_buf_p) = yytext + yyless_macro_arg; \ + (yy_hold_char) = *(yy_c_buf_p); \ + *(yy_c_buf_p) = '\0'; \ + yyleng = yyless_macro_arg; \ + } \ + while ( 0 ) + +/* Accessor methods (get/set functions) to struct members. */ + +/** Get the current line number. + * + */ +int yyget_lineno (void) +{ + + return yylineno; +} + +/** Get the input stream. + * + */ +FILE *yyget_in (void) +{ + return yyin; +} + +/** Get the output stream. + * + */ +FILE *yyget_out (void) +{ + return yyout; +} + +/** Get the length of the current token. + * + */ +yy_size_t yyget_leng (void) +{ + return yyleng; +} + +/** Get the current token. + * + */ + +char *yyget_text (void) +{ + return yytext; +} + +/** Set the current line number. + * @param line_number + * + */ +void yyset_lineno (int line_number ) +{ + + yylineno = line_number; +} + +/** Set the input stream. This does not discard the current + * input buffer. + * @param in_str A readable stream. + * + * @see yy_switch_to_buffer + */ +void yyset_in (FILE * in_str ) +{ + yyin = in_str ; +} + +void yyset_out (FILE * out_str ) +{ + yyout = out_str ; +} + +int yyget_debug (void) +{ + return yy_flex_debug; +} + +void yyset_debug (int bdebug ) +{ + yy_flex_debug = bdebug ; +} + +static int yy_init_globals (void) +{ + /* Initialization is the same as for the non-reentrant scanner. + * This function is called from yylex_destroy(), so don't allocate here. + */ + + (yy_buffer_stack) = 0; + (yy_buffer_stack_top) = 0; + (yy_buffer_stack_max) = 0; + (yy_c_buf_p) = (char *) 0; + (yy_init) = 0; + (yy_start) = 0; + +/* Defined in main.c */ +#ifdef YY_STDINIT + yyin = stdin; + yyout = stdout; +#else + yyin = (FILE *) 0; + yyout = (FILE *) 0; +#endif + + /* For future reference: Set errno on error, since we are called by + * yylex_init() + */ + return 0; +} + +/* yylex_destroy is for both reentrant and non-reentrant scanners. */ +int yylex_destroy (void) +{ + + /* Pop the buffer stack, destroying each element. */ + while(YY_CURRENT_BUFFER){ + yy_delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + yypop_buffer_state(); + } + + /* Destroy the stack itself. */ + yyfree((yy_buffer_stack) ); + (yy_buffer_stack) = NULL; + + /* Reset the globals. This is important in a non-reentrant scanner so the next time + * yylex() is called, initialization will occur. */ + yy_init_globals( ); + + return 0; +} + +/* + * Internal utility routines. + */ + +#ifndef yytext_ptr +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +{ + register int i; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; +} +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * s ) +{ + register int n; + for ( n = 0; s[n]; ++n ) + ; + + return n; +} +#endif + +void *yyalloc (yy_size_t size ) +{ + return (void *) malloc( size ); +} + +void *yyrealloc (void * ptr, yy_size_t size ) +{ + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return (void *) realloc( (char *) ptr, size ); +} + +void yyfree (void * ptr ) +{ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ +} + +#define YYTABLES_NAME "yytables" + +#line 321 "wileyEndNoteFilt.ll" + + + +int main(int argc, char *argv[]) +{ + ++argv, --argc; /* Skip over program name. */ + if (argc > 0) + yyin = fopen(argv[0], "r"); + else + yyin = stdin; + yylex(); + return 0 ; +} + diff --git a/biblio/bibtex/utils/r2bib/wileyEndNoteFilt.ll b/biblio/bibtex/utils/r2bib/wileyEndNoteFilt.ll new file mode 100644 index 0000000000..7ebcf5ec6a --- /dev/null +++ b/biblio/bibtex/utils/r2bib/wileyEndNoteFilt.ll @@ -0,0 +1,332 @@ + /* This is a lex(1) file, see http://dinosaur.compilertools.net/ + * or http://en.wikipedia.org/wiki/Lex_programming_tool . + * + * Compilation on UNIX systems is done by + * make wileyEndNoteFilt + * On other systems one may need to call lex or flex and cc explicitly: + * lex -8 -o wileyEndNoteFilt.c wileyEndNoteFilt.l + * cc [-s] [-O] [-D MSDOS] [-D WILEYENDNOTERIS] -o wileyEndNoteFilt wileyEndNoteFilt.c -ll + * + * Definition of the macro MSDOS means that the output is rewritten + * with CR+LF line terminators (which alternatively can be achieved + * by the standard unix2dos(1)). + * + * Definition of the macro WILEYENDNOTERIS means that the RIS type tags + * "A1 - " and "A2 - " are handled supposing that there is only + * one name per line and swapping first and last names. + * + * The executable works as a filter and converts author names produced + * by downloading EndNote files from Wiley's web pages such that they become + * standardized. This means: the initials (first names) and last names of authors + * are swapped and separated by a comma on output, and multiple + * authors become separate lines. + * + * Use examples: + * cat *.enw | wileyEndNoteFilt + * cat *.enw | recode h1..h4 | wileyEndNoteFilt > tmp.end ; end2xml tmp.end > tmp.xml + * + * Notes: + * The filter changes lines of the %A or %E tag containing at least one author. + * This means (i) the author list is only parsed until a line feed, so author + * lists continued on lines that do not start with another tag will remain + * incomplete + * (ii) a tag followed by no author is copied through unchanged. + * + * Richard J. Mathar, 2010-01-21 + */ +%option noyywrap + +%{ +#include <string.h> +#include <stdlib.h> + +/* remove trailing carriage return and line feeds from inp +* (this string may be changed on output). +*/ +void trimlf(char *inp) +{ + /* point to the last non-0 character */ + char *c = inp+strlen(inp)-1 ; + while ( *c == '\n' || *c == '\r' ) + *c-- = '\0' ; +} + +/* remove blanks at the start and/or end of inp +* (this string may be changed on output). +*/ +void trim(char *inp) +{ + /* point to the last non-0 character */ + char *c = inp+strlen(inp)-1 ; + while ( *c == ' ') + *c-- = '\0' ; + + while( *inp == ' ') + memmove(inp,inp+1,strlen(inp)) ; +} + +#define WILEYENDNOTEFILT_MAX_AUTH 2048 +#define WILEYENDNOTEFILT_MAX_TRAIL 32 + +/* Handle a single name without any separator +* @param inp A string of the form "firstname middle-name lastname". +*/ +void revStr1(char *inp, const char *tag) +{ + + /* Search for the last blank, usually right before the last name. + * This does not yet handle cases like Marvin D. den Anker + * with composite last names, or Henry Ford II with roman numbers like I + * or II following... + */ + char * lastbl=strrchr(inp,' ') ; + + if ( lastbl != inp ) + { + /* the revised string: lastname, firstinitls[, trail]; */ + char resul[WILEYENDNOTEFILT_MAX_AUTH] ; + + /* a trailing portion like Jr., II etc. German cases like Dr. Werner von Braun, where "Dr." is + * part of the trialing portion but syntactically in front of the first name are not handled + * correctly. Similarly "Pope Paul Benedict" will yield strange results. + * We also assume that the roman numerals are not followed by dots. + */ + char trail[WILEYENDNOTEFILT_MAX_TRAIL] ; + + int lastl ; + + memset(trail,'\0',WILEYENDNOTEFILT_MAX_TRAIL) ; + + /* back up if this is a composite name followed by Jr., Sr. or a dotless Roman numeral from I to VII */ + if ( strcmp(lastbl," I")==0 || strcmp(lastbl," II")==0 || strcmp(lastbl," III")==0 || strcmp(lastbl," Jr.")==0 + || strcmp(lastbl," IV")==0 || strcmp(lastbl," V")==0 || strcmp(lastbl," VI")==0 || strcmp(lastbl," VII")==0 + || strcmp(lastbl," Sr.")==0 + ) + { + /* copy the trailing piece over and chop it off the original string + */ + sprintf(trail,",%s",lastbl) ; + *lastbl = '\0' ; + lastbl=strrchr(inp,' ') ; + } + + /* Start of the surname. Derived names of Spanish, Dutch or German origin. Does not catch the German + * "Graefin" or similar titles which use diacritical vocals. + * Start with the longest matches (that is: catch the "Baron" in "Baron von Munchhausen", not the "von"). + */ + char * surn= strstr(inp," Baron ") ; /* triggers also Baron von Munchhausen, for example */ + if ( surn == NULL) + surn= strstr(inp," Duke ") ; + if ( surn == NULL) + surn= strstr(inp," Earl ") ; + if ( surn == NULL) + surn= strstr(inp," Graf ") ; /* triggers also "Graf von", "Graf zu" etc */ + if ( surn == NULL) + surn= strstr(inp," Gr\344fin ") ; /* assume U+00E4 for the diaresis in UTF-8 */ + if ( surn == NULL) + surn= strstr(inp," Herzog ") ; + if ( surn == NULL) + surn= strstr(inp," v. d. ") ; + if ( surn == NULL) + surn= strstr(inp," von ") ; /* triggers also on "von der" */ + if ( surn == NULL) + surn= strstr(inp," Von ") ; + if ( surn == NULL) + surn= strstr(inp," van ") ; /* triggers also "van den", "van der", "van de" */ + if ( surn == NULL) + surn= strstr(inp," Van ") ; /* Van Morrisson is intepreted as a last name */ + if ( surn == NULL) + surn= strstr(inp," da ") ; + if ( surn == NULL) + surn= strstr(inp," Da ") ; + if ( surn == NULL) + surn= strstr(inp," de ") ; + if ( surn == NULL) + surn= strstr(inp," De ") ; + if ( surn == NULL) + surn= strstr(inp," du ") ; + if ( surn == NULL) + surn= strstr(inp," Du ") ; + if ( surn == NULL) + surn= strstr(inp," do ") ; + if ( surn == NULL) + surn= strstr(inp," Do ") ; + if ( surn == NULL) + surn= strstr(inp," della ") ; + if ( surn == NULL) + surn= strstr(inp," Della ") ; + if ( surn == NULL) + surn= strstr(inp," le ") ; + if ( surn == NULL) + surn= strstr(inp," Le ") ; + if ( surn == NULL) + surn= strstr(inp," dos ") ; + if ( surn == NULL) + surn= strstr(inp," Dos ") ; + if ( surn == NULL) + surn= strstr(inp," ter ") ; + if ( surn == NULL) + surn= strstr(inp," Ter ") ; + if ( surn == NULL) + surn= strstr(inp," ten ") ; + if ( surn == NULL) + surn= strstr(inp," Ten ") ; + /* the cases "e" and "i" are handled unsafely here: + * probably another component of the family name + * precedes these */ + if ( surn == NULL) + surn= strstr(inp," e ") ; + if ( surn == NULL) + surn= strstr(inp," E ") ; + if ( surn == NULL) + surn= strstr(inp," i ") ; + if ( surn == NULL) + surn= strstr(inp," de ") ; + if ( surn == NULL) + surn= strstr(inp," De ") ; + if ( surn == NULL) + surn= strstr(inp," den ") ; + if ( surn == NULL) + surn= strstr(inp," Den ") ; + + /* if no such modifier is found: assume the last name starts at the last blank */ + if ( surn == NULL) + surn= lastbl ; + + lastl= strlen(inp)-(surn-inp)-1 ; + memset(resul,'\0',WILEYENDNOTEFILT_MAX_AUTH) ; + strncpy(resul,surn+1,lastl) ; + + if ( surn != inp) + { + /* output separator comma: lastname, firstname. Firstname starts with a blank. */ + strcat(resul,",") ; +#ifdef WILEYENDNOTEFILT_RIS + strcat(resul," ") ; +#endif + strncat(resul,inp,surn-inp) ; + } + + /* if there is a trailing portion append. Usually this is + * just '\0' and appending does not hurt. + */ + strcat(resul,trail) ; + + trim(resul) ; +#ifdef MSDOS + fprintf(yyout,"%s %s\r\n",tag,resul) ; +#else + fprintf(yyout,"%s %s\n",tag,resul) ; +#endif + } + else + /* If there is no blank, this is probably a single last name, which we copy as is + * (without comma) to stdout. + */ +#ifdef MSDOS + fprintf(yyout,"%s%s\r\n",tag,inp) ; +#else + fprintf(yyout,"%s%s\n",tag,inp) ; +#endif +} +#undef WILEYENDNOTEFILT_MAX_AUTH +#undef WILEYENDNOTEFILT_MAX_TRAIL + +/** Split the line (without the starting "%A " or "%E " EndNote tag) into +* the individual authors (which are each followed by a comma). +* @param inp A string of the form "first-author, second-author, last-author," +* or "first-author, second-author, last-author" or "first-author". +* @param tag The "%A" or "%E" +*/ +void revStr(const char *inp, const char *tag) +{ + /* strtok(3) modifies 'inp', so we construct a temporary copy. + */ + char *inpsave = (char *) malloc((strlen(inp)+1)*sizeof(char)) ; + char *tok ; + char *tokreent ; + + strcpy(inpsave,inp) ; + trimlf(inpsave) ; + /* Loop over all terminating separators (=commas) */ + tok = inpsave ; + +#ifdef WILEYENDNOTEFILT_RIS + trim(tok) ; + revStr1(tok,tag) ; +#else + + + tok = strtok_r(inpsave,",",&tokreent) ; + while(tok) + { + + /* skip leading white space in author names + while(*tok == ' ') + tok++ ; + */ + + /* pass the "firstinit secndinit lastname" to the subroutine + * without the comma separator. + */ + revStr1(tok,tag) ; + tok = strtok_r(NULL,",",&tokreent) ; + } +#endif + free(inpsave) ; +} +%} + +TAGA "%A " +TAGARIS "A1 - " +TAGE "%E " +TAGERIS "A2 - " +%% +{TAGA}.+\n { + + /* if this is a tag followed by one or more authors, push the list + * of authors, including the LF, the initial blank after the tag and all commas, to revStr(). + */ + revStr(yytext+2,"%A") ; + } +{TAGARIS}.+\n { + +#ifdef WILEYENDNOTEFILT_RIS + /* if this is a tag followed by one or more authors, push the list + * of authors, including the LF, the initial blank after the tag and all commas, to revStr(). + */ + revStr(yytext+5,"A1 -") ; +#else + fprintf(yyout,"%s",yytext) ; +#endif + } + +{TAGE}.+\n { + + /* Same as above for the list of editors. + */ + revStr(yytext+2,"%E") ; + } + +{TAGERIS}.+\n { + +#ifdef WILEYENDNOTEFILT_RIS + /* Same as above for the list of editors. + */ + revStr(yytext+5,"A2 -") ; +#else + fprintf(yyout,"%s",yytext) ; +#endif + } +%% + +int main(int argc, char *argv[]) +{ + ++argv, --argc; /* Skip over program name. */ + if (argc > 0) + yyin = fopen(argv[0], "r"); + else + yyin = stdin; + yylex(); + return 0 ; +} diff --git a/biblio/bibtex/utils/r2bib/ylwrap b/biblio/bibtex/utils/r2bib/ylwrap new file mode 100755 index 0000000000..1c4d77612c --- /dev/null +++ b/biblio/bibtex/utils/r2bib/ylwrap @@ -0,0 +1,249 @@ +#! /bin/sh +# ylwrap - wrapper for lex/yacc invocations. + +scriptversion=2012-12-21.17; # UTC + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# +# Written by Tom Tromey <tromey@cygnus.com>. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to <bug-automake@gnu.org> or send patches to +# <automake-patches@gnu.org>. + +get_dirname () +{ + case $1 in + */*|*\\*) printf '%s\n' "$1" | sed -e 's|\([\\/]\)[^\\/]*$|\1|';; + # Otherwise, we want the empty string (not "."). + esac +} + +# guard FILE +# ---------- +# The CPP macro used to guard inclusion of FILE. +guard() +{ + printf '%s\n' "$1" \ + | sed \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ + -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g' \ + -e 's/__*/_/g' +} + +# quote_for_sed [STRING] +# ---------------------- +# Return STRING (or stdin) quoted to be used as a sed pattern. +quote_for_sed () +{ + case $# in + 0) cat;; + 1) printf '%s\n' "$1";; + esac \ + | sed -e 's|[][\\.*]|\\&|g' +} + +case "$1" in + '') + echo "$0: No files given. Try '$0 --help' for more information." 1>&2 + exit 1 + ;; + --basedir) + basedir=$2 + shift 2 + ;; + -h|--h*) + cat <<\EOF +Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]... + +Wrapper for lex/yacc invocations, renaming files as desired. + + INPUT is the input file + OUTPUT is one file PROG generates + DESIRED is the file we actually want instead of OUTPUT + PROGRAM is program to run + ARGS are passed to PROG + +Any number of OUTPUT,DESIRED pairs may be used. + +Report bugs to <bug-automake@gnu.org>. +EOF + exit $? + ;; + -v|--v*) + echo "ylwrap $scriptversion" + exit $? + ;; +esac + + +# The input. +input="$1" +shift +# We'll later need for a correct munging of "#line" directives. +input_sub_rx=`get_dirname "$input" | quote_for_sed` +case "$input" in + [\\/]* | ?:[\\/]*) + # Absolute path; do nothing. + ;; + *) + # Relative path. Make it absolute. + input="`pwd`/$input" + ;; +esac +input_rx=`get_dirname "$input" | quote_for_sed` + +# Since DOS filename conventions don't allow two dots, +# the DOS version of Bison writes out y_tab.c instead of y.tab.c +# and y_tab.h instead of y.tab.h. Test to see if this is the case. +y_tab_nodot=false +if test -f y_tab.c || test -f y_tab.h; then + y_tab_nodot=true +fi + +# The parser itself, the first file, is the destination of the .y.c +# rule in the Makefile. +parser=$1 + +# A sed program to s/FROM/TO/g for all the FROM/TO so that, for +# instance, we rename #include "y.tab.h" into #include "parse.h" +# during the conversion from y.tab.c to parse.c. +sed_fix_filenames= + +# Also rename header guards, as Bison 2.7 for instance uses its header +# guard in its implementation file. +sed_fix_header_guards= + +while test "$#" -ne 0; do + if test "$1" = "--"; then + shift + break + fi + from=$1 + # Handle y_tab.c and y_tab.h output by DOS + if $y_tab_nodot; then + case $from in + "y.tab.c") from=y_tab.c;; + "y.tab.h") from=y_tab.h;; + esac + fi + shift + to=$1 + shift + sed_fix_filenames="${sed_fix_filenames}s|"`quote_for_sed "$from"`"|$to|g;" + sed_fix_header_guards="${sed_fix_header_guards}s|"`guard "$from"`"|"`guard "$to"`"|g;" +done + +# The program to run. +prog="$1" +shift +# Make any relative path in $prog absolute. +case "$prog" in + [\\/]* | ?:[\\/]*) ;; + *[\\/]*) prog="`pwd`/$prog" ;; +esac + +# FIXME: add hostname here for parallel makes that run commands on +# other machines. But that might take us over the 14-char limit. +dirname=ylwrap$$ +do_exit="cd '`pwd`' && rm -rf $dirname > /dev/null 2>&1;"' (exit $ret); exit $ret' +trap "ret=129; $do_exit" 1 +trap "ret=130; $do_exit" 2 +trap "ret=141; $do_exit" 13 +trap "ret=143; $do_exit" 15 +mkdir $dirname || exit 1 + +cd $dirname + +case $# in + 0) "$prog" "$input" ;; + *) "$prog" "$@" "$input" ;; +esac +ret=$? + +if test $ret -eq 0; then + for from in * + do + to=`printf '%s\n' "$from" | sed "$sed_fix_filenames"` + if test -f "$from"; then + # If $2 is an absolute path name, then just use that, + # otherwise prepend '../'. + case $to in + [\\/]* | ?:[\\/]*) target=$to;; + *) target="../$to";; + esac + + # Do not overwrite unchanged header files to avoid useless + # recompilations. Always update the parser itself: it is the + # destination of the .y.c rule in the Makefile. Divert the + # output of all other files to a temporary file so we can + # compare them to existing versions. + if test $from != $parser; then + realtarget="$target" + target=tmp-`printf '%s\n' "$target" | sed 's|.*[\\/]||g'` + fi + + # Munge "#line" or "#" directives. Don't let the resulting + # debug information point at an absolute srcdir. Use the real + # output file name, not yy.lex.c for instance. Adjust the + # include guards too. + sed -e "/^#/!b" \ + -e "s|$input_rx|$input_sub_rx|" \ + -e "$sed_fix_filenames" \ + -e "$sed_fix_header_guards" \ + "$from" >"$target" || ret=$? + + # Check whether files must be updated. + if test "$from" != "$parser"; then + if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then + echo "$to is unchanged" + rm -f "$target" + else + echo "updating $to" + mv -f "$target" "$realtarget" + fi + fi + else + # A missing file is only an error for the parser. This is a + # blatant hack to let us support using "yacc -d". If -d is not + # specified, don't fail when the header file is "missing". + if test "$from" = "$parser"; then + ret=1 + fi + fi + done +fi + +# Remove the directory. +cd .. +rm -rf $dirname + +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: |