aboutsummaryrefslogtreecommitdiff
path: root/src/elixir_math_parser_lexer.xrl
blob: 40739584a75fb04d31ff893d5a06626ee40f404f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Definitions.
INT        = [0-9_]+
FLOAT      = [0-9_]*\.[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}}.
!             : {token, {'!',  TokenLine}}.
\^            : {token, {'^',  TokenLine}}.
{BREAK}+      : {token, {break,  TokenLine}}.
{NAME}        : {token, {var, TokenLine, TokenChars}}.
{FLOAT}       : {token, {float, TokenLine, TokenChars}}.
{INT}         : {token, {int,  TokenLine, TokenChars}}.
{WHITESPACE}+ : skip_token.
{COMMENT}+    : skip_token.

Erlang code.