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. <[email protected]
> <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 [email protected]
>> <javascript:>
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> [email protected] <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 [email protected] <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 [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/d/optout.