blob: 86f134b8b947c269d08a64c0a6e8d6d9e4f8d9b9 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type"
content="text/html; charset=ISO-8859-1">
<title>D Parser Homepage</title>
</head>
<body>
<div style="text-align: center;"><big style="font-weight: bold;"><big><big>DParser<br>
<small><small><small>(you know... 'da parser)<br>
</small></small></small><br>
</big></big></big><br>
<div style="text-align: left; margin-left: 40px;"><span
style="font-weight: bold;">Introduction<br>
<br>
</span>DParser is an simple but powerful tool for parsing. &nbsp;You
can specify the form of the text to be parsed using a combination of
regular expressions and grammar productions. &nbsp;Because of the
parsing technique (technically a scannerless GLR parser based on the
Tomita algorithm) there are no restrictions. &nbsp; The grammar can be
ambiguous, right or left recursive, have any number of null
productions,
and because there is no seperate tokenizer, can include whitespace in
terminals and have terminals which are prefixes of other terminals.
&nbsp; DParser handles not just well formed computer languages and data
files, but just about any wacky situation that occurs in the real world.<br>
<br>
<span style="font-weight: bold;">Features<br>
</span>
<ul>
<li>Powerful GLR parsing<br>
</li>
<li>Simple EBNF-style grammars and regular expression terminals</li>
<li>Priorities and associativities for token and rules</li>
<li>Built-in error recovery</li>
<li>Speculative actions (for semantic disambiguation)</li>
<li>Auto-building of parse tree (optionally)</li>
<li>Final actions as you go, or on the complete parse tree</li>
<li>Tree walkers and default actions (multi-pass compilation support)<br>
</li>
<li>Symbol table built for ambiguous parsing</li>
<li>Partial parses, recursive parsing, parsing starting with any
non-terminal</li>
<li>Whitespace can be specified as a subgrammar</li>
<li>External (C call interface) tokenizers and external terminal
scanners&nbsp;</li>
<li>Good asymptotically efficiency</li>
<li>Comes with ANSI-C, Python and Verilog grammars<br>
</li>
<li>Comes with full source</li>
<li>Portable C for easy compilation and linking<br>
</li>
<li>BSD licence, so you can included it in your application without
worrying about licensing<br>
</li>
</ul>
<span style="font-weight: bold;">Examples<br>
<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <a href="d/tests/ansic.test.g">ANSI
C grammar</a><br>
</span><span style="font-weight: bold;"> &nbsp;</span><span
style="font-weight: bold;"> &nbsp;&nbsp;&nbsp; &nbsp; <a
href="d/tests/python.test.g">Python
grammar</a><br>
</span><span style="font-weight: bold;"> &nbsp;</span><span
style="font-weight: bold;"> &nbsp;&nbsp;&nbsp; &nbsp; <a
href="d/verilog/verilog.g">Verilog
grammar</a><br>
&nbsp; </span><span style="font-weight: bold;"> </span><span
style="font-weight: bold;"></span><span style="font-weight: bold;"><br>
Documentation<br>
<br>
<span style="font-weight: bold;"> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
</span></span><span style="font-weight: bold;"><a
href="d/make_dparser.cat">Man page for
parser generator</a><br>
</span><span style="font-weight: bold;"> &nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; </span><span style="font-weight: bold;"><a
href="d/manual.html">Manual</a><br>
</span><span style="font-weight: bold;"> &nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; </span><span style="font-weight: bold;"><a
href="d/faq.html">FAQ</a><br>
<br>
</span><span style="font-weight: bold;"> Public Headers<br>
<br>
&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; <a href="d/dparse.h">dparse.h</a>&nbsp;
&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; - main
parser data structures and functions<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<a href="d/dparse_tables.h">dparse_tables.h</a>
&nbsp;&nbsp;&nbsp; - parse tables data structures<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <a href="d/dsymtab.h">dsymtab.h</a>&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; - optional symbol
table<br>
<br>
</span><span style="font-weight: bold;">Download<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; <a
href="http://prdownloads.sourceforge.net/dparser/d-1.5-src.tar.gz">Source
(tar.gz)</a><br>
<span style="font-weight: bold;">&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span
style="font-weight: bold;"><a
href="http://sourceforge.net/project/showfiles.php?group_id=70166">Binaries
for Linux, FreeBSD and Windows (cygwin)</a><br>
<br>
</span><a href="http://sourceforge.net/projects/dparser/"><span
style="font-weight: bold;"></span></a>
<div style="text-align: left;"><span style="font-weight: bold;">Additional
Information at </span><a
href="http://sourceforge.net/projects/dparser/">Sourceforge</a>
<div style="text-align: left;">
<table border="1" width="100%" cellpadding="2" cellspacing="2">
<tbody>
<tr>
</tr>
</tbody>
</table>
<span style="font-weight: bold;">Contact the author: jplevyak at source
forge (users.sourceforge.net)</span><br>
<a href="http://sourceforge.net/"> <br>
<img src="http://sourceforge.net/sflogo.php?group_id=70166&amp;type=5"
width="210" height="62" border="0" alt="SourceForge.net Logo"></a><br>
</div>
</div>
</div>
</div>
</body>
</html>