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]::String
BagId ::= [theValue]::String
RangeDef ::= [expr]::Expression
ProcessDef ::=
[processVarDecl]::ProcessVarDecl
SchedulerDef ::=
[processVarDecl]::ProcessVarDecl
ProcessVarDecl ::= 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]::OnHandlerDef
InterfaceDef ::=
[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]::Expression
Empty_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]::TypeExpr
Storage ::= Process_Storage
Storage ::= Scheduler_Storage
Storage ::= Queue_Storage
Process_Storage ::= ε
Scheduler_Storage ::= [stateVisibility]::StateVisibility
Queue_Storage ::= [stateVisibility]::StateVisibility [queueType]::QueueType
KeyCritDecls ::=
[compoKeyCritDecls]::CompoKeyCritDecls
CompoKeyCritDecls ::= [critDecl]::CritDecl
CritDecls ::=
[critDecl]::CritDecl
CritDecl ::= 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]::EventName
TraceExpr ::=
[id]::String
TraceTest ::= [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]::ComposantOfSwitchStmt
AssignStmt ::= [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]::Expression
ErrorStmt ::= [errorType]::String
BreakStmt ::= ε
LocExpr ::=
[stateName]::String [id]::String
MoveExpr ::= 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