Alex is a tool for generating lexical analysers in Haskell. It takes a
description of tokens based on regular expressions and generates a
Haskell module containing code for scanning text efficiently. It is
similar to the tool lex or flex for C/C++.
A common problem is the desire to have an action run at a scheduled
interval, but only if it is needed. This library allows you to define
actions which will either be performed by a dedicated thread or, in
times of low volume, will be executed by the calling thread.
A simple directory-like tree datatype, with useful IO functions and
Foldable and Traversable instance. Provides a simple data structure
mirroring a directory tree on the filesystem, as well as useful
functions for reading and writing file and directory structures in the
IO monad.
The haskell-src package provides support for manipulating Haskell source
code. The package provides a lexer, parser and pretty-printer, and a
definition of a Haskell abstract syntax tree (AST). Common uses of this
package are to parse or generate Haskell 98 code.
This library provides a quick-and-dirty (but often effective) method for
extending Haskell's syntax using a custom preprocessor. It parses
Haskell into a bare-bones AST with just enough knowledge of the syntax
to preserve nesting, and then allows transformations on the AST.
ANTLR, ANother Tool for Language Recognition, is a language tool that
provides a framework for constructing recognizers, interpreters,
compilers, and translators from grammatical descriptions containing
actions in a variety of target languages. ANTLR provides excellent
support for tree construction, tree walking, translation, error
recovery, and error reporting.
This package provides the ANTLR v3 C runtime library.
Check is a unit test framework for C. It features a simple interface for
defining unit tests, putting little in the way of the developer. Tests are run
in a separate address space, so Check can catch both assertion failures and code
errors that cause segmentation faults or other signals.
libevdev is a wrapper library for evdev devices. It moves the common
tasks when dealing with evdev devices into a library and provides a
library interface to the callers, thus avoiding erroneous ioctls, etc.
The eventual goal is that libevdev wraps all ioctls available to evdev
devices, thus making direct access unnecessary.
mtdev is a stand-alone library which transforms all variants of kernel
MT events to the slotted type B protocol. The events put into mtdev
may be from any MT device, specifically type A without contact
tracking, type A with contact tracking, or type B with contact
tracking. See Linux kernel documentation for further details.
The libmba package is a collection of mostly independent C modules potentially
useful to any project. There are hashmap, linkedlist, and stack ADTs, a DOM-
like interface that can load and store XML files for simple XML processing, a
module for managing error codes and associated messages across separate C
libraries, and more.