X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=dsl%2Fxtend%2Fsrc%2Frobots%2Fmissions%2FTaskDSL.xtext;h=7fb398a0cee692cb23bfc72d6c9d485c0661d389;hb=f92a71770aa8fc8abe3a60660df2965ec18cb479;hp=14a834f42bf0cb8ad6cd42115d46bbbb167634fd;hpb=1b13ccb59263b66abc763fb8f298b14bdebc9582;p=des2015.git diff --git a/dsl/xtend/src/robots/missions/TaskDSL.xtext b/dsl/xtend/src/robots/missions/TaskDSL.xtext index 14a834f..7fb398a 100644 --- a/dsl/xtend/src/robots/missions/TaskDSL.xtext +++ b/dsl/xtend/src/robots/missions/TaskDSL.xtext @@ -17,21 +17,24 @@ StoppingExpression: scond=StoppingCondition; StoppingCondition: - 'Collected at least' colors+=Color+ | + 'flag set' varName=ID | 'Touched on' touch=LeftRight | 'Light on' light=LeftRight | 'Distance dangerous at ' dist=BackFront | - 'Color is' color=Color; + 'Color is' color=Color | + {StoppingCondition} 'Never'; -Behaviour: 'Behaviour' name=ID +Behaviour: 'Behaviour' name=ID 'take control:' tc=StoppingExpression? - 'action:' actions+=Action+; + 'action:' actions+=Action+ + ; Action: whichMotor=LeftRight 'motor' moveDir=Direction ('with speed' spd=INT 'acceleration' acc=INT)? | 'turn' turnType=Turn ('with speed' spd=INT 'acceleration' acc=INT)? | - {Action} 'measure'| - 'wait' time=Time; + 'measure' rl=RockLake| + 'wait' time=Time | + 'set flag' varName=ID; Turn: turnDir=LeftRight 'exactly' degrees=INT 'degrees'| @@ -41,7 +44,7 @@ Turn: Time: time=INT 'ms' | {Time} 'forever'; RockLake: d=RockLakeE; -enum RockLakeE: ROCK='rock' | LAKE='lake'; +enum RockLakeE: ROCK='Rock' | LAKE='Lake'; Direction: d=DirectionE; enum DirectionE: BACKWARDS = 'backward' | FORWARDS = 'forward'; Operator: d=OperatorE;