rmultimarkdown 6.4.0.3 → 6.7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. checksums.yaml +5 -5
  2. data/Rakefile +7 -13
  3. data/ext/Makefile +67 -55
  4. data/ext/extconf.rb +8 -6
  5. data/ext/mmd/aho-corasick.c +8 -8
  6. data/ext/mmd/aho-corasick.h +3 -3
  7. data/ext/mmd/argtable3.c +6537 -0
  8. data/ext/mmd/argtable3.h +273 -0
  9. data/ext/mmd/beamer.c +12 -1
  10. data/ext/mmd/char.c +120 -27
  11. data/ext/mmd/char.h +23 -23
  12. data/ext/mmd/critic_markup.c +7 -6
  13. data/ext/mmd/d_string.c +88 -32
  14. data/ext/mmd/{include/d_string.h → d_string.h} +50 -38
  15. data/ext/mmd/epub.c +36 -12
  16. data/ext/mmd/epub.h +2 -2
  17. data/ext/mmd/file.c +50 -40
  18. data/ext/mmd/file.h +2 -2
  19. data/ext/mmd/html.c +164 -99
  20. data/ext/mmd/html.h +3 -2
  21. data/ext/mmd/i18n.h +15 -11
  22. data/ext/mmd/itmz-lexer.c +16978 -0
  23. data/ext/mmd/itmz-lexer.h +132 -0
  24. data/ext/mmd/itmz-parser.c +1189 -0
  25. data/ext/mmd/itmz-parser.h +11 -0
  26. data/ext/mmd/itmz-reader.c +388 -0
  27. data/ext/mmd/itmz-reader.h +111 -0
  28. data/ext/mmd/itmz.c +567 -0
  29. data/ext/mmd/itmz.h +117 -0
  30. data/ext/mmd/latex.c +93 -41
  31. data/ext/mmd/lexer.c +3506 -2774
  32. data/ext/mmd/{include/libMultiMarkdown.h → libMultiMarkdown.h} +49 -2
  33. data/ext/mmd/main.c +612 -0
  34. data/ext/mmd/memoir.c +4 -1
  35. data/ext/mmd/miniz.c +6905 -6680
  36. data/ext/mmd/miniz.h +456 -476
  37. data/ext/mmd/mmd.c +399 -94
  38. data/ext/mmd/mmd.h +25 -25
  39. data/ext/mmd/object_pool.h +3 -3
  40. data/ext/mmd/opendocument-content.c +137 -69
  41. data/ext/mmd/opendocument-content.h +2 -2
  42. data/ext/mmd/opendocument.c +35 -14
  43. data/ext/mmd/opendocument.h +2 -2
  44. data/ext/mmd/opml-lexer.c +259 -637
  45. data/ext/mmd/opml-lexer.h +1 -17
  46. data/ext/mmd/opml-parser.c +194 -188
  47. data/ext/mmd/opml-reader.c +72 -142
  48. data/ext/mmd/opml-reader.h +1 -1
  49. data/ext/mmd/opml.c +13 -13
  50. data/ext/mmd/opml.h +1 -1
  51. data/ext/mmd/parser.c +1623 -1244
  52. data/ext/mmd/rng.c +8 -3
  53. data/ext/mmd/scanners.c +66625 -103198
  54. data/ext/mmd/scanners.h +1 -0
  55. data/ext/mmd/stack.c +62 -20
  56. data/ext/mmd/stack.h +10 -21
  57. data/ext/mmd/textbundle.c +23 -7
  58. data/ext/mmd/textbundle.h +2 -2
  59. data/ext/mmd/token.c +42 -16
  60. data/ext/mmd/{include/token.h → token.h} +22 -8
  61. data/ext/mmd/token_pairs.c +0 -16
  62. data/ext/mmd/transclude.c +6 -2
  63. data/ext/mmd/uthash.h +745 -745
  64. data/ext/mmd/version.h +8 -8
  65. data/ext/mmd/writer.c +225 -63
  66. data/ext/mmd/writer.h +50 -36
  67. data/ext/mmd/xml.c +855 -0
  68. data/ext/mmd/xml.h +134 -0
  69. data/ext/mmd/zip.c +71 -4
  70. data/ext/mmd/zip.h +7 -1
  71. data/ext/ruby_multi_markdown.c +9 -18
  72. data/lib/multi_markdown/version.rb +1 -1
  73. data/lib/multi_markdown.bundle +0 -0
  74. data/rmultimarkdown.gemspec +0 -2
  75. metadata +22 -28
  76. data/ext/mmd/char_lookup.c +0 -212
data/ext/mmd/opml-lexer.c CHANGED
@@ -1,4 +1,4 @@
1
- /* Generated by re2c 1.0.3 on Tue Aug 7 19:20:45 2018 */
1
+ /* Generated by re2c 1.3 on Tue Sep 28 18:26:57 2021 */
2
2
  /**
3
3
 
4
4
  MultiMarkdown -- Lightweight markup processor to produce HTML, LaTeX, and more.
@@ -15,7 +15,7 @@
15
15
 
16
16
  /*
17
17
 
18
- Copyright © 2016 - 2018 Fletcher T. Penney.
18
+ Copyright © 2016 - 2019 Fletcher T. Penney.
19
19
 
20
20
 
21
21
  The `MultiMarkdown 6` project is released under the MIT License..
@@ -1051,13 +1051,9 @@ yy101:
1051
1051
  yych = *++YYCURSOR;
1052
1052
 
1053
1053
  switch (yych) {
1054
- case '(':
1054
+ case '&':
1055
1055
  goto yy102;
1056
1056
 
1057
- case 'M':
1058
- case 'm':
1059
- goto yy103;
1060
-
1061
1057
  default:
1062
1058
  goto yy85;
1063
1059
  }
@@ -1066,9 +1062,9 @@ yy102:
1066
1062
  yych = *++YYCURSOR;
1067
1063
 
1068
1064
  switch (yych) {
1069
- case 'U':
1070
- case 'u':
1071
- goto yy104;
1065
+ case 'G':
1066
+ case 'g':
1067
+ goto yy103;
1072
1068
 
1073
1069
  default:
1074
1070
  goto yy85;
@@ -1078,9 +1074,9 @@ yy103:
1078
1074
  yych = *++YYCURSOR;
1079
1075
 
1080
1076
  switch (yych) {
1081
- case 'E':
1082
- case 'e':
1083
- goto yy105;
1077
+ case 'T':
1078
+ case 't':
1079
+ goto yy104;
1084
1080
 
1085
1081
  default:
1086
1082
  goto yy85;
@@ -1090,9 +1086,8 @@ yy104:
1090
1086
  yych = *++YYCURSOR;
1091
1087
 
1092
1088
  switch (yych) {
1093
- case 'N':
1094
- case 'n':
1095
- goto yy106;
1089
+ case ';':
1090
+ goto yy105;
1096
1091
 
1097
1092
  default:
1098
1093
  goto yy85;
@@ -1102,9 +1097,8 @@ yy105:
1102
1097
  yych = *++YYCURSOR;
1103
1098
 
1104
1099
  switch (yych) {
1105
- case 'T':
1106
- case 't':
1107
- goto yy107;
1100
+ case '&':
1101
+ goto yy106;
1108
1102
 
1109
1103
  default:
1110
1104
  goto yy85;
@@ -1114,9 +1108,9 @@ yy106:
1114
1108
  yych = *++YYCURSOR;
1115
1109
 
1116
1110
  switch (yych) {
1117
- case 'T':
1118
- case 't':
1119
- goto yy108;
1111
+ case 'G':
1112
+ case 'g':
1113
+ goto yy107;
1120
1114
 
1121
1115
  default:
1122
1116
  goto yy85;
@@ -1126,9 +1120,9 @@ yy107:
1126
1120
  yych = *++YYCURSOR;
1127
1121
 
1128
1122
  switch (yych) {
1129
- case 'A':
1130
- case 'a':
1131
- goto yy109;
1123
+ case 'T':
1124
+ case 't':
1125
+ goto yy108;
1132
1126
 
1133
1127
  default:
1134
1128
  goto yy85;
@@ -1138,9 +1132,8 @@ yy108:
1138
1132
  yych = *++YYCURSOR;
1139
1133
 
1140
1134
  switch (yych) {
1141
- case 'I':
1142
- case 'i':
1143
- goto yy110;
1135
+ case ';':
1136
+ goto yy109;
1144
1137
 
1145
1138
  default:
1146
1139
  goto yy85;
@@ -1150,8 +1143,12 @@ yy109:
1150
1143
  yych = *++YYCURSOR;
1151
1144
 
1152
1145
  switch (yych) {
1153
- case 'D':
1154
- case 'd':
1146
+ case 'M':
1147
+ case 'm':
1148
+ goto yy110;
1149
+
1150
+ case 'P':
1151
+ case 'p':
1155
1152
  goto yy111;
1156
1153
 
1157
1154
  default:
@@ -1162,8 +1159,8 @@ yy110:
1162
1159
  yych = *++YYCURSOR;
1163
1160
 
1164
1161
  switch (yych) {
1165
- case 'T':
1166
- case 't':
1162
+ case 'E':
1163
+ case 'e':
1167
1164
  goto yy112;
1168
1165
 
1169
1166
  default:
@@ -1174,8 +1171,8 @@ yy111:
1174
1171
  yych = *++YYCURSOR;
1175
1172
 
1176
1173
  switch (yych) {
1177
- case 'A':
1178
- case 'a':
1174
+ case 'R':
1175
+ case 'r':
1179
1176
  goto yy113;
1180
1177
 
1181
1178
  default:
@@ -1186,8 +1183,8 @@ yy112:
1186
1183
  yych = *++YYCURSOR;
1187
1184
 
1188
1185
  switch (yych) {
1189
- case 'L':
1190
- case 'l':
1186
+ case 'T':
1187
+ case 't':
1191
1188
  goto yy114;
1192
1189
 
1193
1190
  default:
@@ -1198,8 +1195,8 @@ yy113:
1198
1195
  yych = *++YYCURSOR;
1199
1196
 
1200
1197
  switch (yych) {
1201
- case 'T':
1202
- case 't':
1198
+ case 'E':
1199
+ case 'e':
1203
1200
  goto yy115;
1204
1201
 
1205
1202
  default:
@@ -1210,8 +1207,8 @@ yy114:
1210
1207
  yych = *++YYCURSOR;
1211
1208
 
1212
1209
  switch (yych) {
1213
- case 'E':
1214
- case 'e':
1210
+ case 'A':
1211
+ case 'a':
1215
1212
  goto yy116;
1216
1213
 
1217
1214
  default:
@@ -1246,7 +1243,8 @@ yy117:
1246
1243
  yych = *++YYCURSOR;
1247
1244
 
1248
1245
  switch (yych) {
1249
- case '"':
1246
+ case 'M':
1247
+ case 'm':
1250
1248
  goto yy119;
1251
1249
 
1252
1250
  default:
@@ -1257,8 +1255,9 @@ yy118:
1257
1255
  yych = *++YYCURSOR;
1258
1256
 
1259
1257
  switch (yych) {
1260
- case ' ':
1261
- goto yy121;
1258
+ case 'A':
1259
+ case 'a':
1260
+ goto yy120;
1262
1261
 
1263
1262
  default:
1264
1263
  goto yy85;
@@ -1268,199 +1267,201 @@ yy119:
1268
1267
  yych = *++YYCURSOR;
1269
1268
 
1270
1269
  switch (yych) {
1271
- case 0x00:
1272
- goto yy9;
1270
+ case 'B':
1271
+ case 'b':
1272
+ goto yy121;
1273
1273
 
1274
- case '\t':
1275
- case '\n':
1276
- case '\r':
1277
- case ' ':
1278
- goto yy119;
1274
+ default:
1275
+ goto yy85;
1276
+ }
1279
1277
 
1280
- case '/':
1281
- goto yy86;
1278
+ yy120:
1279
+ yych = *++YYCURSOR;
1282
1280
 
1283
- case '>':
1281
+ switch (yych) {
1282
+ case 'T':
1283
+ case 't':
1284
1284
  goto yy122;
1285
1285
 
1286
1286
  default:
1287
- goto yy84;
1287
+ goto yy85;
1288
1288
  }
1289
1289
 
1290
1290
  yy121:
1291
1291
  yych = *++YYCURSOR;
1292
1292
 
1293
1293
  switch (yych) {
1294
- case 'P':
1295
- case 'p':
1296
- goto yy124;
1294
+ case 'L':
1295
+ case 'l':
1296
+ goto yy123;
1297
1297
 
1298
1298
  default:
1299
1299
  goto yy85;
1300
1300
  }
1301
1301
 
1302
1302
  yy122:
1303
- ++YYCURSOR;
1304
- {
1305
- return OPML_OUTLINE_METADATA;
1306
- }
1307
- yy124:
1308
1303
  yych = *++YYCURSOR;
1309
1304
 
1310
1305
  switch (yych) {
1311
- case 'R':
1312
- case 'r':
1313
- goto yy125;
1306
+ case 'A':
1307
+ case 'a':
1308
+ goto yy124;
1314
1309
 
1315
1310
  default:
1316
1311
  goto yy85;
1317
1312
  }
1318
1313
 
1319
- yy125:
1314
+ yy123:
1320
1315
  yych = *++YYCURSOR;
1321
1316
 
1322
1317
  switch (yych) {
1323
1318
  case 'E':
1324
1319
  case 'e':
1320
+ goto yy125;
1321
+
1322
+ default:
1323
+ goto yy85;
1324
+ }
1325
+
1326
+ yy124:
1327
+ yych = *++YYCURSOR;
1328
+
1329
+ switch (yych) {
1330
+ case '&':
1325
1331
  goto yy126;
1326
1332
 
1327
1333
  default:
1328
1334
  goto yy85;
1329
1335
  }
1330
1336
 
1331
- yy126:
1337
+ yy125:
1332
1338
  yych = *++YYCURSOR;
1333
1339
 
1334
1340
  switch (yych) {
1335
- case 'A':
1336
- case 'a':
1341
+ case '&':
1337
1342
  goto yy127;
1338
1343
 
1339
1344
  default:
1340
1345
  goto yy85;
1341
1346
  }
1342
1347
 
1343
- yy127:
1348
+ yy126:
1344
1349
  yych = *++YYCURSOR;
1345
1350
 
1346
1351
  switch (yych) {
1347
- case 'M':
1348
- case 'm':
1352
+ case 'L':
1353
+ case 'l':
1349
1354
  goto yy128;
1350
1355
 
1351
1356
  default:
1352
1357
  goto yy85;
1353
1358
  }
1354
1359
 
1355
- yy128:
1360
+ yy127:
1356
1361
  yych = *++YYCURSOR;
1357
1362
 
1358
1363
  switch (yych) {
1359
- case 'B':
1360
- case 'b':
1364
+ case 'L':
1365
+ case 'l':
1361
1366
  goto yy129;
1362
1367
 
1363
1368
  default:
1364
1369
  goto yy85;
1365
1370
  }
1366
1371
 
1367
- yy129:
1372
+ yy128:
1368
1373
  yych = *++YYCURSOR;
1369
1374
 
1370
1375
  switch (yych) {
1371
- case 'L':
1372
- case 'l':
1376
+ case 'T':
1377
+ case 't':
1373
1378
  goto yy130;
1374
1379
 
1375
1380
  default:
1376
1381
  goto yy85;
1377
1382
  }
1378
1383
 
1379
- yy130:
1384
+ yy129:
1380
1385
  yych = *++YYCURSOR;
1381
1386
 
1382
1387
  switch (yych) {
1383
- case 'E':
1384
- case 'e':
1388
+ case 'T':
1389
+ case 't':
1385
1390
  goto yy131;
1386
1391
 
1387
1392
  default:
1388
1393
  goto yy85;
1389
1394
  }
1390
1395
 
1391
- yy131:
1396
+ yy130:
1392
1397
  yych = *++YYCURSOR;
1393
1398
 
1394
1399
  switch (yych) {
1395
- case ')':
1400
+ case ';':
1396
1401
  goto yy132;
1397
1402
 
1398
1403
  default:
1399
1404
  goto yy85;
1400
1405
  }
1401
1406
 
1402
- yy132:
1407
+ yy131:
1403
1408
  yych = *++YYCURSOR;
1404
1409
 
1405
1410
  switch (yych) {
1406
- case '"':
1411
+ case ';':
1407
1412
  goto yy133;
1408
1413
 
1409
1414
  default:
1410
1415
  goto yy85;
1411
1416
  }
1412
1417
 
1413
- yy133:
1418
+ yy132:
1414
1419
  yych = *++YYCURSOR;
1415
1420
 
1416
1421
  switch (yych) {
1417
- case 0x00:
1418
- goto yy9;
1419
-
1420
- case '\t':
1421
- case '\n':
1422
- case '\r':
1423
- case ' ':
1424
- goto yy133;
1422
+ case '&':
1423
+ goto yy134;
1425
1424
 
1426
- case '/':
1427
- goto yy86;
1425
+ default:
1426
+ goto yy85;
1427
+ }
1428
1428
 
1429
- case '>':
1430
- goto yy88;
1429
+ yy133:
1430
+ yych = *++YYCURSOR;
1431
1431
 
1432
- case '_':
1432
+ switch (yych) {
1433
+ case '&':
1433
1434
  goto yy135;
1434
1435
 
1435
1436
  default:
1436
- goto yy84;
1437
+ goto yy85;
1437
1438
  }
1438
1439
 
1439
- yy135:
1440
+ yy134:
1440
1441
  yych = *++YYCURSOR;
1441
1442
 
1442
1443
  switch (yych) {
1443
- case 'N':
1444
- case 'n':
1444
+ case 'L':
1445
+ case 'l':
1445
1446
  goto yy136;
1446
1447
 
1447
1448
  default:
1448
1449
  goto yy85;
1449
1450
  }
1450
1451
 
1451
- yy136:
1452
+ yy135:
1452
1453
  yych = *++YYCURSOR;
1453
1454
 
1454
1455
  switch (yych) {
1455
- case 'O':
1456
- case 'o':
1456
+ case 'L':
1457
+ case 'l':
1457
1458
  goto yy137;
1458
1459
 
1459
1460
  default:
1460
1461
  goto yy85;
1461
1462
  }
1462
1463
 
1463
- yy137:
1464
+ yy136:
1464
1465
  yych = *++YYCURSOR;
1465
1466
 
1466
1467
  switch (yych) {
@@ -1472,47 +1473,65 @@ yy137:
1472
1473
  goto yy85;
1473
1474
  }
1474
1475
 
1475
- yy138:
1476
+ yy137:
1476
1477
  yych = *++YYCURSOR;
1477
1478
 
1478
1479
  switch (yych) {
1479
- case 'E':
1480
- case 'e':
1480
+ case 'T':
1481
+ case 't':
1481
1482
  goto yy139;
1482
1483
 
1483
1484
  default:
1484
1485
  goto yy85;
1485
1486
  }
1486
1487
 
1487
- yy139:
1488
+ yy138:
1488
1489
  yych = *++YYCURSOR;
1489
1490
 
1490
1491
  switch (yych) {
1491
- case 0x00:
1492
- goto yy9;
1492
+ case ';':
1493
+ goto yy140;
1493
1494
 
1494
- case '\t':
1495
- case '\n':
1496
- case '\r':
1497
- case ' ':
1498
- goto yy139;
1495
+ default:
1496
+ goto yy85;
1497
+ }
1499
1498
 
1500
- case '/':
1501
- goto yy86;
1499
+ yy139:
1500
+ yych = *++YYCURSOR;
1502
1501
 
1503
- case '=':
1502
+ switch (yych) {
1503
+ case ';':
1504
1504
  goto yy141;
1505
1505
 
1506
- case '>':
1507
- goto yy88;
1506
+ default:
1507
+ goto yy85;
1508
+ }
1509
+
1510
+ yy140:
1511
+ yych = *++YYCURSOR;
1512
+
1513
+ switch (yych) {
1514
+ case '"':
1515
+ goto yy142;
1508
1516
 
1509
1517
  default:
1510
- goto yy84;
1518
+ goto yy85;
1511
1519
  }
1512
1520
 
1513
1521
  yy141:
1514
1522
  yych = *++YYCURSOR;
1515
1523
 
1524
+ switch (yych) {
1525
+ case '"':
1526
+ goto yy144;
1527
+
1528
+ default:
1529
+ goto yy85;
1530
+ }
1531
+
1532
+ yy142:
1533
+ yych = *++YYCURSOR;
1534
+
1516
1535
  switch (yych) {
1517
1536
  case 0x00:
1518
1537
  goto yy9;
@@ -1521,662 +1540,265 @@ yy141:
1521
1540
  case '\n':
1522
1541
  case '\r':
1523
1542
  case ' ':
1524
- goto yy141;
1525
-
1526
- case '"':
1527
- goto yy143;
1543
+ goto yy142;
1528
1544
 
1529
1545
  case '/':
1530
1546
  goto yy86;
1531
1547
 
1532
1548
  case '>':
1533
- goto yy88;
1549
+ goto yy146;
1534
1550
 
1535
1551
  default:
1536
1552
  goto yy84;
1537
1553
  }
1538
1554
 
1539
- yy143:
1555
+ yy144:
1540
1556
  yych = *++YYCURSOR;
1541
1557
 
1542
1558
  switch (yych) {
1543
1559
  case 0x00:
1544
1560
  goto yy9;
1545
1561
 
1546
- case '"':
1547
- goto yy145;
1562
+ case '\t':
1563
+ case '\n':
1564
+ case '\r':
1565
+ case ' ':
1566
+ goto yy144;
1548
1567
 
1549
1568
  case '/':
1550
- goto yy147;
1569
+ goto yy86;
1551
1570
 
1552
1571
  case '>':
1553
- goto yy149;
1554
-
1555
- default:
1556
- goto yy143;
1557
- }
1558
-
1559
- yy145:
1560
- yych = *++YYCURSOR;
1561
-
1562
- switch (yych) {
1563
- case 0x00:
1564
- goto yy9;
1565
-
1566
- case '\t':
1567
- case '\n':
1568
- case '\r':
1569
- case ' ':
1570
- goto yy145;
1571
-
1572
- case '/':
1573
- goto yy86;
1572
+ goto yy88;
1574
1573
 
1575
- case '>':
1576
- goto yy150;
1574
+ case '_':
1575
+ goto yy148;
1577
1576
 
1578
1577
  default:
1579
1578
  goto yy84;
1580
1579
  }
1581
1580
 
1582
- yy147:
1583
- yych = *++YYCURSOR;
1584
-
1585
- switch (yych) {
1586
- case 0x00:
1587
- goto yy9;
1588
-
1589
- case '"':
1590
- goto yy145;
1591
-
1592
- case '/':
1593
- goto yy147;
1594
-
1595
- case '>':
1596
- goto yy152;
1597
-
1598
- default:
1599
- goto yy143;
1600
- }
1601
-
1602
- yy149:
1603
- yyaccept = 1;
1604
- yych = *(YYMARKER = ++YYCURSOR);
1605
-
1606
- if (yych <= 0x00) {
1607
- goto yy89;
1608
- }
1609
-
1610
- goto yy154;
1611
- yy150:
1581
+ yy146:
1612
1582
  ++YYCURSOR;
1613
1583
  {
1614
- return OPML_OUTLINE_PREAMBLE;
1615
- }
1616
- yy152:
1617
- yyaccept = 2;
1618
- yych = *(YYMARKER = ++YYCURSOR);
1619
-
1620
- if (yych <= 0x00) {
1621
- goto yy94;
1584
+ return OPML_OUTLINE_METADATA;
1622
1585
  }
1623
-
1624
- goto yy154;
1625
- yy153:
1586
+ yy148:
1626
1587
  yych = *++YYCURSOR;
1627
- yy154:
1628
1588
 
1629
1589
  switch (yych) {
1630
- case 0x00:
1631
- goto yy9;
1632
-
1633
- case '"':
1634
- goto yy155;
1590
+ case 'N':
1591
+ case 'n':
1592
+ goto yy149;
1635
1593
 
1636
1594
  default:
1637
- goto yy153;
1595
+ goto yy85;
1638
1596
  }
1639
1597
 
1640
- yy155:
1598
+ yy149:
1641
1599
  yych = *++YYCURSOR;
1642
1600
 
1643
1601
  switch (yych) {
1644
- case '\t':
1645
- case '\n':
1646
- case '\r':
1647
- case ' ':
1648
- goto yy155;
1649
-
1650
- case '>':
1602
+ case 'O':
1603
+ case 'o':
1651
1604
  goto yy150;
1652
1605
 
1653
1606
  default:
1654
- goto yy9;
1655
- }
1656
- }
1657
-
1658
- }
1659
-
1660
-
1661
-
1662
-
1663
- /// skip through text attribute to find value
1664
- size_t scan_text(const char * c) {
1665
- const char * marker = NULL;
1666
- const char * start = c;
1667
-
1668
-
1669
- {
1670
- unsigned char yych;
1671
- yych = *(marker = c);
1672
-
1673
- switch (yych) {
1674
- case '\t':
1675
- case '\r':
1676
- case ' ':
1677
- goto yy161;
1678
-
1679
- case '\n':
1680
- goto yy162;
1681
-
1682
- case 'T':
1683
- case 't':
1684
- goto yy165;
1685
-
1686
- default:
1687
- goto yy160;
1688
- }
1689
-
1690
- yy159: {
1691
- return 0;
1692
- }
1693
- yy160:
1694
- ++c;
1695
- goto yy159;
1696
- yy161:
1697
- yych = *(marker = ++c);
1698
-
1699
- switch (yych) {
1700
- case '\t':
1701
- case '\n':
1702
- case '\r':
1703
- case ' ':
1704
- goto yy162;
1705
-
1706
- case 'T':
1707
- case 't':
1708
- goto yy166;
1709
-
1710
- default:
1711
- goto yy159;
1607
+ goto yy85;
1712
1608
  }
1713
1609
 
1714
- yy162:
1715
- yych = *++c;
1610
+ yy150:
1611
+ yych = *++YYCURSOR;
1716
1612
 
1717
1613
  switch (yych) {
1718
- case '\t':
1719
- case '\n':
1720
- case '\r':
1721
- case ' ':
1722
- goto yy162;
1723
-
1724
1614
  case 'T':
1725
1615
  case 't':
1726
- goto yy166;
1727
-
1728
- default:
1729
- goto yy164;
1730
- }
1731
-
1732
- yy164:
1733
- c = marker;
1734
- goto yy159;
1735
- yy165:
1736
- yych = *(marker = ++c);
1737
-
1738
- switch (yych) {
1739
- case 'E':
1740
- case 'e':
1741
- goto yy167;
1616
+ goto yy151;
1742
1617
 
1743
1618
  default:
1744
- goto yy159;
1619
+ goto yy85;
1745
1620
  }
1746
1621
 
1747
- yy166:
1748
- yych = *++c;
1622
+ yy151:
1623
+ yych = *++YYCURSOR;
1749
1624
 
1750
1625
  switch (yych) {
1751
1626
  case 'E':
1752
1627
  case 'e':
1753
- goto yy167;
1754
-
1755
- default:
1756
- goto yy164;
1757
- }
1758
-
1759
- yy167:
1760
- yych = *++c;
1761
-
1762
- switch (yych) {
1763
- case 'X':
1764
- case 'x':
1765
- goto yy168;
1628
+ goto yy152;
1766
1629
 
1767
1630
  default:
1768
- goto yy164;
1631
+ goto yy85;
1769
1632
  }
1770
1633
 
1771
- yy168:
1772
- yych = *++c;
1634
+ yy152:
1635
+ yych = *++YYCURSOR;
1773
1636
 
1774
1637
  switch (yych) {
1775
- case 'T':
1776
- case 't':
1777
- goto yy169;
1778
-
1779
- default:
1780
- goto yy164;
1781
- }
1782
-
1783
- yy169:
1784
- yych = *++c;
1638
+ case 0x00:
1639
+ goto yy9;
1785
1640
 
1786
- switch (yych) {
1787
1641
  case '\t':
1788
1642
  case '\n':
1789
1643
  case '\r':
1790
1644
  case ' ':
1791
- goto yy169;
1792
-
1793
- case '=':
1794
- goto yy171;
1795
-
1796
- default:
1797
- goto yy164;
1798
- }
1645
+ goto yy152;
1799
1646
 
1800
- yy171:
1801
- yych = *++c;
1647
+ case '/':
1648
+ goto yy86;
1802
1649
 
1803
- switch (yych) {
1804
- case '\t':
1805
- case '\n':
1806
- case '\r':
1807
- case ' ':
1808
- goto yy171;
1650
+ case '=':
1651
+ goto yy154;
1809
1652
 
1810
- case '"':
1811
- marker = c;
1812
- goto yy173;
1653
+ case '>':
1654
+ goto yy88;
1813
1655
 
1814
1656
  default:
1815
- goto yy164;
1657
+ goto yy84;
1816
1658
  }
1817
1659
 
1818
- yy173:
1819
- yych = *++c;
1660
+ yy154:
1661
+ yych = *++YYCURSOR;
1820
1662
 
1821
1663
  switch (yych) {
1822
1664
  case 0x00:
1823
- goto yy164;
1824
-
1825
- case '"':
1826
- goto yy175;
1827
-
1828
- default:
1829
- goto yy173;
1830
- }
1831
-
1832
- yy175:
1833
- ++c;
1834
- c = marker;
1835
- {
1836
- return (size_t)( c - start );
1837
- }
1838
- }
1839
-
1840
- }
1841
-
1842
-
1843
- /// skip through _note attribute to find value
1844
- size_t scan_note(const char * c) {
1845
- const char * marker = NULL;
1846
- const char * start = c;
1847
-
1848
-
1849
- {
1850
- unsigned char yych;
1851
- yych = *(marker = c);
1852
-
1853
- switch (yych) {
1854
- case '\t':
1855
- case '\r':
1856
- case ' ':
1857
- goto yy181;
1858
-
1859
- case '\n':
1860
- goto yy182;
1861
-
1862
- case '_':
1863
- goto yy185;
1864
-
1865
- default:
1866
- goto yy180;
1867
- }
1868
-
1869
- yy179: {
1870
- return 0;
1871
- }
1872
- yy180:
1873
- ++c;
1874
- goto yy179;
1875
- yy181:
1876
- yych = *(marker = ++c);
1877
-
1878
- switch (yych) {
1879
- case '\t':
1880
- case '\n':
1881
- case '\r':
1882
- case ' ':
1883
- goto yy182;
1884
-
1885
- case '_':
1886
- goto yy186;
1887
-
1888
- default:
1889
- goto yy179;
1890
- }
1891
-
1892
- yy182:
1893
- yych = *++c;
1665
+ goto yy9;
1894
1666
 
1895
- switch (yych) {
1896
1667
  case '\t':
1897
1668
  case '\n':
1898
1669
  case '\r':
1899
1670
  case ' ':
1900
- goto yy182;
1901
-
1902
- case '_':
1903
- goto yy186;
1904
-
1905
- default:
1906
- goto yy184;
1907
- }
1908
-
1909
- yy184:
1910
- c = marker;
1911
- goto yy179;
1912
- yy185:
1913
- yych = *(marker = ++c);
1914
-
1915
- switch (yych) {
1916
- case 'N':
1917
- case 'n':
1918
- goto yy187;
1671
+ goto yy154;
1919
1672
 
1920
- default:
1921
- goto yy179;
1922
- }
1673
+ case '"':
1674
+ goto yy156;
1923
1675
 
1924
- yy186:
1925
- yych = *++c;
1676
+ case '/':
1677
+ goto yy86;
1926
1678
 
1927
- switch (yych) {
1928
- case 'N':
1929
- case 'n':
1930
- goto yy187;
1679
+ case '>':
1680
+ goto yy88;
1931
1681
 
1932
1682
  default:
1933
- goto yy184;
1683
+ goto yy84;
1934
1684
  }
1935
1685
 
1936
- yy187:
1937
- yych = *++c;
1686
+ yy156:
1687
+ yych = *++YYCURSOR;
1938
1688
 
1939
1689
  switch (yych) {
1940
- case 'O':
1941
- case 'o':
1942
- goto yy188;
1690
+ case 0x00:
1691
+ goto yy9;
1943
1692
 
1944
- default:
1945
- goto yy184;
1946
- }
1693
+ case '"':
1694
+ goto yy158;
1947
1695
 
1948
- yy188:
1949
- yych = *++c;
1696
+ case '/':
1697
+ goto yy160;
1950
1698
 
1951
- switch (yych) {
1952
- case 'T':
1953
- case 't':
1954
- goto yy189;
1699
+ case '>':
1700
+ goto yy162;
1955
1701
 
1956
1702
  default:
1957
- goto yy184;
1703
+ goto yy156;
1958
1704
  }
1959
1705
 
1960
- yy189:
1961
- yych = *++c;
1706
+ yy158:
1707
+ yych = *++YYCURSOR;
1962
1708
 
1963
1709
  switch (yych) {
1964
- case 'E':
1965
- case 'e':
1966
- goto yy190;
1967
-
1968
- default:
1969
- goto yy184;
1970
- }
1971
-
1972
- yy190:
1973
- yych = *++c;
1710
+ case 0x00:
1711
+ goto yy9;
1974
1712
 
1975
- switch (yych) {
1976
1713
  case '\t':
1977
1714
  case '\n':
1978
1715
  case '\r':
1979
1716
  case ' ':
1980
- goto yy190;
1981
-
1982
- case '=':
1983
- goto yy192;
1984
-
1985
- default:
1986
- goto yy184;
1987
- }
1988
-
1989
- yy192:
1990
- yych = *++c;
1717
+ goto yy158;
1991
1718
 
1992
- switch (yych) {
1993
- case '\t':
1994
- case '\n':
1995
- case '\r':
1996
- case ' ':
1997
- goto yy192;
1719
+ case '/':
1720
+ goto yy86;
1998
1721
 
1999
- case '"':
2000
- marker = c;
2001
- goto yy194;
1722
+ case '>':
1723
+ goto yy163;
2002
1724
 
2003
1725
  default:
2004
- goto yy184;
1726
+ goto yy84;
2005
1727
  }
2006
1728
 
2007
- yy194:
2008
- yych = *++c;
1729
+ yy160:
1730
+ yych = *++YYCURSOR;
2009
1731
 
2010
1732
  switch (yych) {
2011
1733
  case 0x00:
2012
- goto yy184;
1734
+ goto yy9;
2013
1735
 
2014
1736
  case '"':
2015
- goto yy196;
2016
-
2017
- default:
2018
- goto yy194;
2019
- }
2020
-
2021
- yy196:
2022
- ++c;
2023
- c = marker;
2024
- {
2025
- return (size_t)( c - start );
2026
- }
2027
- }
2028
-
2029
- }
1737
+ goto yy158;
2030
1738
 
1739
+ case '/':
1740
+ goto yy160;
2031
1741
 
2032
- /// find end of double quoted value
2033
- size_t scan_double_quoted(const char * c) {
2034
- const char * marker = NULL;
2035
- const char * start = c;
2036
-
2037
-
2038
- {
2039
- unsigned char yych;
2040
- yych = *c;
2041
-
2042
- switch (yych) {
2043
- case '\n':
2044
- goto yy200;
2045
-
2046
- case '"':
2047
- goto yy202;
1742
+ case '>':
1743
+ goto yy165;
2048
1744
 
2049
1745
  default:
2050
- goto yy201;
1746
+ goto yy156;
2051
1747
  }
2052
1748
 
2053
- yy200: {
2054
- return 0;
2055
- }
2056
- yy201:
2057
- ++c;
2058
- goto yy200;
2059
- yy202:
2060
- yych = *(marker = ++c);
1749
+ yy162:
1750
+ yyaccept = 1;
1751
+ yych = *(YYMARKER = ++YYCURSOR);
2061
1752
 
2062
1753
  if (yych <= 0x00) {
2063
- goto yy200;
2064
- }
2065
-
2066
- goto yy204;
2067
- yy203:
2068
- yych = *++c;
2069
- yy204:
2070
-
2071
- switch (yych) {
2072
- case 0x00:
2073
- goto yy205;
2074
-
2075
- case '"':
2076
- goto yy206;
2077
-
2078
- default:
2079
- goto yy203;
1754
+ goto yy89;
2080
1755
  }
2081
1756
 
2082
- yy205:
2083
- c = marker;
2084
- goto yy200;
2085
- yy206:
2086
- ++c;
1757
+ goto yy167;
1758
+ yy163:
1759
+ ++YYCURSOR;
2087
1760
  {
2088
- return (size_t)( c - start );
1761
+ return OPML_OUTLINE_PREAMBLE;
2089
1762
  }
2090
- }
2091
-
2092
- }
2093
-
2094
-
2095
- /// Does the string include encoded newline?
2096
- size_t scan_encoded_newline(const char * c, size_t len) {
2097
- const char * marker = NULL;
2098
- const char * start = c;
2099
-
2100
- scan:
2101
-
2102
- if ((*c == '\0') || ((c - start) > len)) {
2103
- // Not found
2104
- return -1;
2105
- }
2106
-
2107
-
2108
- {
2109
- unsigned char yych;
2110
- yych = *c;
2111
-
2112
- switch (yych) {
2113
- case '\n':
2114
- goto yy210;
2115
-
2116
- case '&':
2117
- goto yy213;
1763
+ yy165:
1764
+ yyaccept = 2;
1765
+ yych = *(YYMARKER = ++YYCURSOR);
2118
1766
 
2119
- default:
2120
- goto yy211;
1767
+ if (yych <= 0x00) {
1768
+ goto yy94;
2121
1769
  }
2122
1770
 
2123
- yy210:
2124
- c = marker;
2125
- goto yy212;
2126
- yy211:
2127
- ++c;
2128
- yy212: {
2129
- goto scan;
2130
- }
2131
- yy213:
2132
- yych = *(marker = ++c);
1771
+ goto yy167;
1772
+ yy166:
1773
+ yych = *++YYCURSOR;
1774
+ yy167:
2133
1775
 
2134
1776
  switch (yych) {
2135
- case '#':
2136
- goto yy214;
2137
-
2138
- default:
2139
- goto yy212;
2140
- }
2141
-
2142
- yy214:
2143
- yych = *++c;
1777
+ case 0x00:
1778
+ goto yy9;
2144
1779
 
2145
- switch (yych) {
2146
- case '1':
2147
- goto yy215;
1780
+ case '"':
1781
+ goto yy168;
2148
1782
 
2149
1783
  default:
2150
- goto yy210;
1784
+ goto yy166;
2151
1785
  }
2152
1786
 
2153
- yy215:
2154
- yych = *++c;
1787
+ yy168:
1788
+ yych = *++YYCURSOR;
2155
1789
 
2156
1790
  switch (yych) {
2157
- case '0':
2158
- case '3':
2159
- goto yy216;
2160
-
2161
- default:
2162
- goto yy210;
2163
- }
2164
-
2165
- yy216:
2166
- yych = *++c;
1791
+ case '\t':
1792
+ case '\n':
1793
+ case '\r':
1794
+ case ' ':
1795
+ goto yy168;
2167
1796
 
2168
- switch (yych) {
2169
- case ';':
2170
- goto yy217;
1797
+ case '>':
1798
+ goto yy163;
2171
1799
 
2172
1800
  default:
2173
- goto yy210;
2174
- }
2175
-
2176
- yy217:
2177
- ++c;
2178
- {
2179
- return (size_t)(c - start);
1801
+ goto yy9;
2180
1802
  }
2181
1803
  }
2182
1804