Related articles |
---|
A C++ Parser toolkit moudgill@cs.cornell.EDU (Mayan Moudgill) (1993-04-11) |
Re: A C++ Parser toolkit parrt@ecn.purdue.edu (1993-04-12) |
C++ Parser toolkit: crude mmap added. moudgill@cs.cornell.EDU (Mayan Moudgill) (1993-04-14) |
Newsgroups: | comp.lang.c++,comp.compilers |
From: | Mayan Moudgill <moudgill@cs.cornell.EDU> |
Summary: | a toolkit for quickly implementing a parser (including CSGs) |
Keywords: | C++, parse, tools, comment |
Organization: | Cornell Univ. CS Dept, Ithaca NY 14853 |
Date: | Sun, 11 Apr 1993 02:43:30 GMT |
I've implemented a parser/scanner/text-matcher :) that allows a programmer
to quickly specify a grammar, and to attach actions to productions.
For instance, the following code:
int name(Parse& P)
{
Token t;
P, IDENT(t);
if( P && StbFind(t) ) {
return 1;
}
return 0;
}
int stmt(Parse & P)
{
Token t;
P, MATCH(name), "=", NUMBER(val);
}
matches an identifier (i.e. [a-zA-Z_][a-zA-Z_0-9]*), '=', number string,
but only if identifier is already in the symbol-table.
NOTES: It works on a Sun 4.0 with C++ 3.0. It _MIGHT_ work on some other OSes
I've used mmap() to implement it. Your OS might have the function;
then again it might not. Even if it does, its parameters might not be
the same.
PS. Its also ftp'able as pub/Parse.shar from ftp.cs.cornell.edu
:)
Mayan
[I've put this in the compilers FTP archives at primost.cs.wisc.edu as
c++kit.Z. If you can't FTP, it's available by e-mail from the mail server
at compilers-server@iecc.cambridge.ma.us; send "send c++kit" to retrieve it.
Please FTP if you can, the mail server is linked to the outside world by a
single dial-up modem. -John]
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.