aboutsummaryrefslogtreecommitdiffstats
path: root/src/dmarc_lexer.xrl
blob: 77dadde0bb52084a60b31a5b8772020e36485b9d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Definitions.

WHITESPACE = [\s\t\n\r]
KEY = (adkim|aspf|fo|pct|p|sp|rua|ruf|v|ri|rf)
VALUE = [^=;:,\s\t\n\r]+
MAILTO_EMAIL = (mailto:[^\s\t\n\r,;]+)
LOST_MAILTO = mailto

Rules.

{KEY}            : {token, {key, TokenLine, list_to_atom(TokenChars)}}.
{MAILTO_EMAIL}   : {token, {mailto, TokenLine, TokenChars}}.
=                : {token, {equals, TokenLine}}.
:                : {token, {colon, TokenLine}}.
;                : {token, {semicolon, TokenLine}}.
,                : {token, {comma, TokenLine}}.
{LOST_MAILTO}    : {error, invalid_mailto}.
{VALUE}          : {token, {string, TokenLine, TokenChars}}.
{WHITESPACE}+    : skip_token.

Erlang code.