commonmarker 0.14.14 → 0.15.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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/commonmarker.gemspec +2 -0
- data/ext/commonmarker/cmark/Makefile +13 -8
- data/ext/commonmarker/cmark/README.md +18 -11
- data/ext/commonmarker/cmark/api_test/CMakeLists.txt +1 -1
- data/ext/commonmarker/cmark/extensions/CMakeLists.txt +7 -7
- data/ext/commonmarker/cmark/extensions/ext_scanners.c +562 -3
- data/ext/commonmarker/cmark/extensions/ext_scanners.h +6 -0
- data/ext/commonmarker/cmark/extensions/ext_scanners.re +32 -0
- data/ext/commonmarker/cmark/extensions/table.c +87 -215
- data/ext/commonmarker/cmark/man/CMakeLists.txt +2 -2
- data/ext/commonmarker/cmark/man/make_man_page.py +3 -3
- data/ext/commonmarker/cmark/man/man1/{cmark.1 → cmark-gfm.1} +10 -4
- data/ext/commonmarker/cmark/man/man3/{cmark.3 → cmark-gfm.3} +2 -2
- data/ext/commonmarker/cmark/src/CMakeLists.txt +15 -15
- data/ext/commonmarker/cmark/src/buffer.c +5 -1
- data/ext/commonmarker/cmark/src/cmark.c +6 -2
- data/ext/commonmarker/cmark/src/cmark.h +1 -1
- data/ext/commonmarker/cmark/src/cmark_extension_api.h +0 -2
- data/ext/commonmarker/cmark/src/commonmark.c +1 -2
- data/ext/commonmarker/cmark/src/inlines.c +1 -1
- data/ext/commonmarker/cmark/src/libcmark-gfm.pc.in +10 -0
- data/ext/commonmarker/cmark/src/main.c +2 -2
- data/ext/commonmarker/cmark/src/render.c +15 -0
- data/ext/commonmarker/cmark/test/CMakeLists.txt +5 -5
- data/ext/commonmarker/cmark/test/cmark.py +2 -2
- data/ext/commonmarker/cmark/test/extensions.txt +24 -3
- data/ext/commonmarker/cmark/test/roundtrip_tests.py +1 -0
- data/ext/commonmarker/cmark/test/spec.txt +84 -15
- data/ext/commonmarker/cmark/test/spec_tests.py +9 -8
- data/ext/commonmarker/cmark/tools/Dockerfile +36 -0
- data/ext/commonmarker/extconf.rb +5 -5
- data/lib/commonmarker/node/inspect.rb +59 -0
- data/lib/commonmarker/node.rb +3 -0
- data/lib/commonmarker/version.rb +1 -1
- data/test/test_node.rb +8 -0
- data/test/test_spec.rb +1 -1
- metadata +10 -6
- data/ext/commonmarker/cmark/src/libcmark.pc.in +0 -10
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/* Generated by re2c 0.
|
|
2
|
-
#include "ext_scanners.h"
|
|
1
|
+
/* Generated by re2c 0.15.3 */
|
|
3
2
|
#include <stdlib.h>
|
|
3
|
+
#include "ext_scanners.h"
|
|
4
4
|
|
|
5
5
|
bufsize_t _ext_scan_at(bufsize_t (*scanner)(const unsigned char *),
|
|
6
6
|
unsigned char *ptr, int len, bufsize_t offset) {
|
|
@@ -39,7 +39,6 @@ bufsize_t _scan_table_start(const unsigned char *p) {
|
|
|
39
39
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
40
40
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
41
41
|
};
|
|
42
|
-
|
|
43
42
|
yych = *(marker = p);
|
|
44
43
|
if (yych <= '{') {
|
|
45
44
|
if (yych <= 0x1F) {
|
|
@@ -380,3 +379,563 @@ bufsize_t _scan_table_start(const unsigned char *p) {
|
|
|
380
379
|
goto yy8;
|
|
381
380
|
}
|
|
382
381
|
}
|
|
382
|
+
|
|
383
|
+
bufsize_t _scan_table_cell(const unsigned char *p) {
|
|
384
|
+
const unsigned char *marker = NULL;
|
|
385
|
+
const unsigned char *start = p;
|
|
386
|
+
|
|
387
|
+
{
|
|
388
|
+
unsigned char yych;
|
|
389
|
+
static const unsigned char yybm[] = {
|
|
390
|
+
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 128, 128, 0,
|
|
391
|
+
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
|
|
392
|
+
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
|
|
393
|
+
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
|
|
394
|
+
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
|
|
395
|
+
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
|
|
396
|
+
128, 128, 128, 128, 128, 128, 128, 128, 64, 128, 128, 128, 128, 128,
|
|
397
|
+
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
|
|
398
|
+
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 128,
|
|
399
|
+
128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
400
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
401
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
402
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
403
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
404
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
405
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
406
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
407
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
408
|
+
0, 0, 0, 0,
|
|
409
|
+
};
|
|
410
|
+
yych = *(marker = p);
|
|
411
|
+
if (yych <= 0x7F) {
|
|
412
|
+
if (yych <= '\r') {
|
|
413
|
+
if (yych == '\n')
|
|
414
|
+
goto yy34;
|
|
415
|
+
if (yych <= '\f')
|
|
416
|
+
goto yy36;
|
|
417
|
+
goto yy45;
|
|
418
|
+
} else {
|
|
419
|
+
if (yych <= '\\') {
|
|
420
|
+
if (yych <= '[')
|
|
421
|
+
goto yy36;
|
|
422
|
+
goto yy35;
|
|
423
|
+
} else {
|
|
424
|
+
if (yych == '|')
|
|
425
|
+
goto yy45;
|
|
426
|
+
goto yy36;
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
} else {
|
|
430
|
+
if (yych <= 0xED) {
|
|
431
|
+
if (yych <= 0xDF) {
|
|
432
|
+
if (yych >= 0xC2)
|
|
433
|
+
goto yy37;
|
|
434
|
+
} else {
|
|
435
|
+
if (yych <= 0xE0)
|
|
436
|
+
goto yy39;
|
|
437
|
+
if (yych <= 0xEC)
|
|
438
|
+
goto yy40;
|
|
439
|
+
goto yy44;
|
|
440
|
+
}
|
|
441
|
+
} else {
|
|
442
|
+
if (yych <= 0xF0) {
|
|
443
|
+
if (yych <= 0xEF)
|
|
444
|
+
goto yy40;
|
|
445
|
+
goto yy41;
|
|
446
|
+
} else {
|
|
447
|
+
if (yych <= 0xF3)
|
|
448
|
+
goto yy42;
|
|
449
|
+
if (yych <= 0xF4)
|
|
450
|
+
goto yy43;
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
yy34 : { return (bufsize_t)(p - start); }
|
|
455
|
+
yy35:
|
|
456
|
+
yych = *(marker = ++p);
|
|
457
|
+
if (yych == '|')
|
|
458
|
+
goto yy49;
|
|
459
|
+
goto yy50;
|
|
460
|
+
yy36:
|
|
461
|
+
yych = *(marker = ++p);
|
|
462
|
+
goto yy50;
|
|
463
|
+
yy37:
|
|
464
|
+
yych = *++p;
|
|
465
|
+
if (yych <= 0x7F)
|
|
466
|
+
goto yy38;
|
|
467
|
+
if (yych <= 0xBF)
|
|
468
|
+
goto yy36;
|
|
469
|
+
yy38:
|
|
470
|
+
p = marker;
|
|
471
|
+
goto yy34;
|
|
472
|
+
yy39:
|
|
473
|
+
yych = *++p;
|
|
474
|
+
if (yych <= 0x9F)
|
|
475
|
+
goto yy38;
|
|
476
|
+
if (yych <= 0xBF)
|
|
477
|
+
goto yy37;
|
|
478
|
+
goto yy38;
|
|
479
|
+
yy40:
|
|
480
|
+
yych = *++p;
|
|
481
|
+
if (yych <= 0x7F)
|
|
482
|
+
goto yy38;
|
|
483
|
+
if (yych <= 0xBF)
|
|
484
|
+
goto yy37;
|
|
485
|
+
goto yy38;
|
|
486
|
+
yy41:
|
|
487
|
+
yych = *++p;
|
|
488
|
+
if (yych <= 0x8F)
|
|
489
|
+
goto yy38;
|
|
490
|
+
if (yych <= 0xBF)
|
|
491
|
+
goto yy40;
|
|
492
|
+
goto yy38;
|
|
493
|
+
yy42:
|
|
494
|
+
yych = *++p;
|
|
495
|
+
if (yych <= 0x7F)
|
|
496
|
+
goto yy38;
|
|
497
|
+
if (yych <= 0xBF)
|
|
498
|
+
goto yy40;
|
|
499
|
+
goto yy38;
|
|
500
|
+
yy43:
|
|
501
|
+
yych = *++p;
|
|
502
|
+
if (yych <= 0x7F)
|
|
503
|
+
goto yy38;
|
|
504
|
+
if (yych <= 0x8F)
|
|
505
|
+
goto yy40;
|
|
506
|
+
goto yy38;
|
|
507
|
+
yy44:
|
|
508
|
+
yych = *++p;
|
|
509
|
+
if (yych <= 0x7F)
|
|
510
|
+
goto yy38;
|
|
511
|
+
if (yych <= 0x9F)
|
|
512
|
+
goto yy37;
|
|
513
|
+
goto yy38;
|
|
514
|
+
yy45:
|
|
515
|
+
++p;
|
|
516
|
+
{ return 0; }
|
|
517
|
+
yy47:
|
|
518
|
+
marker = ++p;
|
|
519
|
+
yych = *p;
|
|
520
|
+
if (yybm[0 + yych] & 64) {
|
|
521
|
+
goto yy47;
|
|
522
|
+
}
|
|
523
|
+
if (yych <= 0xDF) {
|
|
524
|
+
if (yych <= '\f') {
|
|
525
|
+
if (yych == '\n')
|
|
526
|
+
goto yy34;
|
|
527
|
+
} else {
|
|
528
|
+
if (yych <= '\r')
|
|
529
|
+
goto yy34;
|
|
530
|
+
if (yych <= 0x7F)
|
|
531
|
+
goto yy49;
|
|
532
|
+
if (yych <= 0xC1)
|
|
533
|
+
goto yy34;
|
|
534
|
+
goto yy51;
|
|
535
|
+
}
|
|
536
|
+
} else {
|
|
537
|
+
if (yych <= 0xEF) {
|
|
538
|
+
if (yych <= 0xE0)
|
|
539
|
+
goto yy52;
|
|
540
|
+
if (yych == 0xED)
|
|
541
|
+
goto yy57;
|
|
542
|
+
goto yy53;
|
|
543
|
+
} else {
|
|
544
|
+
if (yych <= 0xF0)
|
|
545
|
+
goto yy54;
|
|
546
|
+
if (yych <= 0xF3)
|
|
547
|
+
goto yy55;
|
|
548
|
+
if (yych <= 0xF4)
|
|
549
|
+
goto yy56;
|
|
550
|
+
goto yy34;
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
yy49:
|
|
554
|
+
marker = ++p;
|
|
555
|
+
yych = *p;
|
|
556
|
+
yy50:
|
|
557
|
+
if (yybm[0 + yych] & 128) {
|
|
558
|
+
goto yy49;
|
|
559
|
+
}
|
|
560
|
+
if (yych <= 0xEC) {
|
|
561
|
+
if (yych <= 0xC1) {
|
|
562
|
+
if (yych <= '\r')
|
|
563
|
+
goto yy34;
|
|
564
|
+
if (yych <= '\\')
|
|
565
|
+
goto yy47;
|
|
566
|
+
goto yy34;
|
|
567
|
+
} else {
|
|
568
|
+
if (yych <= 0xDF)
|
|
569
|
+
goto yy51;
|
|
570
|
+
if (yych <= 0xE0)
|
|
571
|
+
goto yy52;
|
|
572
|
+
goto yy53;
|
|
573
|
+
}
|
|
574
|
+
} else {
|
|
575
|
+
if (yych <= 0xF0) {
|
|
576
|
+
if (yych <= 0xED)
|
|
577
|
+
goto yy57;
|
|
578
|
+
if (yych <= 0xEF)
|
|
579
|
+
goto yy53;
|
|
580
|
+
goto yy54;
|
|
581
|
+
} else {
|
|
582
|
+
if (yych <= 0xF3)
|
|
583
|
+
goto yy55;
|
|
584
|
+
if (yych <= 0xF4)
|
|
585
|
+
goto yy56;
|
|
586
|
+
goto yy34;
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
yy51:
|
|
590
|
+
++p;
|
|
591
|
+
yych = *p;
|
|
592
|
+
if (yych <= 0x7F)
|
|
593
|
+
goto yy38;
|
|
594
|
+
if (yych <= 0xBF)
|
|
595
|
+
goto yy49;
|
|
596
|
+
goto yy38;
|
|
597
|
+
yy52:
|
|
598
|
+
++p;
|
|
599
|
+
yych = *p;
|
|
600
|
+
if (yych <= 0x9F)
|
|
601
|
+
goto yy38;
|
|
602
|
+
if (yych <= 0xBF)
|
|
603
|
+
goto yy51;
|
|
604
|
+
goto yy38;
|
|
605
|
+
yy53:
|
|
606
|
+
++p;
|
|
607
|
+
yych = *p;
|
|
608
|
+
if (yych <= 0x7F)
|
|
609
|
+
goto yy38;
|
|
610
|
+
if (yych <= 0xBF)
|
|
611
|
+
goto yy51;
|
|
612
|
+
goto yy38;
|
|
613
|
+
yy54:
|
|
614
|
+
++p;
|
|
615
|
+
yych = *p;
|
|
616
|
+
if (yych <= 0x8F)
|
|
617
|
+
goto yy38;
|
|
618
|
+
if (yych <= 0xBF)
|
|
619
|
+
goto yy53;
|
|
620
|
+
goto yy38;
|
|
621
|
+
yy55:
|
|
622
|
+
++p;
|
|
623
|
+
yych = *p;
|
|
624
|
+
if (yych <= 0x7F)
|
|
625
|
+
goto yy38;
|
|
626
|
+
if (yych <= 0xBF)
|
|
627
|
+
goto yy53;
|
|
628
|
+
goto yy38;
|
|
629
|
+
yy56:
|
|
630
|
+
++p;
|
|
631
|
+
yych = *p;
|
|
632
|
+
if (yych <= 0x7F)
|
|
633
|
+
goto yy38;
|
|
634
|
+
if (yych <= 0x8F)
|
|
635
|
+
goto yy53;
|
|
636
|
+
goto yy38;
|
|
637
|
+
yy57:
|
|
638
|
+
++p;
|
|
639
|
+
yych = *p;
|
|
640
|
+
if (yych <= 0x7F)
|
|
641
|
+
goto yy38;
|
|
642
|
+
if (yych <= 0x9F)
|
|
643
|
+
goto yy51;
|
|
644
|
+
goto yy38;
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
bufsize_t _scan_table_cell_end(const unsigned char *p) {
|
|
649
|
+
const unsigned char *marker = NULL;
|
|
650
|
+
const unsigned char *start = p;
|
|
651
|
+
|
|
652
|
+
{
|
|
653
|
+
unsigned char yych;
|
|
654
|
+
unsigned int yyaccept = 0;
|
|
655
|
+
static const unsigned char yybm[] = {
|
|
656
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 128, 128, 0, 0, 0, 0, 0, 0, 0,
|
|
657
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0,
|
|
658
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
659
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
660
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
661
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
662
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
663
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
664
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
665
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
666
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
667
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
668
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
669
|
+
};
|
|
670
|
+
yych = *(marker = p);
|
|
671
|
+
if (yych <= 0xDF) {
|
|
672
|
+
if (yych <= '{') {
|
|
673
|
+
if (yych != '\n')
|
|
674
|
+
goto yy63;
|
|
675
|
+
} else {
|
|
676
|
+
if (yych <= '|')
|
|
677
|
+
goto yy61;
|
|
678
|
+
if (yych <= 0x7F)
|
|
679
|
+
goto yy63;
|
|
680
|
+
if (yych >= 0xC2)
|
|
681
|
+
goto yy64;
|
|
682
|
+
}
|
|
683
|
+
} else {
|
|
684
|
+
if (yych <= 0xEF) {
|
|
685
|
+
if (yych <= 0xE0)
|
|
686
|
+
goto yy66;
|
|
687
|
+
if (yych == 0xED)
|
|
688
|
+
goto yy71;
|
|
689
|
+
goto yy67;
|
|
690
|
+
} else {
|
|
691
|
+
if (yych <= 0xF0)
|
|
692
|
+
goto yy68;
|
|
693
|
+
if (yych <= 0xF3)
|
|
694
|
+
goto yy69;
|
|
695
|
+
if (yych <= 0xF4)
|
|
696
|
+
goto yy70;
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
yy60 : { return 0; }
|
|
700
|
+
yy61:
|
|
701
|
+
yyaccept = 1;
|
|
702
|
+
yych = *(marker = ++p);
|
|
703
|
+
goto yy73;
|
|
704
|
+
yy62 : { return (bufsize_t)(p - start); }
|
|
705
|
+
yy63:
|
|
706
|
+
yych = *++p;
|
|
707
|
+
goto yy60;
|
|
708
|
+
yy64:
|
|
709
|
+
yych = *++p;
|
|
710
|
+
if (yych <= 0x7F)
|
|
711
|
+
goto yy65;
|
|
712
|
+
if (yych <= 0xBF)
|
|
713
|
+
goto yy63;
|
|
714
|
+
yy65:
|
|
715
|
+
p = marker;
|
|
716
|
+
if (yyaccept == 0) {
|
|
717
|
+
goto yy60;
|
|
718
|
+
} else {
|
|
719
|
+
goto yy62;
|
|
720
|
+
}
|
|
721
|
+
yy66:
|
|
722
|
+
yych = *++p;
|
|
723
|
+
if (yych <= 0x9F)
|
|
724
|
+
goto yy65;
|
|
725
|
+
if (yych <= 0xBF)
|
|
726
|
+
goto yy64;
|
|
727
|
+
goto yy65;
|
|
728
|
+
yy67:
|
|
729
|
+
yych = *++p;
|
|
730
|
+
if (yych <= 0x7F)
|
|
731
|
+
goto yy65;
|
|
732
|
+
if (yych <= 0xBF)
|
|
733
|
+
goto yy64;
|
|
734
|
+
goto yy65;
|
|
735
|
+
yy68:
|
|
736
|
+
yych = *++p;
|
|
737
|
+
if (yych <= 0x8F)
|
|
738
|
+
goto yy65;
|
|
739
|
+
if (yych <= 0xBF)
|
|
740
|
+
goto yy67;
|
|
741
|
+
goto yy65;
|
|
742
|
+
yy69:
|
|
743
|
+
yych = *++p;
|
|
744
|
+
if (yych <= 0x7F)
|
|
745
|
+
goto yy65;
|
|
746
|
+
if (yych <= 0xBF)
|
|
747
|
+
goto yy67;
|
|
748
|
+
goto yy65;
|
|
749
|
+
yy70:
|
|
750
|
+
yych = *++p;
|
|
751
|
+
if (yych <= 0x7F)
|
|
752
|
+
goto yy65;
|
|
753
|
+
if (yych <= 0x8F)
|
|
754
|
+
goto yy67;
|
|
755
|
+
goto yy65;
|
|
756
|
+
yy71:
|
|
757
|
+
yych = *++p;
|
|
758
|
+
if (yych <= 0x7F)
|
|
759
|
+
goto yy65;
|
|
760
|
+
if (yych <= 0x9F)
|
|
761
|
+
goto yy64;
|
|
762
|
+
goto yy65;
|
|
763
|
+
yy72:
|
|
764
|
+
yyaccept = 1;
|
|
765
|
+
marker = ++p;
|
|
766
|
+
yych = *p;
|
|
767
|
+
yy73:
|
|
768
|
+
if (yybm[0 + yych] & 128) {
|
|
769
|
+
goto yy72;
|
|
770
|
+
}
|
|
771
|
+
if (yych <= 0x08)
|
|
772
|
+
goto yy62;
|
|
773
|
+
if (yych <= '\n')
|
|
774
|
+
goto yy75;
|
|
775
|
+
if (yych >= 0x0E)
|
|
776
|
+
goto yy62;
|
|
777
|
+
yych = *++p;
|
|
778
|
+
if (yych != '\n')
|
|
779
|
+
goto yy65;
|
|
780
|
+
yy75:
|
|
781
|
+
++p;
|
|
782
|
+
yych = *p;
|
|
783
|
+
goto yy62;
|
|
784
|
+
}
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
bufsize_t _scan_table_row_end(const unsigned char *p) {
|
|
788
|
+
const unsigned char *marker = NULL;
|
|
789
|
+
const unsigned char *start = p;
|
|
790
|
+
|
|
791
|
+
{
|
|
792
|
+
unsigned char yych;
|
|
793
|
+
static const unsigned char yybm[] = {
|
|
794
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 128, 128, 0, 0, 0, 0, 0, 0, 0,
|
|
795
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0,
|
|
796
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
797
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
798
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
799
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
800
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
801
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
802
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
803
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
804
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
805
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
806
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
807
|
+
};
|
|
808
|
+
yych = *(marker = p);
|
|
809
|
+
if (yych <= 0xC1) {
|
|
810
|
+
if (yych <= '\f') {
|
|
811
|
+
if (yych <= 0x08)
|
|
812
|
+
goto yy83;
|
|
813
|
+
if (yych == '\n')
|
|
814
|
+
goto yy81;
|
|
815
|
+
goto yy79;
|
|
816
|
+
} else {
|
|
817
|
+
if (yych <= 0x1F) {
|
|
818
|
+
if (yych <= '\r')
|
|
819
|
+
goto yy80;
|
|
820
|
+
goto yy83;
|
|
821
|
+
} else {
|
|
822
|
+
if (yych <= ' ')
|
|
823
|
+
goto yy79;
|
|
824
|
+
if (yych <= 0x7F)
|
|
825
|
+
goto yy83;
|
|
826
|
+
}
|
|
827
|
+
}
|
|
828
|
+
} else {
|
|
829
|
+
if (yych <= 0xED) {
|
|
830
|
+
if (yych <= 0xDF)
|
|
831
|
+
goto yy84;
|
|
832
|
+
if (yych <= 0xE0)
|
|
833
|
+
goto yy86;
|
|
834
|
+
if (yych <= 0xEC)
|
|
835
|
+
goto yy87;
|
|
836
|
+
goto yy91;
|
|
837
|
+
} else {
|
|
838
|
+
if (yych <= 0xF0) {
|
|
839
|
+
if (yych <= 0xEF)
|
|
840
|
+
goto yy87;
|
|
841
|
+
goto yy88;
|
|
842
|
+
} else {
|
|
843
|
+
if (yych <= 0xF3)
|
|
844
|
+
goto yy89;
|
|
845
|
+
if (yych <= 0xF4)
|
|
846
|
+
goto yy90;
|
|
847
|
+
}
|
|
848
|
+
}
|
|
849
|
+
}
|
|
850
|
+
yy78 : { return 0; }
|
|
851
|
+
yy79:
|
|
852
|
+
yych = *(marker = ++p);
|
|
853
|
+
if (yych <= 0x08)
|
|
854
|
+
goto yy78;
|
|
855
|
+
if (yych <= '\r')
|
|
856
|
+
goto yy94;
|
|
857
|
+
if (yych == ' ')
|
|
858
|
+
goto yy94;
|
|
859
|
+
goto yy78;
|
|
860
|
+
yy80:
|
|
861
|
+
yych = *++p;
|
|
862
|
+
if (yych != '\n')
|
|
863
|
+
goto yy78;
|
|
864
|
+
yy81:
|
|
865
|
+
++p;
|
|
866
|
+
{ return (bufsize_t)(p - start); }
|
|
867
|
+
yy83:
|
|
868
|
+
yych = *++p;
|
|
869
|
+
goto yy78;
|
|
870
|
+
yy84:
|
|
871
|
+
yych = *++p;
|
|
872
|
+
if (yych <= 0x7F)
|
|
873
|
+
goto yy85;
|
|
874
|
+
if (yych <= 0xBF)
|
|
875
|
+
goto yy83;
|
|
876
|
+
yy85:
|
|
877
|
+
p = marker;
|
|
878
|
+
goto yy78;
|
|
879
|
+
yy86:
|
|
880
|
+
yych = *++p;
|
|
881
|
+
if (yych <= 0x9F)
|
|
882
|
+
goto yy85;
|
|
883
|
+
if (yych <= 0xBF)
|
|
884
|
+
goto yy84;
|
|
885
|
+
goto yy85;
|
|
886
|
+
yy87:
|
|
887
|
+
yych = *++p;
|
|
888
|
+
if (yych <= 0x7F)
|
|
889
|
+
goto yy85;
|
|
890
|
+
if (yych <= 0xBF)
|
|
891
|
+
goto yy84;
|
|
892
|
+
goto yy85;
|
|
893
|
+
yy88:
|
|
894
|
+
yych = *++p;
|
|
895
|
+
if (yych <= 0x8F)
|
|
896
|
+
goto yy85;
|
|
897
|
+
if (yych <= 0xBF)
|
|
898
|
+
goto yy87;
|
|
899
|
+
goto yy85;
|
|
900
|
+
yy89:
|
|
901
|
+
yych = *++p;
|
|
902
|
+
if (yych <= 0x7F)
|
|
903
|
+
goto yy85;
|
|
904
|
+
if (yych <= 0xBF)
|
|
905
|
+
goto yy87;
|
|
906
|
+
goto yy85;
|
|
907
|
+
yy90:
|
|
908
|
+
yych = *++p;
|
|
909
|
+
if (yych <= 0x7F)
|
|
910
|
+
goto yy85;
|
|
911
|
+
if (yych <= 0x8F)
|
|
912
|
+
goto yy87;
|
|
913
|
+
goto yy85;
|
|
914
|
+
yy91:
|
|
915
|
+
yych = *++p;
|
|
916
|
+
if (yych <= 0x7F)
|
|
917
|
+
goto yy85;
|
|
918
|
+
if (yych <= 0x9F)
|
|
919
|
+
goto yy84;
|
|
920
|
+
goto yy85;
|
|
921
|
+
yy92:
|
|
922
|
+
yych = *++p;
|
|
923
|
+
if (yych == '\n')
|
|
924
|
+
goto yy81;
|
|
925
|
+
goto yy85;
|
|
926
|
+
yy93:
|
|
927
|
+
++p;
|
|
928
|
+
yych = *p;
|
|
929
|
+
yy94:
|
|
930
|
+
if (yybm[0 + yych] & 128) {
|
|
931
|
+
goto yy93;
|
|
932
|
+
}
|
|
933
|
+
if (yych <= 0x08)
|
|
934
|
+
goto yy85;
|
|
935
|
+
if (yych <= '\n')
|
|
936
|
+
goto yy81;
|
|
937
|
+
if (yych <= '\r')
|
|
938
|
+
goto yy92;
|
|
939
|
+
goto yy85;
|
|
940
|
+
}
|
|
941
|
+
}
|
|
@@ -8,8 +8,14 @@ extern "C" {
|
|
|
8
8
|
bufsize_t _ext_scan_at(bufsize_t (*scanner)(const unsigned char *),
|
|
9
9
|
unsigned char *ptr, int len, bufsize_t offset);
|
|
10
10
|
bufsize_t _scan_table_start(const unsigned char *p);
|
|
11
|
+
bufsize_t _scan_table_cell(const unsigned char *p);
|
|
12
|
+
bufsize_t _scan_table_cell_end(const unsigned char *p);
|
|
13
|
+
bufsize_t _scan_table_row_end(const unsigned char *p);
|
|
11
14
|
|
|
12
15
|
#define scan_table_start(c, l, n) _ext_scan_at(&_scan_table_start, c, l, n)
|
|
16
|
+
#define scan_table_cell(c, l, n) _ext_scan_at(&_scan_table_cell, c, l, n)
|
|
17
|
+
#define scan_table_cell_end(c, l, n) _ext_scan_at(&_scan_table_cell_end, c, l, n)
|
|
18
|
+
#define scan_table_row_end(c, l, n) _ext_scan_at(&_scan_table_row_end, c, l, n)
|
|
13
19
|
|
|
14
20
|
#ifdef __cplusplus
|
|
15
21
|
}
|
|
@@ -27,8 +27,10 @@ bufsize_t _ext_scan_at(bufsize_t (*scanner)(const unsigned char *), unsigned cha
|
|
|
27
27
|
|
|
28
28
|
spacechar = [ \t\v\f];
|
|
29
29
|
newline = [\r]?[\n];
|
|
30
|
+
escaped_char = [\\][|!"#$%&'()*+,./:;<=>?@[\\\]^_`{}~-];
|
|
30
31
|
|
|
31
32
|
table_marker = (spacechar*[:]?[-]+[:]?spacechar*);
|
|
33
|
+
table_cell = (escaped_char|[^|\r\n])*;
|
|
32
34
|
*/
|
|
33
35
|
|
|
34
36
|
bufsize_t _scan_table_start(const unsigned char *p)
|
|
@@ -40,3 +42,33 @@ bufsize_t _scan_table_start(const unsigned char *p)
|
|
|
40
42
|
.? { return 0; }
|
|
41
43
|
*/
|
|
42
44
|
}
|
|
45
|
+
|
|
46
|
+
bufsize_t _scan_table_cell(const unsigned char *p)
|
|
47
|
+
{
|
|
48
|
+
const unsigned char *marker = NULL;
|
|
49
|
+
const unsigned char *start = p;
|
|
50
|
+
/*!re2c
|
|
51
|
+
table_cell { return (bufsize_t)(p - start); }
|
|
52
|
+
.? { return 0; }
|
|
53
|
+
*/
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
bufsize_t _scan_table_cell_end(const unsigned char *p)
|
|
57
|
+
{
|
|
58
|
+
const unsigned char *marker = NULL;
|
|
59
|
+
const unsigned char *start = p;
|
|
60
|
+
/*!re2c
|
|
61
|
+
[|] spacechar* newline? { return (bufsize_t)(p - start); }
|
|
62
|
+
.? { return 0; }
|
|
63
|
+
*/
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
bufsize_t _scan_table_row_end(const unsigned char *p)
|
|
67
|
+
{
|
|
68
|
+
const unsigned char *marker = NULL;
|
|
69
|
+
const unsigned char *start = p;
|
|
70
|
+
/*!re2c
|
|
71
|
+
spacechar* newline { return (bufsize_t)(p - start); }
|
|
72
|
+
.? { return 0; }
|
|
73
|
+
*/
|
|
74
|
+
}
|