| /** |
| * |
| * Copyright (c) 2011, 2018 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) |
| * |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation |
| * |
| */ |
| grammar org.eclipse.osbp.xtext.signal.SignalDSL |
| with org.eclipse.osbp.xtext.oxtype.OXtype |
| |
| import "http://osbp.eclipse.org/xtext/signal/SignalDSL" |
| import "http://osbp.eclipse.org/xtext/datainterchange/DataDSL" as data |
| import "http://osbp.eclipse.org/dsl/common/types/v1" as types |
| import "http://www.eclipse.org/emf/2002/Ecore" as ecore |
| |
| |
| SignalModel: |
| importSection=XImportSection? |
| packages+=SignalPackage*; |
| |
| SignalPackage: |
| {SignalPackage} 'package' name=QualifiedName |
| ('{' (watchers+=SignalWatcher)* '}')? ; |
| |
| |
| SignalWatcher: |
| {SignalWatcher} |
| 'watcher' name=TRANSLATABLEID |
| 'directory' directory=STRING |
| 'for' signal=SignalTypeEnum |
| '{' (handlers+=SignalHandler)* '}'; |
| |
| |
| SignalHandler: |
| {SignalHandler} |
| 'handler' name=TRANSLATABLEID |
| actionType=SignalHandlerTypeEnum |
| data=DataTransfer |
| (executiontype=SignalExecutionTypeEnum)? |
| 'forFileMask' filemask=STRING; |
| // processor=SignalProcessor; |
| |
| DataTransfer: |
| SingleTransfer | ListTransfer |
| ; |
| |
| ListTransfer: |
| {ListTransfer} 'DataTransfer' |
| '{' interchanges+=SignalDatainterchange* '}' |
| ; |
| |
| SingleTransfer: |
| interchange=SignalDatainterchange |
| ; |
| |
| SignalDatainterchange: |
| dataAction=SignalActionEnum |
| dataRef = [data::DataInterchange] |
| 'fileName' fileName=STRING; |
| |
| SignalProcessor: |
| SignalDatainterchange; |
| |
| enum SignalActionEnum: |
| DATAIMPORT='Import' | DATAEXPORT='Export'; |
| |
| enum SignalTypeEnum: |
| // all = 'all' | |
| createsignals = 'createSignals' | |
| modifysignals = 'modifySignals' ; |
| // deletesignals = 'deleteSignals'; |
| |
| enum SignalHandlerTypeEnum: |
| // doafter = 'doAfter' | |
| doaftermodify = 'doAfterModify' | |
| doaftercreate = 'doAfterCreate'; |
| // doafterdelete = 'doAfterDelete'; |
| |
| enum SignalExecutionTypeEnum: |
| SYNC = 'synch' | ASYNC = 'asynch'; |
| |
| TRANSLATABLEID: |
| ID; |
| |
| TRANSLATABLESTRING: |
| STRING; |