1/* A Bison parser, made by GNU Bison 3.5. */ 2 3/* Bison implementation for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, 6 Inc. 7 8 This program is free software: you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation, either version 3 of the License, or 11 (at your option) any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 20 21/* As a special exception, you may create a larger work that contains 22 part or all of the Bison parser skeleton and distribute that work 23 under terms of your choice, so long as that work isn't itself a 24 parser generator using the skeleton or a modified version thereof 25 as a parser skeleton. Alternatively, if you modify or redistribute 26 the parser skeleton itself, you may (at your option) remove this 27 special exception, which will cause the skeleton and the resulting 28 Bison output files to be licensed under the GNU General Public 29 License without this special exception. 30 31 This special exception was added by the Free Software Foundation in 32 version 2.2 of Bison. */ 33 34/* C LALR(1) parser skeleton written by Richard Stallman, by 35 simplifying the original so-called "semantic" parser. */ 36 37/* All symbols defined below should begin with yy or YY, to avoid 38 infringing on user name space. This should be done even for local 39 variables, as they might otherwise be expanded by user macros. 40 There are some unavoidable exceptions within include files to 41 define necessary library symbols; they are noted "INFRINGES ON 42 USER NAME SPACE" below. */ 43 44/* Undocumented macros, especially those whose name start with YY_, 45 are private implementation details. Do not rely on them. */ 46 47/* Identify Bison output. */ 48#define YYBISON 1 49 50/* Bison version. */ 51#define YYBISON_VERSION "3.5" 52 53/* Skeleton name. */ 54#define YYSKELETON_NAME "yacc.c" 55 56/* Pure parsers. */ 57#define YYPURE 1 58 59/* Push parsers. */ 60#define YYPUSH 0 61 62/* Pull parsers. */ 63#define YYPULL 1 64 65 66/* Substitute the variable and function names. */ 67#define yyparse GSRTFparse 68#define yylex GSRTFlex 69#define yyerror GSRTFerror 70#define yydebug GSRTFdebug 71#define yynerrs GSRTFnerrs 72 73/* First part of user prologue. */ 74#line 36 "rtfGrammar.y" 75 76 77/* 78 The overall plan is to make this grammer universal in usage. 79 Intrested buddies can implement plain C functions to consume what 80 the grammer is producing. this way the rtf-grammer-tree can be 81 converted to what is needed: GNUstep attributed strings, tex files, 82 ... 83 84 The plan is laid out by defining a set of C functions which cover 85 all what is needed to mangle rtf information (it is NeXT centric 86 however and may even lack some features). Be aware that some 87 functions are called at specific times when some information may or 88 may not be available. The first argument of all functions is a 89 context, which is asked to be maintained by the consumer at 90 whichever purpose seems appropriate. This context must be passed to 91 the parser by issuing 'value = GSRTFparse(ctxt, lctxt);' in the 92 first place. 93*/ 94 95#import <AppKit/AppKit.h> 96#include <stdlib.h> 97#include <string.h> 98#include "rtfScanner.h" 99 100/* this context is passed to the interface functions */ 101typedef void *GSRTFctxt; 102/*#undef YYLSP_NEEDED*/ 103#define CTXT ctxt 104 105#define YYERROR_VERBOSE 106#define YYDEBUG 1 107 108#include "RTFConsumerFunctions.h" 109/*int GSRTFlex (YYSTYPE *lvalp, RTFscannerCtxt *lctxt); */ 110int GSRTFlex(void *lvalp, void *lctxt); 111 112/* */ 113int fieldStart = 0; 114 115 116#line 117 "rtfGrammar.tab.m" 117 118# ifndef YY_CAST 119# ifdef __cplusplus 120# define YY_CAST(Type, Val) static_cast<Type> (Val) 121# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val) 122# else 123# define YY_CAST(Type, Val) ((Type) (Val)) 124# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) 125# endif 126# endif 127# ifndef YY_NULLPTR 128# if defined __cplusplus 129# if 201103L <= __cplusplus 130# define YY_NULLPTR nullptr 131# else 132# define YY_NULLPTR 0 133# endif 134# else 135# define YY_NULLPTR ((void*)0) 136# endif 137# endif 138 139/* Enabling verbose error messages. */ 140#ifdef YYERROR_VERBOSE 141# undef YYERROR_VERBOSE 142# define YYERROR_VERBOSE 1 143#else 144# define YYERROR_VERBOSE 0 145#endif 146 147/* Use api.header.include to #include this header 148 instead of duplicating it here. */ 149#ifndef YY_GSRTF_RTFGRAMMAR_TAB_H_INCLUDED 150# define YY_GSRTF_RTFGRAMMAR_TAB_H_INCLUDED 151/* Debug traces. */ 152#ifndef YYDEBUG 153# define YYDEBUG 0 154#endif 155#if YYDEBUG 156extern int GSRTFdebug; 157#endif 158 159/* Token type. */ 160#ifndef YYTOKENTYPE 161# define YYTOKENTYPE 162 enum yytokentype 163 { 164 RTFtext = 258, 165 RTFstart = 259, 166 RTFansi = 260, 167 RTFmac = 261, 168 RTFpc = 262, 169 RTFpca = 263, 170 RTFignore = 264, 171 RTFinfo = 265, 172 RTFstylesheet = 266, 173 RTFfootnote = 267, 174 RTFheader = 268, 175 RTFfooter = 269, 176 RTFpict = 270, 177 RTFplain = 271, 178 RTFparagraph = 272, 179 RTFdefaultParagraph = 273, 180 RTFrow = 274, 181 RTFcell = 275, 182 RTFtabulator = 276, 183 RTFemdash = 277, 184 RTFendash = 278, 185 RTFemspace = 279, 186 RTFenspace = 280, 187 RTFbullet = 281, 188 RTFfield = 282, 189 RTFfldinst = 283, 190 RTFfldalt = 284, 191 RTFfldrslt = 285, 192 RTFflddirty = 286, 193 RTFfldedit = 287, 194 RTFfldlock = 288, 195 RTFfldpriv = 289, 196 RTFfttruetype = 290, 197 RTFlquote = 291, 198 RTFrquote = 292, 199 RTFldblquote = 293, 200 RTFrdblquote = 294, 201 RTFred = 295, 202 RTFgreen = 296, 203 RTFblue = 297, 204 RTFcolorbg = 298, 205 RTFcolorfg = 299, 206 RTFunderlinecolor = 300, 207 RTFcolortable = 301, 208 RTFfont = 302, 209 RTFfontSize = 303, 210 RTFNeXTGraphic = 304, 211 RTFNeXTGraphicWidth = 305, 212 RTFNeXTGraphicHeight = 306, 213 RTFNeXTHelpLink = 307, 214 RTFNeXTHelpMarker = 308, 215 RTFNeXTfilename = 309, 216 RTFNeXTmarkername = 310, 217 RTFNeXTlinkFilename = 311, 218 RTFNeXTlinkMarkername = 312, 219 RTFpaperWidth = 313, 220 RTFpaperHeight = 314, 221 RTFmarginLeft = 315, 222 RTFmarginRight = 316, 223 RTFmarginTop = 317, 224 RTFmarginButtom = 318, 225 RTFfirstLineIndent = 319, 226 RTFleftIndent = 320, 227 RTFrightIndent = 321, 228 RTFalignCenter = 322, 229 RTFalignJustified = 323, 230 RTFalignLeft = 324, 231 RTFalignRight = 325, 232 RTFlineSpace = 326, 233 RTFspaceAbove = 327, 234 RTFstyle = 328, 235 RTFbold = 329, 236 RTFitalic = 330, 237 RTFunderline = 331, 238 RTFunderlineDot = 332, 239 RTFunderlineDash = 333, 240 RTFunderlineDashDot = 334, 241 RTFunderlineDashDotDot = 335, 242 RTFunderlineDouble = 336, 243 RTFunderlineStop = 337, 244 RTFunderlineThick = 338, 245 RTFunderlineThickDot = 339, 246 RTFunderlineThickDash = 340, 247 RTFunderlineThickDashDot = 341, 248 RTFunderlineThickDashDotDot = 342, 249 RTFunderlineWord = 343, 250 RTFstrikethrough = 344, 251 RTFstrikethroughDouble = 345, 252 RTFunichar = 346, 253 RTFsubscript = 347, 254 RTFsuperscript = 348, 255 RTFtabstop = 349, 256 RTFfcharset = 350, 257 RTFfprq = 351, 258 RTFcpg = 352, 259 RTFansicpg = 353, 260 RTFOtherStatement = 354, 261 RTFfontListStart = 355, 262 RTFfamilyNil = 356, 263 RTFfamilyRoman = 357, 264 RTFfamilySwiss = 358, 265 RTFfamilyModern = 359, 266 RTFfamilyScript = 360, 267 RTFfamilyDecor = 361, 268 RTFfamilyTech = 362, 269 RTFfamilyBiDi = 363 270 }; 271#endif 272 273/* Value type. */ 274#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 275union YYSTYPE 276{ 277#line 82 "rtfGrammar.y" 278 279 int number; 280 const char *text; 281 RTFcmd cmd; 282 283#line 284 "rtfGrammar.tab.m" 284 285}; 286typedef union YYSTYPE YYSTYPE; 287# define YYSTYPE_IS_TRIVIAL 1 288# define YYSTYPE_IS_DECLARED 1 289#endif 290 291 292 293int GSRTFparse (void *ctxt, void *lctxt); 294 295#endif /* !YY_GSRTF_RTFGRAMMAR_TAB_H_INCLUDED */ 296 297 298 299#ifdef short 300# undef short 301#endif 302 303/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure 304 <limits.h> and (if available) <stdint.h> are included 305 so that the code can choose integer types of a good width. */ 306 307#ifndef __PTRDIFF_MAX__ 308# include <limits.h> /* INFRINGES ON USER NAME SPACE */ 309# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ 310# include <stdint.h> /* INFRINGES ON USER NAME SPACE */ 311# define YY_STDINT_H 312# endif 313#endif 314 315/* Narrow types that promote to a signed type and that can represent a 316 signed or unsigned integer of at least N bits. In tables they can 317 save space and decrease cache pressure. Promoting to a signed type 318 helps avoid bugs in integer arithmetic. */ 319 320#ifdef __INT_LEAST8_MAX__ 321typedef __INT_LEAST8_TYPE__ yytype_int8; 322#elif defined YY_STDINT_H 323typedef int_least8_t yytype_int8; 324#else 325typedef signed char yytype_int8; 326#endif 327 328#ifdef __INT_LEAST16_MAX__ 329typedef __INT_LEAST16_TYPE__ yytype_int16; 330#elif defined YY_STDINT_H 331typedef int_least16_t yytype_int16; 332#else 333typedef short yytype_int16; 334#endif 335 336#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ 337typedef __UINT_LEAST8_TYPE__ yytype_uint8; 338#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ 339 && UINT_LEAST8_MAX <= INT_MAX) 340typedef uint_least8_t yytype_uint8; 341#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX 342typedef unsigned char yytype_uint8; 343#else 344typedef short yytype_uint8; 345#endif 346 347#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ 348typedef __UINT_LEAST16_TYPE__ yytype_uint16; 349#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ 350 && UINT_LEAST16_MAX <= INT_MAX) 351typedef uint_least16_t yytype_uint16; 352#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX 353typedef unsigned short yytype_uint16; 354#else 355typedef int yytype_uint16; 356#endif 357 358#ifndef YYPTRDIFF_T 359# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ 360# define YYPTRDIFF_T __PTRDIFF_TYPE__ 361# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ 362# elif defined PTRDIFF_MAX 363# ifndef ptrdiff_t 364# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 365# endif 366# define YYPTRDIFF_T ptrdiff_t 367# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX 368# else 369# define YYPTRDIFF_T long 370# define YYPTRDIFF_MAXIMUM LONG_MAX 371# endif 372#endif 373 374#ifndef YYSIZE_T 375# ifdef __SIZE_TYPE__ 376# define YYSIZE_T __SIZE_TYPE__ 377# elif defined size_t 378# define YYSIZE_T size_t 379# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ 380# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 381# define YYSIZE_T size_t 382# else 383# define YYSIZE_T unsigned 384# endif 385#endif 386 387#define YYSIZE_MAXIMUM \ 388 YY_CAST (YYPTRDIFF_T, \ 389 (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ 390 ? YYPTRDIFF_MAXIMUM \ 391 : YY_CAST (YYSIZE_T, -1))) 392 393#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) 394 395/* Stored state numbers (used for stacks). */ 396typedef yytype_uint8 yy_state_t; 397 398/* State numbers in computations. */ 399typedef int yy_state_fast_t; 400 401#ifndef YY_ 402# if defined YYENABLE_NLS && YYENABLE_NLS 403# if ENABLE_NLS 404# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 405# define YY_(Msgid) dgettext ("bison-runtime", Msgid) 406# endif 407# endif 408# ifndef YY_ 409# define YY_(Msgid) Msgid 410# endif 411#endif 412 413#ifndef YY_ATTRIBUTE_PURE 414# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) 415# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) 416# else 417# define YY_ATTRIBUTE_PURE 418# endif 419#endif 420 421#ifndef YY_ATTRIBUTE_UNUSED 422# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) 423# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) 424# else 425# define YY_ATTRIBUTE_UNUSED 426# endif 427#endif 428 429/* Suppress unused-variable warnings by "using" E. */ 430#if ! defined lint || defined __GNUC__ 431# define YYUSE(E) ((void) (E)) 432#else 433# define YYUSE(E) /* empty */ 434#endif 435 436#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 437/* Suppress an incorrect diagnostic about yylval being uninitialized. */ 438# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 439 _Pragma ("GCC diagnostic push") \ 440 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ 441 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 442# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 443 _Pragma ("GCC diagnostic pop") 444#else 445# define YY_INITIAL_VALUE(Value) Value 446#endif 447#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 448# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 449# define YY_IGNORE_MAYBE_UNINITIALIZED_END 450#endif 451#ifndef YY_INITIAL_VALUE 452# define YY_INITIAL_VALUE(Value) /* Nothing. */ 453#endif 454 455#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ 456# define YY_IGNORE_USELESS_CAST_BEGIN \ 457 _Pragma ("GCC diagnostic push") \ 458 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") 459# define YY_IGNORE_USELESS_CAST_END \ 460 _Pragma ("GCC diagnostic pop") 461#endif 462#ifndef YY_IGNORE_USELESS_CAST_BEGIN 463# define YY_IGNORE_USELESS_CAST_BEGIN 464# define YY_IGNORE_USELESS_CAST_END 465#endif 466 467 468#define YY_ASSERT(E) ((void) (0 && (E))) 469 470#if ! defined yyoverflow || YYERROR_VERBOSE 471 472/* The parser invokes alloca or malloc; define the necessary symbols. */ 473 474# ifdef YYSTACK_USE_ALLOCA 475# if YYSTACK_USE_ALLOCA 476# ifdef __GNUC__ 477# define YYSTACK_ALLOC __builtin_alloca 478# elif defined __BUILTIN_VA_ARG_INCR 479# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ 480# elif defined _AIX 481# define YYSTACK_ALLOC __alloca 482# elif defined _MSC_VER 483# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ 484# define alloca _alloca 485# else 486# define YYSTACK_ALLOC alloca 487# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 488# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 489 /* Use EXIT_SUCCESS as a witness for stdlib.h. */ 490# ifndef EXIT_SUCCESS 491# define EXIT_SUCCESS 0 492# endif 493# endif 494# endif 495# endif 496# endif 497 498# ifdef YYSTACK_ALLOC 499 /* Pacify GCC's 'empty if-body' warning. */ 500# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 501# ifndef YYSTACK_ALLOC_MAXIMUM 502 /* The OS might guarantee only one guard page at the bottom of the stack, 503 and a page size can be as small as 4096 bytes. So we cannot safely 504 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number 505 to allow for a few compiler-allocated temporary stack slots. */ 506# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ 507# endif 508# else 509# define YYSTACK_ALLOC YYMALLOC 510# define YYSTACK_FREE YYFREE 511# ifndef YYSTACK_ALLOC_MAXIMUM 512# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 513# endif 514# if (defined __cplusplus && ! defined EXIT_SUCCESS \ 515 && ! ((defined YYMALLOC || defined malloc) \ 516 && (defined YYFREE || defined free))) 517# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 518# ifndef EXIT_SUCCESS 519# define EXIT_SUCCESS 0 520# endif 521# endif 522# ifndef YYMALLOC 523# define YYMALLOC malloc 524# if ! defined malloc && ! defined EXIT_SUCCESS 525void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 526# endif 527# endif 528# ifndef YYFREE 529# define YYFREE free 530# if ! defined free && ! defined EXIT_SUCCESS 531void free (void *); /* INFRINGES ON USER NAME SPACE */ 532# endif 533# endif 534# endif 535#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ 536 537 538#if (! defined yyoverflow \ 539 && (! defined __cplusplus \ 540 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 541 542/* A type that is properly aligned for any stack member. */ 543union yyalloc 544{ 545 yy_state_t yyss_alloc; 546 YYSTYPE yyvs_alloc; 547}; 548 549/* The size of the maximum gap between one aligned stack and the next. */ 550# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) 551 552/* The size of an array large to enough to hold all stacks, each with 553 N elements. */ 554# define YYSTACK_BYTES(N) \ 555 ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ 556 + YYSTACK_GAP_MAXIMUM) 557 558# define YYCOPY_NEEDED 1 559 560/* Relocate STACK from its old location to the new one. The 561 local variables YYSIZE and YYSTACKSIZE give the old and new number of 562 elements in the stack, and YYPTR gives the new location of the 563 stack. Advance YYPTR to a properly aligned location for the next 564 stack. */ 565# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 566 do \ 567 { \ 568 YYPTRDIFF_T yynewbytes; \ 569 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 570 Stack = &yyptr->Stack_alloc; \ 571 yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ 572 yyptr += yynewbytes / YYSIZEOF (*yyptr); \ 573 } \ 574 while (0) 575 576#endif 577 578#if defined YYCOPY_NEEDED && YYCOPY_NEEDED 579/* Copy COUNT objects from SRC to DST. The source and destination do 580 not overlap. */ 581# ifndef YYCOPY 582# if defined __GNUC__ && 1 < __GNUC__ 583# define YYCOPY(Dst, Src, Count) \ 584 __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) 585# else 586# define YYCOPY(Dst, Src, Count) \ 587 do \ 588 { \ 589 YYPTRDIFF_T yyi; \ 590 for (yyi = 0; yyi < (Count); yyi++) \ 591 (Dst)[yyi] = (Src)[yyi]; \ 592 } \ 593 while (0) 594# endif 595# endif 596#endif /* !YYCOPY_NEEDED */ 597 598/* YYFINAL -- State number of the termination state. */ 599#define YYFINAL 4 600/* YYLAST -- Last index in YYTABLE. */ 601#define YYLAST 1750 602 603/* YYNTOKENS -- Number of terminals. */ 604#define YYNTOKENS 111 605/* YYNNTS -- Number of nonterminals. */ 606#define YYNNTS 45 607/* YYNRULES -- Number of rules. */ 608#define YYNRULES 144 609/* YYNSTATES -- Number of states. */ 610#define YYNSTATES 219 611 612#define YYUNDEFTOK 2 613#define YYMAXUTOK 363 614 615 616/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM 617 as returned by yylex, with out-of-bounds checking. */ 618#define YYTRANSLATE(YYX) \ 619 (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 620 621/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 622 as returned by yylex. */ 623static const yytype_int8 yytranslate[] = 624{ 625 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 626 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 627 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 628 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 629 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 630 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 631 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 632 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 633 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 634 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 635 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 636 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 637 2, 2, 2, 109, 2, 110, 2, 2, 2, 2, 638 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 639 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 640 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 641 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 642 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 643 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 644 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 645 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 646 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 647 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 648 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 649 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 650 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 651 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 652 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 653 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 654 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 655 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 656 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 657 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 658 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 659 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 660 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 661 105, 106, 107, 108 662}; 663 664#if YYDEBUG 665 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ 666static const yytype_int16 yyrline[] = 667{ 668 0, 207, 207, 207, 207, 210, 211, 212, 213, 214, 669 217, 218, 219, 220, 221, 222, 223, 224, 227, 227, 670 228, 228, 229, 229, 230, 230, 231, 231, 232, 232, 671 233, 233, 234, 234, 235, 235, 236, 240, 240, 241, 672 244, 245, 246, 247, 248, 251, 252, 255, 256, 256, 673 256, 257, 260, 261, 264, 265, 268, 269, 270, 277, 674 284, 291, 298, 305, 312, 319, 326, 333, 340, 347, 675 354, 361, 362, 363, 364, 365, 372, 373, 374, 375, 676 382, 389, 396, 403, 410, 417, 424, 431, 438, 445, 677 452, 459, 466, 467, 474, 481, 488, 495, 502, 509, 678 515, 516, 517, 518, 519, 520, 524, 525, 526, 527, 679 539, 539, 539, 554, 554, 554, 568, 568, 568, 577, 680 580, 581, 582, 583, 589, 592, 595, 599, 600, 601, 681 602, 603, 604, 609, 610, 611, 612, 613, 614, 615, 682 623, 626, 627, 631, 636 683}; 684#endif 685 686#if YYDEBUG || YYERROR_VERBOSE || 0 687/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 688 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 689static const char *const yytname[] = 690{ 691 "$end", "error", "$undefined", "RTFtext", "RTFstart", "RTFansi", 692 "RTFmac", "RTFpc", "RTFpca", "RTFignore", "RTFinfo", "RTFstylesheet", 693 "RTFfootnote", "RTFheader", "RTFfooter", "RTFpict", "RTFplain", 694 "RTFparagraph", "RTFdefaultParagraph", "RTFrow", "RTFcell", 695 "RTFtabulator", "RTFemdash", "RTFendash", "RTFemspace", "RTFenspace", 696 "RTFbullet", "RTFfield", "RTFfldinst", "RTFfldalt", "RTFfldrslt", 697 "RTFflddirty", "RTFfldedit", "RTFfldlock", "RTFfldpriv", "RTFfttruetype", 698 "RTFlquote", "RTFrquote", "RTFldblquote", "RTFrdblquote", "RTFred", 699 "RTFgreen", "RTFblue", "RTFcolorbg", "RTFcolorfg", "RTFunderlinecolor", 700 "RTFcolortable", "RTFfont", "RTFfontSize", "RTFNeXTGraphic", 701 "RTFNeXTGraphicWidth", "RTFNeXTGraphicHeight", "RTFNeXTHelpLink", 702 "RTFNeXTHelpMarker", "RTFNeXTfilename", "RTFNeXTmarkername", 703 "RTFNeXTlinkFilename", "RTFNeXTlinkMarkername", "RTFpaperWidth", 704 "RTFpaperHeight", "RTFmarginLeft", "RTFmarginRight", "RTFmarginTop", 705 "RTFmarginButtom", "RTFfirstLineIndent", "RTFleftIndent", 706 "RTFrightIndent", "RTFalignCenter", "RTFalignJustified", "RTFalignLeft", 707 "RTFalignRight", "RTFlineSpace", "RTFspaceAbove", "RTFstyle", "RTFbold", 708 "RTFitalic", "RTFunderline", "RTFunderlineDot", "RTFunderlineDash", 709 "RTFunderlineDashDot", "RTFunderlineDashDotDot", "RTFunderlineDouble", 710 "RTFunderlineStop", "RTFunderlineThick", "RTFunderlineThickDot", 711 "RTFunderlineThickDash", "RTFunderlineThickDashDot", 712 "RTFunderlineThickDashDotDot", "RTFunderlineWord", "RTFstrikethrough", 713 "RTFstrikethroughDouble", "RTFunichar", "RTFsubscript", "RTFsuperscript", 714 "RTFtabstop", "RTFfcharset", "RTFfprq", "RTFcpg", "RTFansicpg", 715 "RTFOtherStatement", "RTFfontListStart", "RTFfamilyNil", 716 "RTFfamilyRoman", "RTFfamilySwiss", "RTFfamilyModern", "RTFfamilyScript", 717 "RTFfamilyDecor", "RTFfamilyTech", "RTFfamilyBiDi", "'{'", "'}'", 718 "$accept", "rtfFile", "$@1", "$@2", "rtfCharset", "rtfIngredients", 719 "rtfBlock", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10", 720 "$@11", "rtfField", "$@12", "rtfFieldMod", "rtfIgnore", "rtfFieldinst", 721 "$@13", "$@14", "rtfFieldalt", "rtfFieldrslt", "rtfStatementList", 722 "rtfStatement", "rtfNeXTstuff", "rtfNeXTGraphic", "$@15", "$@16", 723 "rtfNeXTHelpLink", "$@17", "$@18", "rtfNeXTHelpMarker", "$@19", "$@20", 724 "rtfFontList", "rtfFonts", "rtfFontStatement", "rtfFontAttrs", 725 "rtfFontFamily", "rtfColorDef", "rtfColors", "rtfColorStatement", YY_NULLPTR 726}; 727#endif 728 729# ifdef YYPRINT 730/* YYTOKNUM[NUM] -- (External) token number corresponding to the 731 (internal) symbol number NUM (which must be that of a token). */ 732static const yytype_int16 yytoknum[] = 733{ 734 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 735 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 736 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 737 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 738 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 739 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 740 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 741 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 742 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 743 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 744 355, 356, 357, 358, 359, 360, 361, 362, 363, 123, 745 125 746}; 747# endif 748 749#define YYPACT_NINF (-123) 750 751#define yypact_value_is_default(Yyn) \ 752 ((Yyn) == YYPACT_NINF) 753 754#define YYTABLE_NINF (-118) 755 756#define yytable_value_is_error(Yyn) \ 757 0 758 759 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 760 STATE-NUM. */ 761static const yytype_int16 yypact[] = 762{ 763 -107, -123, 6, 3, -123, -123, 343, -123, -123, -123, 764 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, 765 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, 766 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, 767 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, 768 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, 769 138, -102, -87, -123, -123, -123, -123, -98, -123, -123, 770 -123, 4, 31, 32, 30, 42, 43, 41, 33, -123, 771 -123, -123, 22, -38, 438, -123, -123, -123, -123, -123, 772 -123, -123, 13, -123, 17, -123, -123, 68, 12, -46, 773 -123, -123, 21, -47, -123, -123, -123, 533, 628, 723, 774 818, 913, 1008, 1103, -123, -35, -123, 34, -123, -123, 775 -123, -123, -123, -123, -123, 87, -123, -30, -105, 114, 776 63, 70, -123, -123, -123, -123, -123, -123, -123, -123, 777 -123, 18, 123, -123, 268, 87, 248, -123, 125, 83, 778 131, 132, -123, -123, -123, -123, 159, 27, -123, 363, 779 -123, -123, -123, -123, -123, -123, -123, 28, 89, 103, 780 51, 52, -123, 135, 128, -123, -123, 458, -123, 54, 781 163, -123, -123, 7, 57, 147, -123, -123, 121, -123, 782 150, -123, -123, -123, -123, 177, 1198, -123, 85, -123, 783 1293, 1388, 124, -123, -123, 1578, -123, -123, -123, 150, 784 -123, -123, -123, 126, 1483, -123, -123, 129, -123 785}; 786 787 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 788 Performed when YYTABLE does not specify something else to do. Zero 789 means the default is an error. */ 790static const yytype_uint8 yydefact[] = 791{ 792 0, 2, 0, 0, 1, 10, 0, 17, 15, 5, 793 6, 7, 8, 102, 103, 77, 104, 79, 80, 81, 794 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 795 69, 71, 72, 73, 74, 76, 75, 78, 84, 85, 796 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 797 96, 97, 98, 99, 100, 101, 82, 83, 70, 105, 798 0, 0, 11, 16, 14, 12, 13, 0, 141, 120, 799 10, 0, 0, 0, 0, 0, 0, 0, 0, 4, 800 9, 36, 0, 0, 0, 10, 10, 10, 10, 10, 801 10, 10, 0, 144, 0, 140, 142, 0, 0, 0, 802 119, 121, 0, 0, 107, 108, 109, 0, 0, 0, 803 0, 0, 0, 0, 39, 0, 40, 0, 133, 134, 804 135, 136, 137, 138, 139, 0, 127, 0, 0, 0, 805 0, 0, 19, 21, 23, 25, 27, 29, 31, 33, 806 35, 0, 0, 127, 0, 0, 0, 122, 0, 0, 807 0, 0, 41, 42, 43, 44, 0, 0, 143, 0, 808 124, 131, 128, 129, 130, 132, 127, 0, 0, 0, 809 0, 0, 46, 0, 0, 38, 125, 0, 123, 0, 810 0, 116, 51, 0, 0, 0, 126, 110, 0, 10, 811 52, 48, 55, 10, 10, 0, 0, 53, 0, 56, 812 0, 0, 0, 118, 47, 0, 54, 112, 113, 52, 813 58, 57, 10, 0, 0, 49, 115, 0, 50 814}; 815 816 /* YYPGOTO[NTERM-NUM]. */ 817static const yytype_int16 yypgoto[] = 818{ 819 -123, -123, -123, -123, -123, -70, 1545, -123, -123, -123, 820 -123, -123, -123, -123, -123, -123, -123, -123, -123, 59, 821 -123, -123, -123, 26, -123, -123, 35, -123, -123, -123, 822 -123, -123, -123, -123, -123, -123, -123, -123, -123, 142, 823 -89, -122, -123, -123, -123 824}; 825 826 /* YYDEFGOTO[NTERM-NUM]. */ 827static const yytype_int16 yydefgoto[] = 828{ 829 -1, 2, 3, 61, 62, 6, 63, 70, 71, 72, 830 73, 74, 75, 76, 77, 78, 115, 116, 141, 173, 831 157, 199, 217, 198, 175, 205, 64, 103, 104, 194, 832 207, 105, 212, 216, 106, 189, 203, 65, 83, 101, 833 144, 126, 66, 82, 96 834}; 835 836 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If 837 positive, shift that token. If negative, reduce the rule whose 838 number is the opposite. If YYTABLE_NINF, syntax error. */ 839static const yytype_int16 yytable[] = 840{ 841 84, 97, 1, 143, 146, 147, 4, 5, 79, 97, 842 190, 80, 81, 85, 114, 107, 108, 109, 110, 111, 843 112, 113, 67, 166, -18, 93, -18, -18, -18, -18, 844 -20, -22, -24, -26, -28, -30, -32, -18, -18, -18, 845 -18, 86, 88, 87, -37, -37, -37, -37, -34, 152, 846 153, 154, 155, 98, 159, 89, 91, 90, 117, 127, 847 92, 98, 94, 132, -18, -18, -18, 68, -18, -18, 848 129, 99, 100, 130, 131, 140, 142, 177, 145, -18, 849 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 850 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 851 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 852 -18, -18, -18, -18, -18, -18, 191, 149, 150, 196, 853 -18, 69, -37, 200, 201, 151, 158, 156, 167, 184, 854 -18, -18, 95, 168, 169, 170, 174, 172, 178, 67, 855 179, -18, 214, -18, -18, -18, -18, -20, -22, -24, 856 -26, -28, -30, -32, -18, -18, -18, -18, -45, 180, 857 171, 181, 182, 183, 187, -34, 188, 192, 172, 118, 858 119, 120, 121, 122, 123, 124, 125, 193, 195, 197, 859 202, -18, -18, -18, 68, -18, -18, -45, 118, 119, 860 120, 121, 122, 123, 124, 204, -18, -18, -18, -18, 861 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 862 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 863 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 864 -18, -18, -18, 185, 208, 213, 215, -18, 69, 218, 865 211, 128, 0, 0, 0, 0, 0, -18, -18, 67, 866 0, -18, 0, -18, -18, -18, -18, -20, -22, -24, 867 -26, -28, -30, -32, -18, -18, -18, -18, 0, 0, 868 0, 160, 0, 0, 0, -34, 0, 0, 0, 0, 869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870 0, -18, -18, -18, 0, -18, -18, 0, 0, 0, 871 0, 0, 0, 161, 0, 0, -18, -18, -18, -18, 872 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 873 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 874 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 875 -18, -18, -18, 0, 7, 0, 8, -18, 9, 10, 876 11, 12, 0, 0, 0, 0, 0, -18, -18, 13, 877 14, 15, 16, 162, 163, 164, 176, 0, 0, 0, 878 0, 0, 0, 0, 0, 0, 0, 146, 0, 0, 879 0, 0, 0, 0, 0, 0, 17, 18, 19, 0, 880 20, 21, 0, 0, 0, 0, 0, 0, 161, 0, 881 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 882 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 883 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 884 51, 52, 53, 54, 55, 56, 57, 58, 0, 7, 885 0, 8, 59, 9, 10, 11, 12, 0, 0, 0, 886 0, 0, 60, -3, 13, 14, 15, 16, 162, 163, 887 164, 186, 0, 0, 0, 0, 0, 0, 0, 0, 888 0, 0, 146, 0, 0, 0, 0, 0, 0, 0, 889 0, 17, 18, 19, 0, 20, 21, 0, 0, 0, 890 0, 0, 0, 161, 0, 0, 22, 23, 24, 25, 891 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 892 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 893 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 894 56, 57, 58, 0, 7, 0, 8, 59, 9, 10, 895 11, 12, 0, 0, 0, 0, 0, 102, -106, 13, 896 14, 15, 16, 162, 163, 164, 0, 0, 0, 0, 897 0, 0, 0, 0, 0, 0, 0, 146, 0, 0, 898 0, 0, 0, 0, 0, 0, 17, 18, 19, 0, 899 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 900 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 901 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 902 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 903 51, 52, 53, 54, 55, 56, 57, 58, 0, 7, 904 0, 8, 59, 9, 10, 11, 12, 0, 0, 0, 905 0, 0, 60, 133, 13, 14, 15, 16, 0, 0, 906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908 0, 17, 18, 19, 0, 20, 21, 0, 0, 0, 909 0, 0, 0, 0, 0, 0, 22, 23, 24, 25, 910 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 911 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 912 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 913 56, 57, 58, 0, 7, 0, 8, 59, 9, 10, 914 11, 12, 0, 0, 0, 0, 0, 60, 134, 13, 915 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 917 0, 0, 0, 0, 0, 0, 17, 18, 19, 0, 918 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 919 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 920 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 921 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 922 51, 52, 53, 54, 55, 56, 57, 58, 0, 7, 923 0, 8, 59, 9, 10, 11, 12, 0, 0, 0, 924 0, 0, 60, 135, 13, 14, 15, 16, 0, 0, 925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 927 0, 17, 18, 19, 0, 20, 21, 0, 0, 0, 928 0, 0, 0, 0, 0, 0, 22, 23, 24, 25, 929 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 930 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 931 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 932 56, 57, 58, 0, 7, 0, 8, 59, 9, 10, 933 11, 12, 0, 0, 0, 0, 0, 60, 136, 13, 934 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 936 0, 0, 0, 0, 0, 0, 17, 18, 19, 0, 937 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 938 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 939 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 940 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 941 51, 52, 53, 54, 55, 56, 57, 58, 0, 7, 942 0, 8, 59, 9, 10, 11, 12, 0, 0, 0, 943 0, 0, 60, 137, 13, 14, 15, 16, 0, 0, 944 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 945 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 946 0, 17, 18, 19, 0, 20, 21, 0, 0, 0, 947 0, 0, 0, 0, 0, 0, 22, 23, 24, 25, 948 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 949 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 950 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 951 56, 57, 58, 0, 7, 0, 8, 59, 9, 10, 952 11, 12, 0, 0, 0, 0, 0, 60, 138, 13, 953 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 954 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 955 0, 0, 0, 0, 0, 0, 17, 18, 19, 0, 956 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 957 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 958 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 959 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 960 51, 52, 53, 54, 55, 56, 57, 58, 0, 7, 961 0, 8, 59, 9, 10, 11, 12, 0, 0, 0, 962 0, 0, 60, 139, 13, 14, 15, 16, 0, 0, 963 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 964 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 965 0, 17, 18, 19, 0, 20, 21, 0, 0, 0, 966 0, 0, 0, 0, 0, 0, 22, 23, 24, 25, 967 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 968 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 969 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 970 56, 57, 58, 0, 7, 0, 8, 59, 9, 10, 971 11, 12, 0, 0, 0, 0, 0, 60, -117, 13, 972 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 974 0, 0, 0, 0, 0, 0, 17, 18, 19, 0, 975 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 976 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 977 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 978 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 979 51, 52, 53, 54, 55, 56, 57, 58, 0, 7, 980 0, 8, 59, 9, 10, 11, 12, 0, 0, 0, 981 0, 0, 60, 206, 13, 14, 15, 16, 0, 0, 982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 983 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 984 0, 17, 18, 19, 0, 20, 21, 0, 0, 0, 985 0, 0, 0, 0, 0, 0, 22, 23, 24, 25, 986 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 987 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 988 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 989 56, 57, 58, 0, 7, 0, 8, 59, 9, 10, 990 11, 12, 0, 0, 0, 0, 0, 60, -111, 13, 991 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 992 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 993 0, 0, 0, 0, 0, 0, 17, 18, 19, 0, 994 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 995 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 996 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 997 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 998 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, 999 0, 209, 59, 0, 0, 0, 0, 0, 0, 0, 1000 0, 0, 60, -114, 13, 14, 15, 16, 0, 0, 1001 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1002 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1003 0, 17, 18, 19, 0, 20, 21, 0, 0, 0, 1004 0, 0, 0, 0, 0, 0, 22, 23, 24, 25, 1005 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 1006 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 1007 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 1008 56, 57, 58, 148, 0, 0, 0, 59, 0, 0, 1009 0, 0, 0, 0, 0, 0, 0, 146, 0, 165, 1010 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011 0, 0, 0, 0, 165, 0, 0, 0, 0, 0, 1012 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013 0, 0, 165, 0, 0, 0, 0, 0, 0, 0, 1014 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1015 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1016 210 1017}; 1018 1019static const yytype_int16 yycheck[] = 1020{ 1021 70, 47, 109, 125, 109, 110, 0, 4, 110, 47, 1022 3, 98, 110, 9, 1, 85, 86, 87, 88, 89, 1023 90, 91, 1, 145, 3, 3, 5, 6, 7, 8, 1024 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 1025 19, 10, 12, 11, 31, 32, 33, 34, 27, 31, 1026 32, 33, 34, 99, 143, 13, 15, 14, 41, 47, 1027 27, 99, 40, 110, 43, 44, 45, 46, 47, 48, 1028 49, 109, 110, 52, 53, 110, 42, 166, 108, 58, 1029 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 1030 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 1031 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 1032 89, 90, 91, 92, 93, 94, 109, 3, 55, 189, 1033 99, 100, 109, 193, 194, 55, 3, 109, 3, 1, 1034 109, 110, 110, 50, 3, 3, 109, 9, 110, 1, 1035 51, 3, 212, 5, 6, 7, 8, 9, 10, 11, 1036 12, 13, 14, 15, 16, 17, 18, 19, 30, 56, 1037 1, 110, 110, 28, 110, 27, 3, 110, 9, 101, 1038 102, 103, 104, 105, 106, 107, 108, 30, 57, 29, 1039 3, 43, 44, 45, 46, 47, 48, 28, 101, 102, 1040 103, 104, 105, 106, 107, 110, 58, 59, 60, 61, 1041 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 1042 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 1043 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 1044 92, 93, 94, 174, 110, 209, 110, 99, 100, 110, 1045 205, 99, -1, -1, -1, -1, -1, 109, 110, 1, 1046 -1, 3, -1, 5, 6, 7, 8, 9, 10, 11, 1047 12, 13, 14, 15, 16, 17, 18, 19, -1, -1, 1048 -1, 3, -1, -1, -1, 27, -1, -1, -1, -1, 1049 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1050 -1, 43, 44, 45, -1, 47, 48, -1, -1, -1, 1051 -1, -1, -1, 35, -1, -1, 58, 59, 60, 61, 1052 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 1053 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 1054 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 1055 92, 93, 94, -1, 1, -1, 3, 99, 5, 6, 1056 7, 8, -1, -1, -1, -1, -1, 109, 110, 16, 1057 17, 18, 19, 95, 96, 97, 3, -1, -1, -1, 1058 -1, -1, -1, -1, -1, -1, -1, 109, -1, -1, 1059 -1, -1, -1, -1, -1, -1, 43, 44, 45, -1, 1060 47, 48, -1, -1, -1, -1, -1, -1, 35, -1, 1061 -1, 58, 59, 60, 61, 62, 63, 64, 65, 66, 1062 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 1063 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 1064 87, 88, 89, 90, 91, 92, 93, 94, -1, 1, 1065 -1, 3, 99, 5, 6, 7, 8, -1, -1, -1, 1066 -1, -1, 109, 110, 16, 17, 18, 19, 95, 96, 1067 97, 3, -1, -1, -1, -1, -1, -1, -1, -1, 1068 -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, 1069 -1, 43, 44, 45, -1, 47, 48, -1, -1, -1, 1070 -1, -1, -1, 35, -1, -1, 58, 59, 60, 61, 1071 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 1072 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 1073 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 1074 92, 93, 94, -1, 1, -1, 3, 99, 5, 6, 1075 7, 8, -1, -1, -1, -1, -1, 109, 110, 16, 1076 17, 18, 19, 95, 96, 97, -1, -1, -1, -1, 1077 -1, -1, -1, -1, -1, -1, -1, 109, -1, -1, 1078 -1, -1, -1, -1, -1, -1, 43, 44, 45, -1, 1079 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, 1080 -1, 58, 59, 60, 61, 62, 63, 64, 65, 66, 1081 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 1082 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 1083 87, 88, 89, 90, 91, 92, 93, 94, -1, 1, 1084 -1, 3, 99, 5, 6, 7, 8, -1, -1, -1, 1085 -1, -1, 109, 110, 16, 17, 18, 19, -1, -1, 1086 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1087 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1088 -1, 43, 44, 45, -1, 47, 48, -1, -1, -1, 1089 -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 1090 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 1091 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 1092 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 1093 92, 93, 94, -1, 1, -1, 3, 99, 5, 6, 1094 7, 8, -1, -1, -1, -1, -1, 109, 110, 16, 1095 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, 1096 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1097 -1, -1, -1, -1, -1, -1, 43, 44, 45, -1, 1098 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, 1099 -1, 58, 59, 60, 61, 62, 63, 64, 65, 66, 1100 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 1101 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 1102 87, 88, 89, 90, 91, 92, 93, 94, -1, 1, 1103 -1, 3, 99, 5, 6, 7, 8, -1, -1, -1, 1104 -1, -1, 109, 110, 16, 17, 18, 19, -1, -1, 1105 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1106 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1107 -1, 43, 44, 45, -1, 47, 48, -1, -1, -1, 1108 -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 1109 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 1110 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 1111 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 1112 92, 93, 94, -1, 1, -1, 3, 99, 5, 6, 1113 7, 8, -1, -1, -1, -1, -1, 109, 110, 16, 1114 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, 1115 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1116 -1, -1, -1, -1, -1, -1, 43, 44, 45, -1, 1117 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, 1118 -1, 58, 59, 60, 61, 62, 63, 64, 65, 66, 1119 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 1120 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 1121 87, 88, 89, 90, 91, 92, 93, 94, -1, 1, 1122 -1, 3, 99, 5, 6, 7, 8, -1, -1, -1, 1123 -1, -1, 109, 110, 16, 17, 18, 19, -1, -1, 1124 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1125 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1126 -1, 43, 44, 45, -1, 47, 48, -1, -1, -1, 1127 -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 1128 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 1129 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 1130 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 1131 92, 93, 94, -1, 1, -1, 3, 99, 5, 6, 1132 7, 8, -1, -1, -1, -1, -1, 109, 110, 16, 1133 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, 1134 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1135 -1, -1, -1, -1, -1, -1, 43, 44, 45, -1, 1136 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, 1137 -1, 58, 59, 60, 61, 62, 63, 64, 65, 66, 1138 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 1139 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 1140 87, 88, 89, 90, 91, 92, 93, 94, -1, 1, 1141 -1, 3, 99, 5, 6, 7, 8, -1, -1, -1, 1142 -1, -1, 109, 110, 16, 17, 18, 19, -1, -1, 1143 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1144 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1145 -1, 43, 44, 45, -1, 47, 48, -1, -1, -1, 1146 -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 1147 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 1148 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 1149 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 1150 92, 93, 94, -1, 1, -1, 3, 99, 5, 6, 1151 7, 8, -1, -1, -1, -1, -1, 109, 110, 16, 1152 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, 1153 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1154 -1, -1, -1, -1, -1, -1, 43, 44, 45, -1, 1155 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, 1156 -1, 58, 59, 60, 61, 62, 63, 64, 65, 66, 1157 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 1158 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 1159 87, 88, 89, 90, 91, 92, 93, 94, -1, 1, 1160 -1, 3, 99, 5, 6, 7, 8, -1, -1, -1, 1161 -1, -1, 109, 110, 16, 17, 18, 19, -1, -1, 1162 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1163 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1164 -1, 43, 44, 45, -1, 47, 48, -1, -1, -1, 1165 -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 1166 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 1167 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 1168 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 1169 92, 93, 94, -1, 1, -1, 3, 99, 5, 6, 1170 7, 8, -1, -1, -1, -1, -1, 109, 110, 16, 1171 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, 1172 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1173 -1, -1, -1, -1, -1, -1, 43, 44, 45, -1, 1174 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, 1175 -1, 58, 59, 60, 61, 62, 63, 64, 65, 66, 1176 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 1177 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 1178 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, 1179 -1, 3, 99, -1, -1, -1, -1, -1, -1, -1, 1180 -1, -1, 109, 110, 16, 17, 18, 19, -1, -1, 1181 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1182 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1183 -1, 43, 44, 45, -1, 47, 48, -1, -1, -1, 1184 -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 1185 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 1186 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 1187 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 1188 92, 93, 94, 128, -1, -1, -1, 99, -1, -1, 1189 -1, -1, -1, -1, -1, -1, -1, 109, -1, 144, 1190 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1191 -1, -1, -1, -1, 159, -1, -1, -1, -1, -1, 1192 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1193 -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, 1194 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1195 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1196 205 1197}; 1198 1199 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 1200 symbol of state STATE-NUM. */ 1201static const yytype_uint8 yystos[] = 1202{ 1203 0, 109, 112, 113, 0, 4, 116, 1, 3, 5, 1204 6, 7, 8, 16, 17, 18, 19, 43, 44, 45, 1205 47, 48, 58, 59, 60, 61, 62, 63, 64, 65, 1206 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 1207 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 1208 86, 87, 88, 89, 90, 91, 92, 93, 94, 99, 1209 109, 114, 115, 117, 137, 148, 153, 1, 46, 100, 1210 118, 119, 120, 121, 122, 123, 124, 125, 126, 110, 1211 98, 110, 154, 149, 116, 9, 10, 11, 12, 13, 1212 14, 15, 27, 3, 40, 110, 155, 47, 99, 109, 1213 110, 150, 109, 138, 139, 142, 145, 116, 116, 116, 1214 116, 116, 116, 116, 1, 127, 128, 41, 101, 102, 1215 103, 104, 105, 106, 107, 108, 152, 47, 150, 49, 1216 52, 53, 110, 110, 110, 110, 110, 110, 110, 110, 1217 110, 129, 42, 152, 151, 108, 109, 110, 117, 3, 1218 55, 55, 31, 32, 33, 34, 109, 131, 3, 151, 1219 3, 35, 95, 96, 97, 117, 152, 3, 50, 3, 1220 3, 1, 9, 130, 109, 135, 3, 151, 110, 51, 1221 56, 110, 110, 28, 1, 130, 3, 110, 3, 146, 1222 3, 109, 110, 30, 140, 57, 116, 29, 134, 132, 1223 116, 116, 3, 147, 110, 136, 110, 141, 110, 3, 1224 117, 137, 143, 134, 116, 110, 144, 133, 110 1225}; 1226 1227 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 1228static const yytype_uint8 yyr1[] = 1229{ 1230 0, 111, 113, 114, 112, 115, 115, 115, 115, 115, 1231 116, 116, 116, 116, 116, 116, 116, 116, 118, 117, 1232 119, 117, 120, 117, 121, 117, 122, 117, 123, 117, 1233 124, 117, 125, 117, 126, 117, 117, 128, 127, 127, 1234 129, 129, 129, 129, 129, 130, 130, 131, 132, 133, 1235 131, 131, 134, 134, 135, 135, 136, 136, 136, 137, 1236 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 1237 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 1238 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 1239 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 1240 137, 137, 137, 137, 137, 137, 138, 138, 138, 138, 1241 140, 141, 139, 143, 144, 142, 146, 147, 145, 148, 1242 149, 149, 149, 149, 150, 150, 150, 151, 151, 151, 1243 151, 151, 151, 152, 152, 152, 152, 152, 152, 152, 1244 153, 154, 154, 155, 155 1245}; 1246 1247 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ 1248static const yytype_int8 yyr2[] = 1249{ 1250 0, 2, 0, 0, 6, 1, 1, 1, 1, 2, 1251 0, 2, 2, 2, 2, 2, 2, 2, 0, 5, 1252 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 1253 0, 5, 0, 5, 0, 5, 3, 0, 4, 1, 1254 0, 2, 2, 2, 2, 0, 1, 6, 0, 0, 1255 11, 3, 0, 1, 5, 3, 0, 2, 2, 1, 1256 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1257 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1258 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1259 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1260 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1261 0, 0, 9, 0, 0, 12, 0, 0, 8, 4, 1262 0, 2, 4, 6, 4, 5, 6, 0, 2, 2, 1263 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1264 4, 0, 2, 4, 1 1265}; 1266 1267 1268#define yyerrok (yyerrstatus = 0) 1269#define yyclearin (yychar = YYEMPTY) 1270#define YYEMPTY (-2) 1271#define YYEOF 0 1272 1273#define YYACCEPT goto yyacceptlab 1274#define YYABORT goto yyabortlab 1275#define YYERROR goto yyerrorlab 1276 1277 1278#define YYRECOVERING() (!!yyerrstatus) 1279 1280#define YYBACKUP(Token, Value) \ 1281 do \ 1282 if (yychar == YYEMPTY) \ 1283 { \ 1284 yychar = (Token); \ 1285 yylval = (Value); \ 1286 YYPOPSTACK (yylen); \ 1287 yystate = *yyssp; \ 1288 goto yybackup; \ 1289 } \ 1290 else \ 1291 { \ 1292 yyerror (ctxt, lctxt, YY_("syntax error: cannot back up")); \ 1293 YYERROR; \ 1294 } \ 1295 while (0) 1296 1297/* Error token number */ 1298#define YYTERROR 1 1299#define YYERRCODE 256 1300 1301 1302 1303/* Enable debugging if requested. */ 1304#if YYDEBUG 1305 1306# ifndef YYFPRINTF 1307# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ 1308# define YYFPRINTF fprintf 1309# endif 1310 1311# define YYDPRINTF(Args) \ 1312do { \ 1313 if (yydebug) \ 1314 YYFPRINTF Args; \ 1315} while (0) 1316 1317/* This macro is provided for backward compatibility. */ 1318#ifndef YY_LOCATION_PRINT 1319# define YY_LOCATION_PRINT(File, Loc) ((void) 0) 1320#endif 1321 1322 1323# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 1324do { \ 1325 if (yydebug) \ 1326 { \ 1327 YYFPRINTF (stderr, "%s ", Title); \ 1328 yy_symbol_print (stderr, \ 1329 Type, Value, ctxt, lctxt); \ 1330 YYFPRINTF (stderr, "\n"); \ 1331 } \ 1332} while (0) 1333 1334 1335/*-----------------------------------. 1336| Print this symbol's value on YYO. | 1337`-----------------------------------*/ 1338 1339static void 1340yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, void *ctxt, void *lctxt) 1341{ 1342 FILE *yyoutput = yyo; 1343 YYUSE (yyoutput); 1344 YYUSE (ctxt); 1345 YYUSE (lctxt); 1346 if (!yyvaluep) 1347 return; 1348# ifdef YYPRINT 1349 if (yytype < YYNTOKENS) 1350 YYPRINT (yyo, yytoknum[yytype], *yyvaluep); 1351# endif 1352 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1353 YYUSE (yytype); 1354 YY_IGNORE_MAYBE_UNINITIALIZED_END 1355} 1356 1357 1358/*---------------------------. 1359| Print this symbol on YYO. | 1360`---------------------------*/ 1361 1362static void 1363yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, void *ctxt, void *lctxt) 1364{ 1365 YYFPRINTF (yyo, "%s %s (", 1366 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); 1367 1368 yy_symbol_value_print (yyo, yytype, yyvaluep, ctxt, lctxt); 1369 YYFPRINTF (yyo, ")"); 1370} 1371 1372/*------------------------------------------------------------------. 1373| yy_stack_print -- Print the state stack from its BOTTOM up to its | 1374| TOP (included). | 1375`------------------------------------------------------------------*/ 1376 1377static void 1378yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) 1379{ 1380 YYFPRINTF (stderr, "Stack now"); 1381 for (; yybottom <= yytop; yybottom++) 1382 { 1383 int yybot = *yybottom; 1384 YYFPRINTF (stderr, " %d", yybot); 1385 } 1386 YYFPRINTF (stderr, "\n"); 1387} 1388 1389# define YY_STACK_PRINT(Bottom, Top) \ 1390do { \ 1391 if (yydebug) \ 1392 yy_stack_print ((Bottom), (Top)); \ 1393} while (0) 1394 1395 1396/*------------------------------------------------. 1397| Report that the YYRULE is going to be reduced. | 1398`------------------------------------------------*/ 1399 1400static void 1401yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule, void *ctxt, void *lctxt) 1402{ 1403 int yylno = yyrline[yyrule]; 1404 int yynrhs = yyr2[yyrule]; 1405 int yyi; 1406 YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", 1407 yyrule - 1, yylno); 1408 /* The symbols being reduced. */ 1409 for (yyi = 0; yyi < yynrhs; yyi++) 1410 { 1411 YYFPRINTF (stderr, " $%d = ", yyi + 1); 1412 yy_symbol_print (stderr, 1413 yystos[yyssp[yyi + 1 - yynrhs]], 1414 &yyvsp[(yyi + 1) - (yynrhs)] 1415 , ctxt, lctxt); 1416 YYFPRINTF (stderr, "\n"); 1417 } 1418} 1419 1420# define YY_REDUCE_PRINT(Rule) \ 1421do { \ 1422 if (yydebug) \ 1423 yy_reduce_print (yyssp, yyvsp, Rule, ctxt, lctxt); \ 1424} while (0) 1425 1426/* Nonzero means print parse trace. It is left uninitialized so that 1427 multiple parsers can coexist. */ 1428int yydebug; 1429#else /* !YYDEBUG */ 1430# define YYDPRINTF(Args) 1431# define YY_SYMBOL_PRINT(Title, Type, Value, Location) 1432# define YY_STACK_PRINT(Bottom, Top) 1433# define YY_REDUCE_PRINT(Rule) 1434#endif /* !YYDEBUG */ 1435 1436 1437/* YYINITDEPTH -- initial size of the parser's stacks. */ 1438#ifndef YYINITDEPTH 1439# define YYINITDEPTH 200 1440#endif 1441 1442/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only 1443 if the built-in stack extension method is used). 1444 1445 Do not make this value too large; the results are undefined if 1446 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) 1447 evaluated with infinite-precision integer arithmetic. */ 1448 1449#ifndef YYMAXDEPTH 1450# define YYMAXDEPTH 10000 1451#endif 1452 1453 1454#if YYERROR_VERBOSE 1455 1456# ifndef yystrlen 1457# if defined __GLIBC__ && defined _STRING_H 1458# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S))) 1459# else 1460/* Return the length of YYSTR. */ 1461static YYPTRDIFF_T 1462yystrlen (const char *yystr) 1463{ 1464 YYPTRDIFF_T yylen; 1465 for (yylen = 0; yystr[yylen]; yylen++) 1466 continue; 1467 return yylen; 1468} 1469# endif 1470# endif 1471 1472# ifndef yystpcpy 1473# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 1474# define yystpcpy stpcpy 1475# else 1476/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 1477 YYDEST. */ 1478static char * 1479yystpcpy (char *yydest, const char *yysrc) 1480{ 1481 char *yyd = yydest; 1482 const char *yys = yysrc; 1483 1484 while ((*yyd++ = *yys++) != '\0') 1485 continue; 1486 1487 return yyd - 1; 1488} 1489# endif 1490# endif 1491 1492# ifndef yytnamerr 1493/* Copy to YYRES the contents of YYSTR after stripping away unnecessary 1494 quotes and backslashes, so that it's suitable for yyerror. The 1495 heuristic is that double-quoting is unnecessary unless the string 1496 contains an apostrophe, a comma, or backslash (other than 1497 backslash-backslash). YYSTR is taken from yytname. If YYRES is 1498 null, do not copy; instead, return the length of what the result 1499 would have been. */ 1500static YYPTRDIFF_T 1501yytnamerr (char *yyres, const char *yystr) 1502{ 1503 if (*yystr == '"') 1504 { 1505 YYPTRDIFF_T yyn = 0; 1506 char const *yyp = yystr; 1507 1508 for (;;) 1509 switch (*++yyp) 1510 { 1511 case '\'': 1512 case ',': 1513 goto do_not_strip_quotes; 1514 1515 case '\\': 1516 if (*++yyp != '\\') 1517 goto do_not_strip_quotes; 1518 else 1519 goto append; 1520 1521 append: 1522 default: 1523 if (yyres) 1524 yyres[yyn] = *yyp; 1525 yyn++; 1526 break; 1527 1528 case '"': 1529 if (yyres) 1530 yyres[yyn] = '\0'; 1531 return yyn; 1532 } 1533 do_not_strip_quotes: ; 1534 } 1535 1536 if (yyres) 1537 return yystpcpy (yyres, yystr) - yyres; 1538 else 1539 return yystrlen (yystr); 1540} 1541# endif 1542 1543/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message 1544 about the unexpected token YYTOKEN for the state stack whose top is 1545 YYSSP. 1546 1547 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is 1548 not large enough to hold the message. In that case, also set 1549 *YYMSG_ALLOC to the required number of bytes. Return 2 if the 1550 required number of bytes is too large to store. */ 1551static int 1552yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, 1553 yy_state_t *yyssp, int yytoken) 1554{ 1555 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 1556 /* Internationalized format string. */ 1557 const char *yyformat = YY_NULLPTR; 1558 /* Arguments of yyformat: reported tokens (one for the "unexpected", 1559 one per "expected"). */ 1560 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; 1561 /* Actual size of YYARG. */ 1562 int yycount = 0; 1563 /* Cumulated lengths of YYARG. */ 1564 YYPTRDIFF_T yysize = 0; 1565 1566 /* There are many possibilities here to consider: 1567 - If this state is a consistent state with a default action, then 1568 the only way this function was invoked is if the default action 1569 is an error action. In that case, don't check for expected 1570 tokens because there are none. 1571 - The only way there can be no lookahead present (in yychar) is if 1572 this state is a consistent state with a default action. Thus, 1573 detecting the absence of a lookahead is sufficient to determine 1574 that there is no unexpected or expected token to report. In that 1575 case, just report a simple "syntax error". 1576 - Don't assume there isn't a lookahead just because this state is a 1577 consistent state with a default action. There might have been a 1578 previous inconsistent state, consistent state with a non-default 1579 action, or user semantic action that manipulated yychar. 1580 - Of course, the expected token list depends on states to have 1581 correct lookahead information, and it depends on the parser not 1582 to perform extra reductions after fetching a lookahead from the 1583 scanner and before detecting a syntax error. Thus, state merging 1584 (from LALR or IELR) and default reductions corrupt the expected 1585 token list. However, the list is correct for canonical LR with 1586 one exception: it will still contain any token that will not be 1587 accepted due to an error action in a later state. 1588 */ 1589 if (yytoken != YYEMPTY) 1590 { 1591 int yyn = yypact[*yyssp]; 1592 YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); 1593 yysize = yysize0; 1594 yyarg[yycount++] = yytname[yytoken]; 1595 if (!yypact_value_is_default (yyn)) 1596 { 1597 /* Start YYX at -YYN if negative to avoid negative indexes in 1598 YYCHECK. In other words, skip the first -YYN actions for 1599 this state because they are default actions. */ 1600 int yyxbegin = yyn < 0 ? -yyn : 0; 1601 /* Stay within bounds of both yycheck and yytname. */ 1602 int yychecklim = YYLAST - yyn + 1; 1603 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; 1604 int yyx; 1605 1606 for (yyx = yyxbegin; yyx < yyxend; ++yyx) 1607 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR 1608 && !yytable_value_is_error (yytable[yyx + yyn])) 1609 { 1610 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) 1611 { 1612 yycount = 1; 1613 yysize = yysize0; 1614 break; 1615 } 1616 yyarg[yycount++] = yytname[yyx]; 1617 { 1618 YYPTRDIFF_T yysize1 1619 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); 1620 if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) 1621 yysize = yysize1; 1622 else 1623 return 2; 1624 } 1625 } 1626 } 1627 } 1628 1629 switch (yycount) 1630 { 1631# define YYCASE_(N, S) \ 1632 case N: \ 1633 yyformat = S; \ 1634 break 1635 default: /* Avoid compiler warnings. */ 1636 YYCASE_(0, YY_("syntax error")); 1637 YYCASE_(1, YY_("syntax error, unexpected %s")); 1638 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); 1639 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); 1640 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); 1641 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); 1642# undef YYCASE_ 1643 } 1644 1645 { 1646 /* Don't count the "%s"s in the final size, but reserve room for 1647 the terminator. */ 1648 YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1; 1649 if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) 1650 yysize = yysize1; 1651 else 1652 return 2; 1653 } 1654 1655 if (*yymsg_alloc < yysize) 1656 { 1657 *yymsg_alloc = 2 * yysize; 1658 if (! (yysize <= *yymsg_alloc 1659 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) 1660 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; 1661 return 1; 1662 } 1663 1664 /* Avoid sprintf, as that infringes on the user's name space. 1665 Don't have undefined behavior even if the translation 1666 produced a string with the wrong number of "%s"s. */ 1667 { 1668 char *yyp = *yymsg; 1669 int yyi = 0; 1670 while ((*yyp = *yyformat) != '\0') 1671 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) 1672 { 1673 yyp += yytnamerr (yyp, yyarg[yyi++]); 1674 yyformat += 2; 1675 } 1676 else 1677 { 1678 ++yyp; 1679 ++yyformat; 1680 } 1681 } 1682 return 0; 1683} 1684#endif /* YYERROR_VERBOSE */ 1685 1686/*-----------------------------------------------. 1687| Release the memory associated to this symbol. | 1688`-----------------------------------------------*/ 1689 1690static void 1691yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, void *ctxt, void *lctxt) 1692{ 1693 YYUSE (yyvaluep); 1694 YYUSE (ctxt); 1695 YYUSE (lctxt); 1696 if (!yymsg) 1697 yymsg = "Deleting"; 1698 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 1699 1700 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1701 YYUSE (yytype); 1702 YY_IGNORE_MAYBE_UNINITIALIZED_END 1703} 1704 1705 1706 1707 1708/*----------. 1709| yyparse. | 1710`----------*/ 1711 1712int 1713yyparse (void *ctxt, void *lctxt) 1714{ 1715/* The lookahead symbol. */ 1716int yychar; 1717 1718 1719/* The semantic value of the lookahead symbol. */ 1720/* Default value used for initialization, for pacifying older GCCs 1721 or non-GCC compilers. */ 1722YY_INITIAL_VALUE (static YYSTYPE yyval_default;) 1723YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); 1724 1725 /* Number of syntax errors so far. */ 1726 int yynerrs; 1727 1728 yy_state_fast_t yystate; 1729 /* Number of tokens to shift before error messages enabled. */ 1730 int yyerrstatus; 1731 1732 /* The stacks and their tools: 1733 'yyss': related to states. 1734 'yyvs': related to semantic values. 1735 1736 Refer to the stacks through separate pointers, to allow yyoverflow 1737 to reallocate them elsewhere. */ 1738 1739 /* The state stack. */ 1740 yy_state_t yyssa[YYINITDEPTH]; 1741 yy_state_t *yyss; 1742 yy_state_t *yyssp; 1743 1744 /* The semantic value stack. */ 1745 YYSTYPE yyvsa[YYINITDEPTH]; 1746 YYSTYPE *yyvs; 1747 YYSTYPE *yyvsp; 1748 1749 YYPTRDIFF_T yystacksize; 1750 1751 int yyn; 1752 int yyresult; 1753 /* Lookahead token as an internal (translated) token number. */ 1754 int yytoken = 0; 1755 /* The variables used to return semantic value and location from the 1756 action routines. */ 1757 YYSTYPE yyval; 1758 1759#if YYERROR_VERBOSE 1760 /* Buffer for error messages, and its allocated size. */ 1761 char yymsgbuf[128]; 1762 char *yymsg = yymsgbuf; 1763 YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf; 1764#endif 1765 1766#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 1767 1768 /* The number of symbols on the RHS of the reduced rule. 1769 Keep to zero when no symbol should be popped. */ 1770 int yylen = 0; 1771 1772 yyssp = yyss = yyssa; 1773 yyvsp = yyvs = yyvsa; 1774 yystacksize = YYINITDEPTH; 1775 1776 YYDPRINTF ((stderr, "Starting parse\n")); 1777 1778 yystate = 0; 1779 yyerrstatus = 0; 1780 yynerrs = 0; 1781 yychar = YYEMPTY; /* Cause a token to be read. */ 1782 goto yysetstate; 1783 1784 1785/*------------------------------------------------------------. 1786| yynewstate -- push a new state, which is found in yystate. | 1787`------------------------------------------------------------*/ 1788yynewstate: 1789 /* In all cases, when you get here, the value and location stacks 1790 have just been pushed. So pushing a state here evens the stacks. */ 1791 yyssp++; 1792 1793 1794/*--------------------------------------------------------------------. 1795| yysetstate -- set current state (the top of the stack) to yystate. | 1796`--------------------------------------------------------------------*/ 1797yysetstate: 1798 YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 1799 YY_ASSERT (0 <= yystate && yystate < YYNSTATES); 1800 YY_IGNORE_USELESS_CAST_BEGIN 1801 *yyssp = YY_CAST (yy_state_t, yystate); 1802 YY_IGNORE_USELESS_CAST_END 1803 1804 if (yyss + yystacksize - 1 <= yyssp) 1805#if !defined yyoverflow && !defined YYSTACK_RELOCATE 1806 goto yyexhaustedlab; 1807#else 1808 { 1809 /* Get the current used size of the three stacks, in elements. */ 1810 YYPTRDIFF_T yysize = yyssp - yyss + 1; 1811 1812# if defined yyoverflow 1813 { 1814 /* Give user a chance to reallocate the stack. Use copies of 1815 these so that the &'s don't force the real ones into 1816 memory. */ 1817 yy_state_t *yyss1 = yyss; 1818 YYSTYPE *yyvs1 = yyvs; 1819 1820 /* Each stack pointer address is followed by the size of the 1821 data in use in that stack, in bytes. This used to be a 1822 conditional around just the two extra args, but that might 1823 be undefined if yyoverflow is a macro. */ 1824 yyoverflow (YY_("memory exhausted"), 1825 &yyss1, yysize * YYSIZEOF (*yyssp), 1826 &yyvs1, yysize * YYSIZEOF (*yyvsp), 1827 &yystacksize); 1828 yyss = yyss1; 1829 yyvs = yyvs1; 1830 } 1831# else /* defined YYSTACK_RELOCATE */ 1832 /* Extend the stack our own way. */ 1833 if (YYMAXDEPTH <= yystacksize) 1834 goto yyexhaustedlab; 1835 yystacksize *= 2; 1836 if (YYMAXDEPTH < yystacksize) 1837 yystacksize = YYMAXDEPTH; 1838 1839 { 1840 yy_state_t *yyss1 = yyss; 1841 union yyalloc *yyptr = 1842 YY_CAST (union yyalloc *, 1843 YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); 1844 if (! yyptr) 1845 goto yyexhaustedlab; 1846 YYSTACK_RELOCATE (yyss_alloc, yyss); 1847 YYSTACK_RELOCATE (yyvs_alloc, yyvs); 1848# undef YYSTACK_RELOCATE 1849 if (yyss1 != yyssa) 1850 YYSTACK_FREE (yyss1); 1851 } 1852# endif 1853 1854 yyssp = yyss + yysize - 1; 1855 yyvsp = yyvs + yysize - 1; 1856 1857 YY_IGNORE_USELESS_CAST_BEGIN 1858 YYDPRINTF ((stderr, "Stack size increased to %ld\n", 1859 YY_CAST (long, yystacksize))); 1860 YY_IGNORE_USELESS_CAST_END 1861 1862 if (yyss + yystacksize - 1 <= yyssp) 1863 YYABORT; 1864 } 1865#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ 1866 1867 if (yystate == YYFINAL) 1868 YYACCEPT; 1869 1870 goto yybackup; 1871 1872 1873/*-----------. 1874| yybackup. | 1875`-----------*/ 1876yybackup: 1877 /* Do appropriate processing given the current state. Read a 1878 lookahead token if we need one and don't already have one. */ 1879 1880 /* First try to decide what to do without reference to lookahead token. */ 1881 yyn = yypact[yystate]; 1882 if (yypact_value_is_default (yyn)) 1883 goto yydefault; 1884 1885 /* Not known => get a lookahead token if don't already have one. */ 1886 1887 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ 1888 if (yychar == YYEMPTY) 1889 { 1890 YYDPRINTF ((stderr, "Reading a token: ")); 1891 yychar = yylex (&yylval, lctxt); 1892 } 1893 1894 if (yychar <= YYEOF) 1895 { 1896 yychar = yytoken = YYEOF; 1897 YYDPRINTF ((stderr, "Now at end of input.\n")); 1898 } 1899 else 1900 { 1901 yytoken = YYTRANSLATE (yychar); 1902 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); 1903 } 1904 1905 /* If the proper action on seeing token YYTOKEN is to reduce or to 1906 detect an error, take that action. */ 1907 yyn += yytoken; 1908 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) 1909 goto yydefault; 1910 yyn = yytable[yyn]; 1911 if (yyn <= 0) 1912 { 1913 if (yytable_value_is_error (yyn)) 1914 goto yyerrlab; 1915 yyn = -yyn; 1916 goto yyreduce; 1917 } 1918 1919 /* Count tokens shifted since error; after three, turn off error 1920 status. */ 1921 if (yyerrstatus) 1922 yyerrstatus--; 1923 1924 /* Shift the lookahead token. */ 1925 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); 1926 yystate = yyn; 1927 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1928 *++yyvsp = yylval; 1929 YY_IGNORE_MAYBE_UNINITIALIZED_END 1930 1931 /* Discard the shifted token. */ 1932 yychar = YYEMPTY; 1933 goto yynewstate; 1934 1935 1936/*-----------------------------------------------------------. 1937| yydefault -- do the default action for the current state. | 1938`-----------------------------------------------------------*/ 1939yydefault: 1940 yyn = yydefact[yystate]; 1941 if (yyn == 0) 1942 goto yyerrlab; 1943 goto yyreduce; 1944 1945 1946/*-----------------------------. 1947| yyreduce -- do a reduction. | 1948`-----------------------------*/ 1949yyreduce: 1950 /* yyn is the number of a rule to reduce with. */ 1951 yylen = yyr2[yyn]; 1952 1953 /* If YYLEN is nonzero, implement the default value of the action: 1954 '$$ = $1'. 1955 1956 Otherwise, the following line sets YYVAL to garbage. 1957 This behavior is undocumented and Bison 1958 users should not rely upon it. Assigning to YYVAL 1959 unconditionally makes the parser a bit smaller, and it avoids a 1960 GCC warning that YYVAL may be used uninitialized. */ 1961 yyval = yyvsp[1-yylen]; 1962 1963 1964 YY_REDUCE_PRINT (yyn); 1965 switch (yyn) 1966 { 1967 case 2: 1968#line 207 "rtfGrammar.y" 1969 { GSRTFstart(CTXT); } 1970#line 1971 "rtfGrammar.tab.m" 1971 break; 1972 1973 case 3: 1974#line 207 "rtfGrammar.y" 1975 { GSRTFstop(CTXT); } 1976#line 1977 "rtfGrammar.tab.m" 1977 break; 1978 1979 case 5: 1980#line 210 "rtfGrammar.y" 1981 { GSRTFencoding(CTXT, 1); } 1982#line 1983 "rtfGrammar.tab.m" 1983 break; 1984 1985 case 6: 1986#line 211 "rtfGrammar.y" 1987 { GSRTFencoding(CTXT, 2); } 1988#line 1989 "rtfGrammar.tab.m" 1989 break; 1990 1991 case 7: 1992#line 212 "rtfGrammar.y" 1993 { GSRTFencoding(CTXT, (yyval.number) = 3); } 1994#line 1995 "rtfGrammar.tab.m" 1995 break; 1996 1997 case 8: 1998#line 213 "rtfGrammar.y" 1999 { GSRTFencoding(CTXT, 4); } 2000#line 2001 "rtfGrammar.tab.m" 2001 break; 2002 2003 case 9: 2004#line 214 "rtfGrammar.y" 2005 { GSRTFencoding(CTXT, (yyvsp[0].cmd).parameter); } 2006#line 2007 "rtfGrammar.tab.m" 2007 break; 2008 2009 case 15: 2010#line 222 "rtfGrammar.y" 2011 { GSRTFmangleText(CTXT, (yyvsp[0].text)); free((void *)(yyvsp[0].text)); } 2012#line 2013 "rtfGrammar.tab.m" 2013 break; 2014 2015 case 18: 2016#line 227 "rtfGrammar.y" 2017 { GSRTFopenBlock(CTXT, NO); } 2018#line 2019 "rtfGrammar.tab.m" 2019 break; 2020 2021 case 19: 2022#line 227 "rtfGrammar.y" 2023 { GSRTFcloseBlock(CTXT, NO); } 2024#line 2025 "rtfGrammar.tab.m" 2025 break; 2026 2027 case 20: 2028#line 228 "rtfGrammar.y" 2029 { GSRTFopenBlock(CTXT, YES); } 2030#line 2031 "rtfGrammar.tab.m" 2031 break; 2032 2033 case 21: 2034#line 228 "rtfGrammar.y" 2035 { GSRTFcloseBlock(CTXT, YES); } 2036#line 2037 "rtfGrammar.tab.m" 2037 break; 2038 2039 case 22: 2040#line 229 "rtfGrammar.y" 2041 { GSRTFopenBlock(CTXT, YES); } 2042#line 2043 "rtfGrammar.tab.m" 2043 break; 2044 2045 case 23: 2046#line 229 "rtfGrammar.y" 2047 { GSRTFcloseBlock(CTXT, YES); } 2048#line 2049 "rtfGrammar.tab.m" 2049 break; 2050 2051 case 24: 2052#line 230 "rtfGrammar.y" 2053 { GSRTFopenBlock(CTXT, YES); } 2054#line 2055 "rtfGrammar.tab.m" 2055 break; 2056 2057 case 25: 2058#line 230 "rtfGrammar.y" 2059 { GSRTFcloseBlock(CTXT, YES); } 2060#line 2061 "rtfGrammar.tab.m" 2061 break; 2062 2063 case 26: 2064#line 231 "rtfGrammar.y" 2065 { GSRTFopenBlock(CTXT, YES); } 2066#line 2067 "rtfGrammar.tab.m" 2067 break; 2068 2069 case 27: 2070#line 231 "rtfGrammar.y" 2071 { GSRTFcloseBlock(CTXT, YES); } 2072#line 2073 "rtfGrammar.tab.m" 2073 break; 2074 2075 case 28: 2076#line 232 "rtfGrammar.y" 2077 { GSRTFopenBlock(CTXT, YES); } 2078#line 2079 "rtfGrammar.tab.m" 2079 break; 2080 2081 case 29: 2082#line 232 "rtfGrammar.y" 2083 { GSRTFcloseBlock(CTXT, YES); } 2084#line 2085 "rtfGrammar.tab.m" 2085 break; 2086 2087 case 30: 2088#line 233 "rtfGrammar.y" 2089 { GSRTFopenBlock(CTXT, YES); } 2090#line 2091 "rtfGrammar.tab.m" 2091 break; 2092 2093 case 31: 2094#line 233 "rtfGrammar.y" 2095 { GSRTFcloseBlock(CTXT, YES); } 2096#line 2097 "rtfGrammar.tab.m" 2097 break; 2098 2099 case 32: 2100#line 234 "rtfGrammar.y" 2101 { GSRTFopenBlock(CTXT, YES); } 2102#line 2103 "rtfGrammar.tab.m" 2103 break; 2104 2105 case 33: 2106#line 234 "rtfGrammar.y" 2107 { GSRTFcloseBlock(CTXT, YES); } 2108#line 2109 "rtfGrammar.tab.m" 2109 break; 2110 2111 case 34: 2112#line 235 "rtfGrammar.y" 2113 { GSRTFopenBlock(CTXT, NO); } 2114#line 2115 "rtfGrammar.tab.m" 2115 break; 2116 2117 case 35: 2118#line 235 "rtfGrammar.y" 2119 { GSRTFcloseBlock(CTXT, NO); } 2120#line 2121 "rtfGrammar.tab.m" 2121 break; 2122 2123 case 37: 2124#line 240 "rtfGrammar.y" 2125 { fieldStart = GSRTFgetPosition(CTXT);} 2126#line 2127 "rtfGrammar.tab.m" 2127 break; 2128 2129 case 38: 2130#line 240 "rtfGrammar.y" 2131 { GSRTFaddField(CTXT, fieldStart, (yyvsp[-1].text)); free((void *)(yyvsp[-1].text)); } 2132#line 2133 "rtfGrammar.tab.m" 2133 break; 2134 2135 case 47: 2136#line 255 "rtfGrammar.y" 2137 { (yyval.text) = (yyvsp[-2].text);} 2138#line 2139 "rtfGrammar.tab.m" 2139 break; 2140 2141 case 48: 2142#line 256 "rtfGrammar.y" 2143 { GSRTFopenBlock(CTXT, YES); } 2144#line 2145 "rtfGrammar.tab.m" 2145 break; 2146 2147 case 49: 2148#line 256 "rtfGrammar.y" 2149 { GSRTFcloseBlock(CTXT, YES); } 2150#line 2151 "rtfGrammar.tab.m" 2151 break; 2152 2153 case 50: 2154#line 256 "rtfGrammar.y" 2155 { (yyval.text) = (yyvsp[-4].text);} 2156#line 2157 "rtfGrammar.tab.m" 2157 break; 2158 2159 case 51: 2160#line 257 "rtfGrammar.y" 2161 { (yyval.text) = NULL;} 2162#line 2163 "rtfGrammar.tab.m" 2163 break; 2164 2165 case 59: 2166#line 277 "rtfGrammar.y" 2167 { int font; 2168 2169 if ((yyvsp[0].cmd).isEmpty) 2170 font = 0; 2171 else 2172 font = (yyvsp[0].cmd).parameter; 2173 GSRTFfontNumber(CTXT, font); } 2174#line 2175 "rtfGrammar.tab.m" 2175 break; 2176 2177 case 60: 2178#line 284 "rtfGrammar.y" 2179 { int size; 2180 2181 if ((yyvsp[0].cmd).isEmpty) 2182 size = 24; 2183 else 2184 size = (yyvsp[0].cmd).parameter; 2185 GSRTFfontSize(CTXT, size); } 2186#line 2187 "rtfGrammar.tab.m" 2187 break; 2188 2189 case 61: 2190#line 291 "rtfGrammar.y" 2191 { int width; 2192 2193 if ((yyvsp[0].cmd).isEmpty) 2194 width = 12240; 2195 else 2196 width = (yyvsp[0].cmd).parameter; 2197 GSRTFpaperWidth(CTXT, width);} 2198#line 2199 "rtfGrammar.tab.m" 2199 break; 2200 2201 case 62: 2202#line 298 "rtfGrammar.y" 2203 { int height; 2204 2205 if ((yyvsp[0].cmd).isEmpty) 2206 height = 15840; 2207 else 2208 height = (yyvsp[0].cmd).parameter; 2209 GSRTFpaperHeight(CTXT, height);} 2210#line 2211 "rtfGrammar.tab.m" 2211 break; 2212 2213 case 63: 2214#line 305 "rtfGrammar.y" 2215 { int margin; 2216 2217 if ((yyvsp[0].cmd).isEmpty) 2218 margin = 1800; 2219 else 2220 margin = (yyvsp[0].cmd).parameter; 2221 GSRTFmarginLeft(CTXT, margin);} 2222#line 2223 "rtfGrammar.tab.m" 2223 break; 2224 2225 case 64: 2226#line 312 "rtfGrammar.y" 2227 { int margin; 2228 2229 if ((yyvsp[0].cmd).isEmpty) 2230 margin = 1800; 2231 else 2232 margin = (yyvsp[0].cmd).parameter; 2233 GSRTFmarginRight(CTXT, margin); } 2234#line 2235 "rtfGrammar.tab.m" 2235 break; 2236 2237 case 65: 2238#line 319 "rtfGrammar.y" 2239 { int margin; 2240 2241 if ((yyvsp[0].cmd).isEmpty) 2242 margin = 1440; 2243 else 2244 margin = (yyvsp[0].cmd).parameter; 2245 GSRTFmarginTop(CTXT, margin); } 2246#line 2247 "rtfGrammar.tab.m" 2247 break; 2248 2249 case 66: 2250#line 326 "rtfGrammar.y" 2251 { int margin; 2252 2253 if ((yyvsp[0].cmd).isEmpty) 2254 margin = 1440; 2255 else 2256 margin = (yyvsp[0].cmd).parameter; 2257 GSRTFmarginButtom(CTXT, margin); } 2258#line 2259 "rtfGrammar.tab.m" 2259 break; 2260 2261 case 67: 2262#line 333 "rtfGrammar.y" 2263 { int indent; 2264 2265 if ((yyvsp[0].cmd).isEmpty) 2266 indent = 0; 2267 else 2268 indent = (yyvsp[0].cmd).parameter; 2269 GSRTFfirstLineIndent(CTXT, indent); } 2270#line 2271 "rtfGrammar.tab.m" 2271 break; 2272 2273 case 68: 2274#line 340 "rtfGrammar.y" 2275 { int indent; 2276 2277 if ((yyvsp[0].cmd).isEmpty) 2278 indent = 0; 2279 else 2280 indent = (yyvsp[0].cmd).parameter; 2281 GSRTFleftIndent(CTXT, indent);} 2282#line 2283 "rtfGrammar.tab.m" 2283 break; 2284 2285 case 69: 2286#line 347 "rtfGrammar.y" 2287 { int indent; 2288 2289 if ((yyvsp[0].cmd).isEmpty) 2290 indent = 0; 2291 else 2292 indent = (yyvsp[0].cmd).parameter; 2293 GSRTFrightIndent(CTXT, indent);} 2294#line 2295 "rtfGrammar.tab.m" 2295 break; 2296 2297 case 70: 2298#line 354 "rtfGrammar.y" 2299 { int location; 2300 2301 if ((yyvsp[0].cmd).isEmpty) 2302 location = 0; 2303 else 2304 location = (yyvsp[0].cmd).parameter; 2305 GSRTFtabstop(CTXT, location);} 2306#line 2307 "rtfGrammar.tab.m" 2307 break; 2308 2309 case 71: 2310#line 361 "rtfGrammar.y" 2311 { GSRTFalignCenter(CTXT); } 2312#line 2313 "rtfGrammar.tab.m" 2313 break; 2314 2315 case 72: 2316#line 362 "rtfGrammar.y" 2317 { GSRTFalignJustified(CTXT); } 2318#line 2319 "rtfGrammar.tab.m" 2319 break; 2320 2321 case 73: 2322#line 363 "rtfGrammar.y" 2323 { GSRTFalignLeft(CTXT); } 2324#line 2325 "rtfGrammar.tab.m" 2325 break; 2326 2327 case 74: 2328#line 364 "rtfGrammar.y" 2329 { GSRTFalignRight(CTXT); } 2330#line 2331 "rtfGrammar.tab.m" 2331 break; 2332 2333 case 75: 2334#line 365 "rtfGrammar.y" 2335 { int space; 2336 2337 if ((yyvsp[0].cmd).isEmpty) 2338 space = 0; 2339 else 2340 space = (yyvsp[0].cmd).parameter; 2341 GSRTFspaceAbove(CTXT, space); } 2342#line 2343 "rtfGrammar.tab.m" 2343 break; 2344 2345 case 76: 2346#line 372 "rtfGrammar.y" 2347 { GSRTFlineSpace(CTXT, (yyvsp[0].cmd).parameter); } 2348#line 2349 "rtfGrammar.tab.m" 2349 break; 2350 2351 case 77: 2352#line 373 "rtfGrammar.y" 2353 { GSRTFdefaultParagraph(CTXT); } 2354#line 2355 "rtfGrammar.tab.m" 2355 break; 2356 2357 case 78: 2358#line 374 "rtfGrammar.y" 2359 { GSRTFstyle(CTXT, (yyvsp[0].cmd).parameter); } 2360#line 2361 "rtfGrammar.tab.m" 2361 break; 2362 2363 case 79: 2364#line 375 "rtfGrammar.y" 2365 { int color; 2366 2367 if ((yyvsp[0].cmd).isEmpty) 2368 color = 0; 2369 else 2370 color = (yyvsp[0].cmd).parameter; 2371 GSRTFcolorbg(CTXT, color); } 2372#line 2373 "rtfGrammar.tab.m" 2373 break; 2374 2375 case 80: 2376#line 382 "rtfGrammar.y" 2377 { int color; 2378 2379 if ((yyvsp[0].cmd).isEmpty) 2380 color = 0; 2381 else 2382 color = (yyvsp[0].cmd).parameter; 2383 GSRTFcolorfg(CTXT, color); } 2384#line 2385 "rtfGrammar.tab.m" 2385 break; 2386 2387 case 81: 2388#line 389 "rtfGrammar.y" 2389 { int color; 2390 2391 if ((yyvsp[0].cmd).isEmpty) 2392 color = 0; 2393 else 2394 color = (yyvsp[0].cmd).parameter; 2395 GSRTFunderlinecolor(CTXT, color); } 2396#line 2397 "rtfGrammar.tab.m" 2397 break; 2398 2399 case 82: 2400#line 396 "rtfGrammar.y" 2401 { int script; 2402 2403 if ((yyvsp[0].cmd).isEmpty) 2404 script = 6; 2405 else 2406 script = (yyvsp[0].cmd).parameter; 2407 GSRTFsubscript(CTXT, script); } 2408#line 2409 "rtfGrammar.tab.m" 2409 break; 2410 2411 case 83: 2412#line 403 "rtfGrammar.y" 2413 { int script; 2414 2415 if ((yyvsp[0].cmd).isEmpty) 2416 script = 6; 2417 else 2418 script = (yyvsp[0].cmd).parameter; 2419 GSRTFsuperscript(CTXT, script); } 2420#line 2421 "rtfGrammar.tab.m" 2421 break; 2422 2423 case 84: 2424#line 410 "rtfGrammar.y" 2425 { BOOL on; 2426 2427 if ((yyvsp[0].cmd).isEmpty || (yyvsp[0].cmd).parameter) 2428 on = YES; 2429 else 2430 on = NO; 2431 GSRTFbold(CTXT, on); } 2432#line 2433 "rtfGrammar.tab.m" 2433 break; 2434 2435 case 85: 2436#line 417 "rtfGrammar.y" 2437 { BOOL on; 2438 2439 if ((yyvsp[0].cmd).isEmpty || (yyvsp[0].cmd).parameter) 2440 on = YES; 2441 else 2442 on = NO; 2443 GSRTFitalic(CTXT, on); } 2444#line 2445 "rtfGrammar.tab.m" 2445 break; 2446 2447 case 86: 2448#line 424 "rtfGrammar.y" 2449 { BOOL on; 2450 2451 if ((yyvsp[0].cmd).isEmpty || (yyvsp[0].cmd).parameter) 2452 on = YES; 2453 else 2454 on = NO; 2455 GSRTFunderline(CTXT, on, NSUnderlineStyleSingle | NSUnderlinePatternSolid); } 2456#line 2457 "rtfGrammar.tab.m" 2457 break; 2458 2459 case 87: 2460#line 431 "rtfGrammar.y" 2461 { BOOL on; 2462 2463 if ((yyvsp[0].cmd).isEmpty || (yyvsp[0].cmd).parameter) 2464 on = YES; 2465 else 2466 on = NO; 2467 GSRTFunderline(CTXT, on, NSUnderlineStyleSingle | NSUnderlinePatternDot); } 2468#line 2469 "rtfGrammar.tab.m" 2469 break; 2470 2471 case 88: 2472#line 438 "rtfGrammar.y" 2473 { BOOL on; 2474 2475 if ((yyvsp[0].cmd).isEmpty || (yyvsp[0].cmd).parameter) 2476 on = YES; 2477 else 2478 on = NO; 2479 GSRTFunderline(CTXT, on, NSUnderlineStyleSingle | NSUnderlinePatternDash); } 2480#line 2481 "rtfGrammar.tab.m" 2481 break; 2482 2483 case 89: 2484#line 445 "rtfGrammar.y" 2485 { BOOL on; 2486 2487 if ((yyvsp[0].cmd).isEmpty || (yyvsp[0].cmd).parameter) 2488 on = YES; 2489 else 2490 on = NO; 2491 GSRTFunderline(CTXT, on, NSUnderlineStyleSingle | NSUnderlinePatternDashDot); } 2492#line 2493 "rtfGrammar.tab.m" 2493 break; 2494 2495 case 90: 2496#line 452 "rtfGrammar.y" 2497 { BOOL on; 2498 2499 if ((yyvsp[0].cmd).isEmpty || (yyvsp[0].cmd).parameter) 2500 on = YES; 2501 else 2502 on = NO; 2503 GSRTFunderline(CTXT, on, NSUnderlineStyleSingle | NSUnderlinePatternDashDotDot); } 2504#line 2505 "rtfGrammar.tab.m" 2505 break; 2506 2507 case 91: 2508#line 459 "rtfGrammar.y" 2509 { BOOL on; 2510 2511 if ((yyvsp[0].cmd).isEmpty || (yyvsp[0].cmd).parameter) 2512 on = YES; 2513 else 2514 on = NO; 2515 GSRTFunderline(CTXT, on, NSUnderlineStyleDouble | NSUnderlinePatternSolid); } 2516#line 2517 "rtfGrammar.tab.m" 2517 break; 2518 2519 case 92: 2520#line 466 "rtfGrammar.y" 2521 { GSRTFunderline(CTXT, NO, NSUnderlineStyleNone); } 2522#line 2523 "rtfGrammar.tab.m" 2523 break; 2524 2525 case 93: 2526#line 467 "rtfGrammar.y" 2527 { BOOL on; 2528 2529 if ((yyvsp[0].cmd).isEmpty || (yyvsp[0].cmd).parameter) 2530 on = YES; 2531 else 2532 on = NO; 2533 GSRTFunderline(CTXT, on, NSUnderlineStyleThick | NSUnderlinePatternSolid); } 2534#line 2535 "rtfGrammar.tab.m" 2535 break; 2536 2537 case 94: 2538#line 474 "rtfGrammar.y" 2539 { BOOL on; 2540 2541 if ((yyvsp[0].cmd).isEmpty || (yyvsp[0].cmd).parameter) 2542 on = YES; 2543 else 2544 on = NO; 2545 GSRTFunderline(CTXT, on, NSUnderlineStyleThick | NSUnderlinePatternDot); } 2546#line 2547 "rtfGrammar.tab.m" 2547 break; 2548 2549 case 95: 2550#line 481 "rtfGrammar.y" 2551 { BOOL on; 2552 2553 if ((yyvsp[0].cmd).isEmpty || (yyvsp[0].cmd).parameter) 2554 on = YES; 2555 else 2556 on = NO; 2557 GSRTFunderline(CTXT, on, NSUnderlineStyleThick | NSUnderlinePatternDash); } 2558#line 2559 "rtfGrammar.tab.m" 2559 break; 2560 2561 case 96: 2562#line 488 "rtfGrammar.y" 2563 { BOOL on; 2564 2565 if ((yyvsp[0].cmd).isEmpty || (yyvsp[0].cmd).parameter) 2566 on = YES; 2567 else 2568 on = NO; 2569 GSRTFunderline(CTXT, on, NSUnderlineStyleThick | NSUnderlinePatternDashDot); } 2570#line 2571 "rtfGrammar.tab.m" 2571 break; 2572 2573 case 97: 2574#line 495 "rtfGrammar.y" 2575 { BOOL on; 2576 2577 if ((yyvsp[0].cmd).isEmpty || (yyvsp[0].cmd).parameter) 2578 on = YES; 2579 else 2580 on = NO; 2581 GSRTFunderline(CTXT, on, NSUnderlineStyleThick | NSUnderlinePatternDashDotDot); } 2582#line 2583 "rtfGrammar.tab.m" 2583 break; 2584 2585 case 98: 2586#line 502 "rtfGrammar.y" 2587 { BOOL on; 2588 2589 if ((yyvsp[0].cmd).isEmpty || (yyvsp[0].cmd).parameter) 2590 on = YES; 2591 else 2592 on = NO; 2593 GSRTFunderline(CTXT, on, NSUnderlineStyleSingle | NSUnderlinePatternSolid | NSUnderlineByWordMask); } 2594#line 2595 "rtfGrammar.tab.m" 2595 break; 2596 2597 case 99: 2598#line 509 "rtfGrammar.y" 2599 { NSInteger style; 2600 if ((yyvsp[0].cmd).isEmpty || (yyvsp[0].cmd).parameter) 2601 style = NSUnderlineStyleSingle | NSUnderlinePatternSolid; 2602 else 2603 style = NSUnderlineStyleNone; 2604 GSRTFstrikethrough(CTXT, style); } 2605#line 2606 "rtfGrammar.tab.m" 2606 break; 2607 2608 case 100: 2609#line 515 "rtfGrammar.y" 2610 { GSRTFstrikethrough(CTXT, NSUnderlineStyleDouble | NSUnderlinePatternSolid); } 2611#line 2612 "rtfGrammar.tab.m" 2612 break; 2613 2614 case 101: 2615#line 516 "rtfGrammar.y" 2616 { GSRTFunicode(CTXT, (yyvsp[0].cmd).parameter); } 2617#line 2618 "rtfGrammar.tab.m" 2618 break; 2619 2620 case 102: 2621#line 517 "rtfGrammar.y" 2622 { GSRTFdefaultCharacterStyle(CTXT); } 2623#line 2624 "rtfGrammar.tab.m" 2624 break; 2625 2626 case 103: 2627#line 518 "rtfGrammar.y" 2628 { GSRTFparagraph(CTXT); } 2629#line 2630 "rtfGrammar.tab.m" 2630 break; 2631 2632 case 104: 2633#line 519 "rtfGrammar.y" 2634 { GSRTFparagraph(CTXT); } 2635#line 2636 "rtfGrammar.tab.m" 2636 break; 2637 2638 case 105: 2639#line 520 "rtfGrammar.y" 2640 { GSRTFgenericRTFcommand(CTXT, (yyvsp[0].cmd)); 2641 free((void*)(yyvsp[0].cmd).name); } 2642#line 2643 "rtfGrammar.tab.m" 2643 break; 2644 2645 case 110: 2646#line 539 "rtfGrammar.y" 2647 { GSRTFopenBlock(CTXT, YES); } 2648#line 2649 "rtfGrammar.tab.m" 2649 break; 2650 2651 case 111: 2652#line 539 "rtfGrammar.y" 2653 { GSRTFcloseBlock(CTXT, YES); } 2654#line 2655 "rtfGrammar.tab.m" 2655 break; 2656 2657 case 112: 2658#line 540 "rtfGrammar.y" 2659 { 2660 GSRTFNeXTGraphic (CTXT, (yyvsp[-6].text), (yyvsp[-5].cmd).parameter, (yyvsp[-4].cmd).parameter); 2661 } 2662#line 2663 "rtfGrammar.tab.m" 2663 break; 2664 2665 case 113: 2666#line 554 "rtfGrammar.y" 2667 { GSRTFopenBlock(CTXT, YES); } 2668#line 2669 "rtfGrammar.tab.m" 2669 break; 2670 2671 case 114: 2672#line 554 "rtfGrammar.y" 2673 { GSRTFcloseBlock(CTXT, YES); } 2674#line 2675 "rtfGrammar.tab.m" 2675 break; 2676 2677 case 115: 2678#line 555 "rtfGrammar.y" 2679 { 2680 GSRTFNeXTHelpLink (CTXT, (yyvsp[-10].cmd).parameter, (yyvsp[-8].text), (yyvsp[-6].text), (yyvsp[-4].text)); 2681 } 2682#line 2683 "rtfGrammar.tab.m" 2683 break; 2684 2685 case 116: 2686#line 568 "rtfGrammar.y" 2687 { GSRTFopenBlock(CTXT, YES); } 2688#line 2689 "rtfGrammar.tab.m" 2689 break; 2690 2691 case 117: 2692#line 568 "rtfGrammar.y" 2693 { GSRTFcloseBlock(CTXT, YES); } 2694#line 2695 "rtfGrammar.tab.m" 2695 break; 2696 2697 case 118: 2698#line 569 "rtfGrammar.y" 2699 { 2700 GSRTFNeXTHelpMarker (CTXT, (yyvsp[-6].cmd).parameter, (yyvsp[-4].text)); 2701 } 2702#line 2703 "rtfGrammar.tab.m" 2703 break; 2704 2705 case 123: 2706#line 584 "rtfGrammar.y" 2707 { free((void *)(yyvsp[-1].text));} 2708#line 2709 "rtfGrammar.tab.m" 2709 break; 2710 2711 case 124: 2712#line 589 "rtfGrammar.y" 2713 { GSRTFregisterFont(CTXT, (yyvsp[0].text), (yyvsp[-2].number), (yyvsp[-3].cmd).parameter); 2714 free((void *)(yyvsp[0].text)); } 2715#line 2716 "rtfGrammar.tab.m" 2716 break; 2717 2718 case 125: 2719#line 592 "rtfGrammar.y" 2720 { GSRTFregisterFont(CTXT, (yyvsp[0].text), (yyvsp[-2].number), (yyvsp[-4].cmd).parameter); 2721 free((void *)(yyvsp[0].text)); } 2722#line 2723 "rtfGrammar.tab.m" 2723 break; 2724 2725 case 126: 2726#line 595 "rtfGrammar.y" 2727 { GSRTFregisterFont(CTXT, (yyvsp[0].text), (yyvsp[-2].number), (yyvsp[-4].cmd).parameter); 2728 free((void *)(yyvsp[0].text)); } 2729#line 2730 "rtfGrammar.tab.m" 2730 break; 2731 2732 case 133: 2733#line 609 "rtfGrammar.y" 2734 { (yyval.number) = RTFfamilyNil - RTFfamilyNil; } 2735#line 2736 "rtfGrammar.tab.m" 2736 break; 2737 2738 case 134: 2739#line 610 "rtfGrammar.y" 2740 { (yyval.number) = RTFfamilyRoman - RTFfamilyNil; } 2741#line 2742 "rtfGrammar.tab.m" 2742 break; 2743 2744 case 135: 2745#line 611 "rtfGrammar.y" 2746 { (yyval.number) = RTFfamilySwiss - RTFfamilyNil; } 2747#line 2748 "rtfGrammar.tab.m" 2748 break; 2749 2750 case 136: 2751#line 612 "rtfGrammar.y" 2752 { (yyval.number) = RTFfamilyModern - RTFfamilyNil; } 2753#line 2754 "rtfGrammar.tab.m" 2754 break; 2755 2756 case 137: 2757#line 613 "rtfGrammar.y" 2758 { (yyval.number) = RTFfamilyScript - RTFfamilyNil; } 2759#line 2760 "rtfGrammar.tab.m" 2760 break; 2761 2762 case 138: 2763#line 614 "rtfGrammar.y" 2764 { (yyval.number) = RTFfamilyDecor - RTFfamilyNil; } 2765#line 2766 "rtfGrammar.tab.m" 2766 break; 2767 2768 case 139: 2769#line 615 "rtfGrammar.y" 2770 { (yyval.number) = RTFfamilyTech - RTFfamilyNil; } 2771#line 2772 "rtfGrammar.tab.m" 2772 break; 2773 2774 case 143: 2775#line 632 "rtfGrammar.y" 2776 { 2777 GSRTFaddColor(CTXT, (yyvsp[-3].cmd).parameter, (yyvsp[-2].cmd).parameter, (yyvsp[-1].cmd).parameter); 2778 free((void *)(yyvsp[0].text)); 2779 } 2780#line 2781 "rtfGrammar.tab.m" 2781 break; 2782 2783 case 144: 2784#line 637 "rtfGrammar.y" 2785 { 2786 GSRTFaddDefaultColor(CTXT); 2787 free((void *)(yyvsp[0].text)); 2788 } 2789#line 2790 "rtfGrammar.tab.m" 2790 break; 2791 2792 2793#line 2794 "rtfGrammar.tab.m" 2794 2795 default: break; 2796 } 2797 /* User semantic actions sometimes alter yychar, and that requires 2798 that yytoken be updated with the new translation. We take the 2799 approach of translating immediately before every use of yytoken. 2800 One alternative is translating here after every semantic action, 2801 but that translation would be missed if the semantic action invokes 2802 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or 2803 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an 2804 incorrect destructor might then be invoked immediately. In the 2805 case of YYERROR or YYBACKUP, subsequent parser actions might lead 2806 to an incorrect destructor call or verbose syntax error message 2807 before the lookahead is translated. */ 2808 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); 2809 2810 YYPOPSTACK (yylen); 2811 yylen = 0; 2812 YY_STACK_PRINT (yyss, yyssp); 2813 2814 *++yyvsp = yyval; 2815 2816 /* Now 'shift' the result of the reduction. Determine what state 2817 that goes to, based on the state we popped back to and the rule 2818 number reduced by. */ 2819 { 2820 const int yylhs = yyr1[yyn] - YYNTOKENS; 2821 const int yyi = yypgoto[yylhs] + *yyssp; 2822 yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp 2823 ? yytable[yyi] 2824 : yydefgoto[yylhs]); 2825 } 2826 2827 goto yynewstate; 2828 2829 2830/*--------------------------------------. 2831| yyerrlab -- here on detecting error. | 2832`--------------------------------------*/ 2833yyerrlab: 2834 /* Make sure we have latest lookahead translation. See comments at 2835 user semantic actions for why this is necessary. */ 2836 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); 2837 2838 /* If not already recovering from an error, report this error. */ 2839 if (!yyerrstatus) 2840 { 2841 ++yynerrs; 2842#if ! YYERROR_VERBOSE 2843 yyerror (ctxt, lctxt, YY_("syntax error")); 2844#else 2845# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ 2846 yyssp, yytoken) 2847 { 2848 char const *yymsgp = YY_("syntax error"); 2849 int yysyntax_error_status; 2850 yysyntax_error_status = YYSYNTAX_ERROR; 2851 if (yysyntax_error_status == 0) 2852 yymsgp = yymsg; 2853 else if (yysyntax_error_status == 1) 2854 { 2855 if (yymsg != yymsgbuf) 2856 YYSTACK_FREE (yymsg); 2857 yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc))); 2858 if (!yymsg) 2859 { 2860 yymsg = yymsgbuf; 2861 yymsg_alloc = sizeof yymsgbuf; 2862 yysyntax_error_status = 2; 2863 } 2864 else 2865 { 2866 yysyntax_error_status = YYSYNTAX_ERROR; 2867 yymsgp = yymsg; 2868 } 2869 } 2870 yyerror (ctxt, lctxt, yymsgp); 2871 if (yysyntax_error_status == 2) 2872 goto yyexhaustedlab; 2873 } 2874# undef YYSYNTAX_ERROR 2875#endif 2876 } 2877 2878 2879 2880 if (yyerrstatus == 3) 2881 { 2882 /* If just tried and failed to reuse lookahead token after an 2883 error, discard it. */ 2884 2885 if (yychar <= YYEOF) 2886 { 2887 /* Return failure if at end of input. */ 2888 if (yychar == YYEOF) 2889 YYABORT; 2890 } 2891 else 2892 { 2893 yydestruct ("Error: discarding", 2894 yytoken, &yylval, ctxt, lctxt); 2895 yychar = YYEMPTY; 2896 } 2897 } 2898 2899 /* Else will try to reuse lookahead token after shifting the error 2900 token. */ 2901 goto yyerrlab1; 2902 2903 2904/*---------------------------------------------------. 2905| yyerrorlab -- error raised explicitly by YYERROR. | 2906`---------------------------------------------------*/ 2907yyerrorlab: 2908 /* Pacify compilers when the user code never invokes YYERROR and the 2909 label yyerrorlab therefore never appears in user code. */ 2910 if (0) 2911 YYERROR; 2912 2913 /* Do not reclaim the symbols of the rule whose action triggered 2914 this YYERROR. */ 2915 YYPOPSTACK (yylen); 2916 yylen = 0; 2917 YY_STACK_PRINT (yyss, yyssp); 2918 yystate = *yyssp; 2919 goto yyerrlab1; 2920 2921 2922/*-------------------------------------------------------------. 2923| yyerrlab1 -- common code for both syntax error and YYERROR. | 2924`-------------------------------------------------------------*/ 2925yyerrlab1: 2926 yyerrstatus = 3; /* Each real token shifted decrements this. */ 2927 2928 for (;;) 2929 { 2930 yyn = yypact[yystate]; 2931 if (!yypact_value_is_default (yyn)) 2932 { 2933 yyn += YYTERROR; 2934 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 2935 { 2936 yyn = yytable[yyn]; 2937 if (0 < yyn) 2938 break; 2939 } 2940 } 2941 2942 /* Pop the current state because it cannot handle the error token. */ 2943 if (yyssp == yyss) 2944 YYABORT; 2945 2946 2947 yydestruct ("Error: popping", 2948 yystos[yystate], yyvsp, ctxt, lctxt); 2949 YYPOPSTACK (1); 2950 yystate = *yyssp; 2951 YY_STACK_PRINT (yyss, yyssp); 2952 } 2953 2954 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 2955 *++yyvsp = yylval; 2956 YY_IGNORE_MAYBE_UNINITIALIZED_END 2957 2958 2959 /* Shift the error token. */ 2960 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); 2961 2962 yystate = yyn; 2963 goto yynewstate; 2964 2965 2966/*-------------------------------------. 2967| yyacceptlab -- YYACCEPT comes here. | 2968`-------------------------------------*/ 2969yyacceptlab: 2970 yyresult = 0; 2971 goto yyreturn; 2972 2973 2974/*-----------------------------------. 2975| yyabortlab -- YYABORT comes here. | 2976`-----------------------------------*/ 2977yyabortlab: 2978 yyresult = 1; 2979 goto yyreturn; 2980 2981 2982#if !defined yyoverflow || YYERROR_VERBOSE 2983/*-------------------------------------------------. 2984| yyexhaustedlab -- memory exhaustion comes here. | 2985`-------------------------------------------------*/ 2986yyexhaustedlab: 2987 yyerror (ctxt, lctxt, YY_("memory exhausted")); 2988 yyresult = 2; 2989 /* Fall through. */ 2990#endif 2991 2992 2993/*-----------------------------------------------------. 2994| yyreturn -- parsing is finished, return the result. | 2995`-----------------------------------------------------*/ 2996yyreturn: 2997 if (yychar != YYEMPTY) 2998 { 2999 /* Make sure we have latest lookahead translation. See comments at 3000 user semantic actions for why this is necessary. */ 3001 yytoken = YYTRANSLATE (yychar); 3002 yydestruct ("Cleanup: discarding lookahead", 3003 yytoken, &yylval, ctxt, lctxt); 3004 } 3005 /* Do not reclaim the symbols of the rule whose action triggered 3006 this YYABORT or YYACCEPT. */ 3007 YYPOPSTACK (yylen); 3008 YY_STACK_PRINT (yyss, yyssp); 3009 while (yyssp != yyss) 3010 { 3011 yydestruct ("Cleanup: popping", 3012 yystos[*yyssp], yyvsp, ctxt, lctxt); 3013 YYPOPSTACK (1); 3014 } 3015#ifndef yyoverflow 3016 if (yyss != yyssa) 3017 YYSTACK_FREE (yyss); 3018#endif 3019#if YYERROR_VERBOSE 3020 if (yymsg != yymsgbuf) 3021 YYSTACK_FREE (yymsg); 3022#endif 3023 return yyresult; 3024} 3025#line 649 "rtfGrammar.y" 3026 3027 3028/* some C code here */ 3029 3030