## $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. Last updated: 2007-11-24 =head2 Code =over 4 =item * C<&> sigil Handle the mapping between C<&foo> and 'foo' subroutines. =item * C statement While it seems like implementing C would be a simple matter of generating PIR C<.return> statements, it's not quite that simple, because C statements can occur inside of nested blocks. So, we need an NQP C 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 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 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<$varEsomeKeyE> =item * List member access C<$var[index]> =item * Match variable access C<$/> =item * Scalar context $( ... ) =item * List context @( ... ) =item * Variables with twigils =back