<> <> DIRECTORY EDIFGrammar; EDIFSemanticsHeap1: CEDAR PROGRAM IMPORTS EDIFGrammar = {OPEN EDIFGrammar; one: REF ANY = NEW [INT _ 1]; DefineEm: PROC = { [] _ DQ[$NameRefs, LIST[$Multiple, Star[NameRef[]]], NameRef[]]; [] _ DC[$NameRef, LIST[$Name, $Member]]; [] _ DC[$Name, LIST[$Identifier]]; --I made this up [] _ DL[$Member, LIST[$Name, Star[$WholeNumber]]]; [] _ DC[$WholeNumber, LIST[$Integer], 0, 0]; [] _ DC[$WholeNumber, LIST[$Expression], 1]; [] _ DL[$Design, LIST[NameDef[], $Reference, Opt[$Status], Opt[$Rename], StarCh[LIST[$Comment, $Property]] ]]; [] _ DQ[$Reference, LIST[$Qualify, Star[$NameRef]], $NameRef]; [] _ DL[$Property, LIST[$PropertyType, $Identifier, Opt[$Data], StarCh[LIST[$Comment, $Property]] ]]; [] _ DC[$PropertyType, LIST["EDIF", "User", $Identifier]]; [] _ DC[$Data, LIST[$String, $Value, $Boolean]]; [] _ DC[$Value, LIST[$Number, $MiNoMax]]; [] _ DL[$MiNoMax, LIST[$RangeValue, $RangeValue, $RangeValue]]; [] _ DC[$RangeValue, LIST[$Number, $Undefined, $Unconstrained]]; [] _ DL[$Undefined, LIST[]]; [] _ DL[$Unconstrained, LIST[]]; [] _ DL[$External, LIST[NameDef[], Opt[$Status], Opt[$Rename]]]; [] _ DL[$PortMap, LIST[StarCh[LIST[$Reference, $Comment, $UserData]] ]]; [] _ DL[$InstanceMap, LIST[StarCh[LIST[$Reference, $Comment, $UserData]] ]]; [] _ DL[$View, LIST[$ViewType, NameDef[], Opt[$Status], Opt[$Interface], Opt[$Contents], Opt[$Rename], StarCh[LIST[$Comment, $Property]] ]]; [] _ DC[$ViewType, LIST["document", "behavior", "netlist", "schematic", "symbolic", "masklayout", "stranger"]]; [] _ DBL2[$TwoDArrayJoin, LIST[$Repeat, $Identifier, $WholeNumber, $WholeNumber, one, LR[LIST[$Repeat, $Identifier, $WholeNumber, $WholeNumber, one, LR[LIST[$Repeat, $Identifier, $WholeNumber, $WholeNumber, one, LR[LIST[$Repeat, $Identifier, $WholeNumber, $WholeNumber, one, LR[LIST[$Joined, LR[LIST[$Qualify, $Identifier, LR[LIST[$Member, $Identifier, $Identifier, $Identifier]]]], LR[LIST[$Qualify, $Identifier, LR[LIST[$Member, $Identifier, $Identifier, $Identifier]]]] ]] ]]]]]]]]; }; }.