The Racket repository
![]() The prior code constructed the location of nonterminal maches out of the the state of the stream after parsing. This isn't right for a few reasons: 1. It doesn't get starting location correctly. 2. It doesn't behave when the non-terminal production did not actually consume tokens for its parse. This patch modifies the parsers to also pass along a "last-consumed-token"; it, along with a few other changes, provides the parsers enough information to accurately construct the locations, even when no tokens have been consumed during the parse. We synthesize a sentinel last-consumed-token token to take location from the head of the stream. |
||
---|---|---|
collects | ||
doc | ||
man/man1 | ||
src | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
README |
The Racket Programming Language =============================== Instructions for building Racket from source are in src/README. The main executables in this package: * DrRacket: Racket's integrated development environment (start here!). * racket: command-line tool for running Racket programs. * raco: command-line tool for compilation, documentation, and more. More Information ---------------- For Racket documentation, use DrRacket's `Help' menu, run the `Racket Documentation' application (Windows or Mac OS X), or run `raco docs' from a command line. Visit us at http://racket-lang.org/ for more Racket resources. License ------- Racket Copyright (c) 2010-2013 PLT Scheme Inc. Racket is distributed under the GNU Lesser General Public License (LGPL). This means that you can link Racket into proprietary applications, provided you follow the rules stated in the LGPL. You can also modify Racket; if you distribute a modified version, you must distribute it under the terms of the LGPL, which in particular means that you must release the source code for the modified software. See doc/release-notes/COPYING.txt for more information.