anchor.diff:                               }
       ;
   
  -private scProve[Token unitIdToken] returns[ElementFactory.Item prove]
  -{
  -    prove = null;
  +private scLet[Token unitIdToken] returns[ElementFactory.Item let]
  +{
  +    let = null;
  +    ElementFactory.Item ignore = null;
  +}
  +    : "let"
  +      (scDecl
  +      )*
  +      "in"
  +      ignore=scTerm[unitIdToken]
  +    ;
  +
  +private scTranslate[Token unitIdToken] returns[ElementFactory.Item translate]
  +{
  +    translate = null;
  +    ElementFactory.Item ignore = null;
  +}
  +    : "translate"
  +      ignore=scTerm[null]
  +      "by"
  +      nameMap
  +    ;
  +
  +private scQualify[Token unitIdToken] returns[ElementFactory.Item qualify]
  +{
  +    qualify = null;
  +    String strIgnore = null;
  +    ElementFactory.Item itemIgnore = null;
  +}
  +    : strIgnore=qualifier
  +      "qualifying"
  +      itemIgnore=scTerm[null]
  +    ;
  +
  +private scDiag[Token unitIdToken] returns[ElementFactory.Item diag]
  +{
  +    diag = null;
  +    ElementFactory.Item ignore = null;
  +}
  +    : "diagram"
  +      LBRACE
  +      scDiagElem
  +      (COMMA scDiagElem
  +      )*
  +      RBRACE
  +    ;
  +
  +private scColimit[Token unitIdToken] returns[ElementFactory.Item colimit]
  +{
  +    colimit = null;
  +    ElementFactory.Item ignore = null;
  +}
  +    : "colimit"
  +      ignore=scTerm[null]
  +    ;
  +
  +private scSubstitute[Token unitIdToken] returns[ElementFactory.Item substitute]
  +{
  +    substitute = null;
  +    ElementFactory.Item ignore = null;
  +}
  +    : ignore=scBasicTerm[null]
  +      scSubstituteTermList
  +    ;
  +
  +private scSpecMorph[Token unitIdToken] returns[ElementFactory.Item morph]
  +{
  +    morph = null;
  +    ElementFactory.Item childItem = null;
  +    ElementFactory.Item ignore = null;
  +    Token headerEnd = null;
  +}
  +
  +    : begin:"morphism"        {headerEnd = begin;}
  +      ignore=scTerm[null]
  +      nonWordSymbol["->"]
  +      ignore=scTerm[null]
  +      nameMap
  +    ;
  +
  +private scGenerate[Token unitIdToken] returns[ElementFactory.Item generate]
  +{
  +    generate = null;
  +    String genName = null;
  +    String fileName = null;
  +    ElementFactory.Item ignore = null;
  +    Token headerEnd = null;
  +}
  +    : begin:"generate"        {headerEnd = begin;}
  +      genName=name
  +      ignore=scTerm[null]
  +      ("in" fileName=name
  +      )?
  +    ;
  +
  +private scObligations[Token unitIdToken] returns[ElementFactory.Item obligations]
  +{
  +    obligations=null;
  +    ElementFactory.Item ignore=null;
  +    Token headerEnd = null;
  +}
  +    : begin:"obligations"     {headerEnd = begin;}
  +      ignore=scTerm[null]
  +    ;
  +
  +private scProve[Token unitIdToken] returns[ElementFactory.Item proof]
  +{
  +    proof = null;
       ElementFactory.Item childItem = null;
       String ignore = null;
       Token headerEnd = null;
  
positive.code:  *
   *
   * $Log$
   * Revision 1.14  2003/02/18 18:10:14  weilyn
   * Added support for imports.
   *
  
negative.code:                                  }
      ;
  
  private claimDefinition returns[ElementFactory.Item claimDef]
  {
      claimDef = null;
      String name = null;
      String kind = null;
      Token begin = null;
  