From e4b9c44b1aecb3ada87b47bb293b9440b9710599 Mon Sep 17 00:00:00 2001 From: fredkiefer Date: Tue, 17 Jun 2014 21:06:11 +0000 Subject: [PATCH] Rewrite parsing RTF link fields. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37947 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 8 + TextConverters/RTF/RTFConsumer.m | 26 +- TextConverters/RTF/RTFConsumerFunctions.h | 5 +- TextConverters/RTF/rtfGrammar.tab.h | 2 +- TextConverters/RTF/rtfGrammar.tab.m | 715 +++++++++++----------- TextConverters/RTF/rtfGrammar.y | 12 +- 6 files changed, 384 insertions(+), 384 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7ae2d5ca7..12a73cece 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2014-06-17 Fred Kiefer + + * TextConverters/RTF/rtfGrammar.y, + * TextConverters/RTF/RTFConsumerFunctions.h, + * TextConverters/RTF/RTFConsumer.m: Rewrite parsing link fields. + * TextConverters/RTF/rtfGrammar.tab.h, + * TextConverters/RTF/rtfGrammar.tab.m: Regenerated. + 2014-06-15 Fred Kiefer * TextConverters/RTF/rtfScanner.m, diff --git a/TextConverters/RTF/RTFConsumer.m b/TextConverters/RTF/RTFConsumer.m index e4931a20d..3094e7562 100644 --- a/TextConverters/RTF/RTFConsumer.m +++ b/TextConverters/RTF/RTFConsumer.m @@ -284,8 +284,8 @@ static BOOL classInheritsFromNSMutableAttributedString (Class c) - (void) appendString: (NSString*)string; - (void) appendHelpLink: (NSString*)fileName marker: (NSString *)markerName; - (void) appendHelpMarker: (NSString*)markerName; -- (void) appendField: (NSString*)instruction - result: (NSString*)result; +- (void) appendField: (int)start + instruction: (NSString*)instruction; - (void) reset; @end @@ -780,17 +780,15 @@ static BOOL classInheritsFromNSMutableAttributedString (Class c) } } -- (void) appendField: (NSString*)instruction - result: (NSString*)fieldResult +- (void) appendField: (int)start + instruction: (NSString*)instruction { if (!ignore) { - int oldPosition = [result length]; - int textlen = [fieldResult length]; + int oldPosition = start; + int textlen = [result length] - start; NSRange insertionRange = NSMakeRange(oldPosition, textlen); - [self appendString: fieldResult]; - if ([instruction hasPrefix: @"HYPERLINK "]) { NSDictionary *attributes; @@ -879,6 +877,11 @@ void GSRTFstop (void *ctxt) NSDebugLLog(@"RTFParser", @"End RTF parsing"); } +int GSRTFgetPosition(void *ctxt) +{ + return [((RTFConsumer *)ctxt)->result length]; +} + void GSRTFopenBlock (void *ctxt, BOOL ignore) { if (!IGNORE) @@ -1385,10 +1388,8 @@ void GSRTFNeXTHelpMarker (void *ctxt, int num, const char *markername) [(RTFDConsumer *)ctxt appendHelpMarker: markerName]; } -void GSRTFaddField (void *ctxt, const char *inst, const char *result) +void GSRTFaddField (void *ctxt, int start, const char *inst) { - NSString *fieldResult = [[NSString alloc] initWithCString: result - encoding: ENCODING]; NSString *fieldInstruction; // Ignore leading blanks @@ -1399,7 +1400,6 @@ void GSRTFaddField (void *ctxt, const char *inst, const char *result) fieldInstruction = [[NSString alloc] initWithCString: inst encoding: ENCODING]; - [(RTFDConsumer *)ctxt appendField: fieldInstruction result: fieldResult]; + [(RTFDConsumer *)ctxt appendField: start instruction: fieldInstruction]; DESTROY(fieldInstruction); - DESTROY(fieldResult); } diff --git a/TextConverters/RTF/RTFConsumerFunctions.h b/TextConverters/RTF/RTFConsumerFunctions.h index a5a01c7ac..59ace1aef 100644 --- a/TextConverters/RTF/RTFConsumerFunctions.h +++ b/TextConverters/RTF/RTFConsumerFunctions.h @@ -46,6 +46,9 @@ void GSRTFstart(void *ctxt); /* seal the parsing process, the context or whatever you want */ void GSRTFstop(void *ctxt); +/* */ +int GSRTFgetPosition(void *ctxt); + /* * those pairing functions enclose RTFBlocks. Use it to capture the * hierarchical attribute changes of blocks. i.e. attributes of a @@ -147,7 +150,7 @@ void GSRTFNeXTHelpLink(void *ctxt, int num, const char *markername, /* NeXTHelpMarker */ void GSRTFNeXTHelpMarker(void *ctxt, int num, const char *markername); -void GSRTFaddField (void *ctxt, const char *inst, const char *result); +void GSRTFaddField (void *ctxt, int start, const char *inst); #endif diff --git a/TextConverters/RTF/rtfGrammar.tab.h b/TextConverters/RTF/rtfGrammar.tab.h index bc68a916f..806822b05 100644 --- a/TextConverters/RTF/rtfGrammar.tab.h +++ b/TextConverters/RTF/rtfGrammar.tab.h @@ -158,7 +158,7 @@ extern int GSRTFdebug; typedef union YYSTYPE { /* Line 2058 of yacc.c */ -#line 82 "rtfGrammar.y" +#line 85 "rtfGrammar.y" int number; const char *text; diff --git a/TextConverters/RTF/rtfGrammar.tab.m b/TextConverters/RTF/rtfGrammar.tab.m index 1195630f2..41d6bac5f 100644 --- a/TextConverters/RTF/rtfGrammar.tab.m +++ b/TextConverters/RTF/rtfGrammar.tab.m @@ -112,9 +112,12 @@ typedef void *GSRTFctxt; /*int GSRTFlex (YYSTYPE *lvalp, RTFscannerCtxt *lctxt); */ int GSRTFlex(void *lvalp, void *lctxt); +/* */ +int fieldStart = 0; + /* Line 371 of yacc.c */ -#line 118 "rtfGrammar.tab.m" +#line 121 "rtfGrammar.tab.m" # ifndef YY_NULL # if defined __cplusplus && 201103L <= __cplusplus @@ -262,7 +265,7 @@ extern int GSRTFdebug; typedef union YYSTYPE { /* Line 387 of yacc.c */ -#line 82 "rtfGrammar.y" +#line 85 "rtfGrammar.y" int number; const char *text; @@ -270,7 +273,7 @@ typedef union YYSTYPE /* Line 387 of yacc.c */ -#line 274 "rtfGrammar.tab.m" +#line 277 "rtfGrammar.tab.m" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -297,7 +300,7 @@ int GSRTFparse (); /* Copy the second part of user declarations. */ /* Line 390 of yacc.c */ -#line 301 "rtfGrammar.tab.m" +#line 304 "rtfGrammar.tab.m" #ifdef short # undef short @@ -517,16 +520,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 4 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1698 +#define YYLAST 1696 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 109 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 44 +#define YYNNTS 45 /* YYNRULES -- Number of rules. */ #define YYNRULES 141 /* YYNRULES -- Number of states. */ -#define YYNSTATES 213 +#define YYNSTATES 209 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -585,18 +588,18 @@ static const yytype_uint16 yyprhs[] = 0, 0, 3, 4, 5, 13, 15, 17, 19, 21, 23, 24, 27, 30, 33, 36, 39, 42, 43, 49, 50, 56, 57, 63, 64, 70, 71, 77, 78, 84, - 85, 91, 92, 98, 99, 105, 109, 113, 115, 116, - 119, 122, 125, 128, 129, 131, 138, 139, 140, 152, - 156, 157, 159, 165, 174, 178, 179, 182, 185, 187, - 189, 191, 193, 195, 197, 199, 201, 203, 205, 207, - 209, 211, 213, 215, 217, 219, 221, 223, 225, 227, - 229, 231, 233, 235, 237, 239, 241, 243, 245, 247, - 249, 251, 253, 255, 257, 259, 261, 263, 265, 267, - 269, 271, 273, 275, 277, 279, 280, 282, 284, 286, - 287, 288, 298, 299, 300, 313, 314, 315, 324, 329, - 330, 333, 338, 345, 350, 351, 354, 357, 360, 363, - 366, 368, 370, 372, 374, 376, 378, 380, 385, 386, - 389, 394 + 85, 91, 92, 98, 99, 105, 109, 110, 115, 117, + 118, 121, 124, 127, 130, 131, 133, 140, 141, 142, + 154, 158, 159, 161, 167, 171, 172, 175, 178, 180, + 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, + 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, + 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, + 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, + 262, 264, 266, 268, 270, 272, 273, 275, 277, 279, + 280, 281, 291, 292, 293, 306, 307, 308, 317, 322, + 323, 326, 331, 338, 343, 344, 347, 350, 353, 356, + 359, 361, 363, 365, 367, 369, 371, 373, 378, 379, + 382, 387 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -604,64 +607,63 @@ static const yytype_int16 yyrhs[] = { 110, 0, -1, -1, -1, 107, 111, 4, 113, 114, 112, 108, -1, 5, -1, 6, -1, 7, -1, 8, - -1, 98, -1, -1, 114, 145, -1, 114, 150, -1, - 114, 134, -1, 114, 3, -1, 114, 115, -1, 114, - 1, -1, -1, 107, 116, 114, 135, 108, -1, -1, + -1, 98, -1, -1, 114, 146, -1, 114, 151, -1, + 114, 135, -1, 114, 3, -1, 114, 115, -1, 114, + 1, -1, -1, 107, 116, 114, 136, 108, -1, -1, 107, 117, 9, 114, 108, -1, -1, 107, 118, 10, 114, 108, -1, -1, 107, 119, 11, 114, 108, -1, -1, 107, 120, 12, 114, 108, -1, -1, 107, 121, 13, 114, 108, -1, -1, 107, 122, 14, 114, 108, -1, -1, 107, 123, 15, 114, 108, -1, -1, 107, - 124, 27, 125, 108, -1, 107, 1, 108, -1, 126, - 128, 132, -1, 1, -1, -1, 126, 31, -1, 126, - 32, -1, 126, 33, -1, 126, 34, -1, -1, 9, - -1, 107, 127, 28, 3, 131, 108, -1, -1, -1, - 107, 127, 28, 107, 129, 133, 3, 131, 108, 130, - 108, -1, 107, 1, 108, -1, -1, 29, -1, 107, - 127, 30, 3, 108, -1, 107, 127, 30, 107, 133, - 3, 108, 108, -1, 107, 1, 108, -1, -1, 133, - 134, -1, 133, 115, -1, 47, -1, 48, -1, 58, - -1, 59, -1, 60, -1, 61, -1, 62, -1, 63, - -1, 64, -1, 65, -1, 66, -1, 94, -1, 67, - -1, 68, -1, 69, -1, 70, -1, 72, -1, 71, - -1, 18, -1, 73, -1, 43, -1, 44, -1, 45, - -1, 92, -1, 93, -1, 74, -1, 75, -1, 76, - -1, 77, -1, 78, -1, 79, -1, 80, -1, 81, - -1, 82, -1, 83, -1, 84, -1, 85, -1, 86, - -1, 87, -1, 88, -1, 89, -1, 90, -1, 91, - -1, 16, -1, 17, -1, 19, -1, 98, -1, -1, - 136, -1, 139, -1, 142, -1, -1, -1, 107, 49, - 3, 50, 51, 108, 137, 114, 138, -1, -1, -1, - 107, 52, 55, 3, 56, 3, 57, 3, 108, 140, - 114, 141, -1, -1, -1, 107, 53, 55, 3, 108, - 143, 114, 144, -1, 107, 99, 146, 108, -1, -1, - 146, 147, -1, 146, 107, 147, 108, -1, 146, 107, - 147, 115, 3, 108, -1, 47, 149, 148, 3, -1, - -1, 148, 95, -1, 148, 96, -1, 148, 97, -1, - 148, 35, -1, 148, 115, -1, 100, -1, 101, -1, - 102, -1, 103, -1, 104, -1, 105, -1, 106, -1, - 107, 46, 151, 108, -1, -1, 151, 152, -1, 40, - 41, 42, 3, -1, 3, -1 + 124, 27, 125, 108, -1, 107, 1, 108, -1, -1, + 126, 127, 129, 133, -1, 1, -1, -1, 127, 31, + -1, 127, 32, -1, 127, 33, -1, 127, 34, -1, + -1, 9, -1, 107, 128, 28, 3, 132, 108, -1, + -1, -1, 107, 128, 28, 107, 130, 134, 3, 132, + 108, 131, 108, -1, 107, 1, 108, -1, -1, 29, + -1, 107, 128, 30, 114, 108, -1, 107, 1, 108, + -1, -1, 134, 135, -1, 134, 115, -1, 47, -1, + 48, -1, 58, -1, 59, -1, 60, -1, 61, -1, + 62, -1, 63, -1, 64, -1, 65, -1, 66, -1, + 94, -1, 67, -1, 68, -1, 69, -1, 70, -1, + 72, -1, 71, -1, 18, -1, 73, -1, 43, -1, + 44, -1, 45, -1, 92, -1, 93, -1, 74, -1, + 75, -1, 76, -1, 77, -1, 78, -1, 79, -1, + 80, -1, 81, -1, 82, -1, 83, -1, 84, -1, + 85, -1, 86, -1, 87, -1, 88, -1, 89, -1, + 90, -1, 91, -1, 16, -1, 17, -1, 19, -1, + 98, -1, -1, 137, -1, 140, -1, 143, -1, -1, + -1, 107, 49, 3, 50, 51, 108, 138, 114, 139, + -1, -1, -1, 107, 52, 55, 3, 56, 3, 57, + 3, 108, 141, 114, 142, -1, -1, -1, 107, 53, + 55, 3, 108, 144, 114, 145, -1, 107, 99, 147, + 108, -1, -1, 147, 148, -1, 147, 107, 148, 108, + -1, 147, 107, 148, 115, 3, 108, -1, 47, 150, + 149, 3, -1, -1, 149, 95, -1, 149, 96, -1, + 149, 97, -1, 149, 35, -1, 149, 115, -1, 100, + -1, 101, -1, 102, -1, 103, -1, 104, -1, 105, + -1, 106, -1, 107, 46, 152, 108, -1, -1, 152, + 153, -1, 40, 41, 42, 3, -1, 3, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 205, 205, 205, 205, 208, 209, 210, 211, 213, - 216, 217, 218, 219, 220, 221, 222, 225, 225, 226, - 226, 227, 227, 228, 228, 229, 229, 230, 230, 231, - 231, 232, 232, 233, 233, 234, 238, 239, 242, 243, - 244, 245, 246, 249, 250, 253, 254, 254, 254, 255, - 258, 259, 262, 263, 264, 267, 268, 269, 276, 283, - 290, 297, 304, 311, 318, 325, 332, 339, 346, 353, - 360, 361, 362, 363, 364, 371, 372, 373, 374, 381, - 388, 395, 402, 409, 416, 423, 430, 437, 444, 451, - 458, 465, 466, 473, 480, 487, 494, 501, 508, 514, - 515, 516, 517, 518, 519, 523, 524, 525, 526, 538, - 538, 538, 553, 553, 553, 567, 567, 567, 576, 579, - 580, 581, 582, 588, 592, 593, 594, 595, 596, 597, - 602, 603, 604, 605, 606, 607, 608, 616, 619, 620, - 624, 629 + 0, 208, 208, 208, 208, 211, 212, 213, 214, 216, + 219, 220, 221, 222, 223, 224, 225, 228, 228, 229, + 229, 230, 230, 231, 231, 232, 232, 233, 233, 234, + 234, 235, 235, 236, 236, 237, 241, 241, 242, 245, + 246, 247, 248, 249, 252, 253, 256, 257, 257, 257, + 258, 261, 262, 265, 266, 269, 270, 271, 278, 285, + 292, 299, 306, 313, 320, 327, 334, 341, 348, 355, + 362, 363, 364, 365, 366, 373, 374, 375, 376, 383, + 390, 397, 404, 411, 418, 425, 432, 439, 446, 453, + 460, 467, 468, 475, 482, 489, 496, 503, 510, 516, + 517, 518, 519, 520, 521, 525, 526, 527, 528, 540, + 540, 540, 555, 555, 555, 569, 569, 569, 578, 581, + 582, 583, 584, 590, 594, 595, 596, 597, 598, 599, + 604, 605, 606, 607, 608, 609, 610, 618, 621, 622, + 626, 631 }; #endif @@ -698,11 +700,11 @@ static const char *const yytname[] = "RTFfamilyModern", "RTFfamilyScript", "RTFfamilyDecor", "RTFfamilyTech", "'{'", "'}'", "$accept", "rtfFile", "$@1", "$@2", "rtfCharset", "rtfIngredients", "rtfBlock", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", - "$@9", "$@10", "$@11", "rtfField", "rtfFieldMod", "rtfIgnore", - "rtfFieldinst", "$@12", "$@13", "rtfFieldalt", "rtfFieldrslt", + "$@9", "$@10", "$@11", "rtfField", "$@12", "rtfFieldMod", "rtfIgnore", + "rtfFieldinst", "$@13", "$@14", "rtfFieldalt", "rtfFieldrslt", "rtfStatementList", "rtfStatement", "rtfNeXTstuff", "rtfNeXTGraphic", - "$@14", "$@15", "rtfNeXTHelpLink", "$@16", "$@17", "rtfNeXTHelpMarker", - "$@18", "$@19", "rtfFontList", "rtfFonts", "rtfFontStatement", + "$@15", "$@16", "rtfNeXTHelpLink", "$@17", "$@18", "rtfNeXTHelpMarker", + "$@19", "$@20", "rtfFontList", "rtfFonts", "rtfFontStatement", "rtfFontAttrs", "rtfFontFamily", "rtfColorDef", "rtfColors", "rtfColorStatement", YY_NULL }; @@ -733,18 +735,18 @@ static const yytype_uint8 yyr1[] = 0, 109, 111, 112, 110, 113, 113, 113, 113, 113, 114, 114, 114, 114, 114, 114, 114, 116, 115, 117, 115, 118, 115, 119, 115, 120, 115, 121, 115, 122, - 115, 123, 115, 124, 115, 115, 125, 125, 126, 126, - 126, 126, 126, 127, 127, 128, 129, 130, 128, 128, - 131, 131, 132, 132, 132, 133, 133, 133, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 135, 135, 135, 135, 137, - 138, 136, 140, 141, 139, 143, 144, 142, 145, 146, - 146, 146, 146, 147, 148, 148, 148, 148, 148, 148, - 149, 149, 149, 149, 149, 149, 149, 150, 151, 151, - 152, 152 + 115, 123, 115, 124, 115, 115, 126, 125, 125, 127, + 127, 127, 127, 127, 128, 128, 129, 130, 131, 129, + 129, 132, 132, 133, 133, 134, 134, 134, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 136, 136, 136, 136, 138, + 139, 137, 141, 142, 140, 144, 145, 143, 146, 147, + 147, 147, 147, 148, 149, 149, 149, 149, 149, 149, + 150, 150, 150, 150, 150, 150, 150, 151, 152, 152, + 153, 153 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -753,9 +755,9 @@ static const yytype_uint8 yyr2[] = 0, 2, 0, 0, 7, 1, 1, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, - 5, 0, 5, 0, 5, 3, 3, 1, 0, 2, - 2, 2, 2, 0, 1, 6, 0, 0, 11, 3, - 0, 1, 5, 8, 3, 0, 2, 2, 1, 1, + 5, 0, 5, 0, 5, 3, 0, 4, 1, 0, + 2, 2, 2, 2, 0, 1, 6, 0, 0, 11, + 3, 0, 1, 5, 3, 0, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -783,66 +785,64 @@ static const yytype_uint8 yydefact[] = 4, 35, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 0, 141, 0, 137, 139, 0, 0, 118, 120, 0, 0, 106, 107, 108, 0, 0, 0, 0, - 0, 0, 0, 37, 0, 0, 0, 130, 131, 132, + 0, 0, 0, 38, 0, 39, 0, 130, 131, 132, 133, 134, 135, 136, 124, 0, 0, 0, 0, 18, - 20, 22, 24, 26, 28, 30, 32, 34, 39, 40, - 41, 42, 0, 0, 0, 0, 0, 121, 0, 0, - 0, 0, 0, 44, 0, 0, 36, 140, 123, 128, - 125, 126, 127, 129, 0, 0, 0, 0, 49, 0, - 0, 0, 122, 0, 0, 115, 50, 46, 54, 0, - 109, 0, 10, 51, 0, 55, 0, 55, 10, 0, - 0, 45, 0, 52, 0, 0, 0, 117, 50, 57, - 56, 0, 111, 112, 0, 0, 10, 47, 53, 0, - 0, 114, 48 + 20, 22, 24, 26, 28, 30, 32, 34, 0, 0, + 0, 0, 121, 0, 0, 0, 0, 40, 41, 42, + 43, 0, 0, 140, 123, 128, 125, 126, 127, 129, + 0, 0, 0, 0, 0, 45, 0, 0, 37, 122, + 0, 0, 115, 50, 0, 0, 0, 109, 0, 10, + 51, 47, 54, 10, 10, 0, 0, 52, 0, 55, + 0, 0, 0, 117, 46, 0, 53, 111, 112, 51, + 57, 56, 10, 0, 0, 48, 114, 0, 49 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 2, 3, 63, 11, 12, 64, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 114, 115, 154, 143, - 185, 210, 184, 156, 192, 65, 102, 103, 188, 202, - 104, 206, 211, 105, 182, 197, 66, 83, 100, 145, - 124, 67, 82, 96 + 74, 75, 76, 77, 78, 79, 114, 115, 138, 166, + 152, 189, 207, 188, 168, 195, 65, 102, 103, 184, + 197, 104, 202, 206, 105, 179, 193, 66, 83, 100, + 140, 124, 67, 82, 96 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -158 +#define YYPACT_NINF -103 static const yytype_int16 yypact[] = { - -100, -158, 24, 25, -158, 4, -158, -158, -158, -158, - -158, -158, 372, -158, -158, -158, -158, -158, -158, -158, - -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, - -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, - -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, - -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, - -158, -158, 178, -72, -158, -158, -158, -158, -65, -158, - -158, -158, 35, 36, 34, 45, 46, 33, 43, 37, - -158, -158, 1, -42, 466, -158, -158, -158, -158, -158, - -158, -158, 0, -158, 7, -158, -158, -50, 13, -158, - -158, 78, -47, -158, -158, -158, 560, 654, 748, 842, - 936, 1030, 1124, -158, -46, -6, 26, -158, -158, -158, - -158, -158, -158, -158, -158, -68, 60, 14, 16, -158, - -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, - -158, -158, 21, -40, 70, 3, 278, -158, 71, 27, - 72, 73, -30, -158, 52, 12, -158, -158, -158, -158, - -158, -158, -158, -158, -26, 32, 28, -23, -158, -1, - -22, 74, -158, -5, 105, -158, 84, -158, -158, 5, - -158, 57, -158, -158, 8, -158, 10, -158, -158, 112, - 1218, -158, 1499, -158, 1591, 1312, 11, -158, 84, -158, - -158, 20, -158, -158, 65, 66, -158, -158, -158, 1406, - 67, -158, -158 + -102, -103, 7, 9, -103, 4, -103, -103, -103, -103, + -103, -103, 368, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, 174, -82, -103, -103, -103, -103, -69, -103, + -103, -103, 28, -2, 38, 39, 37, 40, 42, 25, + -103, -103, 1, -44, 462, -103, -103, -103, -103, -103, + -103, -103, 0, -103, 12, -103, -103, -58, 11, -103, + -103, 74, -49, -103, -103, -103, 556, 650, 744, 838, + 932, 1026, 1120, -103, -48, -103, 19, -103, -103, -103, + -103, -103, -103, -103, -103, -78, 59, 10, 13, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -10, 63, + 3, 274, -103, 64, 20, 66, 68, -103, -103, -103, + -103, 27, -35, -103, -103, -103, -103, -103, -103, -103, + -34, 22, 23, -32, -30, -103, 52, 26, -103, -103, + -27, 79, -103, -103, -1, -14, 73, -103, 47, -103, + 67, -103, -103, -103, -103, 102, 1214, -103, 6, -103, + 1308, 1402, 8, -103, -103, 1589, -103, -103, -103, 67, + -103, -103, -103, 16, 1496, -103, -103, 17, -103 }; /* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = +static const yytype_int8 yypgoto[] = { - -158, -158, -158, -158, -158, -71, -122, -158, -158, -158, - -158, -158, -158, -158, -158, -158, -158, -158, -35, -158, - -158, -158, -69, -158, -55, -157, -158, -158, -158, -158, - -158, -158, -158, -158, -158, -158, -158, -158, 80, -158, - -158, -158, -158, -158 + -103, -103, -103, -103, -103, -71, -100, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -56, + -103, -103, -103, -84, -103, -103, -67, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, 31, + -103, -103, -103, -103, -103 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -851,45 +851,54 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -117 static const yytype_int16 yytable[] = { - 84, 113, 176, 148, 93, 97, 158, 1, 186, 6, - 7, 8, 9, 170, 106, 107, 108, 109, 110, 111, - 112, 153, 152, 163, 4, 138, 139, 140, 141, 5, - 153, -38, -38, -38, -38, 200, 80, 200, 159, 146, - 147, 94, -43, 81, 85, 87, 86, 90, 116, -43, - 117, 118, 119, 120, 121, 122, 123, 88, 91, 89, - 97, 129, 137, 149, 92, 98, 99, 155, 144, 150, - 199, 151, 199, 157, 164, 166, 167, 165, 168, 68, - 169, -17, 172, 173, 174, 175, 178, -19, -21, -23, - -25, -27, -29, -31, -17, -17, -17, -17, 160, 161, - 162, 142, 10, 180, 179, -33, 177, -38, 181, 95, - 146, 190, 187, 183, 189, 196, 191, 195, 193, 203, - 171, -17, -17, -17, 69, -17, -17, 126, 205, 204, - 127, 128, 194, 0, 0, 209, -17, -17, -17, -17, + 84, 113, 180, 97, 93, 1, 154, 4, 86, 6, + 7, 8, 9, 5, 106, 107, 108, 109, 110, 111, + 112, 147, 148, 149, 150, 143, 80, 175, 164, 141, + 142, -36, -36, -36, -36, 165, 165, 85, 155, 81, + 159, 94, 117, 118, 119, 120, 121, 122, 123, 87, + 89, 88, 92, 116, 90, -44, -44, 91, 97, 129, + 137, 139, 144, 98, 99, 145, 153, 160, 146, 162, + 161, 163, 167, 170, 169, 68, 172, -17, 173, 171, + 174, 177, 178, -19, -21, -23, -25, -27, -29, -31, + -17, -17, -17, -17, 182, 200, 187, 151, 156, 157, + 158, -33, 10, 183, 185, 192, 181, -36, 186, 95, + 141, 176, 190, 191, 194, 203, 198, -17, -17, -17, + 69, -17, -17, 126, 205, 208, 127, 128, 201, 125, + 0, 204, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, 0, + 0, 0, -17, 70, 0, 68, 0, -17, 0, 0, + 0, -17, -17, -19, -21, -23, -25, -27, -29, -31, + -17, -17, -17, -17, 0, 0, 0, 0, 0, 0, + 0, -33, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -17, -17, -17, + 69, -17, -17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, - -17, -17, -17, 207, 208, 212, -17, 70, 125, 68, - 0, -17, 0, 0, 0, -17, -17, -19, -21, -23, - -25, -27, -29, -31, -17, -17, -17, -17, 0, 0, - 0, 0, 0, 0, 0, -33, 0, 0, 0, 0, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, 0, + 0, 0, -17, 70, 0, 68, 0, -17, 0, 0, + 0, -17, -17, -19, -21, -23, -25, -27, -29, -31, + -17, -17, -17, -17, 0, 0, 0, 0, 0, 0, + 0, -33, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -17, -17, -17, + 0, -17, -17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, 13, + 0, 14, -17, 0, 0, 0, 0, 0, 0, 0, + 0, -17, -17, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -17, -17, -17, 69, -17, -17, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -17, -17, -17, -17, - -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, - -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, - -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, - -17, -17, -17, 0, 0, 0, -17, 70, 0, 68, - 0, -17, 0, 0, 0, -17, -17, -19, -21, -23, - -25, -27, -29, -31, -17, -17, -17, -17, 0, 0, - 0, 0, 0, 0, 0, -33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -17, -17, -17, 0, -17, -17, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -17, -17, -17, -17, - -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, - -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, - -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, - -17, -17, -17, 13, 0, 14, -17, 0, 0, 0, - 0, 0, 0, 0, 0, -17, -17, 0, 15, 16, + 0, 19, 20, 21, 0, 22, 23, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 13, 0, 14, 61, 0, 0, 0, + 0, 0, 0, 0, 0, 62, -3, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 20, 21, 0, 22, @@ -898,8 +907,8 @@ static const yytype_int16 yytable[] = 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 13, 0, 14, - 61, 0, 0, 0, 0, 0, 0, 0, 0, 62, - -3, 0, 15, 16, 17, 18, 0, 0, 0, 0, + 61, 0, 0, 0, 0, 0, 0, 0, 0, 101, + -105, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 20, 21, 0, 22, 23, 0, 0, 0, 0, 0, @@ -908,7 +917,7 @@ static const yytype_int16 yytable[] = 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 13, 0, 14, 61, 0, 0, 0, 0, 0, - 0, 0, 0, 101, -105, 0, 15, 16, 17, 18, + 0, 0, 0, 62, 130, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 20, 21, 0, 22, 23, 0, @@ -917,7 +926,7 @@ static const yytype_int16 yytable[] = 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 13, 0, 14, 61, 0, - 0, 0, 0, 0, 0, 0, 0, 62, 130, 0, + 0, 0, 0, 0, 0, 0, 0, 62, 131, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 20, 21, @@ -927,7 +936,7 @@ static const yytype_int16 yytable[] = 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 13, 0, 14, 61, 0, 0, 0, 0, 0, 0, 0, - 0, 62, 131, 0, 15, 16, 17, 18, 0, 0, + 0, 62, 132, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 20, 21, 0, 22, 23, 0, 0, 0, @@ -936,7 +945,7 @@ static const yytype_int16 yytable[] = 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 13, 0, 14, 61, 0, 0, 0, - 0, 0, 0, 0, 0, 62, 132, 0, 15, 16, + 0, 0, 0, 0, 0, 62, 133, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 20, 21, 0, 22, @@ -946,7 +955,7 @@ static const yytype_int16 yytable[] = 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 13, 0, 14, 61, 0, 0, 0, 0, 0, 0, 0, 0, 62, - 133, 0, 15, 16, 17, 18, 0, 0, 0, 0, + 134, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 20, 21, 0, 22, 23, 0, 0, 0, 0, 0, @@ -955,7 +964,7 @@ static const yytype_int16 yytable[] = 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 13, 0, 14, 61, 0, 0, 0, 0, 0, - 0, 0, 0, 62, 134, 0, 15, 16, 17, 18, + 0, 0, 0, 62, 135, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 20, 21, 0, 22, 23, 0, @@ -964,7 +973,7 @@ static const yytype_int16 yytable[] = 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 13, 0, 14, 61, 0, - 0, 0, 0, 0, 0, 0, 0, 62, 135, 0, + 0, 0, 0, 0, 0, 0, 0, 62, 136, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 20, 21, @@ -974,7 +983,7 @@ static const yytype_int16 yytable[] = 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 13, 0, 14, 61, 0, 0, 0, 0, 0, 0, 0, - 0, 62, 136, 0, 15, 16, 17, 18, 0, 0, + 0, 62, -116, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 20, 21, 0, 22, 23, 0, 0, 0, @@ -983,7 +992,7 @@ static const yytype_int16 yytable[] = 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 13, 0, 14, 61, 0, 0, 0, - 0, 0, 0, 0, 0, 62, -116, 0, 15, 16, + 0, 0, 0, 0, 0, 62, 196, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 20, 21, 0, 22, @@ -1001,7 +1010,7 @@ static const yytype_int16 yytable[] = 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 0, 198, 0, 61, 0, 0, 0, 0, 0, + 60, 0, 199, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 62, -113, 15, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1010,58 +1019,58 @@ static const yytype_int16 yytable[] = 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 201, 0, 0, 61, 0, 0, - 0, 0, 0, 0, 0, 0, 146, 15, 16, 17, - 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 19, 20, 21, 0, 22, 23, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 0, 0, 0, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 146 + 57, 58, 59, 60, 0, 0, 0, 61, 0, 0, + 0, 0, 0, 0, 0, 0, 141 }; #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-158))) + (!!((Yystate) == (-103))) #define yytable_value_is_error(Yytable_value) \ YYID (0) static const yytype_int16 yycheck[] = { - 71, 1, 3, 125, 3, 47, 3, 107, 3, 5, - 6, 7, 8, 1, 85, 86, 87, 88, 89, 90, - 91, 9, 1, 145, 0, 31, 32, 33, 34, 4, - 9, 31, 32, 33, 34, 192, 108, 194, 35, 107, - 108, 40, 30, 108, 9, 11, 10, 14, 41, 28, - 100, 101, 102, 103, 104, 105, 106, 12, 15, 13, - 47, 108, 108, 3, 27, 107, 108, 107, 42, 55, - 192, 55, 194, 3, 3, 3, 3, 50, 108, 1, - 28, 3, 108, 51, 56, 108, 108, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 95, 96, - 97, 107, 98, 108, 30, 27, 107, 107, 3, 108, - 107, 182, 107, 29, 57, 3, 108, 188, 108, 108, - 155, 43, 44, 45, 46, 47, 48, 49, 108, 198, - 52, 53, 187, -1, -1, 206, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 108, 108, 108, 98, 99, 98, 1, - -1, 3, -1, -1, -1, 107, 108, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, -1, -1, - -1, -1, -1, -1, -1, 27, -1, -1, -1, -1, + 71, 1, 3, 47, 3, 107, 3, 0, 10, 5, + 6, 7, 8, 4, 85, 86, 87, 88, 89, 90, + 91, 31, 32, 33, 34, 125, 108, 1, 1, 107, + 108, 31, 32, 33, 34, 9, 9, 9, 35, 108, + 140, 40, 100, 101, 102, 103, 104, 105, 106, 11, + 13, 12, 27, 41, 14, 28, 30, 15, 47, 108, + 108, 42, 3, 107, 108, 55, 3, 3, 55, 3, + 50, 3, 107, 51, 108, 1, 108, 3, 108, 56, + 28, 108, 3, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 108, 195, 29, 107, 95, 96, + 97, 27, 98, 30, 57, 3, 107, 107, 179, 108, + 107, 167, 183, 184, 108, 199, 108, 43, 44, 45, + 46, 47, 48, 49, 108, 108, 52, 53, 195, 98, + -1, 202, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, + -1, -1, 98, 99, -1, 1, -1, 3, -1, -1, + -1, 107, 108, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, -1, -1, -1, -1, -1, -1, + -1, 27, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 43, 44, 45, + 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, + -1, -1, 98, 99, -1, 1, -1, 3, -1, -1, + -1, 107, 108, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, -1, -1, -1, -1, -1, -1, + -1, 27, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 43, 44, 45, + -1, 47, 48, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 1, + -1, 3, 98, -1, -1, -1, -1, -1, -1, -1, + -1, 107, 108, -1, 16, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 43, 44, 45, 46, 47, 48, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, -1, -1, -1, 98, 99, -1, 1, - -1, 3, -1, -1, -1, 107, 108, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, -1, -1, - -1, -1, -1, -1, -1, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, 45, -1, 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, @@ -1190,17 +1199,8 @@ static const yytype_int16 yycheck[] = 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 3, -1, -1, 98, -1, -1, - -1, -1, -1, -1, -1, -1, 107, 16, 17, 18, - 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 43, 44, 45, -1, 47, 48, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, - -1, -1, -1, -1, -1, -1, -1, -1, 107 + 91, 92, 93, 94, -1, -1, -1, 98, -1, -1, + -1, -1, -1, -1, -1, -1, 107 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1213,22 +1213,21 @@ static const yytype_uint8 yystos[] = 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 98, 107, 112, 115, 134, 145, 150, 1, 46, + 94, 98, 107, 112, 115, 135, 146, 151, 1, 46, 99, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 108, 108, 151, 146, 114, 9, 10, 11, 12, 13, - 14, 15, 27, 3, 40, 108, 152, 47, 107, 108, - 147, 107, 135, 136, 139, 142, 114, 114, 114, 114, + 108, 108, 152, 147, 114, 9, 10, 11, 12, 13, + 14, 15, 27, 3, 40, 108, 153, 47, 107, 108, + 148, 107, 136, 137, 140, 143, 114, 114, 114, 114, 114, 114, 114, 1, 125, 126, 41, 100, 101, 102, - 103, 104, 105, 106, 149, 147, 49, 52, 53, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 31, 32, - 33, 34, 107, 128, 42, 148, 107, 108, 115, 3, - 55, 55, 1, 9, 127, 107, 132, 3, 3, 35, - 95, 96, 97, 115, 3, 50, 3, 3, 108, 28, - 1, 127, 108, 51, 56, 108, 3, 107, 108, 30, - 108, 3, 143, 29, 131, 129, 3, 107, 137, 57, - 114, 108, 133, 108, 133, 114, 3, 144, 3, 115, - 134, 3, 138, 108, 131, 108, 140, 108, 108, 114, - 130, 141, 108 + 103, 104, 105, 106, 150, 148, 49, 52, 53, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 127, 42, + 149, 107, 108, 115, 3, 55, 55, 31, 32, 33, + 34, 107, 129, 3, 3, 35, 95, 96, 97, 115, + 3, 50, 3, 3, 1, 9, 128, 107, 133, 108, + 51, 56, 108, 108, 28, 1, 128, 108, 3, 144, + 3, 107, 108, 30, 138, 57, 114, 29, 132, 130, + 114, 114, 3, 145, 108, 134, 108, 139, 108, 3, + 115, 135, 141, 132, 114, 108, 142, 131, 108 }; #define yyerrok (yyerrstatus = 0) @@ -2056,217 +2055,205 @@ yyreduce: { case 2: /* Line 1792 of yacc.c */ -#line 205 "rtfGrammar.y" +#line 208 "rtfGrammar.y" { GSRTFstart(CTXT); } break; case 3: /* Line 1792 of yacc.c */ -#line 205 "rtfGrammar.y" +#line 208 "rtfGrammar.y" { GSRTFstop(CTXT); } break; case 5: /* Line 1792 of yacc.c */ -#line 208 "rtfGrammar.y" +#line 211 "rtfGrammar.y" { (yyval.number) = 1; } break; case 6: /* Line 1792 of yacc.c */ -#line 209 "rtfGrammar.y" +#line 212 "rtfGrammar.y" { (yyval.number) = 2; } break; case 7: /* Line 1792 of yacc.c */ -#line 210 "rtfGrammar.y" +#line 213 "rtfGrammar.y" { (yyval.number) = 3; } break; case 8: /* Line 1792 of yacc.c */ -#line 211 "rtfGrammar.y" +#line 214 "rtfGrammar.y" { (yyval.number) = 4; } break; case 9: /* Line 1792 of yacc.c */ -#line 213 "rtfGrammar.y" +#line 216 "rtfGrammar.y" { (yyval.number) = 1; free((void*)(yyvsp[(1) - (1)].cmd).name); } break; case 14: /* Line 1792 of yacc.c */ -#line 220 "rtfGrammar.y" +#line 223 "rtfGrammar.y" { GSRTFmangleText(CTXT, (yyvsp[(2) - (2)].text)); free((void *)(yyvsp[(2) - (2)].text)); } break; case 17: /* Line 1792 of yacc.c */ -#line 225 "rtfGrammar.y" +#line 228 "rtfGrammar.y" { GSRTFopenBlock(CTXT, NO); } break; case 18: /* Line 1792 of yacc.c */ -#line 225 "rtfGrammar.y" +#line 228 "rtfGrammar.y" { GSRTFcloseBlock(CTXT, NO); } break; case 19: /* Line 1792 of yacc.c */ -#line 226 "rtfGrammar.y" +#line 229 "rtfGrammar.y" { GSRTFopenBlock(CTXT, YES); } break; case 20: /* Line 1792 of yacc.c */ -#line 226 "rtfGrammar.y" +#line 229 "rtfGrammar.y" { GSRTFcloseBlock(CTXT, YES); } break; case 21: /* Line 1792 of yacc.c */ -#line 227 "rtfGrammar.y" +#line 230 "rtfGrammar.y" { GSRTFopenBlock(CTXT, YES); } break; case 22: /* Line 1792 of yacc.c */ -#line 227 "rtfGrammar.y" +#line 230 "rtfGrammar.y" { GSRTFcloseBlock(CTXT, YES); } break; case 23: /* Line 1792 of yacc.c */ -#line 228 "rtfGrammar.y" +#line 231 "rtfGrammar.y" { GSRTFopenBlock(CTXT, YES); } break; case 24: /* Line 1792 of yacc.c */ -#line 228 "rtfGrammar.y" +#line 231 "rtfGrammar.y" { GSRTFcloseBlock(CTXT, YES); } break; case 25: /* Line 1792 of yacc.c */ -#line 229 "rtfGrammar.y" +#line 232 "rtfGrammar.y" { GSRTFopenBlock(CTXT, YES); } break; case 26: /* Line 1792 of yacc.c */ -#line 229 "rtfGrammar.y" +#line 232 "rtfGrammar.y" { GSRTFcloseBlock(CTXT, YES); } break; case 27: /* Line 1792 of yacc.c */ -#line 230 "rtfGrammar.y" +#line 233 "rtfGrammar.y" { GSRTFopenBlock(CTXT, YES); } break; case 28: /* Line 1792 of yacc.c */ -#line 230 "rtfGrammar.y" +#line 233 "rtfGrammar.y" { GSRTFcloseBlock(CTXT, YES); } break; case 29: /* Line 1792 of yacc.c */ -#line 231 "rtfGrammar.y" +#line 234 "rtfGrammar.y" { GSRTFopenBlock(CTXT, YES); } break; case 30: /* Line 1792 of yacc.c */ -#line 231 "rtfGrammar.y" +#line 234 "rtfGrammar.y" { GSRTFcloseBlock(CTXT, YES); } break; case 31: /* Line 1792 of yacc.c */ -#line 232 "rtfGrammar.y" +#line 235 "rtfGrammar.y" { GSRTFopenBlock(CTXT, YES); } break; case 32: /* Line 1792 of yacc.c */ -#line 232 "rtfGrammar.y" +#line 235 "rtfGrammar.y" { GSRTFcloseBlock(CTXT, YES); } break; case 33: /* Line 1792 of yacc.c */ -#line 233 "rtfGrammar.y" +#line 236 "rtfGrammar.y" { GSRTFopenBlock(CTXT, NO); } break; case 34: /* Line 1792 of yacc.c */ -#line 233 "rtfGrammar.y" +#line 236 "rtfGrammar.y" { GSRTFcloseBlock(CTXT, NO); } break; case 36: /* Line 1792 of yacc.c */ -#line 238 "rtfGrammar.y" - { GSRTFaddField(CTXT, (yyvsp[(2) - (3)].text), (yyvsp[(3) - (3)].text)); free((void *)(yyvsp[(2) - (3)].text)); free((void *)(yyvsp[(3) - (3)].text)); } +#line 241 "rtfGrammar.y" + { fieldStart = GSRTFgetPosition(CTXT);} break; - case 45: + case 37: /* Line 1792 of yacc.c */ -#line 253 "rtfGrammar.y" - { (yyval.text) = (yyvsp[(4) - (6)].text);} +#line 241 "rtfGrammar.y" + { GSRTFaddField(CTXT, fieldStart, (yyvsp[(3) - (4)].text)); free((void *)(yyvsp[(3) - (4)].text)); } break; case 46: /* Line 1792 of yacc.c */ -#line 254 "rtfGrammar.y" - { GSRTFopenBlock(CTXT, YES); } +#line 256 "rtfGrammar.y" + { (yyval.text) = (yyvsp[(4) - (6)].text);} break; case 47: /* Line 1792 of yacc.c */ -#line 254 "rtfGrammar.y" - { GSRTFcloseBlock(CTXT, YES); } +#line 257 "rtfGrammar.y" + { GSRTFopenBlock(CTXT, YES); } break; case 48: /* Line 1792 of yacc.c */ -#line 254 "rtfGrammar.y" - { (yyval.text) = (yyvsp[(7) - (11)].text);} +#line 257 "rtfGrammar.y" + { GSRTFcloseBlock(CTXT, YES); } break; case 49: /* Line 1792 of yacc.c */ -#line 255 "rtfGrammar.y" - { (yyval.text) = NULL;} +#line 257 "rtfGrammar.y" + { (yyval.text) = (yyvsp[(7) - (11)].text);} break; - case 52: + case 50: /* Line 1792 of yacc.c */ -#line 262 "rtfGrammar.y" - { (yyval.text) = (yyvsp[(4) - (5)].text);} - break; - - case 53: -/* Line 1792 of yacc.c */ -#line 263 "rtfGrammar.y" - { (yyval.text) = (yyvsp[(6) - (8)].text);} - break; - - case 54: -/* Line 1792 of yacc.c */ -#line 264 "rtfGrammar.y" +#line 258 "rtfGrammar.y" { (yyval.text) = NULL;} break; case 58: /* Line 1792 of yacc.c */ -#line 276 "rtfGrammar.y" +#line 278 "rtfGrammar.y" { int font; if ((yyvsp[(1) - (1)].cmd).isEmpty) @@ -2278,7 +2265,7 @@ yyreduce: case 59: /* Line 1792 of yacc.c */ -#line 283 "rtfGrammar.y" +#line 285 "rtfGrammar.y" { int size; if ((yyvsp[(1) - (1)].cmd).isEmpty) @@ -2290,7 +2277,7 @@ yyreduce: case 60: /* Line 1792 of yacc.c */ -#line 290 "rtfGrammar.y" +#line 292 "rtfGrammar.y" { int width; if ((yyvsp[(1) - (1)].cmd).isEmpty) @@ -2302,7 +2289,7 @@ yyreduce: case 61: /* Line 1792 of yacc.c */ -#line 297 "rtfGrammar.y" +#line 299 "rtfGrammar.y" { int height; if ((yyvsp[(1) - (1)].cmd).isEmpty) @@ -2314,7 +2301,7 @@ yyreduce: case 62: /* Line 1792 of yacc.c */ -#line 304 "rtfGrammar.y" +#line 306 "rtfGrammar.y" { int margin; if ((yyvsp[(1) - (1)].cmd).isEmpty) @@ -2326,7 +2313,7 @@ yyreduce: case 63: /* Line 1792 of yacc.c */ -#line 311 "rtfGrammar.y" +#line 313 "rtfGrammar.y" { int margin; if ((yyvsp[(1) - (1)].cmd).isEmpty) @@ -2338,7 +2325,7 @@ yyreduce: case 64: /* Line 1792 of yacc.c */ -#line 318 "rtfGrammar.y" +#line 320 "rtfGrammar.y" { int margin; if ((yyvsp[(1) - (1)].cmd).isEmpty) @@ -2350,7 +2337,7 @@ yyreduce: case 65: /* Line 1792 of yacc.c */ -#line 325 "rtfGrammar.y" +#line 327 "rtfGrammar.y" { int margin; if ((yyvsp[(1) - (1)].cmd).isEmpty) @@ -2362,7 +2349,7 @@ yyreduce: case 66: /* Line 1792 of yacc.c */ -#line 332 "rtfGrammar.y" +#line 334 "rtfGrammar.y" { int indent; if ((yyvsp[(1) - (1)].cmd).isEmpty) @@ -2374,7 +2361,7 @@ yyreduce: case 67: /* Line 1792 of yacc.c */ -#line 339 "rtfGrammar.y" +#line 341 "rtfGrammar.y" { int indent; if ((yyvsp[(1) - (1)].cmd).isEmpty) @@ -2386,7 +2373,7 @@ yyreduce: case 68: /* Line 1792 of yacc.c */ -#line 346 "rtfGrammar.y" +#line 348 "rtfGrammar.y" { int indent; if ((yyvsp[(1) - (1)].cmd).isEmpty) @@ -2398,7 +2385,7 @@ yyreduce: case 69: /* Line 1792 of yacc.c */ -#line 353 "rtfGrammar.y" +#line 355 "rtfGrammar.y" { int location; if ((yyvsp[(1) - (1)].cmd).isEmpty) @@ -2410,31 +2397,31 @@ yyreduce: case 70: /* Line 1792 of yacc.c */ -#line 360 "rtfGrammar.y" +#line 362 "rtfGrammar.y" { GSRTFalignCenter(CTXT); } break; case 71: /* Line 1792 of yacc.c */ -#line 361 "rtfGrammar.y" +#line 363 "rtfGrammar.y" { GSRTFalignJustified(CTXT); } break; case 72: /* Line 1792 of yacc.c */ -#line 362 "rtfGrammar.y" +#line 364 "rtfGrammar.y" { GSRTFalignLeft(CTXT); } break; case 73: /* Line 1792 of yacc.c */ -#line 363 "rtfGrammar.y" +#line 365 "rtfGrammar.y" { GSRTFalignRight(CTXT); } break; case 74: /* Line 1792 of yacc.c */ -#line 364 "rtfGrammar.y" +#line 366 "rtfGrammar.y" { int space; if ((yyvsp[(1) - (1)].cmd).isEmpty) @@ -2446,25 +2433,25 @@ yyreduce: case 75: /* Line 1792 of yacc.c */ -#line 371 "rtfGrammar.y" +#line 373 "rtfGrammar.y" { GSRTFlineSpace(CTXT, (yyvsp[(1) - (1)].cmd).parameter); } break; case 76: /* Line 1792 of yacc.c */ -#line 372 "rtfGrammar.y" +#line 374 "rtfGrammar.y" { GSRTFdefaultParagraph(CTXT); } break; case 77: /* Line 1792 of yacc.c */ -#line 373 "rtfGrammar.y" +#line 375 "rtfGrammar.y" { GSRTFstyle(CTXT, (yyvsp[(1) - (1)].cmd).parameter); } break; case 78: /* Line 1792 of yacc.c */ -#line 374 "rtfGrammar.y" +#line 376 "rtfGrammar.y" { int color; if ((yyvsp[(1) - (1)].cmd).isEmpty) @@ -2476,7 +2463,7 @@ yyreduce: case 79: /* Line 1792 of yacc.c */ -#line 381 "rtfGrammar.y" +#line 383 "rtfGrammar.y" { int color; if ((yyvsp[(1) - (1)].cmd).isEmpty) @@ -2488,7 +2475,7 @@ yyreduce: case 80: /* Line 1792 of yacc.c */ -#line 388 "rtfGrammar.y" +#line 390 "rtfGrammar.y" { int color; if ((yyvsp[(1) - (1)].cmd).isEmpty) @@ -2500,7 +2487,7 @@ yyreduce: case 81: /* Line 1792 of yacc.c */ -#line 395 "rtfGrammar.y" +#line 397 "rtfGrammar.y" { int script; if ((yyvsp[(1) - (1)].cmd).isEmpty) @@ -2512,7 +2499,7 @@ yyreduce: case 82: /* Line 1792 of yacc.c */ -#line 402 "rtfGrammar.y" +#line 404 "rtfGrammar.y" { int script; if ((yyvsp[(1) - (1)].cmd).isEmpty) @@ -2524,7 +2511,7 @@ yyreduce: case 83: /* Line 1792 of yacc.c */ -#line 409 "rtfGrammar.y" +#line 411 "rtfGrammar.y" { BOOL on; if ((yyvsp[(1) - (1)].cmd).isEmpty || (yyvsp[(1) - (1)].cmd).parameter) @@ -2536,7 +2523,7 @@ yyreduce: case 84: /* Line 1792 of yacc.c */ -#line 416 "rtfGrammar.y" +#line 418 "rtfGrammar.y" { BOOL on; if ((yyvsp[(1) - (1)].cmd).isEmpty || (yyvsp[(1) - (1)].cmd).parameter) @@ -2548,7 +2535,7 @@ yyreduce: case 85: /* Line 1792 of yacc.c */ -#line 423 "rtfGrammar.y" +#line 425 "rtfGrammar.y" { BOOL on; if ((yyvsp[(1) - (1)].cmd).isEmpty || (yyvsp[(1) - (1)].cmd).parameter) @@ -2560,7 +2547,7 @@ yyreduce: case 86: /* Line 1792 of yacc.c */ -#line 430 "rtfGrammar.y" +#line 432 "rtfGrammar.y" { BOOL on; if ((yyvsp[(1) - (1)].cmd).isEmpty || (yyvsp[(1) - (1)].cmd).parameter) @@ -2572,7 +2559,7 @@ yyreduce: case 87: /* Line 1792 of yacc.c */ -#line 437 "rtfGrammar.y" +#line 439 "rtfGrammar.y" { BOOL on; if ((yyvsp[(1) - (1)].cmd).isEmpty || (yyvsp[(1) - (1)].cmd).parameter) @@ -2584,7 +2571,7 @@ yyreduce: case 88: /* Line 1792 of yacc.c */ -#line 444 "rtfGrammar.y" +#line 446 "rtfGrammar.y" { BOOL on; if ((yyvsp[(1) - (1)].cmd).isEmpty || (yyvsp[(1) - (1)].cmd).parameter) @@ -2596,7 +2583,7 @@ yyreduce: case 89: /* Line 1792 of yacc.c */ -#line 451 "rtfGrammar.y" +#line 453 "rtfGrammar.y" { BOOL on; if ((yyvsp[(1) - (1)].cmd).isEmpty || (yyvsp[(1) - (1)].cmd).parameter) @@ -2608,7 +2595,7 @@ yyreduce: case 90: /* Line 1792 of yacc.c */ -#line 458 "rtfGrammar.y" +#line 460 "rtfGrammar.y" { BOOL on; if ((yyvsp[(1) - (1)].cmd).isEmpty || (yyvsp[(1) - (1)].cmd).parameter) @@ -2620,13 +2607,13 @@ yyreduce: case 91: /* Line 1792 of yacc.c */ -#line 465 "rtfGrammar.y" +#line 467 "rtfGrammar.y" { GSRTFunderline(CTXT, NO, NSUnderlineStyleNone); } break; case 92: /* Line 1792 of yacc.c */ -#line 466 "rtfGrammar.y" +#line 468 "rtfGrammar.y" { BOOL on; if ((yyvsp[(1) - (1)].cmd).isEmpty || (yyvsp[(1) - (1)].cmd).parameter) @@ -2638,7 +2625,7 @@ yyreduce: case 93: /* Line 1792 of yacc.c */ -#line 473 "rtfGrammar.y" +#line 475 "rtfGrammar.y" { BOOL on; if ((yyvsp[(1) - (1)].cmd).isEmpty || (yyvsp[(1) - (1)].cmd).parameter) @@ -2650,7 +2637,7 @@ yyreduce: case 94: /* Line 1792 of yacc.c */ -#line 480 "rtfGrammar.y" +#line 482 "rtfGrammar.y" { BOOL on; if ((yyvsp[(1) - (1)].cmd).isEmpty || (yyvsp[(1) - (1)].cmd).parameter) @@ -2662,7 +2649,7 @@ yyreduce: case 95: /* Line 1792 of yacc.c */ -#line 487 "rtfGrammar.y" +#line 489 "rtfGrammar.y" { BOOL on; if ((yyvsp[(1) - (1)].cmd).isEmpty || (yyvsp[(1) - (1)].cmd).parameter) @@ -2674,7 +2661,7 @@ yyreduce: case 96: /* Line 1792 of yacc.c */ -#line 494 "rtfGrammar.y" +#line 496 "rtfGrammar.y" { BOOL on; if ((yyvsp[(1) - (1)].cmd).isEmpty || (yyvsp[(1) - (1)].cmd).parameter) @@ -2686,7 +2673,7 @@ yyreduce: case 97: /* Line 1792 of yacc.c */ -#line 501 "rtfGrammar.y" +#line 503 "rtfGrammar.y" { BOOL on; if ((yyvsp[(1) - (1)].cmd).isEmpty || (yyvsp[(1) - (1)].cmd).parameter) @@ -2698,7 +2685,7 @@ yyreduce: case 98: /* Line 1792 of yacc.c */ -#line 508 "rtfGrammar.y" +#line 510 "rtfGrammar.y" { NSInteger style; if ((yyvsp[(1) - (1)].cmd).isEmpty || (yyvsp[(1) - (1)].cmd).parameter) style = NSUnderlineStyleSingle | NSUnderlinePatternSolid; @@ -2709,56 +2696,56 @@ yyreduce: case 99: /* Line 1792 of yacc.c */ -#line 514 "rtfGrammar.y" +#line 516 "rtfGrammar.y" { GSRTFstrikethrough(CTXT, NSUnderlineStyleDouble | NSUnderlinePatternSolid); } break; case 100: /* Line 1792 of yacc.c */ -#line 515 "rtfGrammar.y" +#line 517 "rtfGrammar.y" { GSRTFunicode(CTXT, (yyvsp[(1) - (1)].cmd).parameter); } break; case 101: /* Line 1792 of yacc.c */ -#line 516 "rtfGrammar.y" +#line 518 "rtfGrammar.y" { GSRTFdefaultCharacterStyle(CTXT); } break; case 102: /* Line 1792 of yacc.c */ -#line 517 "rtfGrammar.y" +#line 519 "rtfGrammar.y" { GSRTFparagraph(CTXT); } break; case 103: /* Line 1792 of yacc.c */ -#line 518 "rtfGrammar.y" +#line 520 "rtfGrammar.y" { GSRTFparagraph(CTXT); } break; case 104: /* Line 1792 of yacc.c */ -#line 519 "rtfGrammar.y" +#line 521 "rtfGrammar.y" { GSRTFgenericRTFcommand(CTXT, (yyvsp[(1) - (1)].cmd)); free((void*)(yyvsp[(1) - (1)].cmd).name); } break; case 109: /* Line 1792 of yacc.c */ -#line 538 "rtfGrammar.y" +#line 540 "rtfGrammar.y" { GSRTFopenBlock(CTXT, YES); } break; case 110: /* Line 1792 of yacc.c */ -#line 538 "rtfGrammar.y" +#line 540 "rtfGrammar.y" { GSRTFcloseBlock(CTXT, YES); } break; case 111: /* Line 1792 of yacc.c */ -#line 539 "rtfGrammar.y" +#line 541 "rtfGrammar.y" { GSRTFNeXTGraphic (CTXT, (yyvsp[(3) - (9)].text), (yyvsp[(4) - (9)].cmd).parameter, (yyvsp[(5) - (9)].cmd).parameter); } @@ -2766,19 +2753,19 @@ yyreduce: case 112: /* Line 1792 of yacc.c */ -#line 553 "rtfGrammar.y" +#line 555 "rtfGrammar.y" { GSRTFopenBlock(CTXT, YES); } break; case 113: /* Line 1792 of yacc.c */ -#line 553 "rtfGrammar.y" +#line 555 "rtfGrammar.y" { GSRTFcloseBlock(CTXT, YES); } break; case 114: /* Line 1792 of yacc.c */ -#line 554 "rtfGrammar.y" +#line 556 "rtfGrammar.y" { GSRTFNeXTHelpLink (CTXT, (yyvsp[(2) - (12)].cmd).parameter, (yyvsp[(4) - (12)].text), (yyvsp[(6) - (12)].text), (yyvsp[(8) - (12)].text)); } @@ -2786,19 +2773,19 @@ yyreduce: case 115: /* Line 1792 of yacc.c */ -#line 567 "rtfGrammar.y" +#line 569 "rtfGrammar.y" { GSRTFopenBlock(CTXT, YES); } break; case 116: /* Line 1792 of yacc.c */ -#line 567 "rtfGrammar.y" +#line 569 "rtfGrammar.y" { GSRTFcloseBlock(CTXT, YES); } break; case 117: /* Line 1792 of yacc.c */ -#line 568 "rtfGrammar.y" +#line 570 "rtfGrammar.y" { GSRTFNeXTHelpMarker (CTXT, (yyvsp[(2) - (8)].cmd).parameter, (yyvsp[(4) - (8)].text)); } @@ -2806,62 +2793,62 @@ yyreduce: case 122: /* Line 1792 of yacc.c */ -#line 583 "rtfGrammar.y" +#line 585 "rtfGrammar.y" { free((void *)(yyvsp[(5) - (6)].text));} break; case 123: /* Line 1792 of yacc.c */ -#line 588 "rtfGrammar.y" +#line 590 "rtfGrammar.y" { GSRTFregisterFont(CTXT, (yyvsp[(4) - (4)].text), (yyvsp[(2) - (4)].number), (yyvsp[(1) - (4)].cmd).parameter); free((void *)(yyvsp[(4) - (4)].text)); } break; case 130: /* Line 1792 of yacc.c */ -#line 602 "rtfGrammar.y" +#line 604 "rtfGrammar.y" { (yyval.number) = RTFfamilyNil - RTFfamilyNil; } break; case 131: /* Line 1792 of yacc.c */ -#line 603 "rtfGrammar.y" +#line 605 "rtfGrammar.y" { (yyval.number) = RTFfamilyRoman - RTFfamilyNil; } break; case 132: /* Line 1792 of yacc.c */ -#line 604 "rtfGrammar.y" +#line 606 "rtfGrammar.y" { (yyval.number) = RTFfamilySwiss - RTFfamilyNil; } break; case 133: /* Line 1792 of yacc.c */ -#line 605 "rtfGrammar.y" +#line 607 "rtfGrammar.y" { (yyval.number) = RTFfamilyModern - RTFfamilyNil; } break; case 134: /* Line 1792 of yacc.c */ -#line 606 "rtfGrammar.y" +#line 608 "rtfGrammar.y" { (yyval.number) = RTFfamilyScript - RTFfamilyNil; } break; case 135: /* Line 1792 of yacc.c */ -#line 607 "rtfGrammar.y" +#line 609 "rtfGrammar.y" { (yyval.number) = RTFfamilyDecor - RTFfamilyNil; } break; case 136: /* Line 1792 of yacc.c */ -#line 608 "rtfGrammar.y" +#line 610 "rtfGrammar.y" { (yyval.number) = RTFfamilyTech - RTFfamilyNil; } break; case 140: /* Line 1792 of yacc.c */ -#line 625 "rtfGrammar.y" +#line 627 "rtfGrammar.y" { GSRTFaddColor(CTXT, (yyvsp[(1) - (4)].cmd).parameter, (yyvsp[(2) - (4)].cmd).parameter, (yyvsp[(3) - (4)].cmd).parameter); free((void *)(yyvsp[(4) - (4)].text)); @@ -2870,7 +2857,7 @@ yyreduce: case 141: /* Line 1792 of yacc.c */ -#line 630 "rtfGrammar.y" +#line 632 "rtfGrammar.y" { GSRTFaddDefaultColor(CTXT); free((void *)(yyvsp[(1) - (1)].text)); @@ -2879,7 +2866,7 @@ yyreduce: /* Line 1792 of yacc.c */ -#line 2883 "rtfGrammar.tab.m" +#line 2870 "rtfGrammar.tab.m" default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -3111,7 +3098,7 @@ yyreturn: /* Line 2055 of yacc.c */ -#line 642 "rtfGrammar.y" +#line 644 "rtfGrammar.y" /* some C code here */ diff --git a/TextConverters/RTF/rtfGrammar.y b/TextConverters/RTF/rtfGrammar.y index 704038fdb..6a357d39f 100644 --- a/TextConverters/RTF/rtfGrammar.y +++ b/TextConverters/RTF/rtfGrammar.y @@ -74,6 +74,9 @@ typedef void *GSRTFctxt; /*int GSRTFlex (YYSTYPE *lvalp, RTFscannerCtxt *lctxt); */ int GSRTFlex(void *lvalp, void *lctxt); +/* */ +int fieldStart = 0; + %} %parse-param {void *ctxt} @@ -196,7 +199,7 @@ int GSRTFlex(void *lvalp, void *lctxt); %token RTFfamilyTech %type rtfFontFamily rtfCharset rtfFontStatement -%type rtfFieldinst rtfFieldrslt +%type rtfFieldinst /* let's go */ @@ -235,7 +238,7 @@ rtfBlock: '{' { GSRTFopenBlock(CTXT, NO); } rtfIngredients rtfNeXTstuff '}' { GS ; -rtfField: rtfFieldMod rtfFieldinst rtfFieldrslt { GSRTFaddField(CTXT, $2, $3); free((void *)$2); free((void *)$3); } +rtfField: { fieldStart = GSRTFgetPosition(CTXT);} rtfFieldMod rtfFieldinst rtfFieldrslt { GSRTFaddField(CTXT, fieldStart, $3); free((void *)$3); } | error ; @@ -259,9 +262,8 @@ rtfFieldalt: /* empty */ | RTFfldalt ; -rtfFieldrslt: '{' rtfIgnore RTFfldrslt RTFtext '}' { $$ = $4;} - | '{' rtfIgnore RTFfldrslt '{' rtfStatementList RTFtext '}' '}' { $$ = $6;} - | '{' error '}' { $$ = NULL;} +rtfFieldrslt: '{' rtfIgnore RTFfldrslt rtfIngredients '}' + | '{' error '}' ; rtfStatementList: /* empty */