breakout_parser 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -103,8 +103,14 @@ extern size_t in_buf_len;
103
103
  ^_/[^ \t\r\n_] { yylval.ivalue=0; yy_push_state(_ITALIC); return ITALIC_START; }
104
104
  [ \t]+_/[^ \t\r\n_] { yylval.ivalue=1; yy_push_state(_ITALIC); return ITALIC_START; }
105
105
 
106
- ^@[^\r\n\xff@]+@/[ \t\r\n\xff] { yylval.svalue = yytext; return INLINE_CODE; }
107
- [ \t]+@[^\r\n\xff@]+@/[ \t\r\n\xff] { yylval.svalue = yytext; return INLINE_CODE; }
106
+ ^\*_/[^ \t\r\n*_.] { yylval.ivalue=0; yy_push_state(_BOLD); yy_push_state(_ITALIC); return BOLD_ITALIC_START; }
107
+ [ \t]+\*_/[^ \t\r\n*_.] { yylval.ivalue=1; yy_push_state(_BOLD); yy_push_state(_ITALIC); return BOLD_ITALIC_START; }
108
+
109
+ ^_\*/[^ \t\r\n*_.] { yylval.ivalue=0; yy_push_state(_ITALIC); yy_push_state(_BOLD); return ITALIC_BOLD_START; }
110
+ [ \t]+_\*/[^ \t\r\n*_.] { yylval.ivalue=1; yy_push_state(_ITALIC); yy_push_state(_BOLD); return ITALIC_BOLD_START; }
111
+
112
+ ^@[^\r\n\xff@]+@/[ \t\r\n,.\xff] { yylval.svalue = yytext; return INLINE_CODE; }
113
+ [ \t]+@[^\r\n\xff@]+@/[ \t\r\n,.\xff] { yylval.svalue = yytext; return INLINE_CODE; }
108
114
 
