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 
> <javascript:>> 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 
>> <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