Human-readable source code.
This GitHub project was written as a literate program, powered by a LP tool
called Inweb. While almost all programs at Github are open to inspection, most
are difficult for new readers to navigate, and are not structured for extended
reading. By contrast, a "web" (the term goes back to Knuth: see
Wikipedia)
is designed to be read by humans in its "woven" form, and to be compiled or
run by computers in its "tangled" form.
These pages showcase the woven form, and are for human eyes only.
-
★ inform7 -
version 7.10.1 'Krypton' (build 6Q21)
- The core compiler in a natural-language design system for interactive fiction.
Documentation is here.
-
↳ ★ inflections (module of inform7) -
A library for adapting words or short phrases for linguistic purposes.
-
↳ ★ inflections-test -
Unit tests for the inflections module. (A stand-alone program.)
-
↳ ★ problems (module of inform7) -
The issuing mechanism for problem messages used by Inform.
-
↳ ★ problems-test -
Unit tests for the problems module. (A stand-alone program.)
-
↳ ★ linguistics (module of inform7) -
A library of code to store grammatical categories of vocabulary.
-
↳ ★ linguistics-test -
Unit tests for the linguistics module. (A stand-alone program.)
-
↳ ★ kinds (module of inform7) -
The type system used by Inform.
-
↳ ★ kinds-test -
Unit tests for the kinds module. (A stand-alone program.)
-
↳ ★ core (module of inform7) -
The core of the Inform compiler, as a module.
-
↳ ★ if (module of inform7) -
The interactive-fiction specific layer of Inform, as a module.
-
↳ ★ multimedia (module of inform7) -
A multimedia extension module for Inform.
-
↳ ★ index (module of inform7) -
Indexing tools needed by Inform, as a module.
-
★ inbuild -
version 1 'Avignon'
- A simple build and package manager for the Inform tools.
Documentation is here.
-
↳ ★ arch (module of both inform7 and inbuild) -
Definitions of Inter and final VM architectures.
-
↳ ★ inbuild (module of both inform7 and inbuild) -
The functional part of the build manager.
-
↳ ★ html (module of both inform7 and inbuild) -
HTML and Javascript generation tools.
-
↳ ★ words (module of both inform7 and inbuild) -
A library of code for reading natural language into a stream of words.
-
↳ ★ words-test -
Unit tests for the words module. (A stand-alone program.)
-
↳ ★ syntax (module of both inform7 and inbuild) -
A library of code to build a parse tree and break text into sentences.
-
↳ ★ syntax-test -
Unit tests for the syntax module. (A stand-alone program.)
-
★ inter -
version 1 'Axion'
- For handling intermediate Inform code.
Documentation is here.
-
↳ ★ inter (module of both inform7 and inter) -
Code for dealing with intermediate-level Inform.
-
↳ ★ building (module of both inform7 and inter) -
An intermediate layer for building code in Inter.
-
↳ ★ codegen (module of both inform7 and inter) -
The code generation pipeline.
The two extensions (though their use is compulsory) which, though themselves written in Inform, create the Inform language: