Command Line Interface
Synopsis
openlexer <command> [options]
Commands
gen-lexer
Generate a lexer from a .l file.
openlexer gen-lexer --lexer <file.l> --lang <language> --output <dir>
Options:
| Option | Description |
|---|---|
--lexer <file> | Input lexer specification file |
--lang <lang> | Target language: c, java, python |
--output <dir> | Output directory |
Example:
openlexer gen-lexer --lexer calc.l --lang python --output ./build
# Java: Generate Lexer.java
openlexer gen-lexer -l calc.l -L java -o ./build
# C: Generate without test driver
openlexer gen-lexer -l calc.l -L c -o ./build --no-test
Generated Files: lexer.c (C), Lexer.java (Java), lexer.py (Python)
gen-parser
Generate a parser from a .y file.
openlexer gen-parser --parser <file.y> --lang <language> --output <dir>
Options:
| Option | Description |
|---|---|
--parser <file> | Input grammar specification file |
--lang <lang> | Target language: c, java, python |
--output <dir> | Output directory |
Example:
openlexer gen-parser --parser calc.y --lang c --output ./build
# Java: Compile lexer and parser together (Parser auto-detects Lexer.class)
openlexer gen-lexer -l calc.l -L java -o ./build
openlexer gen-parser --parser calc.y -L java -o ./build
javac ./build/Lexer.java ./build/Parser.java
java -cp ./build Parser "3 + 4 * 2"
Generated Files: parser.c (C), Parser.java (Java), parser.py (Python)
help
Show help information.
openlexer help
openlexer --help
openlexer <command> --help
version
Show version information.
openlexer --version
Exit Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | General error |
| 2 | Invalid arguments |
Output
The generator prints progress information to stdout:
Parsing lexer specification...
Building NFA (23 states)...
Converting to DFA (15 states)...
Minimizing DFA (12 states)...
Generating Python code...
Written: ./build/lexer.py
Errors are printed to stderr:
Error: Invalid regex at line 5: unclosed bracket
Combining Lexer and Parser
Generate both in a single directory:
mkdir build
openlexer gen-lexer --lexer calc.l --lang c --output build
openlexer gen-parser --parser calc.y --lang c --output build
The generated files can then be compiled together.