1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
//! # Pomsky
//!
//! To learn about the _pomsky language_, please read [the book][book].
//!
//! The _pomsky macro_ can be [found here][macro].
//!
//! ## Usage
//!
//! This library can parse a pomsky expression and generate a regex string:
//!
//! ```
//! use pomsky::Expr;
//! use pomsky::options::{CompileOptions, RegexFlavor};
//!
//! let options = CompileOptions { flavor: RegexFlavor::Java, ..Default::default() };
//! let regex = match Expr::parse_and_compile("'test'", options) {
//! (Some(regex), _warnings, _tests) => regex,
//! (None, diagnostics, _tests) => {
//! eprintln!("The input is not a valid pomsky expression");
//! return;
//! }
//! };
//! ```
//!
//! You can get fancy error messages with [miette] by enabling the `diagnostics`
//! feature:
//!
//! ```
//! use pomsky::Expr;
//! use pomsky::options::{CompileOptions, RegexFlavor};
//! use pomsky::diagnose::Diagnostic;
//!
//! pub fn compile(input: &str) -> miette::Result<String> {
//! let options = CompileOptions { flavor: RegexFlavor::Java, ..Default::default() };
//! let compiled = match Expr::parse_and_compile(input, options) {
//! (Some(regex), _warnings, _tests) => regex,
//! (None, diagnostics, _tests) => {
//! for diagnostic in diagnostics {
//! eprintln!("{diagnostic}");
//! }
//! miette::bail!("Failed to compile pomsky expression");
//! }
//! };
//! Ok(compiled)
//! }
//! ```
//!
//! [book]: https://pomsky-lang.org/docs/
//! [macro]: https://docs.rs/pomsky-macro/latest/pomsky_macro/
//! [miette]: https://docs.rs/miette/latest/miette/
/// Re-exports syntax node types related to tests
pub use Expr;
pub use ;
pub use list_shorthands;