X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=dsl%2Fxtend%2Fsrc%2Frobots%2Fmissions%2FTaskDSL.xtext;h=641e3c31588df1391bac706c5e62489935a4f266;hb=095cdf6fc0cbad75c6057a401cbab23c18931a3d;hp=afefa5df1a8758752b7ea82ea66ba0ddd9cc9f50;hpb=3a12cfb82749c7ca2cec2d31da1b4d62ffe9e7e2;p=des2015.git diff --git a/dsl/xtend/src/robots/missions/TaskDSL.xtext b/dsl/xtend/src/robots/missions/TaskDSL.xtext index afefa5d..641e3c3 100644 --- a/dsl/xtend/src/robots/missions/TaskDSL.xtext +++ b/dsl/xtend/src/robots/missions/TaskDSL.xtext @@ -13,7 +13,7 @@ Mission: StoppingExpression: '(' op=Operator s+=StoppingExpression s+=StoppingExpression+ ')' | - 'not ' negscond=StoppingCondition | + 'not ' negscond=StoppingExpression | scond=StoppingCondition; StoppingCondition: @@ -21,7 +21,8 @@ StoppingCondition: '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 'take control:' tc=StoppingExpression? @@ -29,14 +30,19 @@ Behaviour: 'Behaviour' name=ID Action: whichMotor=LeftRight 'motor' moveDir=Direction ('with speed' spd=INT 'acceleration' acc=INT)? | - 'turn' turnDir=LeftRight degrees=INT ('with speed' spd=INT 'acceleration' acc=INT)? | - {Action} 'measure'| + 'turn' turnType=Turn ('with speed' spd=INT 'acceleration' acc=INT)? | + 'measure' rl=RockLake| 'wait' time=Time; + +Turn: + turnDir=LeftRight 'exactly' degrees=INT 'degrees'| + 'randomly' start=INT 'to' end=INT 'degrees' +; 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;