commonmarker 0.14.15 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of commonmarker might be problematic. Click here for more details.

Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/ext/commonmarker/cmark/Makefile +4 -3
  4. data/ext/commonmarker/cmark/README.md +18 -11
  5. data/ext/commonmarker/cmark/extensions/ext_scanners.c +562 -3
  6. data/ext/commonmarker/cmark/extensions/ext_scanners.h +6 -0
  7. data/ext/commonmarker/cmark/extensions/ext_scanners.re +32 -0
  8. data/ext/commonmarker/cmark/extensions/table.c +87 -215
  9. data/ext/commonmarker/cmark/man/CMakeLists.txt +2 -2
  10. data/ext/commonmarker/cmark/man/make_man_page.py +1 -1
  11. data/ext/commonmarker/cmark/man/man1/{cmark.1 → cmark-gfm.1} +10 -4
  12. data/ext/commonmarker/cmark/man/man3/cmark-gfm.3 +2 -2
  13. data/ext/commonmarker/cmark/src/buffer.c +5 -1
  14. data/ext/commonmarker/cmark/src/cmark.c +6 -2
  15. data/ext/commonmarker/cmark/src/cmark.h +1 -1
  16. data/ext/commonmarker/cmark/src/cmark_extension_api.h +0 -2
  17. data/ext/commonmarker/cmark/src/commonmark.c +1 -2
  18. data/ext/commonmarker/cmark/src/inlines.c +1 -1
  19. data/ext/commonmarker/cmark/src/libcmark-gfm.pc.in +1 -1
  20. data/ext/commonmarker/cmark/src/main.c +1 -1
  21. data/ext/commonmarker/cmark/src/render.c +15 -0
  22. data/ext/commonmarker/cmark/test/extensions.txt +24 -3
  23. data/ext/commonmarker/cmark/test/roundtrip_tests.py +1 -0
  24. data/ext/commonmarker/cmark/test/spec.txt +84 -15
  25. data/ext/commonmarker/cmark/test/spec_tests.py +9 -8
  26. data/ext/commonmarker/cmark/tools/Dockerfile +12 -0
  27. data/lib/commonmarker/node.rb +3 -0
  28. data/lib/commonmarker/node/inspect.rb +59 -0
  29. data/lib/commonmarker/version.rb +1 -1
  30. data/test/test_node.rb +8 -0
  31. data/test/test_spec.rb +1 -1
  32. metadata +4 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e5aa294a8cff2fc4d0911affd928255c95527435
4
- data.tar.gz: 53d8b570256340398dae12c4deaa7dbbc78f4594
3
+ metadata.gz: 828326c7f9a66b8e7caa67ea4bd8eae887f349c2
4
+ data.tar.gz: b6036c31b529bc7fe63d80217aa6931ce51b126d
5
5
  SHA512:
