CIF language modification
For each change to the CIF language, follow these steps:
Update
cif.setextsyntax (org.eclipse.escet.cif.parser/src/org/eclipse/escet/cif/parser).Update
cif.bnfsyntax (org.eclipse.escet.cif.documentation/images/language-reference/syntax).Update metamodel (
org.eclipse.escet.cif.metamodel).Update Ecore diagrams (open
model/cif.airdand unfold Design and then Entities in a Class Diagram).Update diagram images.
Remove all
*.pngfiles in themodel/imagesfolder of the CIF metamodel project.Right click the
cif.airdfile in the Package Explorer` and choose Export representations as images.Set To directory to the
model/imagesfolder of the CIF metamodel project.Set Image Format to PNG.
Set Image Size to Nominal.
Click OK.
Update genmodel.
Delete
model/cif.genmodel.Right click
model/cif.ecoreand select .Select Eclipse Modeling Framework and EMF Generator Model and click Next.
The parent folder and the file name should already be filled, click Next.
Select Ecore model and click Next.
Click Load and then Next.
For Root packages, select cif, for Referenced generator models, select Position, and click Finish.
Run
model/autofix.pyto update the newly createdcif.genmodel.
Generate metamodel code.
Remove the generated model code (contents of
src-gen).Open
model/cif.genmodel.Right click Cif and click Generate Model Code.
Update generated Java constructors and walker code (
org.eclipse.escet.cif.metamodel.java).Remove the generated code (contents of
src-gen).Right click
gen-cif-constructors.launchand click .Right click
gen-cif-walker.launchand click .
Update LaTeX documentation (
org.eclipse.escet.cif.metamodel).Right click
gen-cif-docs-ecore-latex-skeleton.launchand click .Right click
gen-cif-docs-ecore-latex-skeleton-detail.launchand click .Update
docs/cif_ecore_doc.texbased on the changes indocs/cif_ecore_doc_generated.tex.Update
docs/cif_ecore_doc_details.texbased on the changes indocs/cif_ecore_doc_details_generated.tex.Run
docs/build.bashto generate a new PDF.
Update parser (
org.eclipse.escet.cif.parser).Right click
gen-cif-scanner-parser.launchand click .Implement new AST classes if needed.
Update
CifParserHooks.javasuch that it implementsCifParser.Hooks.Verify the implementation by running
chk.bash.
Update keywords and syntax highlighting for the text editor (
org.eclipse.escet.cif.texteditor).Update type checker (
org.eclipse.escet.cif.typechecker).Add new constraints to the error and problem messages (
ErrMsg.java).Verify the implementation by running
chk.bash.
Update example and benchmark models for changed syntax and constraints (
org.eclipse.escet.cif.examples).Update pretty printer including set of keywords (
org.eclipse.escet.cif.prettyprinter).Update common methods (
org.eclipse.escet.cif.common).Update CIF to CIF transformations and other tools.
Update CIF documentation, including language reference manual with lexical syntax and grammar.
Update CIF syntax highlighting definition for LaTeX (
org.eclipse.escet.cif.misc/latex/cif_listing.sty).