Hi,

first of all, please excuse this cross-post.  I tried to get an answer on 
the instaparse list first, but it does not seem to reach so many instaparse 
users.


Unfortunately I do not know the correct name for the problem I face, hence 
the rather vague subject.

I am trying to parse a file format with Instaparse in which the early parts 
define the stuff allowed later in the file.

E.g. here is a declaration of allowed symbols:

# single chars or strings
symbols: a b c "str"

Later, the file contains declarations of enumerations of the form

enum-name: list of allowed values separated by whitespace

Further down in the file, I will find strings which are comprised of the 
symbols declared above, e.g.

"aabcbc&str;a"

and I will see structures that use the enumerations

StructName(enum-name=separated)

How would you approach this?

* Write a very loose grammar which accepts basically all unicode chars in 
the symbol strings and validate in a separate step?  Similarly accept all 
values in the structures and later validate against the enumerations?
* Two pass parsing which first reads the declarative stuff and then builds 
a second grammar programmatically to parse the rest?
* Is there a way to fill tables of allowed symbols during the parsing?
* Something completely different?

With that question out of the way, thanks for instaparse which is a 
pleasure to use while I am converting my 1400 LOClojureCode hand-rolled 
parser.


Kind regards,
Stefan

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