private Action createAction(Element element) { Action action = IrFactory.eINSTANCE.createAction(); String id = element.getAttribute("id"); action.setId(id); doAnnotations(action, element); addIrObject(id, action); action.setOuter((Actor) findIrObject(element.getAttribute("outer-scope"))); List<Element> qualifiedName = getChildren(getChild(element, "QID"), "ID"); for (Element e : qualifiedName) { action.getTag().add(e.getAttribute("name")); } List<Element> decls = getChildren(element, "Decl"); for (Element e : decls) { Declaration decl = createDeclaration(e); action.getDeclarations().add(decl); } List<Element> guards = getChildren(element, "Guard"); for (Element e : guards) { Guard guard = createGuard(e); action.getGuards().add(guard); } List<Element> inputs = getChildren(element, "PortRead"); for (Element e : inputs) { PortRead portRead = createPortRead(action, e); action.getInputs().add(portRead); } List<Element> stmts = getChildren(element, "Stmt"); for (Element e : stmts) { Statement stmt = createStatement(e); action.getStatements().add(stmt); } List<Element> outputs = getChildren(element, "PortWrite"); for (Element e : outputs) { PortWrite portWrite = createPortWrite(action, e); action.getOutputs().add(portWrite); } return action; }