Java Cobol Lexer is a library that takes a Cobol source program and return it as a list of lexical tokens. You can use it, for example, as part of a Cobol compiler, pre-processor, pretty formatter, static code checker, or syntax highlighter. The library accepts source code in fixed, free, and mixed formats. It processes standard Cobol 85.
Piglet is a tool for parsing and lexing text for the .NET framework. The purpose of Piglet is to provide an easy-to-use tool for parsing text which can be easily included in any .NET project as a single assembly. In contrast to most parser generators, Piglet provides a fluent interface which enables you to express your grammar in a syntax which is accessible for users with no prior experience of parser generators. Piglet generates efficient, type safe, and reentrant LALR(1) parsers at runtime, which saves you from having a pre-compile step to generate your parsing tables. It also includes a lexical scanner generator which can be used independently of the parser generator.
gradle-sablecc-plugin is a gradle plugin which creates parsers using SableCC. SableCC supports automatic CST-to-AST transformation, emits all the visitor patterns and analysis helpers you will likely ever need, and is LR, not LL(k). Many example grammars are available for modern languages; the author of this plugin has written dozens.
ucpp is a C preprocessor. It is designed to be quick and light, but still fully compliant to the ISO standard 9899:1999, also known as C99. ucpp can be compiled as a stand-alone program or linked to some other code; in the latter case, ucpp will output tokens, one at a time, on demand, as an integrated lexer. ucpp operates in two modes: in lexer mode, ucpp is linked to some other code and outputs a stream of tokens where each call to the lex() function will yield one token; in non-lexer mode, ucpp preprocesses text and outputs the resulting text to a file descriptor. If linked to some other code, the cpp() function must be called repeatedly, otherwise ucpp is a stand-alone binary.