109
115
  ^h[1-5]\.[ \t]+[^ \t\r\n][^\r\n]*/[\r\n\xff] {
110
116
  yylval.svalue = yytext+4;
@@ -176,12 +182,12 @@ extern size_t in_buf_len;
176
182
  <_CODE><<EOF>> { yy_pop_state(); return CODE_END; }
177
183
 
178
184
  <_BOLD>[ \t]+\*/[ \t]+ { yylval.svalue = " *"; return T_WORD; } /* skip lone star */
179
- <_BOLD>\*/[ \t\r\n'.,] { yy_pop_state(); return BOLD_END; }
180
- <_BOLD><<EOF>> { yy_pop_state(); return BOLD_END; }
185
+ <_BOLD>\*/[ \t\r\n'.,_] { yy_pop_state(); return BOLD_END; }
186
+ <_BOLD><<EOF>> { yy_pop_state(); return REVERT_BOLD; }
181
187
 
182
188
  <_ITALIC>[ \t]+_/[ \t]+ { yylval.svalue = " _"; return T_WORD; } /* skip lone underscore */
183
- <_ITALIC>_/[ \t\r\n'.,] { yy_pop_state(); return ITALIC_END; }
184
- <_ITALIC><<EOF>> { yy_pop_state(); return ITALIC_END; }
189
+ <_ITALIC>_/[ \t\r\n'.,*] { yy_pop_state(); return ITALIC_END; }
190
+ <_ITALIC><<EOF>> { yy_pop_state(); return REVERT_ITALIC; }
185
191
 
186
192
  %%
187
193
 
@@ -160,40 +160,44 @@ void yyerror(const char *msg)
160
160
  T_CHAR = 258,
161
161
  BOLD_START = 259,
162
162
  ITALIC_START = 260,
163
- T_WORD = 261,
164
- TICKET_LINK = 262,
165
- LINK = 263,
166
- SVN_REVISION_LINK = 264,
167
- GIT_REVISION_LINK = 265,
168
- WIKI_LINK = 266,
169
- ANCHOR_LINK = 267,
170
- URL_WITH_PROTO_LINK = 268,
171
- URL_WITHOUT_PROTO_LINK = 269,
172
- FILE_LINK = 270,
173
- IMAGE_LINK = 271,
174
- URL = 272,
175
- EMAIL = 273,
176
- UL = 274,
177
- H1 = 275,
178
- H2 = 276,
179
- H3 = 277,
180
- H4 = 278,
181
- H5 = 279,
182
- INLINE_CODE = 280,
183
- SPACE = 281,
184
- BR = 282,
185
- OLI = 283,
186
- ULI = 284,
187
- PRE_CODE_START = 285,
188
- PRE_CODE_END = 286,
189
- PRE_START = 287,
190
- PRE_END = 288,
191
- CODE_START = 289,
192
- CODE_END = 290,
193
- NOTEXTILE_START = 291,
194
- NOTEXTILE_END = 292,
195
- BOLD_END = 293,
196
- ITALIC_END = 294
163
+ BOLD_ITALIC_START = 261,
164
+ ITALIC_BOLD_START = 262,
165
+ T_WORD = 263,
166
+ TICKET_LINK = 264,
167
+ LINK = 265,
168
+ SVN_REVISION_LINK = 266,
169
+ GIT_REVISION_LINK = 267,
170
+ WIKI_LINK = 268,
171
+ ANCHOR_LINK = 269,
172
+ URL_WITH_PROTO_LINK = 270,
173
+ URL_WITHOUT_PROTO_LINK = 271,
174
+ FILE_LINK = 272,
175
+ IMAGE_LINK = 273,
176
+ URL = 274,
177
+ EMAIL = 275,
178
+ UL = 276,
179
+ H1 = 277,
180
+ H2 = 278,
181
+ H3 = 279,
182
+ H4 = 280,
183
+ H5 = 281,
184
+ INLINE_CODE = 282,
185
+ SPACE = 283,
186
+ BR = 284,
187
+ OLI = 285,
188
+ ULI = 286,
189
+ PRE_CODE_START = 287,
190
+ PRE_CODE_END = 288,
191
+ PRE_START = 289,
192
+ PRE_END = 290,
193
+ CODE_START = 291,
194
+ CODE_END = 292,
195
+ NOTEXTILE_START = 293,
196
+ NOTEXTILE_END = 294,
197
+ BOLD_END = 295,
198
+ ITALIC_END = 296,
199
+ REVERT_BOLD = 297,
200
+ REVERT_ITALIC = 298
197
201
  };
198
202
  #endif
199
203
 
@@ -213,7 +217,7 @@ typedef union YYSTYPE
213
217
 
214
218
 
215
219
  /* Line 214 of yacc.c */
216
- #line 217 "parser.tab.c"
220
+ #line 221 "parser.tab.c"
217
221
  } YYSTYPE;
218
222
  # define YYSTYPE_IS_TRIVIAL 1
219
223
  # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -225,7 +229,7 @@ typedef union YYSTYPE
225
229
 
226
230
 
227
231
  /* Line 264 of yacc.c */
228
- #line 229 "parser.tab.c"
232
+ #line 233 "parser.tab.c"
229
233
 
230
234
  #ifdef short
231
235
  # undef short
@@ -438,22 +442,22 @@ union yyalloc
438
442
  #endif
439
443
 
440
444
  /* YYFINAL -- State number of the termination state. */
441
- #define YYFINAL 49
445
+ #define YYFINAL 53
442
446
  /* YYLAST -- Last index in YYTABLE. */
443
- #define YYLAST 113
447
+ #define YYLAST 128
444
448
 
445
449
  /* YYNTOKENS -- Number of terminals. */
446
- #define YYNTOKENS 40
450
+ #define YYNTOKENS 44
447
451
  /* YYNNTS -- Number of nonterminals. */
448
452
  #define YYNNTS 28
449
453
  /* YYNRULES -- Number of rules. */
450
- #define YYNRULES 64
454
+ #define YYNRULES 68
451
455
  /* YYNRULES -- Number of states. */
452
- #define YYNSTATES 78
456
+ #define YYNSTATES 82
453
457
 
454
458
  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
455
459
  #define YYUNDEFTOK 2
456
- #define YYMAXUTOK 294
460
+ #define YYMAXUTOK 298
457
461
 
458
462
  #define YYTRANSLATE(YYX) \
459
463
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -490,7 +494,7 @@ static const yytype_uint8 yytranslate[] =
490
494
  5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
491
495
  15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
492
496
  25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
493
- 35, 36, 37, 38, 39
497
+ 35, 36, 37, 38, 39, 40, 41, 42, 43
494
498
  };
495
499
 
496
500
  #if YYDEBUG
@@ -502,41 +506,42 @@ static const yytype_uint8 yyprhs[] =
502
506
  19, 21, 22, 23, 28, 29, 30, 35, 37, 39,
503
507
  42, 45, 49, 51, 54, 57, 61, 63, 66, 68,
504
508
  70, 72, 74, 76, 78, 80, 82, 84, 86, 88,
505
- 90, 92, 94, 96, 98, 100, 102, 104, 105, 108,
506
- 110, 112, 114, 116, 118, 120, 122, 124, 126, 127,
507
- 132, 136, 137, 142, 143
509
+ 90, 92, 94, 96, 98, 100, 102, 104, 106, 108,
510
+ 110, 112, 113, 116, 118, 120, 122, 124, 126, 128,
511
+ 130, 132, 134, 135, 140, 144, 145, 150, 151
508
512
  };
509
513
 
510
514
  /* YYRHS -- A `-1'-separated list of the rules' RHS. */
511
515
  static const yytype_int8 yyrhs[] =
512
516
  {
513
- 41, 0, -1, -1, 42, 41, -1, 63, -1, 51,
514
- -1, 56, -1, 57, -1, 58, -1, 59, -1, 60,
515
- -1, -1, -1, 43, 47, 44, 42, -1, -1, -1,
516
- 45, 49, 46, 42, -1, 64, -1, 48, -1, 47,
517
- 48, -1, 62, 51, -1, 62, 51, 27, -1, 50,
518
- -1, 49, 50, -1, 61, 51, -1, 61, 51, 27,
519
- -1, 52, -1, 52, 51, -1, 54, -1, 53, -1,
520
- 6, -1, 17, -1, 18, -1, 4, -1, 38, -1,
521
- 5, -1, 39, -1, 25, -1, 7, -1, 9, -1,
522
- 10, -1, 13, -1, 14, -1, 11, -1, 12, -1,
523
- 15, -1, 16, -1, -1, 55, 54, -1, 3, -1,
524
- 20, -1, 21, -1, 22, -1, 23, -1, 24, -1,
525
- 28, -1, 29, -1, 27, -1, -1, 30, 65, 54,
526
- 31, -1, 36, 54, 37, -1, -1, 32, 66, 54,
527
- 33, -1, -1, 34, 67, 54, 35, -1
517
+ 45, 0, -1, -1, 46, 45, -1, 67, -1, 55,
518
+ -1, 60, -1, 61, -1, 62, -1, 63, -1, 64,
519
+ -1, -1, -1, 47, 51, 48, 46, -1, -1, -1,
520
+ 49, 53, 50, 46, -1, 68, -1, 52, -1, 51,
521
+ 52, -1, 66, 55, -1, 66, 55, 29, -1, 54,
522
+ -1, 53, 54, -1, 65, 55, -1, 65, 55, 29,
523
+ -1, 56, -1, 56, 55, -1, 58, -1, 57, -1,
524
+ 8, -1, 19, -1, 20, -1, 4, -1, 40, -1,
525
+ 5, -1, 41, -1, 6, -1, 7, -1, 27, -1,
526
+ 42, -1, 43, -1, 9, -1, 11, -1, 12, -1,
527
+ 15, -1, 16, -1, 13, -1, 14, -1, 17, -1,
528
+ 18, -1, -1, 59, 58, -1, 3, -1, 22, -1,
529
+ 23, -1, 24, -1, 25, -1, 26, -1, 30, -1,
530
+ 31, -1, 29, -1, -1, 32, 69, 58, 33, -1,
531
+ 38, 58, 39, -1, -1, 34, 70, 58, 35, -1,
532
+ -1, 36, 71, 58, 37, -1
528
533
  };
529
534
 
530
535
  /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
531
536
  static const yytype_uint8 yyrline[] =
532
537
  {
533
- 0, 85, 85, 86, 89, 90, 91, 92, 93, 94,
534
- 95, 96, 96, 96, 97, 97, 97, 98, 100, 101,
535
- 103, 104, 106, 107, 109, 110, 112, 113, 115, 116,
536
- 117, 118, 119, 120, 121, 122, 123, 124, 126, 127,
537
- 128, 129, 130, 131, 132, 133, 134, 136, 137, 139,
538
- 146, 147, 148, 149, 150, 152, 153, 154, 157, 157,
539
- 158, 159, 159, 160, 160
538
+ 0, 87, 87, 88, 91, 92, 93, 94, 95, 96,
539
+ 97, 98, 98, 98, 99, 99, 99, 100, 102, 103,
540
+ 105, 106, 108, 109, 111, 112, 114, 115, 117, 118,
541
+ 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
542
+ 129, 130, 132, 133, 134, 135, 136, 137, 138, 139,
543
+ 140, 142, 143, 145, 152, 153, 154, 155, 156, 158,
544
+ 159, 160, 163, 163, 164, 165, 165, 166, 166
540
545
  };
541
546
  #endif
542
547
 
@@ -546,16 +551,17 @@ static const yytype_uint8 yyrline[] =
546
551
  static const char *const yytname[] =
547
552
  {
548
553
  "$end", "error", "$undefined", "T_CHAR", "BOLD_START", "ITALIC_START",
549
- "T_WORD", "TICKET_LINK", "LINK", "SVN_REVISION_LINK",
550
- "GIT_REVISION_LINK", "WIKI_LINK", "ANCHOR_LINK", "URL_WITH_PROTO_LINK",
551
- "URL_WITHOUT_PROTO_LINK", "FILE_LINK", "IMAGE_LINK", "URL", "EMAIL",
552
- "UL", "H1", "H2", "H3", "H4", "H5", "INLINE_CODE", "SPACE", "BR", "OLI",
553
- "ULI", "PRE_CODE_START", "PRE_CODE_END", "PRE_START", "PRE_END",
554
- "CODE_START", "CODE_END", "NOTEXTILE_START", "NOTEXTILE_END", "BOLD_END",
555
- "ITALIC_END", "$accept", "text", "textitem", "$@1", "$@2", "$@3", "$@4",
556
- "ulist", "ulitem", "olist", "olitem", "words", "word", "link", "chars",
557
- "char", "h1", "h2", "h3", "h4", "h5", "oli", "uli", "br", "code", "$@5",
558
- "$@6", "$@7", 0
554
+ "BOLD_ITALIC_START", "ITALIC_BOLD_START", "T_WORD", "TICKET_LINK",
555
+ "LINK", "SVN_REVISION_LINK", "GIT_REVISION_LINK", "WIKI_LINK",
556
+ "ANCHOR_LINK", "URL_WITH_PROTO_LINK", "URL_WITHOUT_PROTO_LINK",
557
+ "FILE_LINK", "IMAGE_LINK", "URL", "EMAIL", "UL", "H1", "H2", "H3", "H4",
558
+ "H5", "INLINE_CODE", "SPACE", "BR", "OLI", "ULI", "PRE_CODE_START",
559
+ "PRE_CODE_END", "PRE_START", "PRE_END", "CODE_START", "CODE_END",
560
+ "NOTEXTILE_START", "NOTEXTILE_END", "BOLD_END", "ITALIC_END",
561
+ "REVERT_BOLD", "REVERT_ITALIC", "$accept", "text", "textitem", "$@1",
562
+ "$@2", "$@3", "$@4", "ulist", "ulitem", "olist", "olitem", "words",
563
+ "word", "link", "chars", "char", "h1", "h2", "h3", "h4", "h5", "oli",
564
+ "uli", "br", "code", "$@5", "$@6", "$@7", 0
559
565
  };
560
566
  #endif
561
567
 
@@ -567,20 +573,21 @@ static const yytype_uint16 yytoknum[] =
567
573
  0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
568
574
  265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
569
575
  275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
570
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294
576
+ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
577
+ 295, 296, 297, 298
571
578
  };
572
579
  # endif
573
580
 
574
581
  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
575
582
  static const yytype_uint8 yyr1[] =
576
583
  {
577
- 0, 40, 41, 41, 42, 42, 42, 42, 42, 42,
578
- 42, 43, 44, 42, 45, 46, 42, 42, 47, 47,
579
- 48, 48, 49, 49, 50, 50, 51, 51, 52, 52,
580
- 52, 52, 52, 52, 52, 52, 52, 52, 53, 53,
581
- 53, 53, 53, 53, 53, 53, 53, 54, 54, 55,
582
- 56, 57, 58, 59, 60, 61, 62, 63, 65, 64,
583
- 64, 66, 64, 67, 64
584
+ 0, 44, 45, 45, 46, 46, 46, 46, 46, 46,
585
+ 46, 47, 48, 46, 49, 50, 46, 46, 51, 51,
586
+ 52, 52, 53, 53, 54, 54, 55, 55, 56, 56,
587
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
588
+ 56, 56, 57, 57, 57, 57, 57, 57, 57, 57,
589
+ 57, 58, 58, 59, 60, 61, 62, 63, 64, 65,
590
+ 66, 67, 69, 68, 68, 70, 68, 71, 68
584
591
  };
585
592
 
586
593
  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -590,9 +597,9 @@ static const yytype_uint8 yyr2[] =
