| CODENOTIFIER | HelpYou are not signed inSign in |
Project: Pugs
Revision: 22177
Author: lwall
Date: 07 Sep 2008 00:21:06
Changes:[STD] trying "where" as Junctional infix resembling "&", but with order guaranteed
Files:| ... | ...@@ -2568,7 +2568,7 @@ | |
| 2568 | 2568 | <sym> |
| 2569 | 2569 | <longname> { $¢.add_type($<longname>); } |
| 2570 | 2570 | [ of <fulltypename> ]? |
| 2571 | where <termish> | |
| 2571 | [where <EXPR(item %chaining)> ]? # (EXPR can parse multiple where clauses) | |
| 2572 | 2572 | } |
| 2573 | 2573 | |
| 2574 | 2574 | token type_declarator:enum { |
| ... | ...@@ -2926,6 +2926,9 @@ | |
| 2926 | 2926 | token infix:sym<&> ( --> Junctive_and) |
| 2927 | 2927 | { <sym> } |
| 2928 | 2928 | |
| 2929 | token infix:where ( --> Junctive_and) | |
| 2930 | { <sym> } | |
| 2931 | ||
| 2929 | 2932 | |
| 2930 | 2933 | ## junctive or (any) |
| 2931 | 2934 | token infix:sym<|> ( --> Junctive_or) |
| ... | ...@@ -3202,12 +3205,7 @@ | |
| 3202 | 3205 | | '.(' <in: ')', 'semilist', 'argument list'> {*} #= func args |
| 3203 | 3206 | | '(' <in: ')', 'semilist', 'argument list'> {*} #= func args |
| 3204 | 3207 | | <.unsp> '.'? '(' <in: ')', 'semilist', 'argument list'> {*} #= func args |
| 3205 | | {} <?before \s> <.ws> | |
| 3206 | [ | |
| 3207 | || <!{ $istype }> <!infixstopper> <arglist> { $listopish = 1 } | |
| 3208 | || <?{ $istype }> ['where' <.ws> <constraints=termish> <.ws>]* | |
| 3209 | ] | |
| 3210 | ||
| 3208 | | {} [<?before \s> <!{ $istype }> <.ws> <!infixstopper> <arglist> { $listopish = 1 }]? | |
| 3211 | 3209 | ] |
| 3212 | 3210 | |
| 3213 | 3211 | [ |
| ... | ...@@ -3233,9 +3231,6 @@ | |
| 3233 | 3231 | <?before [ '«' | '<' | '{' | '<<' ] > <postcircumfix> |
| 3234 | 3232 | {*} #= packagevar |
| 3235 | 3233 | ]? |
| 3236 | # subset type? | |
| 3237 | <.ws> | |
| 3238 | [ 'where' <.ws> <constraints=termish> <.ws> ]* | |
| 3239 | 3234 | {*} #= typename |
| 3240 | 3235 | |
| 3241 | 3236 | # unrecognized names are assumed to be post-declared listops. |