This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2015-08-17
Channels
- # admin-announcements (63)
- # beginners (1)
- # boot (83)
- # cider (17)
- # clojure (33)
- # clojure-android (3)
- # clojure-france (3)
- # clojure-gamedev (1)
- # clojure-russia (20)
- # clojure-sg (9)
- # clojurescript (81)
- # core-async (77)
- # cursive (13)
- # datomic (30)
- # hoplon (7)
- # instaparse (54)
- # ldnclj (1)
- # off-topic (4)
- # om (2)
- # onyx (23)
- # re-frame (16)
- # reagent (3)
- # yada (2)
@aengelberg: made some progress this weekend with my instaparse project! https://github.com/adzerk-oss/zerkdown
@micha this project is very cool
Does your ebnf allow [{]
?
<VEC-CHAR> = !(LSB | RSB | DQ) ANY-CHAR
looks like it would allow mismatched map delimiters inside it
then it would still allow mismatched quotes and delimiters because strings and maps don't successfully parse
maybe (!(LSB | RSB | LCB | RCB | DQ) ANY-CHAR) | STRING | CLJ
i will parse one level of indentation, then for each :BLOCK
call insta again on the body
Just make sure instaparse Failures are returned / shortcircuited properly
if a "sub-parse" returns a failure, then what?
I imagine it will be most idiomatic to call insta/parse
again within the transformer. But my point is, if a parse failure arises (malformed zerkdown) within that, you will need to propagate that error properly
negative lookahead = make sure this thing does not successfully parse
!STRING x
means no "complete well-formed strings" allowed, but you probably wanted "no double-quotes of any kind really"
and then you can add in | STRING
to allow well-formed strings
that's fair, but if [{]}]
is allowed it's not exactly obvious where it ends
anyway I don't think it's super hard to make the delimiters correct. (!(LSB | RSB | LCB | RCB | DQ) ANY-CHAR) | STRING | CLJ
That basically says "no double-quotes, UNLESS there is a well formed string"
yeah. just don't forget negative testing
really cool idea. what is the intended use case for zerkdown?
but for making webapps it's really nice to have a "prose" syntax you can customize for your use case