Author: kjs Date: Fri Jul 11 06:24:05 2008 New Revision: 29292 Modified: trunk/docs/pdds/draft/pdd19_pir.pod
Log: [pdd19] add :lexid, but description not complete yet (not sure about details). Modified: trunk/docs/pdds/draft/pdd19_pir.pod ============================================================================== --- trunk/docs/pdds/draft/pdd19_pir.pod (original) +++ trunk/docs/pdds/draft/pdd19_pir.pod Fri Jul 11 06:24:05 2008 @@ -294,6 +294,9 @@ The brackets are not optional, although the string inside them is. +{{ NOTE: currently the brackets *are* optional. TODO: make decision whether + we want the brackets optional. }} + =item .pragma n_operators @@ -436,17 +439,17 @@ abbreviated) definition: .sub tr_00_init :immediate - .local pmc tr_array - tr_array = new 'FixedIntegerArray' - tr_array = 256 - ## [code to initialize tr_array omitted.] - .return (tr_array) + .local pmc tr_array + tr_array = new 'FixedIntegerArray' + tr_array = 256 + ## [code to initialize tr_array omitted.] + .return (tr_array) .end -This code is run at compile time, and the returned C<tr_array> is stored +This code is run at compile time, and the returned C<tr_array> is stored in the bytecode file in place of the sub. Other subs may then do: - .const .Sub tr_00 = 'tr_00_init' + .const .Sub tr_00 = 'tr_00_init' in order to fetch the constant. @@ -492,10 +495,20 @@ the method B<ToString> also be the v-table method B<get_string>), use B<:vtable("get_string")>. +When the B<:vtable> flag is set, the object PMC cn be referred to with C<self>, +as with the B<:method> flag. + + =item :outer(subname) The marked C<.sub> is lexically nested within the sub known by B<subname>. +=item :lexid( <string_constant> ) + +Identifies the subroutine by the specified string. + +{{ TODO: explain purpose and details of this flag. }} + =back @@ -953,8 +966,7 @@ {{ NOTE: This is likely because the parsing of heredocs happens later than the preprocessing of macros. Might be nice if we could parse heredocs at the macro -level, but not a high priority. compilers/pirc/new can do this, but there's a -bug in the heredoc handling on Win32 XP using MSVS. }} +level, but not a high priority. compilers/pirc/new can do this. }} Using braces, { }, allows you to span multiple lines for an argument. See runtime/parrot/include/hllmacros.pir for examples and possible usage. @@ -987,8 +999,6 @@ 1234 -{{ NOTE: braced arguments does not work correctly yet in compilers/pirc/new }} - =back =head3 Unique local labels