-- ThreeC4ModItemAbGram.ThreeC4 -- Sturgis, May 6, 1986 3:57:17 pm PDT Include[ThreeC4BaseDecl, ThreeC4RecFcnDecl, ThreeC4BasicAbTypes]; ThreeC4ModItemAbGram: Module = Begin -- ModuleItem is declared in BasicAbTypes -- module items come in several flavors ModuleItem.cedarItems: AbstractProduction[CedarItems]; ModuleItem.baseItems: AbstractProduction[BaseItems]; ModuleItem.abGramItems: AbstractProduction[AbGramItems]; ModuleItem.cGramItems: AbstractProduction[CGramItems]; -- generic tokens are not in any of the above flavors, because they have a combined action -- requiring functions that apply to several of the flavors ModuleItem.genTkn: AbstractProduction[Identifier, Rope.tknName]; -- some of the flavors follow, others are in other files -- CedarItems is declared in BasicAbTypes -- CedarItems have the property that they generate no def file code CedarItems.cedarTypes: AbstractProduction[IdList]; CedarItems.cedarTypesFrom: AbstractProduction[IdList, Identifier]; CedarItems.cedarEnumTypeFrom: AbstractProduction[Identifier.typeName, IdList.values, Identifier.fileName]; CedarItems.cedarFunctionFrom: AbstractProduction[Identifier.funName, ModIdList.args, ModIdList.results, Identifier.fileName, DamageShareAssertions]; -- CGramItems is declared in BasicAbTypes -- (CGramItems = concrete grammar items) CGramItems.simpleTokens: AbstractProduction[RopeList]; CGramItems.nonTerminal: AbstractProduction[Identifier.name, Identifier.builds]; CGramItems.concreteProduction: AbstractProduction[ConcreteProduction] End.