Directory support/splint
README
To make the licensing part clear, SPLinT is GPL v.~3: % Copyright 2012-2022, Alexander Shibakov % This file is part of SPLinT % % SPLinT is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. % % SPLinT is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with SPLinT. If not, see <http://www.gnu.org/licenses/>. SPLinT is a \TeX\ package for building parsers and scanners in \TeX. Bison and Flex are used to create the tables that drive the automata programmed as \TeX\ macros (thus, after the parser/scanner has been completed it can be used in plain \TeX, without invoking any outside software). The documentation included with the package has a detailed description of the features of the produced parsers and scanners. To get started, run `make' to create a manual (which can be found as cweb/splint.pdf in the cweb/ directory) and take a look at the `examples' directory. Here is a short description of the various files included in the collection. Files: cweb/* - executables and documentation: bs.w - Bison Sourcer(er): table code core for bison fk.w - Flex Kit(ten): table code core for flex common.w - common code for table generators bo.w - parser for the bison grammar lo.w - lexer for the bison grammar fo.w - parser for the flex grammar so.w - lexer for the flex grammar np.w - scanner and parser for token names mkeparser.w - parser output `driver' mkscanner.w - lexer output `driver' splint.w - documentation philosophy.w - rants checklists.w - checklists to follow when modifying SPLinT tex/* - \TeX\ macros yy*.sty, yx*.sty, flex.sty - automata machinery trt1.sty - `\TeX\ runtime': temporary register definitions xarithm.sty - expandable arithmetic for parsing macros grabstates.sty - macros for state grabbing *tokenset.sty - token typesetting definitions gindex.sty - generic indexing macros dcols.sty - multiple column output noweb.sty - noweb style references (local within a page) limbo.sty - limbo section macros frontmatter.sty - macros to typeset the cover page examples/* - various examples: count - an example of robust token counting macros. expression - a simple expression parser built with the package. ld - a typesetting parser for the \GNU\ linker, ld, with a very detailed implementation manual. symbols - a demonstration of the features of the bison and flex parsers included in the package. types - expandable arithmetic (e.g. addition and subtraction macros that can be used inside \edef), tree data structure; incomplete and slow, merely a proof of concept; only standard plain \TeX\ is used xxpression - an extended version of the `expression' example above, with a demonstration of symbolic name mechanism setup. scripts/* - helper (perl, for now) scripts to aid in pre- and post-processing of various files makefile.inc - common definitions makefile.loc - placeholder file for local make rules COPYING - license information INSTALL - cursory instalation notes README - this file TODO - plans for future development VERSION - the current version The most recent version of this software can be downloaded at www.shibakov.org/splint/archive/splint.tar.bz2
Download the contents of this package in one zip archive (2.4M).
splint – Write LALR(1) parsers in TeX using bison and flex
The bundle provides the means of building parsers and scanners in TeX. Bison and Flex are used to create the tables that drive the automata programmed as TeX macros.
Package | splint |
Version | 1.3.0 2024-01-30 |
Licenses | GNU General Public License, version 3 or newer |
Copyright | 2012–2024 Alexander Shibakov |
Maintainer | Alexander Shibakov |
Topics | Parser |