Files
uwrap/lang_test/language/lexer.py
Quentin Ochem f45281cb7a Implemented check for language entity hierarchies
A consequence is that matcher on language entity types are now case
sensitive (updated baseline accordingly).
2020-06-07 23:22:55 -04:00

27 lines
761 B
Python

from langkit.lexer import Lexer, LexerToken, Literal, WithText, Pattern, Ignore, WithSymbol, WithTrivia
class Token(LexerToken):
LBrk = WithText()
RBrk = WithText()
LPar = WithText()
RPar = WithText()
Comma = WithText()
Comment = WithTrivia()
Identifier = WithSymbol()
Integer = WithText()
test_lexer = Lexer(Token)
test_lexer.add_rules(
(Pattern(r"[ \t\r\n]+"), Ignore()),
(Pattern(r"#(.?)+"), Token.Comment),
(Literal("{"), Token.LBrk),
(Literal("}"), Token.RBrk),
(Literal("("), Token.LPar),
(Literal(")"), Token.RPar),
(Literal(","), Token.Comma),
(Pattern(r"[a-zA-Z][a-zA-Z0-9_]*"), Token.Identifier),
(Pattern(r"[0-9]+"), Token.Integer),
)