anchor.diff:          SEMI
       ;
   
  -
  -functioncallStatAssign returns [StringTemplate code=template("call")]
  +functioncallStatAssignOneReturnParam returns [StringTemplate code=template("call")]
   {StringTemplate f=null;}
       :
  -        (( LPAREN
  -              f=returnParameter
  +        f= singleReturnParameter { code.setAttribute("outputs", f); }
  +        ASSIGN
  +        id:ID {code.setAttribute("func", id.getText());}
  +        LPAREN
  +        (   f=actualParameter
  +        {
  +        code.setAttribute("inputs", f);
  +        }
  +            (   COMMA f=actualParameter
  +                {
  +        code.setAttribute("inputs", f);
  +            }
  +            )*
  +        )?
  +        RPAREN
  +        SEMI
  +    ;
  +
  +
  +
  +functioncallStatAssignManyReturnParam returns [StringTemplate code=template("call")]
  +{StringTemplate f=null;}
  +    :
  +        LPAREN
  +        f=returnParameter
                 {
             code.setAttribute("outputs", f);
                 }
  
positive.code: 
  assignStat returns [StringTemplate code=null]
      :
      (   (functioncallStatAssign) => code=functioncallStatAssign
      |   (variableAssign) => code=variableAssign
      )
      ;
  
negative.code:               code.setAttribute("outputs", f);
                }
                )*
          RPAREN
          ASSIGN
          id:ID {code.setAttribute("func", id.getText());}
          LPAREN
  