module Savi::Program::Declarator::Bootstrap
Defined in:
savi/program/declarator/bootstrap.crConstant Summary
-
BOOTSTRAP_DECLARATORS =
[Declarator.new_bootstrap("declarator", intrinsic: true, begins: ["declarator"], terms: [TermAcceptor::Typed.new(Source::Pos.none, "name", "Name")] of TermAcceptor), Declarator.new_bootstrap("intrinsic", intrinsic: true, context: "declarator"), Declarator.new_bootstrap("context", intrinsic: true, context: "declarator", terms: [TermAcceptor::Typed.new(Source::Pos.none, "name", "Name")] of TermAcceptor), Declarator.new_bootstrap("begins", intrinsic: true, context: "declarator", terms: [TermAcceptor::Typed.new(Source::Pos.none, "name", "Name")] of TermAcceptor), Declarator.new_bootstrap("term", intrinsic: true, context: "declarator", begins: ["declarator_term"], terms: [TermAcceptor::Typed.new(Source::Pos.none, "name", "Name"), TermAcceptor::Typed.new(Source::Pos.none, "type", "Term")] of TermAcceptor)]
-
This is the minimal set of "bootstrap" declarators needed for declaring the declarators used for declaring declarators.
We must declare them here instead of in Savi code like the others, because these must be in place before we can declare anything in Savi code. We then remove them from circulation once the "real" ones are in place.
See the explanation in
meta_declarators.savi
for more information about the reasoning and intention behind the bootstrapping process.