PlexiScript is a CommonScript language designed to build, run, or export UI applications for all major platforms (and PlexiOS). Eventually, the goal is to create a complete matrix of building/running on any platform and exporting from any platform to any platform.
This is still a work in progress and has a few pre-requisites that are not quite ready yet. Currently the CommonScript compiler is built in C#. However, once the compiler and runtime are relatively stable, this will be re-written into CommonScript itself and the compiler will use the Runtime to interpret its own compiler. This will ensure that any platform that has the runtime will automatically have a compiler. The runtime itself is built in Pastel, so this will already run everywhere.
The built-in libraries for PlexiScript are located in libs/
. These are
available for import from any user-compiled PlexiScript code. Primarily these
call into Plexi's CommonScript extensions.
The etensions achieve various platform-specific behaviors. Each platform
implements these functions separately and are injected into the CommonScript
runtime for each of the various platforms supported. These are located in the
extensions/
directory and separated by platform. A list of all extensions is
in extensions/manifest.txt
.
The dist/
directory contains the exported version of the CommonScript + Plexi
for each platform. These can be used to build a compiler/interpreter solution
for each platform. The source for each is generated by the files in templates/
and assembled by build.py
. The .NET solution is located separately in
dotnetharness/
.
TODO: eventually, this should be unified a bit better.
- design for a better modular export matrix to generate exporters in a plug-in style for each platform. These should follow a consistent format so that more platform combinations don't add more complexity.
- Compiler libraries once the CommonScript compiler is rewritten into itself.
build.py
documentation- Carry over full set of UI extensions and libraries from prototype repo.