-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Syntax #1
Comments
Syntax of a Python-like yet more structured block indenting with line continuations: |
|
Syntax for non-block-indented |
Syntax and design of modules, exports, keean/zenscript#11 (comment) thru keean/zenscript#11 (comment) |
Syntax for (simplified keean/zenscript#13 (comment) To create nominal sum type, wrap it in a |
Type annotations for r/w access restrictions, borrowing, optional types, and unboxed, packed binary records: |
Syntax of identifier names:
PID
):[A-Z][A-Z0-9]*
data
,interface
& (de/con)structor function (akaTID
):[A-Z](?:_[A-Z])?(?:[a-zA-Z0-9]|[A-Z]_[A-Z])*
FID
):(?:[a-z](?:[a-zA-Z0-9]|[A-Z]_[A-Z])*|[αβγδεζηθικλμνξοπρςτυφχψωℎℏ𝑒])(?:'*|′*)
VID
):(?:[_a-z][_a-z0-9]*|[αβγδεζηθικλμνξοπρςτυφχψωℎℏ𝑒])(?:'*|′*)
ID
):(?:[a-z][a-z0-9]*|[αβγδεζηθικλμνξοπρςτυφχψωℎℏ𝑒])(?:'*|′*)
Everywhere
a-z
really meansa-z𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷𝓪𝓫𝓬𝓭𝓮𝓯𝓰𝓱𝓲𝓳𝓴𝓵𝓶𝓷𝓸𝓹𝓺𝓻𝓼𝓽𝓾𝓿𝔀𝔁𝔂𝔃
,A-Z
really meansA-Z𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ𝔄𝔅ℭ𝔇𝔈𝔉𝔊ℌℑ𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔ℜ𝔖𝔗𝔘𝔙𝔚𝔛𝔜ℨ𝓐𝓑𝓒𝓓𝓔𝓕𝓖𝓗𝓘𝓙𝓚𝓛𝓜𝓝𝓞𝓟𝓠𝓡𝓢𝓣𝓤𝓥𝓦𝓧𝓨𝓩
, and0-9
really means0-9𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡
.Design points:
data.R
orinterface.R
to distinguish a conflictingdata
orinterface
which is in lexical scope.I
prefix for distinguishinginterface
fromdata
was dropped in favor of optional syntax coloring in clients.data
,interface
, and function identifier names, except underscore_
is allowed between two capital letters. Prefixing them with underscores is not allowed even for the not exported case, but can employ the′
suffix instead. Removing dependencies on exported removes a conflation of the lexer and parser state machines. Readability is maximized in open source with a consistent style, thus camel case is chosen as the preferred style for the reasons argued in the cited reference discussions.$
in identifier names because it is symbol soup; and we want to reserve symbols for operators (and type annotations). Chose to reserve$
within identifier names such as for transpilingx′′′
tox$prime3
although we could reserve some Unicode character instead.'
character can be typed from most keyboards, but the correct Unicode character is′
(' vs. ′). The prime is included because @keean suggested it for math notation.data
orinterface
.References:
keean/zenscript#11 (comment) thru keean/zenscript#11 (comment).
keean/zenscript#11 (comment) thru keean/zenscript#11 (comment).
keean/zenscript#11 (comment) thru keean/zenscript#11 (comment).
The text was updated successfully, but these errors were encountered: