Documentation
# JLEK 🪞

[![CI](https://github.com/fuad1502/jlek/actions/workflows/CI.yml/badge.svg)](https://github.com/fuad1502/jlek/actions/workflows/CI.yml)

> [!NOTE]
> This project is part of my ["Compiler Toys"
> project](https://github.com/fuad1502/compiler_toys), originally meant as a
> learning exercise on Compilers.

JLEK is a lexer generator similar to Lex. JLEK generates a lexer module from
token specifications (identifier and regular expression pattern).

JLEK is the lexer used by
[JJIK](https://github.com/fuad1502/compiler_toys/tree/master/jjik) parser
generator. Currently, JLEK cannot be used standalone without JJIK, since the
generated lexer module (`lexer.rs`) depends on a module generated by JJIK
(`symbol.rs`).

> [!WARNING]
> Currently JLEK ignores whitespace characters (space, newline, tab, carriege
> return) by default. Later, user should be able to specify the class of
> characters to treat as separators.

## Documentation

See the [crate's documentation]() on how to use JLEK and the supported regular
expression syntax.

## Why is it called JLEK?

The "LEK" in JLEK is similar to Lex, a well known lexer generator. I added the
'J' in front of it to match it with JJIK while also making it sound like the
Indonesian word *jelek* which means "ugly" :)