xtc is a framework for building extensible source-to-source
translators and compilers.
License
xtc is copyrighted in parts by Robert Grimm, New York University,
Princeton University, and IBM; see each file's header for the relevant
copyright notice. xtc also is open source software and released in
parts under the GNU General Public License (GPL) version 2 and the GNU
Lesser General Public License (LGPL) version 2.1, again as documented
in each file's header.
Generally, most code in xtc is released under the GPL. However,
most runtime classes for Rats!-generated parsers, including
classes for representing AST nodes, are released under the LGPL.
Furthermore, all runtime classes for Typical-generated type checkers
are released under the LGPL. In detail, the classes released under
the LGPL are:
- {@link xtc.parser.ParserBase}
- {@link xtc.parser.Column}
- {@link xtc.parser.Result}
- {@link xtc.parser.SemanticValue}
- {@link xtc.parser.ParseError}
- {@link xtc.parser.ParseException}
- {@link xtc.tree.Location}
- {@link xtc.tree.Locatable}
- {@link xtc.tree.Node}
- {@link xtc.tree.Token}
- {@link xtc.tree.Annotation}
- {@link xtc.tree.Formatting}
- {@link xtc.tree.GNode}
- {@link xtc.typical.Analyzer}
- {@link xtc.typical.Name}
- {@link xtc.typical.Primitives}
- {@link xtc.typical.Record}
- {@link xtc.typical.Reduction}
- {@link xtc.typical.Scope}
- {@link xtc.typical.ScopeKind}
- {@link xtc.typical.Tuple}
- {@link xtc.typical.Variant}
- {@link xtc.util.Action}
- {@link xtc.util.EmptyIterator}
- {@link xtc.util.Function}
- {@link xtc.util.Pair}
- {@link xtc.util.Runtime}
- {@link xtc.util.SingletonIterator}
- {@link xtc.util.State}
- {@link xtc.util.SymbolTable}
- {@link xtc.util.Tool}
- {@link xtc.util.Utilities}
To ensure that a Rats!-generated parser is compatible with
the LGPL, invoke Rats! with the -lgpl
command
line argument.