blob: 1e50e739e3abdcf9362c623d9404ceb71b2c53c1 [file] [log] [blame]
/**
*
* 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;