To make the licensing part clear, SPLinT is GPL v.~3:
% Copyright 2012-2014, 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). Here is a short
description of the various files included in the collection.
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
np.w - scanner and parser for token names
ssffo.w - lexer for state grabbing
mkeparser.w - parser output `driver'
mkscanner.w - lexer output `driver'
splint.w - documentation
tex/* - \TeX\ macros
yy*.sty, flex.sty - automata machinery
grabstates.sty - macros for state grabbing
?tokenset.sty - token typesetting definitions
dcols.sty - multiple column output
limbo.sty - limbo section macros
examples/* - various examples:
expression - a simple expression parser built with the package.
xxpression - an extended version of the example above, with a
demonstration of symbolic name mechanism setup.
symbols - a demonstration of the features of the bison parser
included in the package.
count - an example of robust token counting macros.
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
scripts/* - helper (perl, for now) scripts to aid in pre- and
post-processing of various files
makefile.inc - common definitions
COPYING - license information
VERSION - the current version
TODO - plans for future development
README - this file
The most recent version of this software can be downloaded at
The file above is a compressed Git repository.
Download the complete
contents of this directory in one zip archive
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.