diff options
| author | Anhgelus Morhtuuzh <william@herges.fr> | 2025-11-04 12:19:54 +0100 |
|---|---|---|
| committer | Anhgelus Morhtuuzh <william@herges.fr> | 2025-11-04 12:19:54 +0100 |
| commit | cc2b7a9a7b4c6269a6b93f99581b91b29fccc66d (patch) | |
| tree | cb97f6c5a65434bfd2c72bb7bab27940763adfde /src/elixir_math_parser_lexer.xrl | |
| parent | 24570e7bf215c79a55927f23a6735acd8cd0ff59 (diff) | |
feat(lexer): default grammar
Diffstat (limited to 'src/elixir_math_parser_lexer.xrl')
| -rw-r--r-- | src/elixir_math_parser_lexer.xrl | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/elixir_math_parser_lexer.xrl b/src/elixir_math_parser_lexer.xrl new file mode 100644 index 0000000..a2980c8 --- /dev/null +++ b/src/elixir_math_parser_lexer.xrl @@ -0,0 +1,19 @@ +Definitions. +INT = [0-9]+ +NAME = :[a-zA-Z_][a-zA-Z0-9_]* +WHITESPACE = [\s\t\n\r]|;{2} + +Rules. +\+ : {token, {'+', TokenLine}}. +\- : {token, {'-', TokenLine}}. +\* : {token, {'*', TokenLine}}. +\/ : {token, {'/', TokenLine}}. +\= : {token, {'=', TokenLine}}. +{NAME} : {token, {atom, TokenLine, to_atom(TokenChars)}}. +{INT} : {token, {int, TokenLine, TokenChars}}. +{WHITESPACE}+ : skip_token. + +Erlang code. +% Given a ":name", chop off : and return name as an atom. +to_atom([$:|Chars]) -> + list_to_atom(Chars). |
