jsmf-jstl
Version:
Model transformation for JSTL
44 lines (27 loc) • 1.16 kB
JavaScript
const JSMF = require('jsmf-core')
let Class, Model, Enum
(function() {
Model = JSMF.Model
Class = JSMF.Class
Enum = JSMF.Enum
}).call()
const Signal = new Enum('Signal', ['LOW', 'HIGH'])
const NamedElement = Class.newInstance('NamedElement', [], {name: String})
const App = Class.newInstance('App', NamedElement)
const State = Class.newInstance('State', NamedElement)
App.setReference('states', State, -1)
App.setReference('initial', State, 1)
const Brick = Class.newInstance('Brick', NamedElement, {pin: JSMF.Range(0,13)})
const Action = Class.newInstance('Action', [], {value: Signal})
State.setReference('action', Action, -1)
const Transition = Class.newInstance('Transition', [], {value: Signal})
Transition.setReference('next', State, 1)
State.setReference('transition', Transition, 1)
const Sensor = Class.newInstance('Sensor', Brick)
Transition.setReference('sensor', Sensor, 1)
var Actuator = Class.newInstance('Actuator', Brick)
Action.setReference('actuator', Actuator, 1)
App.setReference('bricks', Brick, -1)
var ArduinoML = new Model('ArduinoML', {}, App, true)
module.exports = JSMF.modelExport(ArduinoML)