lenarb / crml-compiler Goto Github PK
View Code? Open in Web Editor NEWImplementation of the CRML to Modelica compiler supported by the ITEA3 EMBRACE project.
Implementation of the CRML to Modelica compiler supported by the ITEA3 EMBRACE project.
An issues to keep track of evaluate and categories, will update with progress
A placeholder to keep track of all the current issues with sets, current problem with mapping all operators on sets and propagating sets in all expression evaluation.
An issue was opened here: OpenModelica/OpenModelica#12245
There is no keyword new in BooleanConstructors.crml
It would make it more readable and easy to parse if conversions used "new", but we can discuss it of course.
Update/add some examples to test the new time variable once it is added to the compiler
model OperatorExample2 is {
// Definition of disjunction of two Booleans.
Operator [ Boolean ] Boolean b1 or Boolean b2 = not (not b1 and not b2);
// Example of function call
Boolean b1 is external;
Boolean b2 is external;
Boolean b is b1 or b2;
};
but or is also defined in the specification as a built in operator, so it does not parse correctly, plus operator names should be in '', so the correct syntax is 'or' for a user defined operator
Update/add some examples to test external
variables.
Are both of them useful?
@lenaRB : The test report says that the "CheckOver_no_ext" example is successful but the translation of "check over" operator seems to me as still not finished. Is that normal?
I don't know if it requires a lot of effort from but it would be better for the user to stop the compilation in that case and say that such instructions are not supported yet.
Create a folder to host CRML language specification as pdf (since html conversion is still under progress) as well as other publications made on CRML that are accessible online.
update definition of 'check count' operators when traffic-light example will be supported by the compiler.
@audrey-jardin Should the variables here be defined as Booleans or am I reading the syntax wrong?
@adrpo: (not urgent at all) OMEdit icons "open a file" and "new file" should be updated to support opening and creation of files with .crml extension
Modelica code generated for the spec-doc-examples\BooleanAccumulation.crml file needs to be fixed.
BooleanAccumulation.zip
Ideally we would find a way of running the docker image from JUnit, but there needs to be a way that does not reload it everytime otherwise it is ridiculously inefficient
Otherwise some script that runs all the simulated models
One issue to consider is that a lot of them rely on external variables, so we might need to connect them in some batch way.
@adrpo : could be useful to automatically load CRMLtoModelica when the user translates crml file in OMEdit as the generated file requested it to be simulated.
why is 'new' not used when creating a new period? I am still a bit fuzzy on when we use new and when it is implicit. Is it when we use it for type conversion? Like new Clock my_boolean?
A place holder to keep track of all the clock related issues
only CRML code is released yet
RealExp.crml - there is exp which should be probably defined as something concrete
@adrpo : on Windows machine, option "translate as" is working but not option "translate" probably due to path mixing.
@lenaRB : new ticket just to keep it in mind
For some tests, especially ones without external variables it would be easiest to have the expected value as some kind of annotation instead of a whole reference file with results, because we only care about the value of the requirement for example.
Then we should just have an annotation for that in the relevant tests? var = b, expectedResult = true
@adrpo, @audrey-jardin what do you think?
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.