Armando, Nate and Panduranga Many thanks for the answers.
Regards, Alex 2012/8/28 Nate Young <youn...@gmail.com> > On Thu, Aug 23, 2012 at 11:22 AM, Alexsandro Soares > <prof.asoa...@gmail.com> wrote: > > Can you provide the code for this? > Certainly. > > The parser's current source position is stored in the InputState > record's `pos` field. That field is a SourcePos record consisting of > the current line and column position. Most parsers, however don't deal > directly with the raw InputState and SourcePositions, so we must write > a low-level function to examine those records, and return the value > we're interested in without consuming any input. The function would > look like this: > > (defn lineno [] > (fn [state _ _ eok _] > (bounce eok (:line (:pos state)) state))) > > The first line defines the name of the fn we can use in let->> > statements to get the current line number. > The second line is the standard parser interface, a function that > takes the state and 4 continutation functions, of which we're only > interested in the one that doesn't consume any input and doesn't > produce an error. > The last line pulls the current line number from the state, and passes > it along with the unchanged state to the `eok` continuation (`bounce` > is the function we use to ensure that no stack is consumed in the > process). > > Now, you can treat `lineno` just like any other parser (in truth, it > is very close in spirit to the `always` parser except that it operates > on the parsers current state). > > (let->> [current-line (lineno)] > (do-something-with current-line)) > > Hope this was helpful. > > Nate > > -- > 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 > -- Alexsandro Santos Soares, Prof. Dr. Faculdade de Computação Universidade Federal de Uberlândia - UFU - Sala 1B123 +55 (0xx34) 3239-4478 -- 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