aboutsummaryrefslogtreecommitdiff
path: root/src/elixir_math_parser_lexer.xrl
blob: facf323a34d4101c02c3ff02850f80f48a0da4c3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Definitions.
INT        = [0-9]+
NAME       = [a-zA-Z_][a-zA-Z0-9_]*
WHITESPACE = [\s\t\r]
COMMENT    = #[^\n]*\n?
BREAK      = [\n;;]

Rules.
\+            : {token, {'+',  TokenLine}}.
\-            : {token, {'-',  TokenLine}}.
\*            : {token, {'*',  TokenLine}}.
\/            : {token, {'/',  TokenLine}}.
\=            : {token, {'=',  TokenLine}}.
\(            : {token, {'(',  TokenLine}}.
\)            : {token, {')',  TokenLine}}.
{BREAK}+      : {token, {break,  TokenLine}}.
{NAME}        : {token, {var, TokenLine, TokenChars}}.
{INT}         : {token, {int,  TokenLine, TokenChars}}.
{WHITESPACE}+ : skip_token.
{COMMENT}+    : skip_token.

Erlang code.