* Sample functions for String Parsers in Lisp
@ 2009-10-13 10:34 Nordlöw
2009-10-13 12:47 ` Pascal J. Bourguignon
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Nordlöw @ 2009-10-13 10:34 UTC (permalink / raw)
To: help-gnu-emacs
Has anybody any good sample code in elisp that shows how to
conveniently do parsing of code contained in a string?
Reason: I am writing a parser that converts Emacs regexps (back) into
rx expressions. I need this for my file magic pattern matcher in order
to read as little data as possible from the file (locality) and do
several matchings in parallel.
I think the main loop should be string-iteration-driven using while()
and aref() and length() I presume.
Any suggestions?,
Nordlöw
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Sample functions for String Parsers in Lisp
2009-10-13 10:34 Sample functions for String Parsers in Lisp Nordlöw
@ 2009-10-13 12:47 ` Pascal J. Bourguignon
2009-10-13 16:19 ` Helmut Eller
2009-10-13 23:18 ` Andreas Politz
2009-10-14 1:59 ` LanX
2 siblings, 1 reply; 5+ messages in thread
From: Pascal J. Bourguignon @ 2009-10-13 12:47 UTC (permalink / raw)
To: help-gnu-emacs
Nordlöw <per.nordlow@gmail.com> writes:
> Has anybody any good sample code in elisp that shows how to
> conveniently do parsing of code contained in a string?
>
> Reason: I am writing a parser that converts Emacs regexps (back) into
> rx expressions. I need this for my file magic pattern matcher in order
> to read as little data as possible from the file (locality) and do
> several matchings in parallel.
>
> I think the main loop should be string-iteration-driven using while()
> and aref() and length() I presume.
>
> Any suggestions?,
1- Read the Dragon Book.
http://www.amazon.com/Compilers-Principles-Techniques-Alfred-Aho/dp/0201100886
2- Use a parser generator.
http://cedet.sourceforge.net/info/semantic.html
--
__Pascal Bourguignon__
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Sample functions for String Parsers in Lisp
2009-10-13 12:47 ` Pascal J. Bourguignon
@ 2009-10-13 16:19 ` Helmut Eller
0 siblings, 0 replies; 5+ messages in thread
From: Helmut Eller @ 2009-10-13 16:19 UTC (permalink / raw)
To: help-gnu-emacs
* Pascal J. Bourguignon [2009-10-13 14:47+0200] writes:
> Nordlöw <per.nordlow@gmail.com> writes:
>> Any suggestions?,
>
> 1- Read the Dragon Book.
> http://www.amazon.com/Compilers-Principles-Techniques-Alfred-Aho/dp/0201100886
>
> 2- Use a parser generator.
> http://cedet.sourceforge.net/info/semantic.html
3. Use parsing expression grammars:
http://www.emacswiki.org/emacs/peg.el
Helmut
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Sample functions for String Parsers in Lisp
2009-10-13 10:34 Sample functions for String Parsers in Lisp Nordlöw
2009-10-13 12:47 ` Pascal J. Bourguignon
@ 2009-10-13 23:18 ` Andreas Politz
2009-10-14 1:59 ` LanX
2 siblings, 0 replies; 5+ messages in thread
From: Andreas Politz @ 2009-10-13 23:18 UTC (permalink / raw)
To: help-gnu-emacs
Nordlöw <per.nordlow@gmail.com> writes:
> Reason: I am writing a parser that converts Emacs regexps (back) into
> rx expressions. I need this for my file magic pattern matcher in order
> to read as little data as possible from the file (locality) and do
> several matchings in parallel.
>
[...]
> Any suggestions?,
> Nordlöw
Yes, save yourself the headache and make the assumption, that all magic
pattern are fully contained in the first n bytes of the file.
-ap
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Sample functions for String Parsers in Lisp
2009-10-13 10:34 Sample functions for String Parsers in Lisp Nordlöw
2009-10-13 12:47 ` Pascal J. Bourguignon
2009-10-13 23:18 ` Andreas Politz
@ 2009-10-14 1:59 ` LanX
2 siblings, 0 replies; 5+ messages in thread
From: LanX @ 2009-10-14 1:59 UTC (permalink / raw)
To: help-gnu-emacs
> Any suggestions?,
> Nordlöw
Do you speak Perl?
If yes you may wanna have a look at the structure of the YAPE module
and try to port the parser.
http://search.cpan.org/dist/YAPE-Regex-Explain/Explain.pm
IMHO you just have to get alog with the backslasheritis of elisp...
Good luck
Rolf
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2009-10-14 1:59 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-13 10:34 Sample functions for String Parsers in Lisp Nordlöw
2009-10-13 12:47 ` Pascal J. Bourguignon
2009-10-13 16:19 ` Helmut Eller
2009-10-13 23:18 ` Andreas Politz
2009-10-14 1:59 ` LanX
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).