This project contains a demo application of LionWeb. We presented a first version at MPS Meetup 2023, and an advanced version at LangDev 2023.
-
properties-emf
contains a converter from LionCore to Ecore and generator from Ecore to Java. -
properties-json
contains a lionweb-java representation of the PROPS language, and a helper to access PROPS language and instance. -
properties-parser
contains a parser and code generator for a variant of the properties file format. -
mps
contains an MPS project which hosts the PROPS language and its instances. -
freon
contains a web editor for the PROPS language. -
xtend-generators
contains a set of Xtend-based generators.
Each directory contains a readme with more details.
- Java 11 installed and set as current JDK
- MPS 2021.1 installed
- nodejs installed
- yarn installed
-
Open a shell / command window in this directory
property-demo
(i.e. where you cloned https://github.com/LionWeb-io/property-demo) -
Download dependencies for MPS
./gradlew setup
-
Open project
property-demo/mps
in MPS 2021.1 -
Generate Kotlin classes for PROPS language
./gradlew generateASTClasses
-
Generate Ecore model for PROPS language
./gradlew properties-emf:run
-
Build Freon demo
cd freon yarn install
- Open project
property-demo/mps
in MPS 2021.1 - Launch Freon demo
cd freon yarn dev
- Open your web browser on http://localhost:5000/
classDiagram
class ASTNode["StarLasu::ASTNode"]
class PropertiesFile
ASTNode <|-- PropertiesFile
PropertiesFile *-- "0..*" Property: props
class Property {
name: String
}
ASTNode <|-- Property
Property *-- "1" Value: value
class Value
ASTNode <|-- Value
class BooleanValue {
value: Boolean
}
Value <|-- BooleanValue
class DecValue {
value: String
}
Value <|-- DecValue
class IntValue {
value: String
}
Value <|-- IntValue
class StringValue {
value: String
}
Value <|-- StringValue
You can learn more about LIonWeb visiting https://lionweb.io.