XPath Parser and XPath Benchmark

Copyright © 2016-2017 ENS Paris-Saclay Licensed under the GNU GPL.

Together with David Baelde and Anthony Lick, I have implemented xpparser, a parser for XPath 3.0 able to extract XPath queries from XQuery files. Using this parser, we have generated xpath-benchmark, a benchmark of real-world XPath queries extracted from several open-source projects.

DTWA Tools

Copyright © 2009 ENS Cachan Licensed under the GNU GPL.

Implements three small tools on deterministic tree-walking automata (DTWAs):

  • dtwarun: runs DTWAs on binary trees in XML format.
  • dtwac: complements DTWAs.
  • dtwa2rng: translates DTWAs into RELAX NG grammars.

The source is available here: dtwa-tools-0.3.tar.bz2. The tools are clearly not ready for any serious use, but are distributed in case someone would be interested in them.

Grammar Test Suite Generator

Copyright © 2008 INRIA Licensed under the CeCILL License version 2.

A tool suite developed for the paper Feature unification in TAG derivation trees. Among other tools, one will find a translator from feature-based TAG into feature-based RTG and simple MTT, plus translation into Prolog of feature-based RTG, allowing for instance to generate correct TAG derivation trees.

Source available using Subversion:

svn co svn://scm.gforge.inria.fr/svn/paule/trunk/gtsg

Ambiguity detection in GNU Bison

Copyright © 2006, 2007 Laboratoire I3S. Copyright © 1984, 1986, 1989, 1992, 1995, 2000, 2001, 2002, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. Licensed under the GNU GPL.

Implements a conservative test for ambiguity in context-free grammars (see article). The tool is an implementation of an –ambiguity option in GNU Bison. With this option, Bison attempts to find the ambiguities in the provided grammar instead of constructing a parser.

The source is available here: bison-2.3a+ambiguity.tar.bz2. Some related options are –conflicts, which reports the initial LR(0) conflicts that might end up in an ambiguity, –trace=ma, which displays the computed mutually accessible item pairs, and –trace=metrics, which displays a few grammar metrics.

See the ChangeLog for the latest bug fixes.

See also the collection of grammars for programming languages I employed for the experimental results presented in my thesis.