[antlr-interest] Building an HTTP parser

Tom Wells drshade at gmail.com
Mon Dec 29 07:02:11 PST 2008


> How embedded?  Are we talking "HC11 with 4K of RAM and 16K of OTP ROM"
> embedded or "Coldfire with all the RAM and FLASH I could ever possibly need"
> embedded?

The device is a PCI card running a PowerPC based CPU with approx 140MB
usable RAM, it runs a stripped BSD based kernel cross-compiled with a
custom GCC compiler. I doubt that we will have a problem running the
code generated by ANTLR/C, and brief eye-balling on the genned code
doesn't raise any red flags at this stage.

> ANTLR (and for that matter the LEXes and YACCs of the world) are eminently
> suitable for doing exactly what you propose.  The "unstructured vs.
> structured" concern you stated is largely beside the point.  Parsing is, by
> definition, the taking of a stream of text with some sort of defined
> structure and interpreting it.  The only variable is how complex and/or
> sloppy the specification of the language in question is.  Parsing HTML with
> tools such as ANTLR should be a relatively straightforward endeavor.

I don't care about the HTML contained in the body, and I might only
ever be interested in breaking up POST body data in an HTTP request. I
am however interested in the HTTP status (first line), headers
(KEY=VALUE) and obtaining the body in it's entirety as a blob. The
HTTP spec is pretty daunting, but as far as I can see should be simply
breaking up tokens based on CRLF's in the input.

> Hope this helps Tom.

Thanks Greg, this does indeed. My next steps will be to try and get my
hands on the antlr book, and see if I can hunt down my 10 year old
varsity course notes on BNF and compiler-compilers.

All the best for 2009!

-- 
http://www.tomwells.org


More information about the antlr-interest mailing list