KeyTokens, Identifiers, and literals are all expressions. Operators, separators and comments are not. Identifiers includes lexemes such as if, IF true and TRUE. There are no alphabetic keywords in RSON syntax. Consumers of RSON syntax can of course treat what ever identifiers they want as keywords appropriate to their use case.
LetterChar | = unicode_letter | '_' |
NonZeroDigit | = '1' ... '9' |
DigitChar | = '0' | NonZeroDigit |
HexaLowerChar | = 'a' ... 'f' |
HexaUpperChar | = 'A' ... 'F' |
HexaLetterChar | = HexaLowerChar | 'a' ... 'f' |
HexaChar | = DigitChar | HexLetterChar |
LetterOrDigitChar | = LetterChar | DigitChar |
LetterOrUnderscoreChar | = LetterChar | '_' |
UnderscoreThenLetterOrDigit | = '_', LetterOrDigitChar |
Dot3Token | = "..." |
Dot2Token | = ".." |
DotToken | = '.' |
IdentifierToken | = letter | UnderscoreThenLetterOrDigit, { LetterOrDigitChar | UnderscoreThenLetterOrDigit } |
DeciLitToken | = '0' | (NonZeroDigit { DigitChar }) |
So there is currently some confusion as to where it is parsed into a series of statements or into an expression. Currently Statements and Clauses contain an expression but are not themselves an expression.This is causing a block to me coding at the moment.
Hexadecimal is written with Uppercase letters. Base32 is written with the digits followed by the upper case letters A to W, with the letter 'O' unused
A 10, B 11, C 12, D 13, E 14, F 15, G 16, H 17, I 18, J 19, K 20, L 21, M 22, N 23, P 24, Q 25, R 26, S 27, T 28, U 29 V 30, W 31
A Lower case letter will be used after numerals in names.