On Fri, Jan 10, 2014 at 5:59 PM, Jeffrey Kegler <
[email protected]> wrote:

>  The behavior described seems tol be as documented.  "Discarding" is of
> lexemes, and does not happen inside lexemes.  That is, the lexemes form a
> series of tokens, some of which are discarded.  But discarding does not
> happen "within" the lexeme.
>
> If you are discarding space, but also want a lexeme to contain spaces, you
> have to arrange for that in some other way.  One is what you suggest:
> "Change "~" to "::=".  Another is to change the separator of <result item
> descriptor list> to include the spacing around a comma.
>
> This was a quick answer -- let me know if I've missed the point.
>
Nope, thanks, the answer is quite to the point.

What happended was I tried to write *[start, length, values]* with spaces
in a SLIF grammar and its creation failed.

This patch to metag.bnf, per your suggestion, would allow spaces

-<array descriptor> ~ '[' <result item descriptor list> ']'
-<result item descriptor list> ~ <result item descriptor>* separator => [,]
+<array descriptor> ::= '[' <result item descriptor list> ']'
+<result item descriptor list> ::= <result item descriptor>* separator =>
[,]
 <result item descriptor> ~ 'start' | 'length' | 'value' | 'values'

-- jeffey
>
ruslan


>
>  On 01/10/2014 07:05 AM, Ruslan Shvedov wrote:
>
>  String '[ start, length, values ]' can't be parsed with the grammar
> below, as more fully described in the attached script, unless <result item
> descriptor list> is changed to G1 rule.
>
>  <array descriptor> ::= '[' <result item descriptor list> ']'
>  # the test passes (whitespaces are discarded) if the below line becomes
> a G1 (s/~/::=/) rule
> <result item descriptor list> ~ <result item descriptor>* separator => [,]
> <result item descriptor> ~ 'start' | 'length' | 'value' | 'values'
>
>  :discard ~ whitespace
> whitespace ~ [\s]+
>
>  The following exception is thrown:
>
>  Error in SLIF parse: No lexemes accepted at line 1, column 10
>    Lexer "L0" rejected 1 lexeme(s)
>   Rejected lexeme #1: <result item descriptor list>; value="length,";
> length = 7
> * String before error: [ start,\s
> * The error was at line 1, column 10, and at character 0x006c 'l', ...
> * here: length, values ]
>
>   --
> You received this message because you are subscribed to the Google Groups
> "marpa parser" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "marpa parser" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
You received this message because you are subscribed to the Google Groups 
"marpa parser" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to