RecFcnDefFormat1 GenericTerminals: id tokenID ; SimpleTerminals: : , [ ] = ; SpelledTerminals: semiColon ; ; SimpleTerminals: . { } RECORD REF ANY ; SimpleTerminals: LIST SEQUENCE OF ; SimpleTerminals: NULL ; SimpleTerminals: FROM ; SimpleTerminals: TYPE ; SimpleTerminals: CEDAR ; SimpleTerminals: MODULE BEGIN END ; NonTerminals: MainGoal ; NonTerminals: ModuleBody ; NonTerminals: declist ; NonTerminals: declaration ; NonTerminals: from ; NonTerminals: identlist ; NonTerminals: identlistP ; NonTerminals: typeexp ; NonTerminals: typeid ; NonTerminals: typeidP ; NonTerminals: typecons ; NonTerminals: elementlist ; NonTerminals: elementlistP ; NonTerminals: element ; NonTerminals: reclist ; NonTerminals: variantpair ; NonTerminals: variantpart ; NonTerminals: vcasehead ; NonTerminals: tagtype ; NonTerminals: ident ; NonTerminals: pairlist ; NonTerminals: pairitem ; NonTerminals: typelist ; Prod 0: MainGoal _ ModuleBody ; Prod 1: ModuleBody _ id : MODULE = BEGIN declist END . ; Prod 2: ModuleBody _ id : MODULE = BEGIN declist semiColon END . ; Prod 3: declist _ declaration ; Prod 4: declist _ declist semiColon declaration ; Prod 5: declaration _ identlist TYPE = typeexp ; Prod 6: declaration _ identlist CEDAR TYPE from = typeexp ; Prod 7: from _ ; Prod 8: from _ FROM id ; Prod 9: identlist _ identlistP ; Prod 10: identlistP _ id : ; Prod 11: identlistP _ id , identlistP ; Prod 12: typeexp _ id ; Prod 13: typeexp _ typeid ; Prod 14: typeexp _ typecons ; Prod 15: typeid _ id id ; Prod 16: typeid _ id typeid ; Prod 17: typeid _ typeidP ; Prod 18: typeidP _ id . id ; Prod 19: typeidP _ typeidP . id ; Prod 20: typecons _ { elementlist } ; Prod 21: typecons _ RECORD reclist ; Prod 22: typecons _ REF typeexp ; Prod 23: typecons _ REF ANY ; Prod 24: typecons _ LIST OF typeexp ; Prod 25: elementlist _ ; Prod 26: elementlist _ elementlistP ; Prod 27: elementlistP _ element ; Prod 28: elementlistP _ elementlistP , element ; Prod 29: element _ id ; Prod 30: reclist _ [ ] ; Prod 31: reclist _ NULL ; Prod 32: reclist _ [ pairlist ] ; Prod 33: reclist _ [ typelist ] ; Prod 34: reclist _ [ pairlist , variantpair ] ; Prod 35: reclist _ [ variantpart ] ; Prod 36: reclist _ [ variantpair ] ; Prod 37: variantpair _ identlist variantpart ; Prod 38: variantpart _ SEQUENCE vcasehead OF typeexp ; Prod 39: vcasehead _ ident tagtype ; Prod 40: tagtype _ typeexp ; Prod 41: ident _ id : ; Prod 42: pairlist _ pairitem ; Prod 43: pairlist _ pairlist , pairitem ; Prod 44: pairitem _ identlist typeexp ; Prod 45: typelist _ typecons ; Prod 46: typelist _ typeid ; Prod 47: typelist _ id ; Prod 48: typelist _ typecons , typelist ; Prod 49: typelist _ typeid , typelist ; Prod 50: typelist _ id , typelist ; EndOfSyntax