|
Overview
GPLEX is a generator for lexical scanners. It accepts a “LEX-like” input
specification and produces a C# output file. The scanners that it produces
are thread-safe, with all scanner state held within the scanner instance.
GPLEX scanners are designed to be used with parsers constructed with the
Gardens Point Parser Generator (GPPG). Both GPLEX and the scanners which it
produces use the generic types defined in C# 2.0.
GPLEX and GPPG are released in open source form under “Free-BSD” style
licence arrangements. The distribution is a zip archive which contains
executable files, source files, documentation and examples.
Version 1.0 now supports unicode, including surrogate pairs and fallback codepages, and allows multiple input files using yywrap.
UPDATED: 19 March, 2009 - Version 1.1.1
UPDATED: 10th November, 2009 - The definitive source for this distribution is now on CodePlex.
Version 1.1.1 is designed to match version 1.3.5 or later of GPPG.
Download the licence from here
Download the documentation from here
Download the changelog from here
Download unicode-specific documentation from here
Download the input specification from here
Download the complete package from here
Download old complete package from here
Changes in Version 1.1.1
- Unicode scanners may use any encoding from .NET
- Scanners are much faster on large input files
- Scanners are FxCop friendly
- User-defined character set predicates may be used via a plugin mechanism
- Some existing applications may require porting because of some renaming of features
- 1.1.1 fixes an error in backtracking in 1.1.0
Limitations of Version 1.1.1
The following limitations may be important: GPLEX accepts only
fixed-length right context, that is, in “R1/R2” where R1 and R2
are regular expressions at least one of the expressions must
define a language of fixed length strings.
See the documentation for a complete summary of the accepted language.
Origins
We gratefully acknowledge the support of Microsoft in the development of
GPLEX. The application is closely related to the “Managed Package LEX”
application that forms part of the Visual Studio Managed Babel distribution,
although MPLEX provides additional VS-specific interfaces.
GPLEX is copyright © 2008 John Gough and Queensland University of Technology.
John may be contacted at j.gough@qut.edu.au
|