Oh my ...

You saved my hair! :)

Thanks a lot for your help and time.

On Monday, June 13, 2016 at 12:03:54 PM UTC+2, puzzler wrote:
>
> Looks like you left off a + in your regular expression for String.
>
> On Mon, Jun 13, 2016 at 2:59 AM, Hussein B. <hubag...@gmail.com 
> <javascript:>> wrote:
>
>> Thanks for your help.
>>
>> I tried this new grammar to match characters only:
>>
>> "
>>
>> TEST = OBJECT
>>
>> <WHITESPACE> = <#'\\s+'>
>>
>> OBJECT = CURLY_OPEN WHITESPACE* STRING WHITESPACE* (WHITESPACE* OBJECT 
>> WHITESPACE*)* CURLY_CLOSE
>>
>> <CURLY_OPEN> = <'{'>
>>
>> <CURLY_CLOSE> = <'}'>
>>
>> STRING = #'[a-zA-Z]'
>>
>> "
>>
>>
>> (parse "{harden {James}}")
>>
>>
>> Parse error at line 1, column 3:
>>
>> {harden {James}}
>>
>>   ^
>>
>> Expected one of:
>>
>> "}" (followed by end-of-string)
>>
>> "{"
>>
>> #"\s+"
>>
>> On Sunday, June 12, 2016 at 10:07:01 PM UTC+2, puzzler wrote:
>>>
>>> Regular expressions are treated with their ordinary Java/Clojure, greedy 
>>> semantics.
>>>
>>> Your regular expression for ITEM doesn't exclude whitespace or } 
>>> characters, so ITEM is matching "Harden }" which leaves no characters left 
>>> to match your grammar's right curly brace requirement.
>>>
>>> => (re-seq #"[^\"]+" "Harden }")
>>> ("Harden }")
>>>
>>> A solution would be to make the regex for ITEM more restrictive.
>>>
>>> On Sun, Jun 12, 2016 at 12:52 PM, Hussein B. <hubag...@gmail.com> wrote:
>>>
>>>> Hello,
>>>>
>>>> I'm playing around Instaparse library, starting very simple.
>>>>
>>>> For input like :
>>>>
>>>> { player }
>>>>
>>>> I created the following parser:
>>>>
>>>> (def ast
>>>>   (ist/parser
>>>>     "TEST = OBJECT
>>>>     <WHITESPACE> = <#'\\s+'>
>>>>     <CURLY_OPEN> = <'{'>
>>>>     <CURLY_CLOSE> = <'}'>
>>>>     ITEM = #'[^\"]+'
>>>>     OBJECT = CURLY_OPEN WHITESPACE* ITEM WHITESPACE* CURLY_CLOSE"))
>>>>
>>>>
>>>> In the REPL:
>>>>
>>>> user=> (ast "{ Harden } ")
>>>>
>>>> Parse error at line 1, column 12:
>>>>
>>>> { Harden } 
>>>>
>>>>            ^
>>>>
>>>> Expected one of:
>>>>
>>>> "}" (followed by end-of-string)
>>>>
>>>> #"\s+"
>>>>
>>>>
>>>> Any ideas what I'm doing wrong?
>>>>
>>>> Thanks for help.
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Clojure" group.
>>>> To post to this group, send email to clo...@googlegroups.com
>>>> Note that posts from new members are moderated - please be patient with 
>>>> your first post.
>>>> To unsubscribe from this group, send email to
>>>> clojure+u...@googlegroups.com
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/clojure?hl=en
>>>> --- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "Clojure" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to clojure+u...@googlegroups.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> -- 
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clo...@googlegroups.com 
>> <javascript:>
>> Note that posts from new members are moderated - please be patient with 
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+u...@googlegroups.com <javascript:>
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to clojure+u...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to