An overview of the core module's role and abilities.


§1. Prerequisites. The core module is a part of the Inform compiler toolset. It is presented as a literate program or "web". Before diving in:

§2. The Core. The core module is the largest and most important part of inform7, while not being included in either inbuild or inter. It manages the entire process of compiling an Inform 7 project, doing a good deal of the work itself, but also calling numerous other modules.

When supervisor decides that an Inform project is being compiled, it uses the words and syntax modules to build a parse tree for the project and any extensions it needs, and works out dependencies on kits of Inter code. We don't need to deal with any of that. For core, the business starts when supervisor calls Task::carry_out. The process is a long multi-stage one, run as a production line: see How To Compile for a detailed list of steps, but roughly:

Classification:
SENTENCE_NT'jane is a woman'
    VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
    UNPARSED_NOUN_NT'jane'
    UNPARSED_NOUN_NT'woman' {indefinite 'a' n/m/f nom/acc s}
Refined:
    CREATED_NT'jane'
    COMMON_NOUN_NT'woman' {indefinite 'a' n/m/f nom/acc s} {creation: << woman(x) >>} {eval: TEST_VALUE_NT}
After creation:
SENTENCE_NT'jane is a woman'
    VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
    PROPER_NOUN_NT'jane' {eval: CONSTANT_NT'jane' {kind: object} {instance: 'jane'}} {created here}
    COMMON_NOUN_NT'woman' {indefinite 'a' n/m/f nom/acc s} {creation: << woman(x) >>} {eval: TEST_VALUE_NT}