590
597
  1, 0, 0, 4, 0, 0, 4, 1, 1, 2,
591
598
  2, 3, 1, 2, 2, 3, 1, 2, 1, 1,
592
599
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
593
- 1, 1, 1, 1, 1, 1, 1, 0, 2, 1,
594
- 1, 1, 1, 1, 1, 1, 1, 1, 0, 4,
595
- 3, 0, 4, 0, 4
600
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
601
+ 1, 0, 2, 1, 1, 1, 1, 1, 1, 1,
602
+ 1, 1, 0, 4, 3, 0, 4, 0, 4
596
603
  };
597
604
 
598
605
  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -600,96 +607,101 @@ static const yytype_uint8 yyr2[] =
600
607
  means the default is an error. */
601
608
  static const yytype_uint8 yydefact[] =
602
609
  {
603
- 2, 49, 33, 35, 30, 38, 39, 40, 43, 44,
604
- 41, 42, 45, 46, 31, 32, 50, 51, 52, 53,
605
- 54, 37, 57, 58, 61, 63, 47, 34, 36, 0,
606
- 2, 0, 0, 5, 26, 29, 28, 47, 6, 7,
607
- 8, 9, 10, 4, 17, 47, 47, 47, 0, 1,
608
- 3, 56, 12, 18, 47, 55, 15, 22, 47, 27,
609
- 48, 0, 0, 0, 60, 11, 19, 20, 11, 23,
610
- 24, 59, 62, 64, 13, 21, 16, 25
610
+ 2, 53, 33, 35, 37, 38, 30, 42, 43, 44,
611
+ 47, 48, 45, 46, 49, 50, 31, 32, 54, 55,
612
+ 56, 57, 58, 39, 61, 62, 65, 67, 51, 34,
613
+ 36, 40, 41, 0, 2, 0, 0, 5, 26, 29,
614
+ 28, 51, 6, 7, 8, 9, 10, 4, 17, 51,
615
+ 51, 51, 0, 1, 3, 60, 12, 18, 51, 59,
616
+ 15, 22, 51, 27, 52, 0, 0, 0, 64, 11,
617
+ 19, 20, 11, 23, 24, 63, 66, 68, 13, 21,
618
+ 16, 25
611
619
  };
612
620
 
613
621
  /* YYDEFGOTO[NTERM-NUM]. */
614
622
  static const yytype_int8 yydefgoto[] =
615
623
  {
616
- -1, 29, 30, 31, 65, 32, 68, 52, 53, 56,
617
- 57, 33, 34, 35, 36, 37, 38, 39, 40, 41,
618
- 42, 58, 54, 43, 44, 45, 46, 47
624
+ -1, 33, 34, 35, 69, 36, 72, 56, 57, 60,
625
+ 61, 37, 38, 39, 40, 41, 42, 43, 44, 45,
626
+ 46, 62, 58, 47, 48, 49, 50, 51
619
627
  };
620
628
 
621
629
  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
622
630
  STATE-NUM. */
623
- #define YYPACT_NINF -40
631
+ #define YYPACT_NINF -42
624
632
  static const yytype_int8 yypact[] =
625
633
  {
626
- 37, -40, -40, -40, -40, -40, -40, -40, -40, -40,
627
- -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
628
- -40, -40, -40, -40, -40, -40, -2, -40, -40, 2,
629
- 37, -21, -9, -40, 74, -40, -40, -2, -40, -40,
630
- -40, -40, -40, -40, -40, -2, -2, -2, -6, -40,
631
- -40, -40, -21, -40, 74, -40, -9, -40, 74, -40,
632
- -40, 4, 12, 21, -40, 0, -40, 6, 0, -40,
633
- 10, -40, -40, -40, -40, -40, -40, -40
634
+ 41, -42, -42, -42, -42, -42, -42, -42, -42, -42,
635
+ -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
636
+ -42, -42, -42, -42, -42, -42, -42, -42, -2, -42,
637
+ -42, -42, -42, 2, 41, -21, -9, -42, 82, -42,
638
+ -42, -2, -42, -42, -42, -42, -42, -42, -42, -2,
639
+ -2, -2, -6, -42, -42, -42, -21, -42, 82, -42,
640
+ -9, -42, 82, -42, -42, 4, 16, 25, -42, 0,
641
+ -42, 6, 0, -42, 10, -42, -42, -42, -42, -42,
642
+ -42, -42
634
643
  };
635
644
 
636
645
  /* YYPGOTO[NTERM-NUM]. */
637
646
  static const yytype_int8 yypgoto[] =
638
647
  {
639
- -40, 33, -39, -40, -40, -40, -40, -40, 16, -40,
640
- 14, 40, -40, -40, 56, -40, -40, -40, -40, -40,
641
- -40, -40, -40, -40, -40, -40, -40, -40
648
+ -42, 35, -41, -42, -42, -42, -42, -42, 18, -42,
649
+ 20, 54, -42, -42, 77, -42, -42, -42, -42, -42,
650
+ -42, -42, -42, -42, -42, -42, -42, -42
642
651
  };
643
652
 
644
653
  /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
645
654
  positive, shift that token. If negative, reduce the rule which
646
655
  number is the opposite. If zero, do what YYDEFACT says.
647
656
  If YYTABLE_NINF, syntax error. */
648
- #define YYTABLE_NINF -48
657
+ #define YYTABLE_NINF -52
649
658
  static const yytype_int8 yytable[] =
