On Feb 6, 2008 5:03 PM, chromatic <[EMAIL PROTECTED]> wrote:
> On Wednesday 06 February 2008 16:33:11 [EMAIL PROTECTED] wrote:
> > +                    if (PARROT_ARG_SLURPY_ARRAY_ISSET(sig_item)){
> > +                        if (PARROT_ARG_NAME_ISSET(sig_item))
> > +                            sub->arg_info->named_slurpy = 1;
> > +                        else
> > +                            sub->arg_info->pos_slurpy = 1;
> > +                    }
> > +                    else if (PARROT_ARG_OPTIONAL_ISSET(sig_item)) {
> > +                        if (PARROT_ARG_NAME_ISSET(sig_item))
> > +                            sub->arg_info->named_optional++;
> > +                        else
> > +                            sub->arg_info->pos_optional++;
> > +                    }
> > +                    else if (!PARROT_ARG_OPT_FLAG_ISSET(sig_item)) {
> > +                        if (PARROT_ARG_NAME_ISSET(sig_item))
> > +                            sub->arg_info->named_required++;
> > +                        else
> > +                            sub->arg_info->pos_required++;
> > +                    }
>
> This logic confuses me slightly.  What's the difference between OPTIONAL and
> OPT_FLAG?
>

.sub 'lol'
  .param pmc cheezburger           :optional
  .param int i_can_haz_cheezburger :opt_flag

  unless i_can_haz_cheezburger goto frowny_face
  print "yay! i haz a "
  say cheezburger
  .return ()
 frowny_face:
  say ":("
.end

so, you see, we don't really care about opt_flag for arity purposes,
however, we may decide to add it to inspect for completeness in the
future.

~jerry

Reply via email to