Changeset 16859

Show
Ignore:
Timestamp:
07/06/07 19:46:08 (17 months ago)
Author:
lwall
Message:

[STD] distinguish statement list from context-sensitive semi list syntactically

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/perl6/Perl-6.0.0-STD.pm

    r16858 r16859  
    377377# we might be embedded in something else. 
    378378rule comp_unit (:$begin_compunit is context = 1) { 
    379     <semilist> 
     379    <statementlist> 
    380380    [ <$+unitstop> || <panic: Can't understand next input--giving up> ] 
    381381    {*} 
     
    397397token block { 
    398398    '{' 
    399     <semilist> 
     399    <statementlist> 
    400400    [ '}' || <panic: Missing right brace> ] 
    401401    [ 
     
    419419} 
    420420 
     421# statement semantics 
     422rule statementlist { 
     423    <statement>* 
     424    {*} 
     425} 
     426 
     427# embedded semis, context-dependent semantics 
    421428rule semilist { 
    422429    <statement>* 
     
    874881 
    875882token postcircumfix:sym<( )> (--> Methodcall) 
    876     { '(' <semilist> ')' {*} }                                      #= ( ) 
     883    { '(' <semilist> ')' {*} }                                  #= ( ) 
    877884 
    878885token postcircumfix:sym<[ ]> (--> Methodcall) 
    879     { '[' <semilist> ']' {*} }                                      #= [ ] 
     886    { '[' <semilist> ']' {*} }                                  #= [ ] 
    880887 
    881888token postcircumfix:sym<{ }> (--> Methodcall) 
    882     { '{' <semilist> '}' {*} }                                      #= { } 
     889    { '{' <semilist> '}' {*} }                                  #= { } 
    883890 
    884891token postcircumfix:sym«< >» (--> Methodcall) 
     
    911918    {*} 
    912919} 
    913  
    914 token circumfix:sym<( )> { '(' <semilist> ')' {*} }            #= ( ) 
    915 token circumfix:sym<[ ]> { '[' <semilist> ']' {*} }            #= [ ] 
    916  
    917 token circumfix:sym«< >»   { '<'  <anglewords '>'> '>'  {*} } #'#= < > 
    918 token circumfix:sym«<< >>» { '<<' <shellwords '>>'> '>>' {*} }#'#= << >> 
    919 token circumfix:sym<« »>   { '«'  <shellwords '»'> '»'  {*} }   #= « » 
    920920 
    921921token anglewords($stop) { 
     
    18741874 
    18751875token circumfix:sigil ( --> Term) 
    1876     { <sym <sigil>> $<sym>:='(' <semilist> $<sym>:=')' {*} }        #= $( )  
     1876    { <sym <sigil>> $<sym>:='(' <semilist> $<sym>:=')' {*} }    #= $( )  
    18771877 
    18781878token circumfix:typecast ( --> Term) 
    1879     { <sym <typename>> $<sym>:='(' <semilist> $<sym>:=')' {*} }     #= Type( )  
     1879    { <sym <typename>> $<sym>:='(' <semilist> $<sym>:=')' {*} } #= Type( )  
    18801880 
    18811881token circumfix:sym<( )> ( --> Term) 
    1882     { '(' <semilist> ')'  {*} }                                     #= ( ) 
    1883  
    1884 token postcircumfix:sym<( )> ( --> Term) 
    1885     { '(' <semilist> ')'  {*} }                                     #= ( ) 
     1882    { '(' <statementlist> ')'  {*} }                            #= ( ) 
     1883 
     1884token circumfix:sym<[ ]> ( --> Term) 
     1885    { '[' <statementlist> ']' {*} }                             #= [ ] 
     1886 
     1887token circumfix:sym«< >» ( --> Term) 
     1888    { '<'  <anglewords '>'> '>'  {*} }                        #'#= < > 
     1889token circumfix:sym«<< >>» ( --> Term) 
     1890    { '<<' <shellwords '>>'> '>>' {*} }                       #'#= << >> 
     1891token circumfix:sym<« »> ( --> Term) 
     1892    { '«'  <shellwords '»'> '»'  {*} }                          #= « » 
    18861893 
    18871894## methodcall