-
Notifications
You must be signed in to change notification settings - Fork 27
Open
Description
Suppose I have this lexical syntax for a token:
Identifier ::= <Initial> <Subsequent>*
Initial ::= a..z
Subsequent ::= Initial | ...
Here the Initial part is used in both Identifier and Subsequent. As far as I understand, currently the only way to do this in plex's lexer! is by duplicating Initial part, something like:
lexer! {
...
r"[a-z]([a-z]|[<subsequent>])*" => ...
}
In the simplified example above the repetition of [a-z] is not too bad, but in the actual use case the syntax is much more complex and the repetition is a real problem.
Ideally I should be able to give this regex [a-z] a name and use it in other regex patterns. Maybe something like:
lexer! {
...
let initial = "[a-z]"
let subsequent = "..."
r"$initial($initial|[$subsequent])*" => ...
}
Is this currently possible with plex? If not I think this would be a useful addition to it.
Metadata
Metadata
Assignees
Labels
No labels