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 |