public void paramValueAvaliable(List<SParameter> params,List<Instruction> instructions,SemanticScope scope,LineCol lineCol) throws SyntaxException {
  for (  SParameter param : params) {
    if (param.isNotEmpty()) {
      Ins.Nop nop=new Ins.Nop();
      Ins.IfNe ifNe=new Ins.IfNe(cast(BoolTypeDef.get(),new Ins.TLoad(param,scope,lineCol),lineCol),nop,lineCol);
      instructions.add(ifNe);
      instructions.add(new Ins.AThrow(new Ins.New(getJava_lang_IllegalArgumentException_cons(),lineCol),lineCol));
      instructions.add(nop);
    }
 else     if (param.isNotNull()) {
      if (param.type() instanceof PrimitiveTypeDef) {
        continue;
      }
      Ins.Nop nop=new Ins.Nop();
      Ins.IfNonNull ifNonNull=new Ins.IfNonNull(new Ins.TLoad(param,scope,lineCol),nop,lineCol);
      instructions.add(ifNonNull);
      instructions.add(new Ins.AThrow(new Ins.New(getJava_lang_NullPointerException_cons(),lineCol),lineCol));
      instructions.add(nop);
      Ins.Nop nop2=new Ins.Nop();
      Ins.IfACmpNe ifACmpNe=new Ins.IfACmpNe(new Ins.TLoad(param,scope,lineCol),invoke_Unit_get(lineCol),nop2,lineCol);
      instructions.add(ifACmpNe);
      instructions.add(new Ins.AThrow(new Ins.New(getJava_lang_IllegalArgumentException_cons(),lineCol),lineCol));
      instructions.add(nop2);
    }
  }
}

public void paramValueAvaliable ( List < SParameter > params , List < Instruction > instructions , SemanticScope scope , LineCol lineCol ) throws SyntaxException { for ( SParameter param : params ) { if ( param . isNotEmpty ( ) ) { Ins . Nop nop = new Ins . Nop ( ) ; Ins . IfNe ifNe = new Ins . IfNe ( cast ( BoolTypeDef . get ( ) , new Ins . TLoad ( param , scope , lineCol ) , lineCol ) , nop , lineCol ) ; instructions . add ( ifNe ) ; instructions . add ( new Ins . AThrow ( new Ins . New ( getJava_lang_IllegalArgumentException_cons ( ) , lineCol ) , lineCol ) ) ; instructions . add ( nop ) ; } else if ( param . isNotNull ( ) ) { if ( param . type ( ) instanceof PrimitiveTypeDef ) { continue ; } Ins . Nop nop = new Ins . Nop ( ) ; Ins . IfNonNull ifNonNull = new Ins . IfNonNull ( new Ins . TLoad ( param , scope , lineCol ) , nop , lineCol ) ; instructions . add ( ifNonNull ) ; instructions . add ( new Ins . AThrow ( new Ins . New ( getJava_lang_NullPointerException_cons ( ) , lineCol ) , lineCol ) ) ; instructions . add ( nop ) ; Ins . Nop nop2 = new Ins . Nop ( ) ; Ins . IfACmpNe ifACmpNe = new Ins . IfACmpNe ( new Ins . TLoad ( param , scope , lineCol ) , invoke_Unit_get ( lineCol ) , nop2 , lineCol ) ; instructions . add ( ifACmpNe ) ; instructions . add ( new Ins . AThrow ( new Ins . New ( getJava_lang_IllegalArgumentException_cons ( ) , lineCol ) , lineCol ) ) ; instructions . add ( nop2 ) ; } } }
handle nonnull / nonempty modifiers on parameters
