anchor.diff:  program returns [StringTemplate code=template("program")]
       :
       (nsdecl[code])*        //namespace declaration
  -    (declaration[code])*
  +    (topLevelStatement[code])*
       ;
   
   nsdecl [StringTemplate code]
  
positive.code:         code.setAttribute("statements",d);
          setReturnVariables(code, d);
         }
      | (variable[code]) => variable[code]
      | (datasetdecl[code]) => datasetdecl[code]
  
      |   (functioncallStatNoAssign) => d=functioncallStatNoAssign
  
negative.code: 
  compoundStat[StringTemplate code]
      :   LCURLY
      ( innerStatement[code] )*
          RCURLY
      ;
  
  compoundBody[StringTemplate code]
      :    ( innerStatement[code] )*
      ;
  
  innerStatement[StringTemplate code]
  {StringTemplate s=null;}
      :
      (variableDecl[code]) => variableDecl[code]
      |  (datasetdecl[code]) => datasetdecl[code]
      |  s=statement
         {
  