Knowledge

Scannerless parsing

Source 📝

77: 179: 274: 36: 504:
Since the lexical scanning and syntactic parsing are combined, the resulting parser tends to be more complicated and thus harder to understand and debug. The same will hold for the associated grammar, if a grammar is used to generate the
439:
Dividing processing into a lexer followed by a parser is more modular; scannerless parsing is primarily used when a clear lexer–parser distinction is unneeded or unwanted. Examples of when this is appropriate include
597:
compiler for writing and implementing compilers. Has token rules as part of its language. Rules in CWIC were compiled into boolean functions returning success or failure.
412:) performs tokenization (breaking a stream of characters into words) and parsing (arranging the words into phrases) in a single step, rather than breaking it up into a 189: 298:
of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to be
659: 94: 49: 722: 387: 369: 160: 63: 350: 247: 141: 940: 322: 219: 113: 945: 508:
The resulting parser tends to be significantly less efficient than a lexer-parser pipeline with regard to both time and memory.
429: 204: 98: 329: 226: 120: 565:
Laja is a two-phase scannerless parser generator with support for mapping the grammar rules into objects, written in Java.
295: 971: 950: 573: 519: 457: 336: 233: 127: 888: 790: 555: 536: 291: 307: 318: 215: 109: 785: 757: 488: 55: 615:. Some lexerless parsers handle the entire class of context-free languages, which is closed under composition. 523: 893: 836: 795: 549: 87: 687: 425: 634: 918: 898: 762: 715: 608: 930: 284: 607:
This is because parsing at the character level makes the language recognized by the parser a single
903: 841: 819: 692: 413: 867: 527: 453: 343: 303: 240: 134: 913: 857: 774: 655: 299: 479:"Token classification" is unneeded which removes the need for design accommodations such as " 809: 739: 708: 645: 612: 433: 417: 401: 559: 611:
defined on characters, as opposed to a context-free language of sequences of strings in
480: 965: 831: 747: 484: 862: 679: 594: 470: 650: 17: 908: 814: 196: 178: 76: 925: 824: 569: 543: 804: 752: 588: 494:
Grammars can be compositional (can be merged without human intervention)
449: 731: 644:. Lecture Notes in Computer Science. Vol. 5501. pp. 126–141. 582: 700: 421: 27:
An algorithm that performs tokenization and parsing in a single step
432:
is scannerless if it uses a single formalism to express both the
290:
Please help to demonstrate the notability of the topic by citing
591:
Like META II also is scannerless having builtin lexer functions.
445: 704: 441: 267: 172: 70: 29: 533:
JSGLR, a pure Java implementation of SGLR, also based on SDF.
633:
Economopoulos, Giorgios; Klint, Paul; Vinju, Jurgen (2009).
579:
PyParsing is a scannerless parser written in pure Python.
436:(word level) and phrase level structure of the language. 562:(a superset of context-free grammars), written in Java. 200: 552:
allows for both scannerless and scanner-based parsing.
572:
feature of the general purpose programming language
881: 850: 773: 738: 101:. Unsourced material may be challenged and removed. 476:Non-regular lexical structure is handled easily 542:dparser generates ANSI C code for scannerless 716: 8: 686:. The Netherlands: University of Amsterdam. 205:introducing citations to additional sources 64:Learn how and when to remove these messages 723: 709: 701: 691: 649: 388:Learn how and when to remove this message 370:Learn how and when to remove this message 161:Learn how and when to remove this message 195:Relevant discussion may be found on the 625: 585:Has built in token parsers functions. 7: 99:adding citations to reliable sources 684:Scannerless Generalized-LR Parsing 25: 539:supports character-level parsing. 518:SGLR is a parser for the modular 45:This article has multiple issues. 941:History of compiler construction 635:"Faster Scannerless GLR Parsing" 272: 188:relies largely or entirely on a 177: 75: 34: 946:Comparison of parser generators 86:needs additional citations for 53:or discuss these issues on the 530:program transformation system. 452:, simple application-specific 1: 651:10.1007/978-3-642-00722-4_10 558:is a scannerless parser for 285:general notability guideline 951:Operator-precedence grammar 520:Syntax Definition Formalism 988: 522:(SDF), and is part of the 292:reliable secondary sources 281:The topic of this article 526:Meta-Environment and the 283:may not meet Knowledge's 894:Definite clause grammar 899:Deterministic parsing 642:Compiler Construction 609:context-free language 319:"Scannerless parsing" 216:"Scannerless parsing" 110:"Scannerless parsing" 487:(such as "while" in 201:improve this article 95:improve this article 936:Scannerless parsing 904:Dynamic programming 454:scripting languages 406:scannerless parsing 972:Parsing algorithms 732:Parsing algorithms 287: 959: 958: 758:Recursive descent 661:978-3-642-00721-7 613:regular languages 410:lexerless parsing 398: 397: 390: 380: 379: 372: 354: 282: 266: 265: 251: 171: 170: 163: 145: 68: 18:Lexerless parsing 16:(Redirected from 979: 914:Parser generator 837:Recursive ascent 725: 718: 711: 702: 697: 695: 666: 665: 653: 639: 630: 560:boolean grammars 430:language grammar 402:computer science 393: 386: 375: 368: 364: 361: 355: 353: 312: 276: 275: 268: 261: 258: 252: 250: 209: 181: 173: 166: 159: 155: 152: 146: 144: 103: 79: 71: 60: 38: 37: 30: 21: 987: 986: 982: 981: 980: 978: 977: 976: 962: 961: 960: 955: 877: 846: 769: 734: 729: 682:(August 1997). 678: 675: 673:Further reading 670: 669: 662: 637: 632: 631: 627: 622: 604: 515: 513:Implementations 501: 483:" and language 466: 394: 383: 382: 381: 376: 365: 359: 356: 313: 311: 289: 277: 273: 262: 256: 253: 210: 208: 194: 182: 167: 156: 150: 147: 104: 102: 92: 80: 39: 35: 28: 23: 22: 15: 12: 11: 5: 985: 983: 975: 974: 964: 963: 957: 956: 954: 953: 948: 943: 938: 933: 928: 923: 922: 921: 911: 906: 901: 896: 891: 885: 883: 882:Related topics 879: 878: 876: 875: 872: 871: 870: 860: 854: 852: 848: 847: 845: 844: 839: 834: 829: 828: 827: 822: 817: 812: 802: 801: 800: 799: 798: 788: 779: 777: 771: 770: 768: 767: 766: 765: 763:Tail recursive 755: 750: 744: 742: 736: 735: 730: 728: 727: 720: 713: 705: 699: 698: 693:10.1.1.37.7828 674: 671: 668: 667: 660: 624: 623: 621: 618: 617: 616: 603: 600: 599: 598: 592: 586: 580: 577: 566: 563: 553: 547: 540: 534: 531: 514: 511: 510: 509: 506: 500: 497: 496: 495: 492: 485:reserved words 481:the lexer hack 477: 474: 465: 462: 420:followed by a 396: 395: 378: 377: 280: 278: 271: 264: 263: 199:. Please help 185: 183: 176: 169: 168: 83: 81: 74: 69: 43: 42: 40: 33: 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 984: 973: 970: 969: 967: 952: 949: 947: 944: 942: 939: 937: 934: 932: 929: 927: 924: 920: 917: 916: 915: 912: 910: 907: 905: 902: 900: 897: 895: 892: 890: 887: 886: 884: 880: 873: 869: 866: 865: 864: 861: 859: 856: 855: 853: 849: 843: 840: 838: 835: 833: 830: 826: 823: 821: 818: 816: 813: 811: 808: 807: 806: 803: 797: 796:Shunting-yard 794: 793: 792: 789: 787: 784: 783: 781: 780: 778: 776: 772: 764: 761: 760: 759: 756: 754: 751: 749: 746: 745: 743: 741: 737: 733: 726: 721: 719: 714: 712: 707: 706: 703: 694: 689: 685: 681: 677: 676: 672: 663: 657: 652: 647: 643: 636: 629: 626: 619: 614: 610: 606: 605: 601: 596: 593: 590: 587: 584: 581: 578: 575: 571: 570:Raku grammars 567: 564: 561: 557: 554: 551: 548: 545: 541: 538: 535: 532: 529: 525: 521: 517: 516: 512: 507: 503: 502: 499:Disadvantages 498: 493: 490: 486: 482: 478: 475: 472: 468: 467: 463: 461: 459: 455: 451: 447: 443: 437: 435: 431: 427: 423: 419: 415: 411: 408:(also called 407: 403: 392: 389: 374: 371: 363: 352: 349: 345: 342: 338: 335: 331: 328: 324: 321: –  320: 316: 315:Find sources: 309: 305: 301: 297: 293: 286: 279: 270: 269: 260: 257:December 2016 249: 246: 242: 239: 235: 232: 228: 225: 221: 218: –  217: 213: 212:Find sources: 206: 202: 198: 192: 191: 190:single source 186:This article 184: 180: 175: 174: 165: 162: 154: 151:December 2016 143: 140: 136: 133: 129: 126: 122: 119: 115: 112: –  111: 107: 106:Find sources: 100: 96: 90: 89: 84:This article 82: 78: 73: 72: 67: 65: 58: 57: 52: 51: 46: 41: 32: 31: 19: 935: 851:Mixed, other 842:Shift-reduce 683: 641: 628: 471:metalanguage 438: 426:concurrently 424:, executing 409: 405: 399: 384: 366: 357: 347: 340: 333: 326: 314: 254: 244: 237: 230: 223: 211: 187: 157: 148: 138: 131: 124: 117: 105: 93:Please help 88:verification 85: 61: 54: 48: 47:Please help 44: 909:Memoization 874:Statistical 868:Left corner 825:Generalized 782:Precedence 544:GLR parsers 528:Stratego/XT 296:independent 926:Parse tree 858:Combinator 815:Look-ahead 680:Visser, E. 620:References 464:Advantages 448:grammars, 330:newspapers 304:redirected 227:newspapers 121:newspapers 50:improve it 820:Canonical 775:Bottom-up 688:CiteSeerX 589:TREE-META 473:is needed 469:Only one 450:makefiles 360:June 2023 294:that are 197:talk page 56:talk page 966:Category 791:Operator 740:Top-down 414:pipeline 583:META II 524:ASF+SDF 505:parser. 444:, most 434:lexical 344:scholar 308:deleted 241:scholar 135:scholar 810:Simple 786:Simple 748:Earley 690:  658:  550:Spirit 456:, and 422:parser 346:  339:  332:  325:  317:  300:merged 243:  236:  229:  222:  214:  137:  130:  123:  116:  108:  863:Chart 638:(PDF) 602:Notes 418:lexer 416:of a 351:JSTOR 337:books 306:, or 248:JSTOR 234:books 142:JSTOR 128:books 919:LALR 656:ISBN 595:CWIC 574:Raku 568:The 458:Raku 446:wiki 428:. A 323:news 220:news 114:news 931:AST 889:PEG 832:CYK 646:doi 556:SBP 537:TXL 442:TeX 400:In 203:by 97:by 968:: 805:LR 753:LL 654:. 640:. 460:. 404:, 302:, 59:. 724:e 717:t 710:v 696:. 664:. 648:: 576:. 546:. 491:) 489:C 391:) 385:( 373:) 367:( 362:) 358:( 348:· 341:· 334:· 327:· 310:. 288:. 259:) 255:( 245:· 238:· 231:· 224:· 207:. 193:. 164:) 158:( 153:) 149:( 139:· 132:· 125:· 118:· 91:. 66:) 62:( 20:)

Index

Lexerless parsing
improve it
talk page
Learn how and when to remove these messages

verification
improve this article
adding citations to reliable sources
"Scannerless parsing"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message

single source
talk page
improve this article
introducing citations to additional sources
"Scannerless parsing"
news
newspapers
books
scholar
JSTOR
general notability guideline
reliable secondary sources
independent
merged

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.