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