quenio / cml-compiler Goto Github PK
View Code? Open in Web Editor NEWCML Compiler
License: Apache License 2.0
CML Compiler
License: Apache License 2.0
Support path expressions to specify derived associations.
When one wants to share a module with other developers, the module can be packaged as a library and published into a public (or organization-wide) library repository.
A CML library is just a packaged, read-only module with a version. Any CML module can import a library by specifying the module name and a version.
A version has the format: revision[.accretion][.fix]
Where:
Compatible versions do not break the library's interfaces but only add new features. Fixes cannot change the library's interfaces at all. The rules should be enforced by the compiler when packaging and publishing (that is, releasing) new versions of a library.
When developing a single application with just a few targets, having a single directory to maintain all the code is fine. But once one needs to develop more than one application and share code among them, it is necessary to separate the common code. Also, some applications cover different domains, and it may be beneficial to separate the code for each domain.
In order to allow that, CML supports modules. Each module is a directory containing three sub-directories:
Under the CML source directory, the module will be defined by a module block. If a module needs to reference source in other modules, then an import statement should define the name of the other modules. The compiler will then compile the imported modules before compiling the current module.
In order for the compiler to find the other modules, they must be in a directory with the module's name under the same directory where the current module is located.
CML modules have no versions as they are maintained in the same code repository with the other modules they import. However, one can package a module as a library, which will have a version and the same name as the module. This library in turn can be published into a public (or company-wide) CML library site in order to be shared with other developers.
A module can also import a library, but its version must be specified along with its name. If a import statemement does not specify a version, it is assumed it is a module located in the same code repository; not a published library.
Acceptance criteria:
cml
command compiles the module in the current dir. Only argument is the target name.Properties are a simple way to define one-directional associations. However, sometimes it is necessary to specify that two one-directional associations should be bound into a single bi-directional association, so that changes in one are reflected in the other.
Acceptance Criteria:
Support arithmetic for primitive types to define the initial values of attributes.
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.