php_lexer/lib.rs
1//! Hand-written PHP lexer with support for PHP 8.0–8.5 syntax.
2//!
3//! This crate provides:
4//! - [`Lexer`] — a lazy, streaming tokenizer. Call [`Lexer::next_token`] to advance one token at
5//! a time, or use [`Lexer::peek`]/[`Lexer::peek2`] for lookahead without consuming.
6//! - [`TokenKind`] — the complete set of token types produced by the lexer.
7//! - [`lex_all`] — convenience function that tokenizes an entire source string at once.
8//!
9//! # Quick start
10//!
11//! ```
12//! use php_lexer::{Lexer, TokenKind};
13//!
14//! let mut lexer = Lexer::new("<?php echo 'hello';");
15//! loop {
16//! let token = lexer.next_token();
17//! if token.kind == TokenKind::Eof { break; }
18//! println!("{:?} {:?}", token.kind, token.span);
19//! }
20//! ```
21
22pub mod lexer;
23pub mod token;
24
25pub use lexer::{lex_all, Lexer, LexerError, LexerErrorKind, Token};
26pub use token::TokenKind;