650
659
  {
651
- -47, 1, 49, 1, 2, 3, 4, 5, 51, 6,
652
- 7, 8, 9, 10, 11, 12, 13, 14, 15, 55,
653
- 16, 17, 18, 19, 20, 21, 74, 22, -14, 76,
654
- 23, 64, 24, 75, 25, 71, 26, 77, 27, 28,
655
- 1, 2, 3, 4, 5, 72, 6, 7, 8, 9,
656
- 10, 11, 12, 13, 14, 15, 73, 16, 17, 18,
657
- 19, 20, 21, 50, 22, -14, -11, 23, 66, 24,
658
- 69, 25, 0, 26, 59, 27, 28, 1, 2, 3,
659
- 4, 5, 48, 6, 7, 8, 9, 10, 11, 12,
660
- 13, 14, 15, 60, 67, 0, 0, 0, 70, 21,
661
- 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
662
- 0, 0, 27, 28
660
+ -51, 1, 53, 1, 2, 3, 4, 5, 6, 7,
661
+ 55, 8, 9, 10, 11, 12, 13, 14, 15, 16,
662
+ 17, 59, 18, 19, 20, 21, 22, 23, 78, 24,
663
+ -14, 80, 25, 68, 26, 79, 27, 75, 28, 81,
664
+ 29, 30, 31, 32, 1, 2, 3, 4, 5, 6,
665
+ 7, 76, 8, 9, 10, 11, 12, 13, 14, 15,
666
+ 16, 17, 77, 18, 19, 20, 21, 22, 23, 54,
667
+ 24, -14, -11, 25, 70, 26, 0, 27, 0, 28,
668
+ 73, 29, 30, 31, 32, 1, 2, 3, 4, 5,
669
+ 6, 7, 63, 8, 9, 10, 11, 12, 13, 14,
670
+ 15, 16, 17, 0, 0, 52, 0, 0, 0, 23,
671
+ 0, 0, 71, 0, 0, 0, 74, 0, 64, 0,
672
+ 0, 0, 29, 30, 31, 32, 65, 66, 67
663
673
  };
664
674
 
665
675
  static const yytype_int8 yycheck[] =
666
676
  {
667
- 0, 3, 0, 3, 4, 5, 6, 7, 29, 9,
668
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 28,
669
- 20, 21, 22, 23, 24, 25, 65, 27, 28, 68,
670
- 30, 37, 32, 27, 34, 31, 36, 27, 38, 39,
671
- 3, 4, 5, 6, 7, 33, 9, 10, 11, 12,
672
- 13, 14, 15, 16, 17, 18, 35, 20, 21, 22,
673
- 23, 24, 25, 30, 27, 28, 29, 30, 52, 32,
674
- 56, 34, -1, 36, 34, 38, 39, 3, 4, 5,
675
- 6, 7, 26, 9, 10, 11, 12, 13, 14, 15,
676
- 16, 17, 18, 37, 54, -1, -1, -1, 58, 25,
677
- -1, 45, 46, 47, -1, -1, -1, -1, -1, -1,
678
- -1, -1, 38, 39
677
+ 0, 3, 0, 3, 4, 5, 6, 7, 8, 9,
678
+ 31, 11, 12, 13, 14, 15, 16, 17, 18, 19,
679
+ 20, 30, 22, 23, 24, 25, 26, 27, 69, 29,
680
+ 30, 72, 32, 39, 34, 29, 36, 33, 38, 29,
681
+ 40, 41, 42, 43, 3, 4, 5, 6, 7, 8,
682
+ 9, 35, 11, 12, 13, 14, 15, 16, 17, 18,
683
+ 19, 20, 37, 22, 23, 24, 25, 26, 27, 34,
684
+ 29, 30, 31, 32, 56, 34, -1, 36, -1, 38,
685
+ 60, 40, 41, 42, 43, 3, 4, 5, 6, 7,
686
+ 8, 9, 38, 11, 12, 13, 14, 15, 16, 17,
687
+ 18, 19, 20, -1, -1, 28, -1, -1, -1, 27,
688
+ -1, -1, 58, -1, -1, -1, 62, -1, 41, -1,
689
+ -1, -1, 40, 41, 42, 43, 49, 50, 51
679
690
  };
680
691
 
681
692
  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
682
693
  symbol of state STATE-NUM. */
683
694
  static const yytype_uint8 yystos[] =
684
695
  {
685
- 0, 3, 4, 5, 6, 7, 9, 10, 11, 12,
686
- 13, 14, 15, 16, 17, 18, 20, 21, 22, 23,
687
- 24, 25, 27, 30, 32, 34, 36, 38, 39, 41,
688
- 42, 43, 45, 51, 52, 53, 54, 55, 56, 57,
689
- 58, 59, 60, 63, 64, 65, 66, 67, 54, 0,
690
- 41, 29, 47, 48, 62, 28, 49, 50, 61, 51,
691
- 54, 54, 54, 54, 37, 44, 48, 51, 46, 50,
692
- 51, 31, 33, 35, 42, 27, 42, 27
696
+ 0, 3, 4, 5, 6, 7, 8, 9, 11, 12,
697
+ 13, 14, 15, 16, 17, 18, 19, 20, 22, 23,
698
+ 24, 25, 26, 27, 29, 32, 34, 36, 38, 40,
699
+ 41, 42, 43, 45, 46, 47, 49, 55, 56, 57,
700
+ 58, 59, 60, 61, 62, 63, 64, 67, 68, 69,
701
+ 70, 71, 58, 0, 45, 31, 51, 52, 66, 30,
702
+ 53, 54, 65, 55, 58, 58, 58, 58, 39, 48,
703
+ 52, 55, 50, 54, 55, 33, 35, 37, 46, 29,
704
+ 46, 29
693
705
  };
694
706
 
695
707
  #define yyerrok (yyerrstatus = 0)
