Skip to content
urkerab edited this page Aug 2, 2017 · 10 revisions

There are six types of tokens in Charcoal - numbers, strings, variables, arrows, commands, and operators. Two or more strings or numbers can be separated by a ¦.

Numbers

These are just normal numbers, but using ·⁰¹²³⁴⁵⁶⁷⁸⁹ instead of .0123456789. (Exponential notation is not supported.)

Strings

These are any run of printable ASCII characters and or ⸿. Command characters can be included by escaping them with ´. Two types of compressed strings are also available using and delimiters, however currently the only way to create compressed strings is by deverbosifying a string. In Verbose mode, single and double quoted strings are supported, with all the standard Python escapes such as \n and \r.

Variables

These are any Greek lowercase letter: αβγδεζηθικλμνξπρσςτυφχψω. These map to the Verbose variables abgdezhqiklmnxprsvtufcyw. Note that omicron ο has been left out because it looks too similar to an o. Some variables have preset values.

Arrows

These are any Unicode arrow: ←↑→↓↖↗↘↙. In verbose mode, these are spelled out in words using Up/Down and/or Left/Right, prefixed with a :. Some commands accept multidirectional characters, which are any of +X*|-\/<>^KLTVY7¬. In verbose mode, these are simply prefixed with a :

Commands and Operators

These are prefix. More information can be found here (for commands) and here (for operators).

Groups

Commands can be grouped into blocks using «» ({} in Verbose mode). Expressions can be grouped into lists using ⟦⟧ ([] in Verbose mode) or dictionaries using ⦃⦄ ({} in Verbose mode).

Clone this wiki locally