Tokens
Tokens are primitive productions in the grammar defined by regular (non-recursive) languages. Letlang source input can be broken down into the following kinds of tokens:
Literals
Syntax
string
Show source
string
= '"' ( [^"\\] / '\\' . )* '"'
atom
Show source
atom
= '@' ( ( "'" ([^'] / "\\'" )+ "'" ) / [_a-zA-Z0-9]+ )
bool
Show source
bool
= "true" / "false"
number
Show source
number
= ( "0b" "_"* [01] [_01]* )
/ ( "0o" "_"* [0-7] [_0-7]* )
/ ( [0-9] [_0-9]* )
/ ( "0x" "_"* [0-9a-fA-F] [_0-9a-fA-F]* )
/ ( ( ( [0-9]+ "."? [0-9]* ) / ( "." [0-9]+ ) ) ( ( [eE] [+-]? )? [0-9]+ )? )
Punctuation
Token | Syntax |
---|---|
Module separator | :: |
Parenthesis | ( , ) |
Brackets | [ , ] |
Braces | ${ , { , } |
Comma | , |
Dot | . |
Colon | : |
Semicolon | ; |
Arrow | -> |
Pattern ignore | _ |
Ellipsis | ... |
Operators
Token | Syntax |
---|---|
Match | := |
Arithmetic | + , - , * , / , % , ** |
Comparison | < , <= , = , != , >= , > |
Negation | ! , ¬ |
Bitwise | ~ , & , | , ^ , << , >> |
Logic | not , and , or |
String | <> |
Lists | ++ , in |
Type | is |
Pipeline | |> |