Parsing Expression Grammar (PEG) is a new way to specify recursive-descent parsers with limited backtracking. The use of backtracking lifts the LL(1) restriction usually imposed by top-down parsers. In addition, PEG can define parsers with integrated lexing.
Mouse is a tool to transcribe PEG into an executable parser written in Java. Unlike some existing PEG generators (e.g., Rats!), Mouse does not produce a storage-hungry "packrat parser", but a collection of transparent recursive procedures. An integral feature of Mouse is the mechanism for specifying semantics (also in Java). This makes Mouse a convenient tool if one needs an ad-hoc language processor. Being written in Java, the processor is operating-system independent.
Version 2.0 of Mouse introduces support for left recursion using an experimental method of recursive ascent. Its principle is explained in a separate document.
Included in the package is PEG Explorer, an interactive tool to investigate the effects of limited backtracking in PEG.
Units is a program for computations on values expressed in terms of different measurement units. It is an advanced calculator that takes care of the units.
Project page (opens in a separate window).
This version mimicks the new version of GNU Units by offering three new features:
2 m = 6 ft + 6 in + 6|8in (rounded up to nearest 1|8in) 1.1 * (2 hours + 5 min) = 2 hours + 17 min + 30 secTo save typing, patterns used for such conversions may be defined in units data file as 'unit list aliases'.
Latest change 2017-09-04