
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: dsl/scheduling/bossa/youssef/extracted
Source used for this grammar: SROUR Youssef, Bossa 1.0 1.1, Bossa.ecore, 2006/07/31
BossaProgramm, Scheduler, NormalScheduler, VirtualScheduler, AbstractSchedulerDecl, SchedulerDecl, VSchdulerDecl, ConstDef, TypeDef, EnumRange, EnumDef, BagId, RangeDef, ProcessDef, SchedulerDef, ProcessVarDecl, Timer_ProcessVarDecl, System_ProcessVarDecl, Normal_ProcessVarDecl, HandlerDef, InterfaceDef, FunctionDef, Expression, Integer_Expression, Id_Expression, State_Expression, True_Expression, False_Expression, Unop_Expression, Etoile_Expression, ExpId_Expression, Select_Expression, FnName_Expression, Empty_Expression, SRCOnSched_Expression, SchedulerOf_Expression, In_Expression, Parenthese_Expression, Binop_Expression, Compo_Binop_Expression, ValDecl, Normal_ValDecl, System_ValDecl, Timer_ValDecl, FunDecl, StateDef, ClassNameStorage, OrderDef, AdmissionDef, TraceDef, TypeExpr, TypeOrVoid, ParameterType, Storage, Process_Storage, Scheduler_Storage, Queue_Storage, KeyCritDecls, CompoKeyCritDecls, CritDecls, CritDecl, CritDeclWhithId, CritDeclWhithoutId, ValDef, AdmCrit, AttachDetach, ParamVarDecl, SeqStmt, TraceEvent, TraceExpr, TraceTest, ProcParam, Statment, IfStmt, ForStmt, ForeachForStmt, ForEachIncreasingForStmt, ForEachDecreasingForStmt, ReturnStmt, SwitchStmt, AssignStmt, MoveStmt, NormalMoveStmt, ForwardMoveStmt, StateRef, DeferStmt, PrimStmt, ErrorStmt, BreakStmt, LocExpr, MoveExpr, Select_MoveExpr, SatateName_MoveExpr, ID_MoveExpr, IDSource_MoveExpr, IDTarget_MoveExpr, ClassState, OnHandlerDef, EventName, ComposantOfSwitchStmt, ComposantOfInterFunc, BossaTypeExpr, QueueType, Normal_QueueType, Fifo_QueueType, Lifo_QueueType, Critop, StateVisibility, ClassName, NonProcType, Unop, Binop, AssignUnop, AssignBinop, String, Boolean, Integer), 0 root (—), 14 top (BossaProgramm, ConstDef, TypeDef, BagId, HandlerDef, InterfaceDef, FunctionDef, ValDecl, FunDecl, StateDef, OrderDef, AdmissionDef, TraceDef, Critop), 0 bottom (—).[scheduler] 5, [schedulerDecl], [vschedulerDecl], [processDef] 3, [schedulerDef] 3, [id] 24, [expr] 17, [bossaTypeExpr] 3, [enumRang], [enumDef], [rangeDef], [theIds], [theValue] 3, [processVarDecl] 2, [system] 2, [typeExpr] 6, [onHandlerDef], [composantOfInterFunc] 2, [unop], [classState] 4, [in], [id_Expression] 2, [compo_Binop_Expression], [binop], [abstractSchedulerDecl] 7, [nonProcType] 4, [parameterTypes], [classNameStorage], [className] 3, [storage], [keyCritDecl], [critDecls], [valDef] 2, [admCrit], [attachDetach], [traceEvent], [traceExpr], [traceTest], [isVoid], [stateVisibility] 2, [queueType], [compoKeyCritDecls], [critDecl] 2, [paramVarDecl] 2, [procParam1], [procParam2], [seqStmt1], [seqStmt2], [stmt], [eventName] 2, [process], [seqStmt] 7, [isIn], [locExpr] 2, [composantOfSwitchStmt], [assignUnop], [assignBinop], [stateRef] 2, [isHead], [isTail], [moveExpr], [deferStmt], [errorType], [stateName], [state], [eventNameLeft], [eventNameRight], [typeOrVoid], [lowest], [highest], [public], [private], [struct], [plus] 2, [minus] 2, [excl], [tild], [star], [slash], [percentage], [doubleAnd], [doubleVerticalBar], [and], [eq], [ne], [lt], [gt], [le], [ge], [doubleLt], [doubleGt], [doublePlus], [doubleMoins], [affect], [plusEqual], [moinsEqual], [starEqual], [slashEqual], [percentageEqual], [andEqual], [orEqual], [doubleLtEqual], [doubleGtEqual].BossaProgramm ::= [scheduler]::Scheduler
Scheduler ::= NormalScheduler
Scheduler ::= VirtualScheduler
NormalScheduler ::= [schedulerDecl]::SchedulerDecl
VirtualScheduler ::= [vschedulerDecl]::VSchdulerDecl
AbstractSchedulerDecl ::= SchedulerDecl
AbstractSchedulerDecl ::= VSchdulerDecl
SchedulerDecl ::= [processDef]::ProcessDef
VSchdulerDecl ::= [schedulerDef]::SchedulerDef
ConstDef ::= [id]::String [expr]::Expression [bossaTypeExpr]::BossaTypeExpr
TypeDef ::= [enumRang]::EnumRange
EnumRange ::= [enumDef]::EnumDef [rangeDef]::RangeDef
EnumDef ::=
[theIds]::StringBagId ::= [theValue]::String
RangeDef ::= [expr]::Expression
ProcessDef ::=
[processVarDecl]::ProcessVarDeclSchedulerDef ::=
[processVarDecl]::ProcessVarDeclProcessVarDecl ::= Timer_ProcessVarDecl
ProcessVarDecl ::= System_ProcessVarDecl
ProcessVarDecl ::= Normal_ProcessVarDecl
ProcessVarDecl ::= [id]::String [processDef]::ProcessDef [schedulerDef]::SchedulerDef
Timer_ProcessVarDecl ::= [id]::String [processDef]::ProcessDef [schedulerDef]::SchedulerDef
System_ProcessVarDecl ::= [system]::Boolean [typeExpr]::TypeExpr
Normal_ProcessVarDecl ::= [typeExpr]::TypeExpr
HandlerDef ::=
[id]::String [scheduler]::Scheduler [onHandlerDef]::OnHandlerDefInterfaceDef ::=
[composantOfInterFunc]::ComposantOfInterFunc [scheduler]::SchedulerFunctionDef ::=
[composantOfInterFunc]::ComposantOfInterFunc [scheduler]::SchedulerExpression ::= Integer_Expression
Expression ::= Id_Expression
Expression ::= State_Expression
Expression ::= True_Expression
Expression ::= False_Expression
Expression ::= Unop_Expression
Expression ::= Etoile_Expression
Expression ::= ExpId_Expression
Expression ::= Select_Expression
Expression ::= FnName_Expression
Expression ::= Empty_Expression
Expression ::= SRCOnSched_Expression
Expression ::= SchedulerOf_Expression
Expression ::= In_Expression
Expression ::= Parenthese_Expression
Expression ::= Binop_Expression
Integer_Expression ::= [theValue]::Integer
Id_Expression ::= [id]::String
State_Expression ::= [theValue]::String
True_Expression ::= ε
False_Expression ::= ε
Unop_Expression ::= [unop]::Unop [expr]::Expression
Etoile_Expression ::= [expr]::Expression
ExpId_Expression ::= [id]::String [expr]::Expression
Select_Expression ::= ε
FnName_Expression ::=
[expr]::ExpressionEmpty_Expression ::= [classState]::ClassState
SRCOnSched_Expression ::= ε
SchedulerOf_Expression ::= [expr]::Expression
In_Expression ::= [in]::Boolean [expr]::Expression [classState]::ClassState
Parenthese_Expression ::= [expr]::Expression
Binop_Expression ::= [id_Expression]::Id_Expression [compo_Binop_Expression]::Compo_Binop_Expression
Compo_Binop_Expression ::= [binop]::Binop [id_Expression]::Id_Expression
ValDecl ::= Normal_ValDecl
ValDecl ::= System_ValDecl
ValDecl ::= Timer_ValDecl
ValDecl ::= [id]::String [abstractSchedulerDecl]::AbstractSchedulerDecl
Normal_ValDecl ::= [nonProcType]::NonProcType
System_ValDecl ::= [nonProcType]::NonProcType
Timer_ValDecl ::= [id]::String [abstractSchedulerDecl]::AbstractSchedulerDecl
FunDecl ::= [parameterTypes]::ParameterType [nonProcType]::NonProcType [abstractSchedulerDecl]::AbstractSchedulerDecl
StateDef ::=
[classNameStorage]::ClassNameStorage [abstractSchedulerDecl]::AbstractSchedulerDeclClassNameStorage ::= [id]::String [className]::ClassName [storage]::Storage
OrderDef ::= [keyCritDecl]::KeyCritDecls [critDecls]::CritDecls [abstractSchedulerDecl]::AbstractSchedulerDecl
AdmissionDef ::=
[valDef]::ValDef [admCrit]::AdmCrit [attachDetach]::AttachDetach [abstractSchedulerDecl]::AbstractSchedulerDeclTraceDef ::= [traceEvent]::TraceEvent [traceExpr]::TraceExpr [traceTest]::TraceTest [abstractSchedulerDecl]::AbstractSchedulerDecl
TypeExpr ::= [id]::String [bossaTypeExpr]::BossaTypeExpr
TypeOrVoid ::= [isVoid]::Boolean [typeExpr]::TypeExpr
ParameterType ::=
[typeExpr]::TypeExprStorage ::= Process_Storage
Storage ::= Scheduler_Storage
Storage ::= Queue_Storage
Process_Storage ::= ε
Scheduler_Storage ::= [stateVisibility]::StateVisibility
Queue_Storage ::= [stateVisibility]::StateVisibility [queueType]::QueueType
KeyCritDecls ::=
[compoKeyCritDecls]::CompoKeyCritDeclsCompoKeyCritDecls ::= [critDecl]::CritDecl
CritDecls ::=
[critDecl]::CritDeclCritDecl ::= CritDeclWhithId
CritDecl ::= CritDeclWhithoutId
CritDeclWhithId ::= [id]::String
CritDeclWhithoutId ::= [expr]::Expression
ValDef ::= [id]::String [typeExpr]::TypeExpr [expr]::Expression
AdmCrit ::=
[paramVarDecl]::ParamVarDecl [expr]::ExpressionAttachDetach ::= [procParam1]::ProcParam [procParam2]::ProcParam [seqStmt1]::SeqStmt [seqStmt2]::SeqStmt
ParamVarDecl ::= [id]::String [typeExpr]::TypeExpr
SeqStmt ::= [valDef]::ValDef [stmt]::Statment
TraceEvent ::=
[eventName]::EventNameTraceExpr ::=
[id]::StringTraceTest ::= [expr]::Expression
ProcParam ::= [id]::String [process]::Boolean [scheduler]::Boolean
Statment ::= IfStmt
Statment ::= ForStmt
Statment ::= ReturnStmt
Statment ::= SwitchStmt
Statment ::= AssignStmt
Statment ::= MoveStmt
Statment ::= DeferStmt
Statment ::= PrimStmt
Statment ::= ErrorStmt
Statment ::= BreakStmt
IfStmt ::= [expr]::Expression [seqStmt]::SeqStmt
ForStmt ::= ForeachForStmt
ForStmt ::= ForEachIncreasingForStmt
ForStmt ::= ForEachDecreasingForStmt
ForeachForStmt ::=
[id]::String [isIn]::Boolean [classState]::ClassState [seqStmt]::SeqStmtForEachIncreasingForStmt ::= [id]::String [seqStmt]::SeqStmt
ForEachDecreasingForStmt ::= [id]::String [seqStmt]::SeqStmt
ReturnStmt ::= [expr]::Expression
SwitchStmt ::=
[locExpr]::LocExpr [composantOfSwitchStmt]::ComposantOfSwitchStmtAssignStmt ::= [locExpr]::LocExpr [assignUnop]::AssignUnop [assignBinop]::AssignBinop [expr]::Expression
MoveStmt ::= NormalMoveStmt
MoveStmt ::= ForwardMoveStmt
NormalMoveStmt ::= [stateRef]::StateRef
ForwardMoveStmt ::= [isHead]::Boolean [isTail]::Boolean [moveExpr]::MoveExpr
StateRef ::= [stateRef]::String
DeferStmt ::= [deferStmt]::String
PrimStmt ::=
[expr]::ExpressionErrorStmt ::= [errorType]::String
BreakStmt ::= ε
LocExpr ::=
[stateName]::String [id]::StringMoveExpr ::= Select_MoveExpr
MoveExpr ::= SatateName_MoveExpr
MoveExpr ::= ID_MoveExpr
MoveExpr ::= IDSource_MoveExpr
MoveExpr ::= IDTarget_MoveExpr
Select_MoveExpr ::= ε
SatateName_MoveExpr ::= ε
ID_MoveExpr ::= [id]::String
IDSource_MoveExpr ::= [id]::String
IDTarget_MoveExpr ::= [id]::String
ClassState ::= [state]::Boolean [className]::ClassName
OnHandlerDef ::=
[eventName]::EventName [seqStmt]::SeqStmtEventName ::= [eventNameLeft]::String [eventNameRight]::String
ComposantOfSwitchStmt ::=
[classState]::ClassState [seqStmt]::SeqStmtComposantOfInterFunc ::=
[id]::String [typeOrVoid]::TypeOrVoid [paramVarDecl]::ParamVarDecl [seqStmt]::SeqStmtBossaTypeExpr ::= [bossaTypeExpr]::String
QueueType ::= Normal_QueueType
QueueType ::= Fifo_QueueType
QueueType ::= Lifo_QueueType
Normal_QueueType ::= ε
Fifo_QueueType ::= ε
Lifo_QueueType ::= ε
Critop ::= [lowest]::Boolean [highest]::Boolean
StateVisibility ::= [public]::Boolean [private]::Boolean
ClassName ::= [className]::String
NonProcType ::= [system]::Boolean [struct]::Boolean [id]::Boolean [nonProcType]::String
Unop ::= [plus]::Boolean [minus]::Boolean [excl]::Boolean [tild]::Boolean
Binop ::= [plus]::Boolean [minus]::Boolean [star]::Boolean [slash]::Boolean [percentage]::Boolean [doubleAnd]::Boolean [doubleVerticalBar]::Boolean [and]::Boolean [eq]::Boolean [ne]::Boolean [lt]::Boolean [gt]::Boolean [le]::Boolean [ge]::Boolean [doubleLt]::Boolean [doubleGt]::Boolean
AssignUnop ::= [doublePlus]::Boolean [doubleMoins]::Boolean
AssignBinop ::= [affect]::Boolean [plusEqual]::Boolean [moinsEqual]::Boolean [starEqual]::Boolean [slashEqual]::Boolean [percentageEqual]::Boolean [andEqual]::Boolean [orEqual]::Boolean [doubleLtEqual]::Boolean [doubleGtEqual]::Boolean
String ::= string
Boolean ::= "true" "false"
Integer ::= integer