shelby3 / lucid Goto Github PK
View Code? Open in Web Editor NEWLucid programming language.
Lucid programming language.
Syntax of identifier names:
PID
):[A-Z][A-Z0-9]*
data
, interface
& (de/con)structor function (aka TID
):[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 means a-z𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷𝓪𝓫𝓬𝓭𝓮𝓯𝓰𝓱𝓲𝓳𝓴𝓵𝓶𝓷𝓸𝓹𝓺𝓻𝓼𝓽𝓾𝓿𝔀𝔁𝔂𝔃
, A-Z
really means A-Z𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ𝔄𝔅ℭ𝔇𝔈𝔉𝔊ℌℑ𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔ℜ𝔖𝔗𝔘𝔙𝔚𝔛𝔜ℨ𝓐𝓑𝓒𝓓𝓔𝓕𝓖𝓗𝓘𝓙𝓚𝓛𝓜𝓝𝓞𝓟𝓠𝓡𝓢𝓣𝓤𝓥𝓦𝓧𝓨𝓩
, and 0-9
really means 0-9𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡
.
Design points:
data.R
or interface.R
to distinguish a conflicting data
or interface
which is in lexical scope.I
prefix for distinguishing interface
from data
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 transpiling x′′′
to x$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
or interface
.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).
Block-level (Promise
integrated) block-level deterministic RAII-like destructors:
keean/zenscript#14 (comment)
keean/zenscript#33 (comment) & keean/zenscript#33 (comment)
(design pattern possible in TypeScript, but the boilerplate reduction, correctness checking, and automated deployment can’t be obtained without transpilation)
Not supporting weak nor strong references:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.