6
- metadata.gz: 542cabd09f0368b0e3b68727bcc7652d12322735edf3d60be4c203711e824888d60e8738db8495077a892bec9599cd057e626417e07346a562638b02a05809cc
7
- data.tar.gz: 66145f96d41641c4dae783698abd5753e7eabed5f626d829523d9c26bc0cae02692f91fb0187c53cc89300b14dbd7172fe81c12f3567000d59238e671e9c9c12
6
+ metadata.gz: 230cdde9843b531264c4346ea420b1aaa766713bd26b43a73531d2e263345d088779866d5bd1d6b1ae5190fbc642ed74bda1506198762b5ea3d7da20742dbb18
7
+ data.tar.gz: cd36ec10001cc1df2219e371b5bd02d27965558ce68cdfa17199c9cbc093cccc988a1b4845772434aa9439978b2b09ec454e2e6b8ec94b9569f0c990a468da12
data/README.md CHANGED
@@ -35,7 +35,7 @@ The second argument is optional--[see below](#options) for more information.
35
35
 
36
36
  ### Generating a document
37
37
 
38
- You can also parse a string to receive a `Document` node. You can than print that node to HTML, iterate over the children, and other fun node stuff. For example:
38
+ You can also parse a string to receive a `Document` node. You can then print that node to HTML, iterate over the children, and other fun node stuff. For example:
39
39
 
40
40
  ``` ruby
41
41
  require 'commonmarker'
@@ -21,7 +21,7 @@ VERSION?=$(SPECVERSION)
21
21
  RELEASE?=CommonMark-$(VERSION)
22
22
  INSTALL_PREFIX?=/usr/local
23
23
  CLANG_CHECK?=clang-check
24
- CLANG_FORMAT=clang-format -style llvm -sort-includes=0 -i
24
+ CLANG_FORMAT=clang-format-3.5 -style llvm -sort-includes=0 -i
25
25
  AFL_PATH?=/usr/local/bin
26
26
 
27
27
  .PHONY: all cmake_build leakcheck clean fuzztest test debug ubsan asan mingw archive newbench bench format update-spec afl clang-check docker
@@ -80,6 +80,7 @@ afl:
80
80
  -i test/afl_test_cases \
81
81
  -o test/afl_results \
82
82
  -x test/afl_dictionary \
83
+ $(AFL_OPTIONS) \
83
84
  -t 100 \
84
85
  $(CMARK) -e table -e strikethrough -e autolink -e tagfilter $(CMARK_OPTS)
85
86
 
@@ -131,7 +132,7 @@ $(EXTDIR)/ext_scanners.c: $(EXTDIR)/ext_scanners.re
131
132
  esac
132
133
  re2c --case-insensitive -b -i --no-generation-date -8 \
133
134
  --encoding-policy substitute -o $@ $<
134
- clang-format -style llvm -i $@
135
+ clang-format-3.5 -style llvm -i $@
135
136
 
136
137
  # We include entities.inc in the repository, so normally this
137
138
  # doesn't need to be regenerated:
@@ -202,7 +203,7 @@ format:
202
203
  $(CLANG_FORMAT) src/*.c src/*.h api_test/*.c api_test/*.h
203
204
 
204
205
  format-extensions:
205
- clang-format -style llvm -i extensions/*.c extensions/*.h
206
+ clang-format-3.5 -style llvm -i extensions/*.c extensions/*.h
206
207
 
207
208
  operf: $(CMARK)
208
209
  operf $< < $(BENCHFILE) > /dev/null
@@ -1,13 +1,19 @@
1
- cmark
2
- =====
1
+ cmark-gfm
2
+ =========
3
3
 
4
- [![Build Status]](https://travis-ci.org/jgm/cmark)
5
- [![Windows Build Status]](https://ci.appveyor.com/project/jgm/cmark)
4
+ [![Build Status]](https://travis-ci.org/github/cmark)
5
+ [![Windows Build Status]](https://ci.appveyor.com/project/github/cmark)
6
6
 
7
- `cmark` is the C reference implementation of [CommonMark], a
8
- rationalized version of Markdown syntax with a [spec][the spec].
9
- (For the JavaScript reference implementation, see
10
- [commonmark.js].)
7
+ `cmark-gfm` is an extended version of the C reference implementation of
8
+ [CommonMark], a rationalized version of Markdown syntax with a spec. This
9
+ repository adds GitHub Flavored Markdown extensions to
10
+ [the upstream implementation], as defined in [the spec].
11
+
12
+ The rest of the README is preserved as-is from the upstream source. Note that
13
+ the library and binaries produced by this fork are suffixed with `-gfm` in
14
+ order to distinguish them from the upstream.
15
+
16
+ ---
11
17
 
12
18
  It provides a shared library (`libcmark`) with functions for parsing
13
19
  CommonMark documents to an abstract syntax tree (AST), manipulating
@@ -178,11 +184,12 @@ Nick Wellnhofer contributed many improvements, including
178
184
  most of the C library's API and its test harness.
179
185
 
180
186
  [benchmarks]: benchmarks.md
181
- [the spec]: http://spec.commonmark.org
187
+ [the spec]: https://github.github.com/gfm/
188
+ [the upstream implementation]: https://github.com/jgm/cmark
182
189
  [CommonMark]: http://commonmark.org
183
190
  [cmake]: http://www.cmake.org/download/
184
191
  [re2c]: http://re2c.org
185
192
  [commonmark.js]: https://github.com/jgm/commonmark.js
186
- [Build Status]: https://img.shields.io/travis/jgm/cmark/master.svg?style=flat
187
- [Windows Build Status]: https://ci.appveyor.com/api/projects/status/32r7s2skrgm9ubva?svg=true
193
+ [Build Status]: https://img.shields.io/travis/github/cmark/master.svg?style=flat
194
+ [Windows Build Status]: https://ci.appveyor.com/api/projects/status/wv7ifhqhv5itm3d5?svg=true
188
195
  [american fuzzy lop]: http://lcamtuf.coredump.cx/afl/
@@ -1,6 +1,6 @@
1
- /* Generated by re2c 0.14.3 */
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
+ }