1 unstable release

0.0.1 Sep 16, 2022

#18 in #lexing

MIT license

32KB
812 lines

Tua

Tua. Lua.

License

Licensed under the MIT License. Check the LICENSE file for details.


lib.rs:

Low-level Tua lexer.

The idea with tua_lexer is to make a reusable library, by separating out pure lexing and tua-specific concerns, like spans, error reporting, and interning. So, tua_lexer operates directly on &str, produces simple tokens which are a pair of type-tag and a bit of original text, and does not report errors, instead storing them as flags on the token.

Tokens produced by this lexer are not yet ready for parsing the Tua syntax. For that see tua_parser::lexer, which converts this basic token stream into wide tokens used by actual parser.

The purpose of this crate is to convert raw sources into a labeled sequence of well-known token types, so building an actual Tua token stream will be easier.

The main entity of this crate is the TokenKind enum which represents common lexeme types.

No runtime deps