Expand description

rulex

⚠️ DEPRECATED ⚠️ Use the pomsky crate instead. Rulex was renamed to pomsky.

To learn about the language, please read the book.

The rulex macro can be found here.

Usage

This library can parse a rulex expression and generate a regex string:

use rulex::Rulex;
use rulex::options::{CompileOptions, RegexFlavor};

let options = CompileOptions { flavor: RegexFlavor::Java };
let regex: String = match Rulex::parse_and_compile("'test'", Default::default(), options) {
    Ok(regex) => regex,
    Err(_) => {
        eprintln!("The input is not a valid rulex");
        return;
    }
};

You can get fancy error messages with miette by enabling the diagnostics feature:

use rulex::Rulex;
use rulex::options::{CompileOptions, RegexFlavor};
use rulex::error::Diagnostic;

pub fn compile(input: &str) -> miette::Result<String> {
    let options = CompileOptions { flavor: RegexFlavor::Java };
    let compiled: String = Rulex::parse_and_compile(input, Default::default(), options)
        .map_err(|e| e.diagnostic(input))?;
    Ok(compiled)
}

Modules

Contains different kinds of errors emitted by rulex.

Contains rulex features that can be individually enabled and disabled.

Contains parser and compiler options passed to rulex.

Structs

RulexDeprecated

A parsed rulex expression, which might contain more sub-expressions.