## $Id: TODO.pod 23809 2007-12-12 19:51:55Z pmichaud $
=head1 Things that NQP needs
This list is based on discussions with pmichaud and unimplemented
items in the grammar, C<src/Grammar.pg>.
Last updated: 2007-11-24
=head2 Code
=over 4
=item * C<&> sigil
Handle the mapping between C<&foo> and 'foo' subroutines.
=item * C<return> statement
While it seems like implementing C<return> would be a simple
matter of generating PIR C<.return> statements, it's not quite
that simple, because C<return> statements can occur inside of
nested blocks.
So, we need an NQP C<return> statement to throw a "return exception",
which is then caught by the outermost block of the currently
executing subroutine and then used as the argument to C<.return>.
Fortunately, the new design of S05 means that we don't really need
return statements for developing action grammars, so this is no
longer as much of a priority as it was.
=item * Named argument (not param) support
C<PAST> now supports named arguments in subroutines, we simply need
to modify the grammar to parse named arguments in subroutine
declarations and build the appropriate actions to fill in the
C<PAST::Var> parameter nodes.
=item * Optional arguments
=back
=head2 Tests
=over 4
=item * Method ops
We should be able to load an external module (Pm suggests Test.pbc)
and exercise methods using that.
=item * Hash key access C<$varE<lt>someKeyE<gt>>
=item * List member access C<$var[index]>
=item * Match variable access C<$/>
=item * Scalar context $( ... )
=item * List context @( ... )
=item * Variables with twigils
=back
syntax highlighted by Code2HTML, v. 0.9.1