Definitions. COMMENT1 = \(\*\(*([^*)]|[^*]\)|\*[^)])*\**\*\) COMMENT2 = //([^\n]*) STRING = "(\\\^.|\\.|[^"])*" QUOTE = '(\\\^.|\\.|[^'])*' Rules. %%// Numbers ([0-9]+[.][0-9]+[eE][+-][0-9]+) : {token, {number, TokenLine, TokenChars}}. ([0-9]+[.][0-9]+[eE][0-9]+) : {token, {number, TokenLine, TokenChars}}. ([0-9]+[.][0-9]+) : {token, {number, TokenLine, TokenChars}}. ([1-9][0-9]*) : {token, {number, TokenLine, TokenChars}}. %%([0]*) : {token, {number, TokenLine, 0}}. (0x[0-9]+) : {token, {number, TokenLine, TokenChars}}. % Number as char with code \\. : {token, {number, TokenLine, TokenChars}}. % Any atom: ([A-Za-z_][a-z0-9A-Z_]*) : {token, {atom, TokenLine, TokenChars}}. %% string ({STRING}|{QUOTE}) : {token,{string,TokenLine,TokenChars}}. {COMMENT1}|{COMMENT2} : {token, {comment,TokenLine,TokenChars}}. >>= : {token, {'>=', TokenLine}}. <= : {token, {'<=', TokenLine}}. <> : {token, {'!=', TokenLine}}. != : {token, {'!=', TokenLine}}. =~ : {token, {'=~', TokenLine}}. -> : {token, {'->', TokenLine}}. \, : {token, {',', TokenLine}}. \+ : {token, {'+', TokenLine}}. \- : {token, {'-', TokenLine}}. \> : {token, {'>', TokenLine}}. \< : {token, {'<', TokenLine}}. = : {token, {'=', TokenLine}}. \* : {token, {'*', TokenLine}}. \: : {token, {':', TokenLine}}. \/ : {token, {'/', TokenLine}}. \$ : {token, {'$', TokenLine}}. \@ : {token, {'@', TokenLine}}. \% : {token, {'%', TokenLine}}. \( : {token, {'(', TokenLine}}. \) : {token, {')', TokenLine}}. %} : {token, {'}', TokenLine}}. %{ : {token, {'{', TokenLine}}. %\[ : {token, {'[', TokenLine}}. %\] :{token, {']', TokenLine}}. [\r\t\s] : {token,{whitespace,TokenLine,TokenChars}}. \n : {token, {'\n', TokenLine}}. . : {token, {char, TokenLine, TokenChars}}. Erlang code. % Skipped