@@ -1503,322 +1515,350 @@ yyreduce:
1503
1515
  case 6:
1504
1516
 
1505
1517
  /* Line 1455 of yacc.c */
1506
- #line 91 "parser.y"
1518
+ #line 93 "parser.y"
1507
1519
  {concat("</h1>",5);}
1508
1520
  break;
1509
1521
 
1510
1522
  case 7:
1511
1523
 
1512
1524
  /* Line 1455 of yacc.c */
1513
- #line 92 "parser.y"
1525
+ #line 94 "parser.y"
1514
1526
  {concat("</h2>",5);}
1515
1527
  break;
1516
1528
 
1517
1529
  case 8:
1518
1530
 
1519
1531
  /* Line 1455 of yacc.c */
1520
- #line 93 "parser.y"
1532
+ #line 95 "parser.y"
1521
1533
  {concat("</h3>",5);}
1522
1534
  break;
1523
1535
 
1524
1536
  case 9:
1525
1537
 
1526
1538
  /* Line 1455 of yacc.c */
1527
- #line 94 "parser.y"
1539
+ #line 96 "parser.y"
1528
1540
  {concat("</h4>",5);}
1529
1541
  break;
1530
1542
 
1531
1543
  case 10:
1532
1544
 
1533
1545
  /* Line 1455 of yacc.c */
1534
- #line 95 "parser.y"
1546
+ #line 97 "parser.y"
1535
1547
  {concat("</h5>",5);}
1536
1548
  break;
1537
1549
 
1538
1550
  case 11:
1539
1551
 
1540
1552
  /* Line 1455 of yacc.c */
1541
- #line 96 "parser.y"
1553
+ #line 98 "parser.y"
1542
1554
  {concat("<ul>",4);}
1543
1555
  break;
1544
1556
 
1545
1557
  case 12:
1546
1558
 
1547
1559
  /* Line 1455 of yacc.c */
1548
- #line 96 "parser.y"
1560
+ #line 98 "parser.y"
1549
1561
  {concat("</ul>",5);}
1550
1562
  break;
1551
1563
 
1552
1564
  case 14:
1553
1565
 
1554
1566
  /* Line 1455 of yacc.c */
1555
- #line 97 "parser.y"
1567
+ #line 99 "parser.y"
1556
1568
  {concat("<ol>",4);}
1557
1569
  break;
1558
1570
 
1559
1571
  case 15:
1560
1572
 
1561
1573
  /* Line 1455 of yacc.c */
1562
- #line 97 "parser.y"
1574
+ #line 99 "parser.y"
1563
1575
  {concat("</ol>",5);}
1564
1576
  break;
1565
1577
 
1566
1578
  case 18:
1567
1579
 
1568
1580
  /* Line 1455 of yacc.c */
1569
- #line 100 "parser.y"
1581
+ #line 102 "parser.y"
1570
1582
  {concat("</li>",5);}
1571
1583
  break;
1572
1584
 
1573
1585
  case 19:
1574
1586
 
1575
1587
  /* Line 1455 of yacc.c */
1576
- #line 101 "parser.y"
1588
+ #line 103 "parser.y"
1577
1589
  {concat("</li>",5);}
1578
1590
  break;
1579
1591
 
1580
1592
  case 22:
1581
1593
 
1582
1594
  /* Line 1455 of yacc.c */
1583
- #line 106 "parser.y"
1595
+ #line 108 "parser.y"
1584
1596
  {concat("</li>",5);}
1585
1597
  break;
1586
1598
 
1587
1599
  case 23:
1588
1600
 
1589
1601
  /* Line 1455 of yacc.c */
1590
- #line 107 "parser.y"
1602
+ #line 109 "parser.y"
1591
1603
  {concat("</li>",5);}
1592
1604
  break;
1593
1605
 
1594
1606
  case 30:
1595
1607
 
1596
1608
  /* Line 1455 of yacc.c */
1597
- #line 117 "parser.y"
1609
+ #line 119 "parser.y"
1598
1610
  {concat2((yyvsp[(1) - (1)].svalue));}
1599
1611
  break;
1600
1612
 
1601
1613
  case 31:
1602
1614
 
1603
1615
  /* Line 1455 of yacc.c */
1604
- #line 118 "parser.y"
1616
+ #line 120 "parser.y"
1605
1617
  {process_url((yyvsp[(1) - (1)].svalue));}
1606
1618
  break;
1607
1619
 
1608
1620
  case 32:
1609
1621
 
1610
1622
  /* Line 1455 of yacc.c */
1611
- #line 119 "parser.y"
1623
+ #line 121 "parser.y"
1612
1624
  {process_email((yyvsp[(1) - (1)].svalue));}
1613
1625
  break;
1614
1626
 
1615
1627
  case 33:
1616
1628
 
1617
1629
  /* Line 1455 of yacc.c */
1618
- #line 120 "parser.y"
1630
+ #line 122 "parser.y"
1619
1631
  {(yyvsp[(1) - (1)].ivalue) ? concat(" <strong>",9) : concat("<strong>",8);}
1620
1632
  break;
1621
1633
 
1622
1634
  case 34:
1623
1635
 
1624
1636
  /* Line 1455 of yacc.c */
1625
- #line 121 "parser.y"
1637
+ #line 123 "parser.y"
1626
1638
  {concat("</strong>",9);}
1627
1639
  break;
1628
1640
 
1629
1641
  case 35:
1630
1642
 
1631
1643
  /* Line 1455 of yacc.c */
1632
- #line 122 "parser.y"
1644
+ #line 124 "parser.y"
1633
1645
  {(yyvsp[(1) - (1)].ivalue) ? concat(" <em>",5) : concat("<em>",4);}
1634
1646
  break;
1635
1647
 
1636
1648
  case 36:
1637
1649
 
1638
1650
  /* Line 1455 of yacc.c */
