Miko O'Sullivan wrote: > OK, would that notation ( @arr[] = $var ) be something that could be added > by a module, in the same way that operators and /* */ will be addable? I > don't know exactly what the syntax for adding /* */ will be
Something like this: grammar Perl::With::Ugly::C::Comments is Perl { rule ws { <Perl::ws> | <ugly_c_comment> } rule ugly_c_comment { /\* [ .*? <ugly_c_comment>? ]*? \*/ { let $0 := " " } } } caller{MY}.parser(Perl::With::Ugly::C::Comments); > but if you can > say to the preprocessor something like s#/*#=comment#g then perhaps you can > also say something like s#\[\s*\]\s*=#binpush#g and then also define binpush > as an operator. You could rebuild the lexical parser grammar as above (to allow the lamentable C<@arr[] = $scalar> syntax), or you could just create a new operator with something like: module BinaryPush; my sub operator:<-- is exported (@array is rw, $scalar) { push @array, $scalar; } # and elsewhere... use BinaryPush; @arr <-- $val; Damian