Hi,

If you are looking for PEG parsers, you can also try using PetitParser as it 
comes with several debugging and inspection tools.

Cheers,
Doru


> On Jun 23, 2016, at 10:23 PM, stepharo <steph...@free.fr> wrote:
> 
> Hi sean
> 
> Xtreams? Just to be sure is PEGParser built using Xtreams?
> 
> 
> Stef
> 
> Le 23/6/16 à 02:20, Sean P. DeNigris a écrit :
>> I converted parts of rfc 5322 to the following:
>>     grammarEmailAddress
>> 
>>      ^'addrspec       <-   localpart "@" domain
>> localpart      <-   dotatom / quotedstring /* obs-local-part */
>> domain          <-   dotatom / domainliteral /* obs-domain */
>> domainliteral  <-   [CFWS] "[" *([FWS] dtext) [FWS] "]" [CFWS]
>> dtext           <- [\x000021-\x000050] /             /* Printable US-ASCII */
>>                                                                              
>> [\x000054-\x00007E]      /* characters not including */
>>                                                                              
>> /* / obs-dtext          ;  "[", "]", or "\" */
>>      
>> /* rfc5234 B.1 */
>> ALPHA          <-  [\x000041-\x00005A] / [\x000061-\x00007A]
>> DIGIT          <-  [\x000030-\x000039]
>> HTAB           <-  [\x000009] /* horizontal tab */
>> SP             <-  [\x000020]
>> WSP            <-  SP / HTAB
>> 
>> /* 3.2.2. Folding White Space and Comments */
>> FWS             <-   ([*WSP CRLF] 1*WSP)
>> /* obs-FWS */
>>    ctext           <-   [\x000021-\x000027] /
>>                        [\x00002A-\x00005B] /
>>                        [\x00005D-\x00007E]
>> 
>>    ccontent        <-   ctext / quotedpair / comment
>> 
>>    comment         <-   "(" *([FWS] ccontent) [FWS] ")"
>> 
>>    CFWS            <-   (1*([FWS] comment) [FWS]) / FWS
>> /* 3.2.1.  Quoted characters */
>>    quotedpair     <-   ("\" (VCHAR / WSP)) /* / obs-qp */
>> /* 3.2.3.  Atom */
>> atext           <-   ALPHA / DIGIT /
>>                        "!" / "#" /
>>                        "$" / "%" /
>>                        "&" / "''" /
>>                        "*" / "+" /
>>                        "-" / "/" /
>>                        "=" / "?" /
>>                        "^" / "_" /
>>                        "`" / "{" /
>>                        "|" / "}" /
>>                        "~"
>> 
>>    atom            <-   [CFWS] 1*atext [CFWS]
>> 
>>    dotatomtext   <-   1*atext *("." 1*atext)
>> 
>>    dotatom        <-   [CFWS] dotatomtext [CFWS]
>> 
>> /* 3.2.4.  Quoted Strings */
>> qtext           <-   [\x000021] /                                            
>>         /* Printable US-ASCII */
>>                      [\x000023-\x00005B] /   /* characters not including */
>>                      [\x00005D-\x00007E]             /* "\" or the quote 
>> character */
>>                        /* obs-qtext */
>> qcontent        <-   qtext / quotedpair
>> quotedstring   <-   [CFWS] DQUOTE *([FWS] qcontent) [FWS] DQUOTE [CFWS]'
>> 
>> When I evaluate:
>>     parser := PEGParser parserPEG parse: 'Grammar' stream: PEGParser
>> grammarEmailAddress actor: PEGParserParser new.
>> 
>> I get: KeyNotFound: key 'quotedstring' not found in Dictionary
>> 
>> How am I supposed to debug that to find the typo in my giant string above?!
>> 
>> 
>> 
>> -----
>> Cheers,
>> Sean
>> --
>> View this message in context: 
>> http://forum.world.st/Xtreams-Debugging-Grammars-tp4902581.html
>> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>> 
>> 
> 
> 

--
www.tudorgirba.com
www.feenk.com

"Things happen when they happen,
not when you talk about them happening."


Reply via email to