1639
- #line 123 "parser.y"
1651
+ #line 125 "parser.y"
1640
1652
  {concat("</em>",5);}
1641
1653
  break;
1642
1654
 
1643
1655
  case 37:
1644
1656
 
1645
1657
  /* Line 1455 of yacc.c */
1646
- #line 124 "parser.y"
1647
- {process_inline_code((yyvsp[(1) - (1)].svalue));}
1658
+ #line 126 "parser.y"
1659
+ {(yyvsp[(1) - (1)].ivalue) ? concat(" <strong><em>",13) : concat("<strong><em>",12);}
1648
1660
  break;
1649
1661
 
1650
1662
  case 38:
1651
1663
 
1652
1664
  /* Line 1455 of yacc.c */
1653
- #line 126 "parser.y"
1654
- {process_ticket_link((yyvsp[(1) - (1)].svalue));}
1665
+ #line 127 "parser.y"
1666
+ {(yyvsp[(1) - (1)].ivalue) ? concat(" <em><strong>",13) : concat("<em><strong>",12);}
1655
1667
  break;
1656
1668
 
1657
1669
  case 39:
1658
1670
 
1659
1671
  /* Line 1455 of yacc.c */
1660
- #line 127 "parser.y"
1661
- {process_svn_link((yyvsp[(1) - (1)].svalue));}
1672
+ #line 128 "parser.y"
1673
+ {process_inline_code((yyvsp[(1) - (1)].svalue));}
1662
1674
  break;
1663
1675
 
1664
1676
  case 40:
1665
1677
 
1666
1678
  /* Line 1455 of yacc.c */
1667
- #line 128 "parser.y"
1668
- {process_git_link((yyvsp[(1) - (1)].svalue));}
1679
+ #line 129 "parser.y"
1680
+ {revert_bold();}
1669
1681
  break;
1670
1682
 
1671
1683
  case 41:
1672
1684
 
1673
1685
  /* Line 1455 of yacc.c */
1674
- #line 129 "parser.y"
1675
- {process_url_link((yyvsp[(1) - (1)].svalue),NULL);}
1686
+ #line 130 "parser.y"
1687
+ {revert_italic();}
1676
1688
  break;
1677
1689
 
1678
1690
  case 42:
1679
1691
 
1680
1692
  /* Line 1455 of yacc.c */
1681
- #line 130 "parser.y"
1682
- {process_url_link((yyvsp[(1) - (1)].svalue),"http://");}
1693
+ #line 132 "parser.y"
1694
+ {process_ticket_link((yyvsp[(1) - (1)].svalue));}
1683
1695
  break;
1684
1696
 
1685
1697
  case 43:
1686
1698
 
1687
1699
  /* Line 1455 of yacc.c */
1688
- #line 131 "parser.y"
1689
- {process_wiki_link((yyvsp[(1) - (1)].svalue));}
1700
+ #line 133 "parser.y"
1701
+ {process_svn_link((yyvsp[(1) - (1)].svalue));}
1690
1702
  break;
1691
1703
 
1692
1704
  case 44:
1693
1705
 
1694
1706
  /* Line 1455 of yacc.c */
1695
- #line 132 "parser.y"
1696
- {process_anchor_link((yyvsp[(1) - (1)].svalue));}
1707
+ #line 134 "parser.y"
1708
+ {process_git_link((yyvsp[(1) - (1)].svalue));}
1697
1709
  break;
1698
1710
 
1699
1711
  case 45:
1700
1712
 
1701
1713
  /* Line 1455 of yacc.c */
1702
- #line 133 "parser.y"
1703
- {process_file_link((yyvsp[(1) - (1)].svalue));}
1714
+ #line 135 "parser.y"
1715
+ {process_url_link((yyvsp[(1) - (1)].svalue),NULL);}
1704
1716
  break;
1705
1717
 
1706
1718
  case 46:
1707
1719
 
1708
1720
  /* Line 1455 of yacc.c */
1709
- #line 134 "parser.y"
1710
- {process_image_link((yyvsp[(1) - (1)].svalue));}
1721
+ #line 136 "parser.y"
1722
+ {process_url_link((yyvsp[(1) - (1)].svalue),"http://");}
1723
+ break;
1724
+
1725
+ case 47:
1726
+
1727
+ /* Line 1455 of yacc.c */
1728
+ #line 137 "parser.y"
1729
+ {process_wiki_link((yyvsp[(1) - (1)].svalue));}
1730
+ break;
1731
+
1732
+ case 48:
1733
+
1734
+ /* Line 1455 of yacc.c */
1735
+ #line 138 "parser.y"
1736
+ {process_anchor_link((yyvsp[(1) - (1)].svalue));}
1711
1737
  break;
1712
1738
 
1713
1739
  case 49:
1714
1740
 
1715
1741
  /* Line 1455 of yacc.c */
1716
1742
  #line 139 "parser.y"
1717
- {concat_escaped_char((yyvsp[(1) - (1)].ivalue));}
1743
+ {process_file_link((yyvsp[(1) - (1)].svalue));}
1718
1744
  break;
1719
1745
 
1720
1746
  case 50:
1721
1747
 
1722
1748
  /* Line 1455 of yacc.c */
1723
- #line 146 "parser.y"
1749
+ #line 140 "parser.y"
1750
+ {process_image_link((yyvsp[(1) - (1)].svalue));}
1751
+ break;
1752
+
1753
+ case 53:
1754
+
1755
+ /* Line 1455 of yacc.c */
1756
+ #line 145 "parser.y"
1757
+ {concat_escaped_char((yyvsp[(1) - (1)].ivalue));}
1758
+ break;
1759
+
1760
+ case 54:
1761
+
1762
+ /* Line 1455 of yacc.c */
1763
+ #line 152 "parser.y"
1724
1764
  {concat("<h1 id=\"",8); process_header((yyvsp[(1) - (1)].svalue));}
