[svn:perl6-synopsis] r14592 - doc/trunk/design/syn
Author: pmichaud Date: Thu Oct 9 17:30:51 2008 New Revision: 14592 Modified: doc/trunk/design/syn/S02.pod Log: typo fix in S02 Modified: doc/trunk/design/syn/S02.pod == --- doc/trunk/design/syn/S02.pod(original) +++ doc/trunk/design/syn/S02.podThu Oct 9 17:30:51 2008 @@ -1565,7 +1565,7 @@ ($x) = %hash{$x} :delete; (The situation does not often arise for the slice modifiers above -because they are usually used in list context, which operators +because they are usually used in list context, which operates at comma precedence.) =item *
[svn:perl6-synopsis] r14581 - doc/trunk/design/syn
Author: pmichaud Date: Wed Sep 10 08:14:29 2008 New Revision: 14581 Modified: doc/trunk/design/syn/S03.pod Log: Typo fix last - list Modified: doc/trunk/design/syn/S03.pod == --- doc/trunk/design/syn/S03.pod(original) +++ doc/trunk/design/syn/S03.podWed Sep 10 08:14:29 2008 @@ -1816,7 +1816,7 @@ The expression is evaluated in list context (flattening any CCaptures), then a hash will be created from the list, taken as a list of CPairs. (Any element in the list that is not a CPair will pretend to be a key -and grab the next value in the last as its value.) Equivalent to +and grab the next value in the list as its value.) Equivalent to C%() (except that empty C%() means C%($/), while empty Chash() means an empty hash).
[svn:perl6-synopsis] r14559 - doc/trunk/design/syn
Author: pmichaud Date: Thu Jul 10 13:22:30 2008 New Revision: 14559 Modified: doc/trunk/design/syn/S12.pod Log: S12: Remove method fall back to subroutine. Modified: doc/trunk/design/syn/S12.pod == --- doc/trunk/design/syn/S12.pod(original) +++ doc/trunk/design/syn/S12.podThu Jul 10 13:22:30 2008 @@ -210,9 +210,6 @@ $obj.doit(1,2,3) doit $obj: 1,2,3 -If the method was not found, it will fall back to a subroutine call -instead, with the invocant becoming the first positional argument. - Indirect object notation now requires a colon after the invocant, even if there are no arguments after the colon:
[svn:perl6-synopsis] r14553 - doc/trunk/design/syn
Author: pmichaud Date: Fri Jun 20 19:56:43 2008 New Revision: 14553 Modified: doc/trunk/design/syn/S03.pod Log: typo fixes by diakopter++ Modified: doc/trunk/design/syn/S03.pod == --- doc/trunk/design/syn/S03.pod(original) +++ doc/trunk/design/syn/S03.podFri Jun 20 19:56:43 2008 @@ -171,7 +171,7 @@ { ... } -When found where a statement is expected, executes immediately. Othewise +When found where a statement is expected, executes immediately. Otherwise always defers evaluation of the inside scope. =item * @@ -217,7 +217,7 @@ Transliterations -tr/a..z/A..Z/; +tr/a..z/A..Z/ Note ranges use C.. rather than C-.
[svn:perl6-synopsis] r14554 - doc/trunk/design/syn
Author: pmichaud Date: Fri Jun 20 19:57:20 2008 New Revision: 14554 Modified: doc/trunk/design/syn/S05.pod Log: typo fixes by diakopter++ Modified: doc/trunk/design/syn/S05.pod == --- doc/trunk/design/syn/S05.pod(original) +++ doc/trunk/design/syn/S05.podFri Jun 20 19:57:20 2008 @@ -1499,7 +1499,7 @@ The last is equivalent to -/ ( foo | bar ) d ( foo | bar) / +/ ( foo | bar ) d ( foo | bar ) / Note that the self call of @@ -2065,7 +2065,7 @@ $something = ; /a|b|c|$something/; -In particular, C ? always matches the null string successfuly, +In particular, C ? always matches the null string successfully, and C ! always fails to match anything. =back
[svn:perl6-synopsis] r14492 - doc/trunk/design/syn
Author: pmichaud Date: Sun Jan 20 21:23:36 2008 New Revision: 14492 Modified: doc/trunk/design/syn/S29.pod Log: Update location of S29 to point to new repositories (the old openfoundry.org address is way out of date). Reported by diakopter++ . Modified: doc/trunk/design/syn/S29.pod == --- doc/trunk/design/syn/S29.pod(original) +++ doc/trunk/design/syn/S29.podSun Jan 20 21:23:36 2008 @@ -17,6 +17,7 @@ This pod is just a placeholder for the draft of Synopsis 29 that currently lives at -http://svn.openfoundry.org/pugs/docs/Perl6/Spec/Functions.pod +http://svn.pugscode.org/pugs/docs/Perl6/Spec/Functions.pod +http://perlcabal.org/syn/S29.html =for vim:set expandtab sw=4:
[svn:perl6-synopsis] r14458 - doc/trunk/design/syn
Author: pmichaud Date: Thu Sep 13 10:04:14 2007 New Revision: 14458 Modified: doc/trunk/design/syn/S05.pod Log: Fix up some unquoted punctuation in regexes. Modified: doc/trunk/design/syn/S05.pod == --- doc/trunk/design/syn/S05.pod(original) +++ doc/trunk/design/syn/S05.podThu Sep 13 10:04:14 2007 @@ -243,15 +243,15 @@ to be considered significant; they are replaced by a whitespace matching rule, C .ws . That is, - m:s/ next cmd = condition/ + m:s/ next cmd '=' condition/ is the same as: - m/ .ws next .ws cmd .ws = .ws condition/ + m/ .ws next .ws cmd .ws '=' .ws condition/ which is effectively the same as: - m/ \s* next \s+ cmd \s* = \s* condition/ + m/ \s* next \s+ cmd \s* '=' \s* condition/ But in the case of @@ -330,15 +330,15 @@ If followed by an Cx, it means repetition. Use C:x(4) for the general form. So - s:4x [ (.ident) = (\N+) $$] = $0 = $1; + s:4x [ (.ident) '=' (\N+) $$] = $0 = $1; is the same as: - s:x(4) [ (.ident) = (\N+) $$] = $0 = $1; + s:x(4) [ (.ident) '=' (\N+) $$] = $0 = $1; which is almost the same as: - s:c[ (.ident) = (\N+) $$] = $0 = $1 for 1..4; + s:c[ (.ident) '=' (\N+) $$] = $0 = $1 for 1..4; except that the string is unchanged unless all four matches are found. However, ranges are allowed, so you can say C:x(1..4) to change anywhere @@ -462,7 +462,7 @@ The C:i, C:s, C:Perl5, and Unicode-level modifiers can be placed inside the regex (and are lexically scoped): - m/:s alignment = [:i left|right|cent[er|re]] / + m/:s alignment '=' [:i left|right|cent[er|re]] / As with modifiers outside, only parentheses are recognized as valid brackets for args to the adverb. In particular: @@ -2085,20 +2085,20 @@ can also be written: - $result = mm/ (\S+) = (\S+)/; + $result = mm/ (\S+) '=' (\S+)/; ($key, $val) = @$result; To get a single capture into a string, use a subscript: - $mystring = { mm/ (\S+) = (\S+)/[0] }; + $mystring = { mm/ (\S+) '=' (\S+)/[0] }; To get all the captures into a string, use a Izen slice: - $mystring = { mm/ (\S+) = (\S+)/[] }; + $mystring = { mm/ (\S+) '=' (\S+)/[] }; Or cast it into an array: - $mystring = @( mm/ (\S+) = (\S+)/ ); + $mystring = @( mm/ (\S+) '=' (\S+)/ ); Note that, as a scalar variable, C$/ doesn't automatically flatten in list context. Use C@() as a shorthand for C@($/) to flatten @@ -2457,7 +2457,7 @@ C| or C|| (but not after each C or C). Hence: # $0 $1$2 $3$4 $5 - $tune_up = rx/ (don't) (ray) (me) (for) (solar tea), (d'oh!) + $tune_up = rx/ (don't) (ray) (me) (for) (solar tea), (d'oh!) # $0 $1 $2$3$4 | (every) (green) (BEM) (devours) (faces) /; @@ -2800,7 +2800,7 @@ This Ifollow-on behavior is particularly useful for reinstituting Perl5 semantics for consecutive subpattern numbering in alternations: - $tune_up = rx/ (don't) (ray) (me) (for) (solar tea), (d'oh!) + $tune_up = rx/ (don't) (ray) (me) (for) (solar tea), (d'oh!) | $6 = (every) (green) (BEM) (devours) (faces) # $7 $8$9$10 /; @@ -3267,9 +3267,9 @@ so too a grammar can collect a set of named rules together: grammar Identity { - rule name { Name = (\N+) } - rule age { Age = (\d+) } - rule addr { Addr = (\N+) } + rule name { Name '=' (\N+) } + rule age { Age '=' (\d+) } + rule addr { Addr '=' (\N+) } rule desc { name \n age \n
[svn:perl6-synopsis] r14368 - doc/trunk/design/syn
Author: pmichaud Date: Tue Apr 3 07:19:57 2007 New Revision: 14368 Modified: doc/trunk/design/syn/S05.pod Log: Add leading whitespace to lines so that the table actually ends up looking like a table instead of wrapping the text onto a single line. Modified: doc/trunk/design/syn/S05.pod == --- doc/trunk/design/syn/S05.pod(original) +++ doc/trunk/design/syn/S05.podTue Apr 3 07:19:57 2007 @@ -110,11 +110,11 @@ Here is a table that summarizes the distinctions: -AlphanumericsNon-alphanumerics Mixed + AlphanumericsNon-alphanumerics Mixed -Literal glyphs a1_\* \$ \. \\ \' K\-9\! -Metasyntax \a \1 \_ * $ .\' \K-\9! -Quoted glyphs 'a' '1' '_' '*' '$' '.' '\\' '\'' 'K-9!' + Literal glyphs a1_\* \$ \. \\ \' K\-9\! + Metasyntax \a \1 \_ * $ .\' \K-\9! + Quoted glyphs 'a' '1' '_' '*' '$' '.' '\\' '\'' 'K-9!' In other words, identifier glyphs are literal (or metasyntactic when escaped), non-identifier glyphs are metasyntactic (or literal when
[svn:perl6-synopsis] r11316 - doc/trunk/design/syn
Author: pmichaud Date: Tue Aug 22 11:00:04 2006 New Revision: 11316 Modified: doc/trunk/design/syn/S05.pod Log: Change If the first character after the angle is whitespace to If the first character after the identifier is whitespace for before regex constructs. Modified: doc/trunk/design/syn/S05.pod == --- doc/trunk/design/syn/S05.pod(original) +++ doc/trunk/design/syn/S05.podTue Aug 22 11:00:04 2006 @@ -641,7 +641,7 @@ foo('bar') -If the first character after the angle is whitespace, the +If the first character after the identifier is whitespace, the subsequent text (following any whitespace) is passed as regex, so: foo bar
[svn:perl6-synopsis] r9729 - doc/trunk/design/syn
Author: pmichaud Date: Fri Jun 30 15:53:39 2006 New Revision: 9729 Modified: doc/trunk/design/syn/S05.pod Log: describe below - described below Modified: doc/trunk/design/syn/S05.pod == --- doc/trunk/design/syn/S05.pod(original) +++ doc/trunk/design/syn/S05.podFri Jun 30 15:53:39 2006 @@ -615,7 +615,7 @@ Both C and C are metacharacters, and are usually (but not always) used in matched pairs. (Some combinations of metacharacters function as standalone tokens, and these may include angles. These are -describe below.) +described below.) For matched pairs, the first character after C determines the behavior of the assertion:
[svn:perl6-synopsis] r9298 - doc/trunk/design/syn
Author: pmichaud Date: Thu May 18 10:24:58 2006 New Revision: 9298 Modified: doc/trunk/design/syn/S02.pod Log: typo: change BBlock to CBlock Modified: doc/trunk/design/syn/S02.pod == --- doc/trunk/design/syn/S02.pod(original) +++ doc/trunk/design/syn/S02.podThu May 18 10:24:58 2006 @@ -353,7 +353,7 @@ Built-in object types start with an uppercase letter. This includes immutable types (e.g. CInt, CNum, CComplex, CRational, CStr, -CBit, CRegex, CSet, CJunction, CCode, BBlock, CList, +CBit, CRegex, CSet, CJunction, CCode, CBlock, CList, CSeq), as well as mutable (container) types, such as CScalar, CArray, CHash, CBuf, CRoutine, CModule, etc.
[svn:perl6-synopsis] r8886 - doc/trunk/design/syn
Author: pmichaud Date: Thu Apr 20 11:48:29 2006 New Revision: 8886 Modified: doc/trunk/design/syn/S12.pod Log: * Fixed long dot constructs to reflect new syntax. Modified: doc/trunk/design/syn/S12.pod == --- doc/trunk/design/syn/S12.pod(original) +++ doc/trunk/design/syn/S12.podThu Apr 20 11:48:29 2006 @@ -221,7 +221,7 @@ .doit()# okay, no arguments .doit () # ILLEGAL (two terms in a row) .doit.() # okay, no arguments, same as .doit() -.doit .() # okay, no arguments, same as .doit() +.doit. .() # okay, no arguments, same as .doit() (long dot form) However, you can turn any of the legal forms above into a list operator by appending a colon: @@ -230,7 +230,7 @@ .doit(1): 2,3 # okay, one argument plus list .doit (): 1,2,3# ILLEGAL (two terms in a row) .doit.(1): 2,3 # okay, same as .doit(1,2,3) -.doit .(1,2): 3# okay, same as .doit(1,2,3) +.doit. .(1,2): 3 # okay, same as .doit(1,2,3) In particular, this allows us to pass a closure in addition to the normal arguments:
[svn:perl6-plans] r8519 - doc/trunk/plans
Author: pmichaud Date: Fri Mar 31 12:29:42 2006 New Revision: 8519 Modified: doc/trunk/plans/milestones.pod Log: Updated milestones document with some of the latest happenings related to PGE. Modified: doc/trunk/plans/milestones.pod == --- doc/trunk/plans/milestones.pod (original) +++ doc/trunk/plans/milestones.pod Fri Mar 31 12:29:42 2006 @@ -32,11 +32,16 @@ At present the grammar engine is able to load entire sets of rules, organize them into grammars, and allow rules to be created using either Perl 6 rule syntax or as custom PIR -subroutines. The next immediate steps are to (1) design the -grammar engine so that the p6rule parser is itself a callable -rule, to make it possible to parse rule expressions within Perl -programs, and (2) create a parser that parses Perl 6 programs -into Match objects. +subroutines. The grammar engine also provides callable +rules for parsing rule expressions (using Perl 6 rule +syntax, Perl 5 regular expression syntax, or wildcard +globs). There is also some preliminary work being done +on creating parsers from grammars in BNF syntax. + +A preliminary Perl 6 parser has also been created with +PGE and is being extended to cover more of the Perl 6 +language; the parser is currently held in the +languages/perl6/ directory of the Parrot repository. =head3 Tasks @@ -76,9 +81,9 @@ =item Quoted assertions ( C 'text' and text ) -=item Develop a grammar engine test suite - in progress +=item Develop a grammar engine test suite - ongoing -=item Use the grammar engine to parse p6 rule expressions - in progress +=item Use the grammar engine to parse p6 rule expressions - done =item Develop the Perl 6 grammar - in progress @@ -88,9 +93,7 @@ =item Match against lexical variables -=item Closures in rules - simple version done - -=head3 Dependencies +=item Closures in rules - done =item Parrot character classes in string - done @@ -125,7 +128,6 @@ in Parrot hash PMCs; this is needed for defining an efficient bottom-up parser for parsing expressions. - =head3 Status Not started
[svn:perl6-synopsis] r8328 - doc/trunk/design/syn
Author: pmichaud Date: Fri Mar 17 08:05:47 2006 New Revision: 8328 Modified: doc/trunk/design/syn/S12.pod Log: Typo fix: In Perl 6 gives you a choice. - Perl 6 gives you a choice. Modified: doc/trunk/design/syn/S12.pod == --- doc/trunk/design/syn/S12.pod(original) +++ doc/trunk/design/syn/S12.podFri Mar 17 08:05:47 2006 @@ -297,7 +297,7 @@ =head1 Class methods Other OO languages give you the ability to declare class methods that either don't -need or actively prohibit calls on instances. In Perl 6 gives you a choice. +need or actively prohibit calls on instances. Perl 6 gives you a choice. If you declare an ordinary method, it can function as a class method when you pass it a prototype object such as Dog regardless of how defined the prototype object is, as long as the method body doesn't try to access any information that