Ros2Rag ros2rag = update_definition.d ros2rag.r {: r.getUpdateDefinitionList().insertChild(d, 0); return r; :} | dependency_definition.d ros2rag.r {: r.getDependencyDefinitionList().insertChild(d, 0); return r; :} | mapping_definition.d ros2rag.r {: r.getMappingDefinitionList().insertChild(d, 0); return r; :} | {: return new Ros2Rag(); :} ; // read Joint.CurrentPosition using LinkStateToIntPosition ; // write RobotArm._AppropriateSpeed using CreateSpeedMessage ; UpdateDefinition update_definition = READ ID.type_name DOT ID.token_name SCOL {: ReadFromMqttDefinition result = new ReadFromMqttDefinition(); result.setToken(TokenComponent.createRef(type_name + "." + token_name)); return result; :} | READ ID.type_name DOT ID.token_name USING ID.mapping_def SCOL {: ReadFromMqttDefinition result = new ReadFromMqttDefinition(); result.setToken(TokenComponent.createRef(type_name + "." + token_name)); result.setMapping(MappingDefinition.createRef(mapping_def)); return result; :} | WRITE ID.type_name DOT ID.token_name SCOL {: WriteToMqttDefinition result = new WriteToMqttDefinition(); result.setToken(TokenComponent.createRef(type_name + "." + token_name)); return result; :} | WRITE ID.type_name DOT ID.token_name USING ID.mapping_def SCOL {: WriteToMqttDefinition result = new WriteToMqttDefinition(); result.setToken(TokenComponent.createRef(type_name + "." + token_name)); result.setMapping(MappingDefinition.createRef(mapping_def)); return result; :} ; // RobotArm._AppropriateSpeed canDependOn Joint.CurrentPosition as dependency1 ; DependencyDefinition dependency_definition = ID.target_type DOT ID.target_token CAN_DEPEND_ON ID.source_type DOT ID.source_token AS ID.id SCOL {: DependencyDefinition result = new DependencyDefinition(); result.setSource(TokenComponent.createRef(source_type + "." + source_token)); result.setTarget(TokenComponent.createRef(target_type + "." + target_token)); result.setID(id); return result; :} ; //LinkStateToIntPosition maps protobuf panda.Linkstate.PandaLinkState x to IntPosition y { // panda.Linkstate.PandaLinkState.Position p = x.getPos(); // y = IntPosition.of((int) p.getPositionX(), (int) p.getPositionY(), (int) p.getPositionZ()); //} MappingDefinition mapping_definition = ID.id MAPS java_type_use.from_type ID.from_variable TO java_type_use.to_type ID.to_variable LB_CURLY mapping_def_content.content RB_CURLY {: MappingDefinition result = new MappingDefinition(); result.setID(id); result.setFrom(from_type); result.setFromVariable(from_variable); result.setTo(to_type); result.setToVariable(to_variable); result.setContent(content); return result; :} ; String mapping_def_content = ID ;