Hi Bogdan, That's a cool Idea ! I'm wondering if you wouldn't be better off with something like Instaparse <https://github.com/Engelberg/instaparse>.
Cheers, Jeremys. On Friday, August 23, 2013 3:37:53 PM UTC+2, Bogdan Opanchuk wrote: > > Hi all, > > For those who are not familiar with Scribble, it is basically a > preprocessor for Racket (a dialect of Lisp) which makes its syntax more > concise when working with lots of text, effectively turning it into a > template engine (see http://docs.racket-lang.org/scribble/reader.html for > details). TLDR: a very small subset of Scribble would transform > > @func{text text @other-func{more text} final words.} > > to > > (func "text text " (other-func "more text") " final words.") > > I would like to implement it in Clojure as a learning project (say, the > simple subset of it shown above, for a start). My question is, what should > I use? Let's say for simplicity that the entry point is some function > (load-file-scribble "filename.scribble") that returns Clojure code same as > (load-file "filename.clj") does. As far as my general understanding of > programming languages goes, I have to: > > 1. extend the tokenizer to support additional syntax; > 2. extend the parser (?) to convert the new tokens into corresponding > Clojure tokens; > 3. feed the result to the Clojure parser > > (although I might be completely wrong). > > There is the ``tools.reader`` module, which seems more or less suitable, > but I cannot find the hooks that would allow me to extend its functionality > in the required way. Is it the right tool, or should I look some other way? > > > -- -- 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/groups/opt_out.