|
| enum class | prec : nat8 {
Never
, List
, Commas
, Expr
,
Fun
, Def
, Or
, And
,
Not
, Eq
, NotEq
, Less
,
Greater
, Choose
, To
, Add
,
Mul
, Prefix
, Call
, Base
,
Nothing
} |
| |
| enum class | assoc : nat8 { None
, Postfix
, InfixLeft
, InfixRight
} |
| |
| enum class | form : nat8 { List
, Commas
} |
| |
| enum class | punctuation : nat8 {
None
, Braces
, Parens
, Brackets
,
AngleBrackets
, Qualifier
, Dot
, Colon
,
Ind
} |
| |
| enum class | place : nat16 {
UTF8
, Printable
, BlockCmt
, LineCmt
,
IndCmt
, Space
, String
, Content
} |
| |
| enum class | mode { None
, Open
, Closed
, With
} |
| |
|
| const struct token_set AllTokens AllowLess | AllowNotEq = ~token_set{u8">",u8">=",u8"<",u8"<="} |
| |
| constexpr token_info | Tokens [] |
| |
| const token_set | AllTokens = ~token_set{} |
| |
| const token_set | AllowLess = ~token_set{u8">",u8">="} |
| |
| const token_set | InPrefixes = token_set{u8":",u8"in"} |
| |
| const token_set | StopList = token_set{u8":)",u8")",u8"]",u8"}",token::NewLine(),token::End()} |
| |
| const token_set | StopExpr = StopList | token_set{u8";",u8","} |
| |
| const token_set | StopFun = StopExpr | token_set{u8"@"} |
| |
| const token_set | StopDef = StopFun | token_set{u8"=>",u8"next",u8"over",u8"when",u8"while"} |
| |
| const token_set | BracePostfixes = token_set{u8"{"} |
| |
| const token_set | BlockPostfixes = token_set{u8"{",u8".",u8":"} |
| |
| const token_set | ParenPostfixes = token_set{u8"("} |
| |
| const token_set | WithPostfixes = token_set{u8"with",u8"<"} |
| |
| const token_set | InvokePostfixes = BlockPostfixes | ParenPostfixes | WithPostfixes | token_set{u8"in",token::NewLine()} |
| |
| const token_set | MarkupPostfixes = token_set{u8",",u8";",u8">",u8":>"} |
| |
| const token_set | DefPostfixes = token_set{u8"=",u8":=",u8"+=",u8"-=",u8"*=",u8"/="} |
| |