diff options
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). |