1725
1765
  break;
1726
1766
 
1727
- case 51:
1767
+ case 55:
1728
1768
 
1729
1769
  /* Line 1455 of yacc.c */
1730
- #line 147 "parser.y"
1770
+ #line 153 "parser.y"
1731
1771
  {concat("<h2 id=\"",8); process_header((yyvsp[(1) - (1)].svalue));}
1732
1772
  break;
1733
1773
 
1734
- case 52:
1774
+ case 56:
1735
1775
 
1736
1776
  /* Line 1455 of yacc.c */
1737
- #line 148 "parser.y"
1777
+ #line 154 "parser.y"
1738
1778
  {concat("<h3 id=\"",8); process_header((yyvsp[(1) - (1)].svalue));}
1739
1779
  break;
1740
1780
 
1741
- case 53:
1781
+ case 57:
1742
1782
 
1743
1783
  /* Line 1455 of yacc.c */
1744
- #line 149 "parser.y"
1784
+ #line 155 "parser.y"
1745
1785
  {concat("<h4 id=\"",8); process_header((yyvsp[(1) - (1)].svalue));}
1746
1786
  break;
1747
1787
 
1748
- case 54:
1788
+ case 58:
1749
1789
 
1750
1790
  /* Line 1455 of yacc.c */
1751
- #line 150 "parser.y"
1791
+ #line 156 "parser.y"
1752
1792
  {concat("<h5 id=\"",8); process_header((yyvsp[(1) - (1)].svalue));}
1753
1793
  break;
1754
1794
 
1755
- case 55:
1795
+ case 59:
1756
1796
 
1757
1797
  /* Line 1455 of yacc.c */
1758
- #line 152 "parser.y"
1798
+ #line 158 "parser.y"
1759
1799
  {concat("<li>",4);}
1760
1800
  break;
1761
1801
 
1762
- case 56:
1802
+ case 60:
1763
1803
 
1764
1804
  /* Line 1455 of yacc.c */
1765
- #line 153 "parser.y"
1805
+ #line 159 "parser.y"
1766
1806
  {concat("<li>",4);}
1767
1807
  break;
1768
1808
 
1769
- case 57:
1809
+ case 61:
1770
1810
 
1771
1811
  /* Line 1455 of yacc.c */
1772
- #line 154 "parser.y"
1812
+ #line 160 "parser.y"
1773
1813
  {concat("<br />",6);}
1774
1814
  break;
1775
1815
 
1776
- case 58:
1816
+ case 62:
1777
1817
 
1778
1818
  /* Line 1455 of yacc.c */
1779
- #line 157 "parser.y"
1819
+ #line 163 "parser.y"
1780
1820
  {concat("<pre><code>",11);}
1781
1821
  break;
1782
1822
 
1783
- case 59:
1823
+ case 63:
1784
1824
 
1785
1825
  /* Line 1455 of yacc.c */
1786
- #line 157 "parser.y"
1826
+ #line 163 "parser.y"
1787
1827
  {concat("</code></pre>",13);}
1788
1828
  break;
1789
1829
 
1790
- case 61:
1830
+ case 65:
1791
1831
 
1792
1832
  /* Line 1455 of yacc.c */
1793
- #line 159 "parser.y"
1833
+ #line 165 "parser.y"
1794
1834
  {concat("<pre>",5);}
1795
1835
  break;
1796
1836
 
1797
- case 62:
1837
+ case 66:
1798
1838
 
1799
1839
  /* Line 1455 of yacc.c */
1800
- #line 159 "parser.y"
1840
+ #line 165 "parser.y"
1801
1841
  {concat("</pre>",6);}
1802
1842
  break;
1803
1843
 
1804
- case 63:
1844
+ case 67:
1805
1845
 
1806
1846
  /* Line 1455 of yacc.c */
1807
- #line 160 "parser.y"
1847
+ #line 166 "parser.y"
1808
1848
  {concat("<code>",6);}
1809
1849
  break;
1810
1850
 
1811
- case 64:
1851
+ case 68:
1812
1852
 
1813
1853
  /* Line 1455 of yacc.c */
1814
- #line 160 "parser.y"
1854
+ #line 166 "parser.y"
1815
1855
  {concat("</code>",7);}
1816
1856
  break;
1817
1857
 
1818
1858
 
1819
1859
 
1820
1860
  /* Line 1455 of yacc.c */
1821
- #line 1822 "parser.tab.c"
1861
+ #line 1862 "parser.tab.c"
1822
1862
  default: break;
1823
1863
  }
1824
1864
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -2030,7 +2070,7 @@ yyreturn:
2030
2070
 
2031
2071
 
2032
2072
  /* Line 1675 of yacc.c */
2033
- #line 164 "parser.y"
2073
+ #line 170 "parser.y"
2034
2074
 
2035
2075
 
2036
2076
  concat_hex_char(char c){
@@ -2291,4 +2331,23 @@ process_email(const char*url){
2291
2331
  process_link_tail(url,NULL,NULL);
2292
2332
  }
2293
2333
 
2334
+ revert_bold(){
2335
+ char *p;
2336
+ for( p=bufptr-1; p >= (buf+7) ; p--){
2337
+ if( 0 == strncmp(p-7, "<strong>", 8) ){
2338
+ memcpy(p-7," *",8);
2339
+ break;
2340
+ }
2341
+ }
2342
+ }
2343
+
2344
+ revert_italic(){
2345
+ char *p;
2346
+ for( p=bufptr-1; p >= (buf+3) ; p--){
2347
+ if( 0 == strncmp(p-3, "<em>", 4) ){
2348
+ memcpy(p-3," _",4);
2349
+ break;
2350
+ }
2351
+ }
2352
+ }
2294
2353