breakout_parser 0.0.12 → 0.0.13
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +7 -0
- data/ext/breakout_parser/lex.yy.c +716 -693
- data/ext/breakout_parser/parser.l +7 -2
- data/ext/breakout_parser/parser.tab.c +229 -171
- data/ext/breakout_parser/parser.tab.h +27 -27
- data/ext/breakout_parser/parser.y +71 -12
- data/spec/parser_spec.rb +86 -21
- metadata +2 -2
@@ -96,6 +96,8 @@ size_t site_url_len = 0;
|
|
96
96
|
|
97
97
|
extern VALUE git_url;
|
98
98
|
|
99
|
+
int list_level = 1;
|
100
|
+
|
99
101
|
#define CHECK_BUF_SIZE(len) \
|
100
102
|
if( (bufptr - buf + len + 1) >= bufsize ){ \
|
101
103
|
/*printf("[.] REALLOC oldsz=%d, newsz=%d\n",bufsize, (bufsize+((len > 0x1000) ? (len+0x1000) : 0x1000)));*/ \
|
@@ -135,7 +137,7 @@ void yyerror(const char *msg)
|
|
135
137
|
|
136
138
|
|
137
139
|
/* Line 189 of yacc.c */
|
138
|
-
#line
|
140
|
+
#line 141 "parser.tab.c"
|
139
141
|
|
140
142
|
/* Enabling traces. */
|
141
143
|
#ifndef YYDEBUG
|
@@ -167,32 +169,32 @@ void yyerror(const char *msg)
|
|
167
169
|
ITALIC_START = 260,
|
168
170
|
BOLD_ITALIC_START = 261,
|
169
171
|
ITALIC_BOLD_START = 262,
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
172
|
+
ULI = 263,
|
173
|
+
OLI = 264,
|
174
|
+
T_WORD = 265,
|
175
|
+
TICKET_LINK = 266,
|
176
|
+
LINK = 267,
|
177
|
+
SVN_REVISION_LINK = 268,
|
178
|
+
GIT_REVISION_LINK = 269,
|
179
|
+
WIKI_LINK = 270,
|
180
|
+
ANCHOR_LINK = 271,
|
181
|
+
SVN_N_REVISION_LINK = 272,
|
182
|
+
GIT_N_REVISION_LINK = 273,
|
183
|
+
URL_WITH_PROTO_LINK = 274,
|
184
|
+
URL_WITHOUT_PROTO_LINK = 275,
|
185
|
+
FILE_LINK = 276,
|
186
|
+
IMAGE_LINK = 277,
|
187
|
+
URL = 278,
|
188
|
+
EMAIL = 279,
|
189
|
+
UL = 280,
|
190
|
+
H1 = 281,
|
191
|
+
H2 = 282,
|
192
|
+
H3 = 283,
|
193
|
+
H4 = 284,
|
194
|
+
H5 = 285,
|
195
|
+
INLINE_CODE = 286,
|
196
|
+
SPACE = 287,
|
197
|
+
BR = 288,
|
196
198
|
PRE_CODE_START = 289,
|
197
199
|
PRE_CODE_END = 290,
|
198
200
|
PRE_START = 291,
|
@@ -215,7 +217,7 @@ typedef union YYSTYPE
|
|
215
217
|
{
|
216
218
|
|
217
219
|
/* Line 214 of yacc.c */
|
218
|
-
#line
|
220
|
+
#line 68 "parser.y"
|
219
221
|
|
220
222
|
double dvalue;
|
221
223
|
int ivalue;
|
@@ -224,7 +226,7 @@ typedef union YYSTYPE
|
|
224
226
|
|
225
227
|
|
226
228
|
/* Line 214 of yacc.c */
|
227
|
-
#line
|
229
|
+
#line 230 "parser.tab.c"
|
228
230
|
} YYSTYPE;
|
229
231
|
# define YYSTYPE_IS_TRIVIAL 1
|
230
232
|
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
@@ -236,7 +238,7 @@ typedef union YYSTYPE
|
|
236
238
|
|
237
239
|
|
238
240
|
/* Line 264 of yacc.c */
|
239
|
-
#line
|
241
|
+
#line 242 "parser.tab.c"
|
240
242
|
|
241
243
|
#ifdef short
|
242
244
|
# undef short
|
@@ -451,7 +453,7 @@ union yyalloc
|
|
451
453
|
/* YYFINAL -- State number of the termination state. */
|
452
454
|
#define YYFINAL 55
|
453
455
|
/* YYLAST -- Last index in YYTABLE. */
|
454
|
-
#define YYLAST
|
456
|
+
#define YYLAST 131
|
455
457
|
|
456
458
|
/* YYNTOKENS -- Number of terminals. */
|
457
459
|
#define YYNTOKENS 46
|
@@ -527,16 +529,16 @@ static const yytype_int8 yyrhs[] =
|
|
527
529
|
-1, 62, -1, 63, -1, 64, -1, 65, -1, 66,
|
528
530
|
-1, -1, -1, 49, 53, 50, 48, -1, -1, -1,
|
529
531
|
51, 55, 52, 48, -1, 70, -1, 54, -1, 53,
|
530
|
-
54, -1, 68, 57, -1, 68, 57,
|
531
|
-
-1, 55, 56, -1, 67, 57, -1, 67, 57,
|
532
|
+
54, -1, 68, 57, -1, 68, 57, 33, -1, 56,
|
533
|
+
-1, 55, 56, -1, 67, 57, -1, 67, 57, 33,
|
532
534
|
-1, 58, -1, 58, 57, -1, 60, -1, 59, -1,
|
533
|
-
|
534
|
-
5, -1, 43, -1, 6, -1, 7, -1,
|
535
|
-
44, -1, 45, -1,
|
536
|
-
|
537
|
-
|
538
|
-
3, -1,
|
539
|
-
|
535
|
+
10, -1, 23, -1, 24, -1, 4, -1, 42, -1,
|
536
|
+
5, -1, 43, -1, 6, -1, 7, -1, 31, -1,
|
537
|
+
44, -1, 45, -1, 11, -1, 13, -1, 14, -1,
|
538
|
+
17, -1, 18, -1, 19, -1, 20, -1, 15, -1,
|
539
|
+
16, -1, 21, -1, 22, -1, -1, 61, 60, -1,
|
540
|
+
3, -1, 26, -1, 27, -1, 28, -1, 29, -1,
|
541
|
+
30, -1, 9, -1, 8, -1, 33, -1, -1, 34,
|
540
542
|
71, 60, 35, -1, 40, 60, 41, -1, -1, 36,
|
541
543
|
72, 60, 37, -1, -1, 38, 73, 60, 39, -1
|
542
544
|
};
|
@@ -544,14 +546,14 @@ static const yytype_int8 yyrhs[] =
|
|
544
546
|
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
|
545
547
|
static const yytype_uint8 yyrline[] =
|
546
548
|
{
|
547
|
-
0,
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
549
|
+
0, 96, 96, 97, 100, 101, 102, 103, 104, 105,
|
550
|
+
106, 107, 110, 107, 114, 117, 114, 121, 123, 124,
|
551
|
+
126, 127, 129, 130, 132, 133, 135, 136, 138, 139,
|
552
|
+
140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
|
553
|
+
150, 151, 153, 154, 155, 156, 157, 158, 159, 160,
|
554
|
+
161, 162, 163, 165, 166, 168, 175, 176, 177, 178,
|
555
|
+
179, 181, 182, 183, 186, 186, 187, 188, 188, 189,
|
556
|
+
189
|
555
557
|
};
|
556
558
|
#endif
|
557
559
|
|
@@ -561,18 +563,18 @@ static const yytype_uint8 yyrline[] =
|
|
561
563
|
static const char *const yytname[] =
|
562
564
|
{
|
563
565
|
"$end", "error", "$undefined", "T_CHAR", "BOLD_START", "ITALIC_START",
|
564
|
-
"BOLD_ITALIC_START", "ITALIC_BOLD_START", "
|
565
|
-
"
|
566
|
-
"ANCHOR_LINK", "SVN_N_REVISION_LINK", "GIT_N_REVISION_LINK",
|
566
|
+
"BOLD_ITALIC_START", "ITALIC_BOLD_START", "ULI", "OLI", "T_WORD",
|
567
|
+
"TICKET_LINK", "LINK", "SVN_REVISION_LINK", "GIT_REVISION_LINK",
|
568
|
+
"WIKI_LINK", "ANCHOR_LINK", "SVN_N_REVISION_LINK", "GIT_N_REVISION_LINK",
|
567
569
|
"URL_WITH_PROTO_LINK", "URL_WITHOUT_PROTO_LINK", "FILE_LINK",
|
568
570
|
"IMAGE_LINK", "URL", "EMAIL", "UL", "H1", "H2", "H3", "H4", "H5",
|
569
|
-
"INLINE_CODE", "SPACE", "BR", "
|
570
|
-
"
|
571
|
-
"
|
572
|
-
"
|
573
|
-
"$@
|
574
|
-
"
|
575
|
-
"
|
571
|
+
"INLINE_CODE", "SPACE", "BR", "PRE_CODE_START", "PRE_CODE_END",
|
572
|
+
"PRE_START", "PRE_END", "CODE_START", "CODE_END", "NOTEXTILE_START",
|
573
|
+
"NOTEXTILE_END", "BOLD_END", "ITALIC_END", "REVERT_BOLD",
|
574
|
+
"REVERT_ITALIC", "$accept", "text", "textitem", "$@1", "$@2", "$@3",
|
575
|
+
"$@4", "ulist", "ulitem", "olist", "olitem", "words", "word", "link",
|
576
|
+
"chars", "char", "h1", "h2", "h3", "h4", "h5", "oli", "uli", "br",
|
577
|
+
"code", "$@5", "$@6", "$@7", 0
|
576
578
|
};
|
577
579
|
#endif
|
578
580
|
|
@@ -641,26 +643,26 @@ static const yytype_int8 yydefgoto[] =
|
|
641
643
|
|
642
644
|
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
|
643
645
|
STATE-NUM. */
|
644
|
-
#define YYPACT_NINF -
|
646
|
+
#define YYPACT_NINF -40
|
645
647
|
static const yytype_int8 yypact[] =
|
646
648
|
{
|
647
|
-
43, -
|
648
|
-
-
|
649
|
-
-
|
650
|
-
-2, -
|
651
|
-
86, -
|
652
|
-
-
|
653
|
-
86, -
|
654
|
-
-
|
655
|
-
-
|
649
|
+
43, -40, -40, -40, -40, -40, -40, -40, -40, -40,
|
650
|
+
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
|
651
|
+
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
|
652
|
+
-2, -40, -40, -40, -40, 2, 43, 4, -1, -40,
|
653
|
+
86, -40, -40, -2, -40, -40, -40, -40, -40, -40,
|
654
|
+
-40, -2, -2, -2, -16, -40, -40, -40, 4, -40,
|
655
|
+
86, -40, -1, -40, 86, -40, -40, 6, 18, 29,
|
656
|
+
-40, 0, -40, 42, 0, -40, 45, -40, -40, -40,
|
657
|
+
-40, -40, -40, -40
|
656
658
|
};
|
657
659
|
|
658
660
|
/* YYPGOTO[NTERM-NUM]. */
|
659
661
|
static const yytype_int8 yypgoto[] =
|
660
662
|
{
|
661
|
-
-
|
662
|
-
|
663
|
-
-
|
663
|
+
-40, 1, -39, -40, -40, -40, -40, -40, -19, -40,
|
664
|
+
20, 54, -40, -40, 68, -40, -40, -40, -40, -40,
|
665
|
+
-40, -40, -40, -40, -40, -40, -40, -40
|
664
666
|
};
|
665
667
|
|
666
668
|
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
|
@@ -670,53 +672,53 @@ static const yytype_int8 yypgoto[] =
|
|
670
672
|
#define YYTABLE_NINF -54
|
671
673
|
static const yytype_int8 yytable[] =
|
672
674
|
{
|
673
|
-
-53, 1, 55, 1, 2, 3, 4, 5,
|
674
|
-
|
675
|
-
17, 18, 19,
|
676
|
-
|
677
|
-
30,
|
678
|
-
5, 6, 7, 78, 8, 9, 10, 11,
|
679
|
-
14, 15, 16, 17, 18, 19, 79, 20,
|
680
|
-
23, 24, 25,
|
681
|
-
|
682
|
-
2, 3, 4, 5, 6, 7,
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
33, 34
|
675
|
+
-53, 1, 55, 1, 2, 3, 4, 5, 61, -14,
|
676
|
+
6, 7, 57, 8, 9, 10, 11, 12, 13, 14,
|
677
|
+
15, 16, 17, 18, 19, 70, 20, 21, 22, 23,
|
678
|
+
24, 25, 80, 26, 27, 82, 28, 56, 29, 72,
|
679
|
+
30, 77, 31, 32, 33, 34, 1, 2, 3, 4,
|
680
|
+
5, -11, -14, 6, 7, 78, 8, 9, 10, 11,
|
681
|
+
12, 13, 14, 15, 16, 17, 18, 19, 79, 20,
|
682
|
+
21, 22, 23, 24, 25, 81, 26, 27, 83, 28,
|
683
|
+
0, 29, 75, 30, 0, 31, 32, 33, 34, 1,
|
684
|
+
2, 3, 4, 5, 65, 0, 6, 7, 54, 8,
|
685
|
+
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
|
686
|
+
19, 66, 0, 0, 73, 0, 0, 25, 76, 67,
|
687
|
+
68, 69, 0, 0, 0, 0, 0, 0, 31, 32,
|
688
|
+
33, 34
|
687
689
|
};
|
688
690
|
|
689
691
|
static const yytype_int8 yycheck[] =
|
690
692
|
{
|
691
|
-
0, 3, 0, 3, 4, 5, 6, 7,
|
692
|
-
|
693
|
-
20, 21, 22,
|
694
|
-
|
695
|
-
40,
|
696
|
-
7, 8, 9,
|
697
|
-
17, 18, 19, 20, 21, 22,
|
698
|
-
27, 28, 29,
|
699
|
-
|
700
|
-
4, 5, 6, 7,
|
701
|
-
14, 15, 16, 17, 18, 19, 20, 21, 22,
|
702
|
-
|
703
|
-
|
704
|
-
44, 45
|
693
|
+
0, 3, 0, 3, 4, 5, 6, 7, 9, 9,
|
694
|
+
10, 11, 8, 13, 14, 15, 16, 17, 18, 19,
|
695
|
+
20, 21, 22, 23, 24, 41, 26, 27, 28, 29,
|
696
|
+
30, 31, 71, 33, 34, 74, 36, 36, 38, 58,
|
697
|
+
40, 35, 42, 43, 44, 45, 3, 4, 5, 6,
|
698
|
+
7, 8, 9, 10, 11, 37, 13, 14, 15, 16,
|
699
|
+
17, 18, 19, 20, 21, 22, 23, 24, 39, 26,
|
700
|
+
27, 28, 29, 30, 31, 33, 33, 34, 33, 36,
|
701
|
+
-1, 38, 62, 40, -1, 42, 43, 44, 45, 3,
|
702
|
+
4, 5, 6, 7, 40, -1, 10, 11, 30, 13,
|
703
|
+
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
|
704
|
+
24, 43, -1, -1, 60, -1, -1, 31, 64, 51,
|
705
|
+
52, 53, -1, -1, -1, -1, -1, -1, 42, 43,
|
706
|
+
44, 45
|
705
707
|
};
|
706
708
|
|
707
709
|
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
|
708
710
|
symbol of state STATE-NUM. */
|
709
711
|
static const yytype_uint8 yystos[] =
|
710
712
|
{
|
711
|
-
0, 3, 4, 5, 6, 7,
|
712
|
-
|
713
|
-
|
713
|
+
0, 3, 4, 5, 6, 7, 10, 11, 13, 14,
|
714
|
+
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
|
715
|
+
26, 27, 28, 29, 30, 31, 33, 34, 36, 38,
|
714
716
|
40, 42, 43, 44, 45, 47, 48, 49, 51, 57,
|
715
717
|
58, 59, 60, 61, 62, 63, 64, 65, 66, 69,
|
716
|
-
70, 71, 72, 73, 60, 0, 47,
|
717
|
-
68,
|
718
|
+
70, 71, 72, 73, 60, 0, 47, 8, 53, 54,
|
719
|
+
68, 9, 55, 56, 67, 57, 60, 60, 60, 60,
|
718
720
|
41, 50, 54, 57, 52, 56, 57, 35, 37, 39,
|
719
|
-
48,
|
721
|
+
48, 33, 48, 33
|
720
722
|
};
|
721
723
|
|
722
724
|
#define yyerrok (yyerrstatus = 0)
|
@@ -1530,364 +1532,376 @@ yyreduce:
|
|
1530
1532
|
case 6:
|
1531
1533
|
|
1532
1534
|
/* Line 1455 of yacc.c */
|
1533
|
-
#line
|
1535
|
+
#line 102 "parser.y"
|
1534
1536
|
{concat("</h1>",5);}
|
1535
1537
|
break;
|
1536
1538
|
|
1537
1539
|
case 7:
|
1538
1540
|
|
1539
1541
|
/* Line 1455 of yacc.c */
|
1540
|
-
#line
|
1542
|
+
#line 103 "parser.y"
|
1541
1543
|
{concat("</h2>",5);}
|
1542
1544
|
break;
|
1543
1545
|
|
1544
1546
|
case 8:
|
1545
1547
|
|
1546
1548
|
/* Line 1455 of yacc.c */
|
1547
|
-
#line
|
1549
|
+
#line 104 "parser.y"
|
1548
1550
|
{concat("</h3>",5);}
|
1549
1551
|
break;
|
1550
1552
|
|
1551
1553
|
case 9:
|
1552
1554
|
|
1553
1555
|
/* Line 1455 of yacc.c */
|
1554
|
-
#line
|
1556
|
+
#line 105 "parser.y"
|
1555
1557
|
{concat("</h4>",5);}
|
1556
1558
|
break;
|
1557
1559
|
|
1558
1560
|
case 10:
|
1559
1561
|
|
1560
1562
|
/* Line 1455 of yacc.c */
|
1561
|
-
#line
|
1563
|
+
#line 106 "parser.y"
|
1562
1564
|
{concat("</h5>",5);}
|
1563
1565
|
break;
|
1564
1566
|
|
1565
1567
|
case 11:
|
1566
1568
|
|
1567
1569
|
/* Line 1455 of yacc.c */
|
1568
|
-
#line
|
1569
|
-
{
|
1570
|
+
#line 107 "parser.y"
|
1571
|
+
{
|
1572
|
+
list_level=1;
|
1573
|
+
concat("<ul>",4)
|
1574
|
+
;}
|
1570
1575
|
break;
|
1571
1576
|
|
1572
1577
|
case 12:
|
1573
1578
|
|
1574
1579
|
/* Line 1455 of yacc.c */
|
1575
|
-
#line
|
1576
|
-
{
|
1580
|
+
#line 110 "parser.y"
|
1581
|
+
{
|
1582
|
+
concat("</ul>",5);
|
1583
|
+
for(; list_level>1 && list_level<4; list_level--) concat("</li></ul>",10);
|
1584
|
+
;}
|
1577
1585
|
break;
|
1578
1586
|
|
1579
1587
|
case 14:
|
1580
1588
|
|
1581
1589
|
/* Line 1455 of yacc.c */
|
1582
|
-
#line
|
1583
|
-
{
|
1590
|
+
#line 114 "parser.y"
|
1591
|
+
{
|
1592
|
+
list_level=1;
|
1593
|
+
concat("<ol>",4)
|
1594
|
+
;}
|
1584
1595
|
break;
|
1585
1596
|
|
1586
1597
|
case 15:
|
1587
1598
|
|
1588
1599
|
/* Line 1455 of yacc.c */
|
1589
|
-
#line
|
1590
|
-
{
|
1600
|
+
#line 117 "parser.y"
|
1601
|
+
{
|
1602
|
+
concat("</ol>",5);
|
1603
|
+
for(; list_level>1 && list_level<4; list_level--) concat("</li></ol>",10);
|
1604
|
+
;}
|
1591
1605
|
break;
|
1592
1606
|
|
1593
1607
|
case 18:
|
1594
1608
|
|
1595
1609
|
/* Line 1455 of yacc.c */
|
1596
|
-
#line
|
1610
|
+
#line 123 "parser.y"
|
1597
1611
|
{concat("</li>",5);}
|
1598
1612
|
break;
|
1599
1613
|
|
1600
1614
|
case 19:
|
1601
1615
|
|
1602
1616
|
/* Line 1455 of yacc.c */
|
1603
|
-
#line
|
1617
|
+
#line 124 "parser.y"
|
1604
1618
|
{concat("</li>",5);}
|
1605
1619
|
break;
|
1606
1620
|
|
1607
1621
|
case 22:
|
1608
1622
|
|
1609
1623
|
/* Line 1455 of yacc.c */
|
1610
|
-
#line
|
1624
|
+
#line 129 "parser.y"
|
1611
1625
|
{concat("</li>",5);}
|
1612
1626
|
break;
|
1613
1627
|
|
1614
1628
|
case 23:
|
1615
1629
|
|
1616
1630
|
/* Line 1455 of yacc.c */
|
1617
|
-
#line
|
1631
|
+
#line 130 "parser.y"
|
1618
1632
|
{concat("</li>",5);}
|
1619
1633
|
break;
|
1620
1634
|
|
1621
1635
|
case 30:
|
1622
1636
|
|
1623
1637
|
/* Line 1455 of yacc.c */
|
1624
|
-
#line
|
1638
|
+
#line 140 "parser.y"
|
1625
1639
|
{concat2((yyvsp[(1) - (1)].svalue));}
|
1626
1640
|
break;
|
1627
1641
|
|
1628
1642
|
case 31:
|
1629
1643
|
|
1630
1644
|
/* Line 1455 of yacc.c */
|
1631
|
-
#line
|
1645
|
+
#line 141 "parser.y"
|
1632
1646
|
{process_url((yyvsp[(1) - (1)].svalue));}
|
1633
1647
|
break;
|
1634
1648
|
|
1635
1649
|
case 32:
|
1636
1650
|
|
1637
1651
|
/* Line 1455 of yacc.c */
|
1638
|
-
#line
|
1652
|
+
#line 142 "parser.y"
|
1639
1653
|
{process_email((yyvsp[(1) - (1)].svalue));}
|
1640
1654
|
break;
|
1641
1655
|
|
1642
1656
|
case 33:
|
1643
1657
|
|
1644
1658
|
/* Line 1455 of yacc.c */
|
1645
|
-
#line
|
1659
|
+
#line 143 "parser.y"
|
1646
1660
|
{(yyvsp[(1) - (1)].ivalue) ? concat(" <strong>",9) : concat("<strong>",8);}
|
1647
1661
|
break;
|
1648
1662
|
|
1649
1663
|
case 34:
|
1650
1664
|
|
1651
1665
|
/* Line 1455 of yacc.c */
|
1652
|
-
#line
|
1666
|
+
#line 144 "parser.y"
|
1653
1667
|
{concat("</strong>",9);}
|
1654
1668
|
break;
|
1655
1669
|
|
1656
1670
|
case 35:
|
1657
1671
|
|
1658
1672
|
/* Line 1455 of yacc.c */
|
1659
|
-
#line
|
1673
|
+
#line 145 "parser.y"
|
1660
1674
|
{(yyvsp[(1) - (1)].ivalue) ? concat(" <em>",5) : concat("<em>",4);}
|
1661
1675
|
break;
|
1662
1676
|
|
1663
1677
|
case 36:
|
1664
1678
|
|
1665
1679
|
/* Line 1455 of yacc.c */
|
1666
|
-
#line
|
1680
|
+
#line 146 "parser.y"
|
1667
1681
|
{concat("</em>",5);}
|
1668
1682
|
break;
|
1669
1683
|
|
1670
1684
|
case 37:
|
1671
1685
|
|
1672
1686
|
/* Line 1455 of yacc.c */
|
1673
|
-
#line
|
1687
|
+
#line 147 "parser.y"
|
1674
1688
|
{(yyvsp[(1) - (1)].ivalue) ? concat(" <strong><em>",13) : concat("<strong><em>",12);}
|
1675
1689
|
break;
|
1676
1690
|
|
1677
1691
|
case 38:
|
1678
1692
|
|
1679
1693
|
/* Line 1455 of yacc.c */
|
1680
|
-
#line
|
1694
|
+
#line 148 "parser.y"
|
1681
1695
|
{(yyvsp[(1) - (1)].ivalue) ? concat(" <em><strong>",13) : concat("<em><strong>",12);}
|
1682
1696
|
break;
|
1683
1697
|
|
1684
1698
|
case 39:
|
1685
1699
|
|
1686
1700
|
/* Line 1455 of yacc.c */
|
1687
|
-
#line
|
1701
|
+
#line 149 "parser.y"
|
1688
1702
|
{process_inline_code((yyvsp[(1) - (1)].svalue));}
|
1689
1703
|
break;
|
1690
1704
|
|
1691
1705
|
case 40:
|
1692
1706
|
|
1693
1707
|
/* Line 1455 of yacc.c */
|
1694
|
-
#line
|
1708
|
+
#line 150 "parser.y"
|
1695
1709
|
{revert_bold();}
|
1696
1710
|
break;
|
1697
1711
|
|
1698
1712
|
case 41:
|
1699
1713
|
|
1700
1714
|
/* Line 1455 of yacc.c */
|
1701
|
-
#line
|
1715
|
+
#line 151 "parser.y"
|
1702
1716
|
{revert_italic();}
|
1703
1717
|
break;
|
1704
1718
|
|
1705
1719
|
case 42:
|
1706
1720
|
|
1707
1721
|
/* Line 1455 of yacc.c */
|
1708
|
-
#line
|
1722
|
+
#line 153 "parser.y"
|
1709
1723
|
{process_ticket_link((yyvsp[(1) - (1)].svalue));}
|
1710
1724
|
break;
|
1711
1725
|
|
1712
1726
|
case 43:
|
1713
1727
|
|
1714
1728
|
/* Line 1455 of yacc.c */
|
1715
|
-
#line
|
1729
|
+
#line 154 "parser.y"
|
1716
1730
|
{process_svn_link((yyvsp[(1) - (1)].svalue),0);}
|
1717
1731
|
break;
|
1718
1732
|
|
1719
1733
|
case 44:
|
1720
1734
|
|
1721
1735
|
/* Line 1455 of yacc.c */
|
1722
|
-
#line
|
1736
|
+
#line 155 "parser.y"
|
1723
1737
|
{process_git_link((yyvsp[(1) - (1)].svalue),0);}
|
1724
1738
|
break;
|
1725
1739
|
|
1726
1740
|
case 45:
|
1727
1741
|
|
1728
1742
|
/* Line 1455 of yacc.c */
|
1729
|
-
#line
|
1743
|
+
#line 156 "parser.y"
|
1730
1744
|
{process_svn_link((yyvsp[(1) - (1)].svalue),1);}
|
1731
1745
|
break;
|
1732
1746
|
|
1733
1747
|
case 46:
|
1734
1748
|
|
1735
1749
|
/* Line 1455 of yacc.c */
|
1736
|
-
#line
|
1750
|
+
#line 157 "parser.y"
|
1737
1751
|
{process_git_link((yyvsp[(1) - (1)].svalue),1);}
|
1738
1752
|
break;
|
1739
1753
|
|
1740
1754
|
case 47:
|
1741
1755
|
|
1742
1756
|
/* Line 1455 of yacc.c */
|
1743
|
-
#line
|
1757
|
+
#line 158 "parser.y"
|
1744
1758
|
{process_url_link((yyvsp[(1) - (1)].svalue),NULL);}
|
1745
1759
|
break;
|
1746
1760
|
|
1747
1761
|
case 48:
|
1748
1762
|
|
1749
1763
|
/* Line 1455 of yacc.c */
|
1750
|
-
#line
|
1764
|
+
#line 159 "parser.y"
|
1751
1765
|
{process_url_link((yyvsp[(1) - (1)].svalue),"http://");}
|
1752
1766
|
break;
|
1753
1767
|
|
1754
1768
|
case 49:
|
1755
1769
|
|
1756
1770
|
/* Line 1455 of yacc.c */
|
1757
|
-
#line
|
1771
|
+
#line 160 "parser.y"
|
1758
1772
|
{process_wiki_link((yyvsp[(1) - (1)].svalue));}
|
1759
1773
|
break;
|
1760
1774
|
|
1761
1775
|
case 50:
|
1762
1776
|
|
1763
1777
|
/* Line 1455 of yacc.c */
|
1764
|
-
#line
|
1778
|
+
#line 161 "parser.y"
|
1765
1779
|
{process_anchor_link((yyvsp[(1) - (1)].svalue));}
|
1766
1780
|
break;
|
1767
1781
|
|
1768
1782
|
case 51:
|
1769
1783
|
|
1770
1784
|
/* Line 1455 of yacc.c */
|
1771
|
-
#line
|
1785
|
+
#line 162 "parser.y"
|
1772
1786
|
{process_file_link((yyvsp[(1) - (1)].svalue));}
|
1773
1787
|
break;
|
1774
1788
|
|
1775
1789
|
case 52:
|
1776
1790
|
|
1777
1791
|
/* Line 1455 of yacc.c */
|
1778
|
-
#line
|
1792
|
+
#line 163 "parser.y"
|
1779
1793
|
{process_image_link((yyvsp[(1) - (1)].svalue));}
|
1780
1794
|
break;
|
1781
1795
|
|
1782
1796
|
case 55:
|
1783
1797
|
|
1784
1798
|
/* Line 1455 of yacc.c */
|
1785
|
-
#line
|
1799
|
+
#line 168 "parser.y"
|
1786
1800
|
{concat_escaped_char((yyvsp[(1) - (1)].ivalue));}
|
1787
1801
|
break;
|
1788
1802
|
|
1789
1803
|
case 56:
|
1790
1804
|
|
1791
1805
|
/* Line 1455 of yacc.c */
|
1792
|
-
#line
|
1793
|
-
{concat("<h1 id=\"",
|
1806
|
+
#line 175 "parser.y"
|
1807
|
+
{concat("<h1 id=\"h-",10); process_header((yyvsp[(1) - (1)].svalue));}
|
1794
1808
|
break;
|
1795
1809
|
|
1796
1810
|
case 57:
|
1797
1811
|
|
1798
1812
|
/* Line 1455 of yacc.c */
|
1799
|
-
#line
|
1800
|
-
{concat("<h2 id=\"",
|
1813
|
+
#line 176 "parser.y"
|
1814
|
+
{concat("<h2 id=\"h-",10); process_header((yyvsp[(1) - (1)].svalue));}
|
1801
1815
|
break;
|
1802
1816
|
|
1803
1817
|
case 58:
|
1804
1818
|
|
1805
1819
|
/* Line 1455 of yacc.c */
|
1806
|
-
#line
|
1807
|
-
{concat("<h3 id=\"",
|
1820
|
+
#line 177 "parser.y"
|
1821
|
+
{concat("<h3 id=\"h-",10); process_header((yyvsp[(1) - (1)].svalue));}
|
1808
1822
|
break;
|
1809
1823
|
|
1810
1824
|
case 59:
|
1811
1825
|
|
1812
1826
|
/* Line 1455 of yacc.c */
|
1813
|
-
#line
|
1814
|
-
{concat("<h4 id=\"",
|
1827
|
+
#line 178 "parser.y"
|
1828
|
+
{concat("<h4 id=\"h-",10); process_header((yyvsp[(1) - (1)].svalue));}
|
1815
1829
|
break;
|
1816
1830
|
|
1817
1831
|
case 60:
|
1818
1832
|
|
1819
1833
|
/* Line 1455 of yacc.c */
|
1820
|
-
#line
|
1821
|
-
{concat("<h5 id=\"",
|
1834
|
+
#line 179 "parser.y"
|
1835
|
+
{concat("<h5 id=\"h-",10); process_header((yyvsp[(1) - (1)].svalue));}
|
1822
1836
|
break;
|
1823
1837
|
|
1824
1838
|
case 61:
|
1825
1839
|
|
1826
1840
|
/* Line 1455 of yacc.c */
|
1827
|
-
#line
|
1828
|
-
{
|
1841
|
+
#line 181 "parser.y"
|
1842
|
+
{process_oli((yyvsp[(1) - (1)].ivalue));}
|
1829
1843
|
break;
|
1830
1844
|
|
1831
1845
|
case 62:
|
1832
1846
|
|
1833
1847
|
/* Line 1455 of yacc.c */
|
1834
|
-
#line
|
1835
|
-
{
|
1848
|
+
#line 182 "parser.y"
|
1849
|
+
{process_uli((yyvsp[(1) - (1)].ivalue));}
|
1836
1850
|
break;
|
1837
1851
|
|
1838
1852
|
case 63:
|
1839
1853
|
|
1840
1854
|
/* Line 1455 of yacc.c */
|
1841
|
-
#line
|
1855
|
+
#line 183 "parser.y"
|
1842
1856
|
{concat("<br />",6);}
|
1843
1857
|
break;
|
1844
1858
|
|
1845
1859
|
case 64:
|
1846
1860
|
|
1847
1861
|
/* Line 1455 of yacc.c */
|
1848
|
-
#line
|
1862
|
+
#line 186 "parser.y"
|
1849
1863
|
{concat("<pre><code>",11);}
|
1850
1864
|
break;
|
1851
1865
|
|
1852
1866
|
case 65:
|
1853
1867
|
|
1854
1868
|
/* Line 1455 of yacc.c */
|
1855
|
-
#line
|
1869
|
+
#line 186 "parser.y"
|
1856
1870
|
{concat("</code></pre>",13);}
|
1857
1871
|
break;
|
1858
1872
|
|
1859
1873
|
case 67:
|
1860
1874
|
|
1861
1875
|
/* Line 1455 of yacc.c */
|
1862
|
-
#line
|
1876
|
+
#line 188 "parser.y"
|
1863
1877
|
{concat("<pre>",5);}
|
1864
1878
|
break;
|
1865
1879
|
|
1866
1880
|
case 68:
|
1867
1881
|
|
1868
1882
|
/* Line 1455 of yacc.c */
|
1869
|
-
#line
|
1883
|
+
#line 188 "parser.y"
|
1870
1884
|
{concat("</pre>",6);}
|
1871
1885
|
break;
|
1872
1886
|
|
1873
1887
|
case 69:
|
1874
1888
|
|
1875
1889
|
/* Line 1455 of yacc.c */
|
1876
|
-
#line
|
1890
|
+
#line 189 "parser.y"
|
1877
1891
|
{concat("<code>",6);}
|
1878
1892
|
break;
|
1879
1893
|
|
1880
1894
|
case 70:
|
1881
1895
|
|
1882
1896
|
/* Line 1455 of yacc.c */
|
1883
|
-
#line
|
1897
|
+
#line 189 "parser.y"
|
1884
1898
|
{concat("</code>",7);}
|
1885
1899
|
break;
|
1886
1900
|
|
1887
1901
|
|
1888
1902
|
|
1889
1903
|
/* Line 1455 of yacc.c */
|
1890
|
-
#line
|
1904
|
+
#line 1905 "parser.tab.c"
|
1891
1905
|
default: break;
|
1892
1906
|
}
|
1893
1907
|
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
|
@@ -2099,8 +2113,38 @@ yyreturn:
|
|
2099
2113
|
|
2100
2114
|
|
2101
2115
|
/* Line 1675 of yacc.c */
|
2102
|
-
#line
|
2116
|
+
#line 193 "parser.y"
|
2117
|
+
|
2118
|
+
|
2119
|
+
process_uli(int level){
|
2120
|
+
if( level == list_level ){
|
2121
|
+
concat("<li>",4);
|
2122
|
+
} else if( level < list_level ){
|
2123
|
+
list_level = level;
|
2124
|
+
//unconcat("</li>");
|
2125
|
+
concat("</ul></li><li>",14);
|
2126
|
+
} else {
|
2127
|
+
// if(level > list_level)
|
2128
|
+
list_level = level;
|
2129
|
+
unconcat("</li>");
|
2130
|
+
concat("<ul><li>",8);
|
2131
|
+
}
|
2132
|
+
}
|
2103
2133
|
|
2134
|
+
process_oli(int level){
|
2135
|
+
if( level == list_level ){
|
2136
|
+
concat("<li>",4);
|
2137
|
+
} else if( level < list_level ){
|
2138
|
+
list_level = level;
|
2139
|
+
//unconcat("</li>");
|
2140
|
+
concat("</ol></li><li>",14);
|
2141
|
+
} else {
|
2142
|
+
// if(level > list_level)
|
2143
|
+
list_level = level;
|
2144
|
+
unconcat("</li>");
|
2145
|
+
concat("<ol><li>",8);
|
2146
|
+
}
|
2147
|
+
}
|
2104
2148
|
|
2105
2149
|
concat_hex_char(char c){
|
2106
2150
|
unsigned char d;
|
@@ -2199,7 +2243,7 @@ process_anchor_link(const char*target){
|
|
2199
2243
|
|
2200
2244
|
if((p = strchr(target,'|')) && (p<pend) && (p>target)) pend = p-1;
|
2201
2245
|
|
2202
|
-
concat("<a href=\"#",
|
2246
|
+
concat("<a href=\"#h-",12);
|
2203
2247
|
if( need_hex_convert(target,pend) ){
|
2204
2248
|
for(p = target; *p && p<=pend; p++) concat_hex_char( *p );
|
2205
2249
|
} else {
|
@@ -2287,7 +2331,16 @@ process_wiki_link(const char*target){
|
|
2287
2331
|
concat("/wiki/show/",11);
|
2288
2332
|
concat(space_name,space_name_len);
|
2289
2333
|
concat_raw_char('/');
|
2290
|
-
for(c=target; *c && *c!=']' && *c!='|'; c++) concat_raw_char(*c);
|
2334
|
+
for(c=target; *c && *c!=']' && *c!='|' && *c!='#'; c++) concat_raw_char(*c);
|
2335
|
+
if( *c == '#' ){
|
2336
|
+
concat_raw_char('#');
|
2337
|
+
//if(memcmp(c, "#h-", 3) != 0){
|
2338
|
+
// anchor w/o "h-" prefix, we need to add it
|
2339
|
+
concat_raw_char('h');
|
2340
|
+
concat_raw_char('-');
|
2341
|
+
//}
|
2342
|
+
for(c++; *c && *c!=']' && *c!='|'; c++) concat_raw_char(*c);
|
2343
|
+
}
|
2291
2344
|
process_link_tail(target,NULL,NULL);
|
2292
2345
|
}
|
2293
2346
|
|
@@ -2382,6 +2435,11 @@ process_email(const char*url){
|
|
2382
2435
|
process_link_tail(url,NULL,NULL);
|
2383
2436
|
}
|
2384
2437
|
|
2438
|
+
unconcat(const char*what){
|
2439
|
+
int l = strlen(what);
|
2440
|
+
if( bufptr-buf > l && strncmp(bufptr-l,what,l) == 0 ) bufptr -= l;
|
2441
|
+
}
|
2442
|
+
|
2385
2443
|
revert_bold(){
|
2386
2444
|
char *p;
|
2387
2445
|
for( p=bufptr-1; p >= (buf+7) ; p--){
|