def context_visitor_visit(cv, node_): lab = get_label_child(node_) block = get_block_child(node_) visited = [] visited.append(lab) visited.append(cv.visit(block)) return util.antlr_dupnode_and_replace_children(node_, visited)
def context_visitor_visit(cv, node_): context_ = cv.get_context() body = get_block_child(node_) visited = [cv.visit(body)] """unfolded = util.unfold_once(context_, body) # FIXME: rec block collection in unfolder visited = [cv.visit(unfolded)]""" return util.antlr_dupnode_and_replace_children(node_, visited)
def traverse(traverser, node_): traversed = [] for child in get_children(node_): next = traverser.traverse(child) traversed.append(next) rebuilt = util.antlr_dupnode_and_replace_children(node_, traversed) return rebuilt
def context_visitor_visit(cv, node_): context_ = cv.get_context() body = get_block_child(node_) visited = [cv.visit(body)] """unfolded = util.unfold_once(context_, body) # FIXME: rec block collection in unfolder visited = [cv.visit(unfolded)]""" return util.antlr_dupnode_and_replace_children(node_, visited)
def context_visitor_visit(cv, node_): lab = get_label_child(node_) block = get_block_child(node_) visited = [] visited.append(lab) visited.append(cv.visit(block)) return util.antlr_dupnode_and_replace_children(node_, visited)
def traverse(traverser, node_): traversed = [] for child in get_children(node_): next = traverser.traverse(child) traversed.append(next) rebuilt = util.antlr_dupnode_and_replace_children(node_, traversed) return rebuilt
def traverse(traverser, node_): traversed = [] traversed.append(traverser.traverse_untyped_leaf(get_arg_child(node_))) if has_parameter_child(node_): param = get_parameter_child(node_) traversed.append(traverser.traverse_untyped_leaf(param)) return util.antlr_dupnode_and_replace_children(node_, traversed)
def traverse(traverser, node_): traversed = [] op = get_operator_child(node_) payload = get_payload_child(node_) traversed.append(traverser.traverse_untyped_leaf(op)) traversed.append(traverser.traverse(payload)) new = util.antlr_dupnode_and_replace_children(node_, traversed) return new
def traverse(traverser, node_): traversed = [] op = get_operator_child(node_) payload = get_payload_child(node_) traversed.append(traverser.traverse_untyped_leaf(op)) traversed.append(traverser.traverse(payload)) new = util.antlr_dupnode_and_replace_children(node_, traversed) return new
def traverse(traverser, node_): traversed = [] msg = get_message_child(node_) if util.get_node_type(msg) == constants.MESSAGE_SIGNATURE_NODE_TYPE: traversed.append(traverser.traverse(msg)) else: traversed.append(traverser.traverse_untyped_leaf(msg)) traversed.append(traverser.traverse_untyped_leaf(get_source_child(node_))) return util.antlr_dupnode_and_replace_children(node_, traversed)
def context_visitor_visit(cv, node_): scope = get_scope_child(node_) block = get_block_child(node_) interrupts = get_interrupt_children(node_) visited = [] visited.append(scope) visited.append(cv.visit(block)) # Section 4.6.9 -- block is well-formed visited.extend(interrupts) return util.antlr_dupnode_and_replace_children(node_, visited)
def context_visitor_visit(cv, node_): scope = get_scope_child(node_) block = get_block_child(node_) interrupts = get_interrupt_children(node_) visited = [] visited.append(scope) visited.append(cv.visit(block)) # Section 4.6.9 -- block is well-formed visited.extend(interrupts) return util.antlr_dupnode_and_replace_children(node_, visited)
def traverse(traverser, node_): scope = get_scope_child(node_) block = get_block_child(node_) interrupts = get_interrupt_children(node_) traversed = [] traversed.append(traverser.traverse_untyped_leaf(scope)) traversed.append(traverser.traverse(block)) for interr in interrupts: traversed.append(traverser.traverse(interr)) return util.antlr_dupnode_and_replace_children(node_, traversed)
def traverse(traverser, node_): scope = get_scope_child(node_) block = get_block_child(node_) interrupts = get_interrupt_children(node_) traversed = [] traversed.append(traverser.traverse_untyped_leaf(scope)) traversed.append(traverser.traverse(block)) for interr in interrupts: traversed.append(traverser.traverse(interr)) return util.antlr_dupnode_and_replace_children(node_, traversed)
def _visit_globalinterruptible(self, node_): scope = globalinterruptible_get_scope(node_) if scope == globalinterruptible_EMPTY_SCOPE_NAME: children = [] scopenode = globalinterruptible_get_scope_child(node_) children.append(self._replace_scope_node(scopenode)) children.append(globalinterruptible_get_block_child(node_)) children.extend(globalinterruptible_get_interrupt_children(node_)) node_ = util.antlr_dupnode_and_replace_children(node_, children) return node_
def check_wellformedness_visit(checker, node_): visited = [] for child in get_children(node_): context_ = checker.get_context() #if not context_.has_exit(): # util.report_error("Bad sequence: " + util.pretty_print(child)) # Check moved to local projections # Section 4.6.4 -- Well-formed global interactions visited.append(checker.visit(child)) return util.antlr_dupnode_and_replace_children(node_, visited)
def _visit_globalinterruptible(self, node_): scope = globalinterruptible_get_scope(node_) if scope == globalinterruptible_EMPTY_SCOPE_NAME: children = [] scopenode = globalinterruptible_get_scope_child(node_) children.append(self._replace_scope_node(scopenode)) children.append(globalinterruptible_get_block_child(node_)) children.extend(globalinterruptible_get_interrupt_children(node_)) node_ = util.antlr_dupnode_and_replace_children(node_, children) return node_
def check_wellformedness_visit(checker, node_): visited = [] for child in get_children(node_): context_ = checker.get_context() #if not context_.has_exit(): # util.report_error("Bad sequence: " + util.pretty_print(child)) # Check moved to local projections # Section 4.6.4 -- Well-formed global interactions visited.append(checker.visit(child)) return util.antlr_dupnode_and_replace_children(node_, visited)
def _visit_globaldo(self, node_): _scope = globaldo_get_scope(node_) if _scope == globaldo_EMPTY_SCOPE_NAME: children = [] scopenode = globaldo_get_scope_child(node_) children.append(self._replace_scope_node(scopenode)) children.append(globaldo_get_argumentlist_child(node_)) children.append(globaldo_get_roleinstantiationlist_child(node_)) children.extend(globaldo_get_target_name_children(node_)) node_ = util.antlr_dupnode_and_replace_children(node_, children) return node_
def _visit_globaldo(self, node_): _scope = globaldo_get_scope(node_) if _scope == globaldo_EMPTY_SCOPE_NAME: children = [] scopenode = globaldo_get_scope_child(node_) children.append(self._replace_scope_node(scopenode)) children.append(globaldo_get_argumentlist_child(node_)) children.append(globaldo_get_roleinstantiationlist_child(node_)) children.extend(globaldo_get_target_name_children(node_)) node_ = util.antlr_dupnode_and_replace_children(node_, children) return node_
def traverse_do(traverser, node_, scope, arglist, rolelist, target): traversed = [] traversed.append(traverser.traverse_untyped_leaf(scope)) if argumentlist_is_empty(arglist): traversed.append(arglist) else: traversed.append(traverser.traverse(arglist)) traversed.append(traverser.traverse(rolelist)) for t in target: traversed.append(traverser.traverse_untyped_leaf(t)) return util.antlr_dupnode_and_replace_children(node_, traversed)
def traverse_do(traverser, node_, scope, arglist, rolelist, target): traversed = [] traversed.append(traverser.traverse_untyped_leaf(scope)) if argumentlist_is_empty(arglist): traversed.append(arglist) else: traversed.append(traverser.traverse(arglist)) traversed.append(traverser.traverse(rolelist)) for t in target: traversed.append(traverser.traverse_untyped_leaf(t)) return util.antlr_dupnode_and_replace_children(node_, traversed)
def traverse(traverser, node_): traversed = [] arg = get_arg_child(node_) if util.get_node_type(arg) == constants.MESSAGE_SIGNATURE_NODE_TYPE: traversed.append(traverser.traverse(arg)) else: traversed.append(traverser.traverse_untyped_leaf(arg)) if has_parameter_child(node_): param = get_parameter_child(node_) traversed.append(traverser.traverse_untyped_leaf(param)) new = util.antlr_dupnode_and_replace_children(node_, traversed) return new
def _context_visit_children_and_cache_contexts(cv, node_): blocks = get_block_children(node_) # [node_] visited = [] contexts = [] # From visiting each block for block in blocks: clone = cv.clone() # Factor out? # Section 4.6.6 -- well-formed choice blocks visited.append(clone.visit(block)) contexts.append(clone.get_context()) dup = util.antlr_dupnode_and_replace_children(node_, visited) dup.cachedContexts = contexts return dup
def traverse(traverser, node_): traversed = [] arg = get_arg_child(node_) if util.get_node_type(arg) == constants.MESSAGE_SIGNATURE_NODE_TYPE: traversed.append(traverser.traverse(arg)) else: traversed.append(traverser.traverse_untyped_leaf(arg)) if has_parameter_child(node_): param = get_parameter_child(node_) traversed.append(traverser.traverse_untyped_leaf(param)) new = util.antlr_dupnode_and_replace_children(node_, traversed) return new
def _traverse_globalinteractionsequence(self, node_): traversed = [] for child in globalinteractionsequence_get_children(node_): next = self.traverse(child) if util.get_node_type(next) == \ constants.GLOBAL_INTERACTION_SEQUENCE_NODE_TYPE: # No need to do recursively for c in globalinteractionsequence_get_children(next): traversed.append(c) else: traversed.append(next) return util.antlr_dupnode_and_replace_children(node_, traversed)
def _context_visit_children_and_cache_contexts(cv, node_): blocks = get_block_children(node_) # [node_] visited = [] contexts = [] # From visiting each block for block in blocks: clone = cv.clone() # Factor out? # Section 4.6.6 -- well-formed choice blocks visited.append(clone.visit(block)) contexts.append(clone.get_context()) dup = util.antlr_dupnode_and_replace_children(node_, visited) dup.cachedContexts = contexts return dup
def traverse(traverser, node): traversed = [] for dest in node.getChildren()[: _get_tokw_child_index(node) + 1]: # includes TO separator child traversed.append(traverser.traverse_untyped_leaf(dest)) for message in get_message_children(node): if util.get_node_type(message) == constants.MESSAGE_SIGNATURE_NODE_TYPE: traversed.append(traverser.traverse(message)) else: traversed.append(traverser.traverse_untyped_leaf(message)) new = util.antlr_dupnode_and_replace_children(node, traversed) return new
def traverse(traverser, node): traversed = [] for dest in node.getChildren()[:_get_tokw_child_index(node) + 1]: # includes TO separator child traversed.append(traverser.traverse_untyped_leaf(dest)) for message in get_message_children(node): if util.get_node_type( message) == constants.MESSAGE_SIGNATURE_NODE_TYPE: traversed.append(traverser.traverse(message)) else: traversed.append(traverser.traverse_untyped_leaf(message)) new = util.antlr_dupnode_and_replace_children(node, traversed) return new
def traverse(traverser, node_): name = get_name_child(node_) roledecllist_ = get_roledecllist_child(node_) pds = get_parameterdecllist_child(node_) body = get_child(node_) traversed = [] traversed.append(name) # No need to traverse if util.get_node_type(pds) == parameterdecllist_EMPTY_PARAMETER_DECL_LIST: traversed.append(pds) else: traversed.append(traverser.traverse(pds)) traversed.append(traverser.traverse(roledecllist_)) traversed.append(traverser.traverse(body)) # rebuild using new children return util.antlr_dupnode_and_replace_children(node_, traversed)
def traverse(traverser, node_): scope = get_scope_child(node_) block = get_block_child(node_) throw = get_throw_child(node_) catches = get_catch_children(node_) traversed = [] traversed.append(scope) traversed.append(traverser.traverse(block)) if has_throw_child(node_): traversed.append(traverser.traverse(throw)) else: traversed.append(traverser.traverse_untyped_leaf(throw)) for catch in catches: traversed.append(traverser.traverse(catch)) return util.antlr_dupnode_and_replace_children(node_, traversed)
def traverse(traverser, node_): name = get_name_child(node_) roledecllist_ = get_roledecllist_child(node_) pds = get_parameterdecllist_child(node_) body = get_child(node_) traversed = [] traversed.append(name) # No need to traverse if util.get_node_type(pds) == parameterdecllist_EMPTY_PARAMETER_DECL_LIST: traversed.append(pds) else: traversed.append(traverser.traverse(pds)) traversed.append(traverser.traverse(roledecllist_)) traversed.append(traverser.traverse(body)) # rebuild using new children return util.antlr_dupnode_and_replace_children(node_, traversed)
def traverse(traverser, node_): scope = get_scope_child(node_) block = get_block_child(node_) throw = get_throw_child(node_) catches = get_catch_children(node_) traversed = [] traversed.append(scope) traversed.append(traverser.traverse(block)) if has_throw_child(node_): traversed.append(traverser.traverse(throw)) else: traversed.append(traverser.traverse_untyped_leaf(throw)) for catch in catches: traversed.append(traverser.traverse(catch)) return util.antlr_dupnode_and_replace_children(node_, traversed)
def context_visitor_visit(cv, node_): name = get_name_child(node_) pds = get_parameterdecllist_child(node_) roledecllist_ = get_roledecllist_child(node_) body = get_child(node_) # globalprotocoldef or GlobalProtocolInstance visited = [] visited.append(name) # No need to visit if util.get_node_type(pds) == parameterdecllist_EMPTY_PARAMETER_DECL_LIST: visited.append(pds) else: visited.append(cv.visit(pds)) visited.append(cv.visit(roledecllist_)) visited.append(cv.visit(body)) # rebuild using new children return util.antlr_dupnode_and_replace_children(node_, visited)
def context_visitor_visit(cv, node_): name = get_name_child(node_) pds = get_parameterdecllist_child(node_) roledecllist_ = get_roledecllist_child(node_) body = get_child(node_) # globalprotocoldef or GlobalProtocolInstance visited = [] visited.append(name) # No need to visit if util.get_node_type(pds) == parameterdecllist_EMPTY_PARAMETER_DECL_LIST: visited.append(pds) else: visited.append(cv.visit(pds)) visited.append(cv.visit(roledecllist_)) visited.append(cv.visit(body)) # rebuild using new children return util.antlr_dupnode_and_replace_children(node_, visited)
def traverse(traverser, node_): # Duplicated from check_wellformedness_visit name = get_name_child(node_) role = get_local_role_child(node_) roledecllist = get_roledecllist_child(node_) pds = get_parameterdecllist_child(node_) body = get_child(node_) traversed = [] traversed.append(name) # No need to traverse traversed.append(role) # No need to traverse if util.get_node_type(pds) == parameterdecllist_EMPTY_PARAMETER_DECL_LIST: traversed.append(pds) else: traversed.append(traverser.traverse(pds)) traversed.append(traverser.traverse(roledecllist)) traversed.append(traverser.traverse(body)) return util.antlr_dupnode_and_replace_children(node_, traversed)
def traverse(traverser, node_): traversed = [] moduledecl = get_moduledecl_child(node_) traversed.append(traverser.traverse(moduledecl)) for im in get_importmodule_children(node_): traversed.append(traverser.traverse(im)) for im in get_importmember_children(node_): util.report_error("Member Import not supported yet.") # FIXME: also members for ptd in get_payloadtypedecl_children(node_): traversed.append(traverser.traverse(ptd)) for gpd in get_globalprotocoldecl_children(node_): traversed.append(traverser.traverse(gpd)) for lpd in get_localprotocoldecl_children(node_): traversed.append(traverser.traverse(lpd)) # rebuild using new children return util.antlr_dupnode_and_replace_children(node_, traversed)
def traverse(traverser, node_): traversed = [] moduledecl = get_moduledecl_child(node_) traversed.append(traverser.traverse(moduledecl)) for im in get_importmodule_children(node_): traversed.append(traverser.traverse(im)) for im in get_importmember_children(node_): util.report_error("Member Import not supported yet.") # FIXME: also members for ptd in get_payloadtypedecl_children(node_): traversed.append(traverser.traverse(ptd)) for gpd in get_globalprotocoldecl_children(node_): traversed.append(traverser.traverse(gpd)) for lpd in get_localprotocoldecl_children(node_): traversed.append(traverser.traverse(lpd)) # rebuild using new children return util.antlr_dupnode_and_replace_children(node_, traversed)
def traverse(traverser, node_): # Duplicated from check_wellformedness_visit name = get_name_child(node_) role = get_local_role_child(node_) roledecllist = get_roledecllist_child(node_) pds = get_parameterdecllist_child(node_) body = get_child(node_) traversed = [] traversed.append(name) # No need to traverse traversed.append(role) # No need to traverse if util.get_node_type(pds) == parameterdecllist_EMPTY_PARAMETER_DECL_LIST: traversed.append(pds) else: traversed.append(traverser.traverse(pds)) traversed.append(traverser.traverse(roledecllist)) traversed.append(traverser.traverse(body)) return util.antlr_dupnode_and_replace_children(node_, traversed)
def traverse(traverser, node_): body = get_block_child(node_) traversed = [traverser.traverse(body)] return util.antlr_dupnode_and_replace_children(node_, traversed)
def traverse_parallel(traverser, node_, blocks): traversed = [] for block in blocks: traversed.append(traverser.traverse(block)) return util.antlr_dupnode_and_replace_children(node_, traversed)
def context_visitor_visit(cv, node_): #return _context_visit_children_and_cache_contexts(cv, node_) visited = [] for child in get_children(node_): visited.append(cv.visit(child)) return util.antlr_dupnode_and_replace_children(node_, visited)
def traverse_choice(traverser, node_, subject, blocks): traversed = [] traversed.append(traverser.traverse_untyped_leaf(subject)) for block in blocks: traversed.append(traverser.traverse(block)) return util.antlr_dupnode_and_replace_children(node_, traversed)
def context_visitor_visit(cv, node_): body = get_block_child(node_) visited = [cv.visit(body)] return util.antlr_dupnode_and_replace_children(node_, visited)
def traverse(traverser, node_): sequence = get_globalinteractionsequence_child(node_) traversed = [traverser.traverse(sequence)] rebuilt = util.antlr_dupnode_and_replace_children(node_, traversed) return rebuilt
def context_visitor_visit(cv, node_): sequence = get_globalinteractionsequence_child(node_) visited = [cv.visit(sequence)] return util.antlr_dupnode_and_replace_children(node_, visited)
def check_wellformedness_visit(checker, node_): ## # Section 4.2 -- Simple name and filename of module condition checked in moduledecl_ (also currently checked earlier by moduleLoader) ## # Section 4.2 -- Distinct module names condition fmn = moduledecl_get_full_name(get_moduledecl_child(node_)) smn_from_fmn = util.get_simple_module_name_from_full_module_name(fmn) names = [smn_from_fmn] for im in get_importmodule_children(node_): name = importmodule_get_declaration_name(im) if name in names: util.report_error("Bad module import declaration name: " + name) names.append(name) ## # Section 4.2 -- Distinct member names condition names = [] for ptd in get_payloadtypedecl_children(node_): name = payloadtypedecl_get_declaration_name(ptd) if name in names: util.report_error("Bad payload type declaration name: " + name) names.append(name) for gpd in get_globalprotocoldecl_children(node_): name = globalprotocoldecl_get_name(gpd) if name in names: util.report_error("Bad global protocol declaration name: " + name) names.append(name) for lpd in get_localprotocoldecl_children(node_): name = localprotocoldecl_get_name(lpd) if name in names: util.report_error("Bad local protocol declaration name: " + name) names.append(name) for im in get_importmember_children(node_): # TODO: import member declaration names util.report_error("TODO member import: " + im) ## # Section 4.2 -- Well-formed import declarations and members # # Same visiting structure as traverse; in the general case, however, # well-formedness visiting needs to visit each child with a separate # context, so cannot directly reuse the traverse routine here visited = [] moduledecl_ = get_moduledecl_child(node_) visited.append(checker.visit(moduledecl_)) for im in get_importmodule_children(node_): visited.append(checker.visit(im)) for im in get_importmember_children(node_): util.report_error("Member Import not supported yet.") # FIXME: also members for ptd in get_payloadtypedecl_children(node_): visited.append(checker.visit(ptd)) for gpd in get_globalprotocoldecl_children(node_): visited.append(checker.visit(gpd)) for lpd in get_localprotocoldecl_children(node_): # visited.append(checker.visit(lpd)) # TODO util.report_warning("[WellformednessChecker] Skipping localprotocoldecl: " + localprotocoldecl_get_name(lpd)) # print "Skipped:\n", localprotocoldecl_pretty_print(lpd) # rebuild using new children return util.antlr_dupnode_and_replace_children(node_, visited)
def traverse(traverser, node_): traversed = [] for child in get_roleinstantiation_children(node_): traversed.append(traverser.traverse(child)) return util.antlr_dupnode_and_replace_children(node_, traversed)
def context_visitor_visit(cv, node_): #return _context_visit_children_and_cache_contexts(cv, node_) visited = [] for child in get_children(node_): visited.append(cv.visit(child)) return util.antlr_dupnode_and_replace_children(node_, visited)
def check_wellformedness_visit(checker, node_): ## # Section 4.2 -- Simple name and filename of module condition checked in moduledecl_ (also currently checked earlier by moduleLoader) ## # Section 4.2 -- Distinct module names condition fmn = moduledecl_get_full_name(get_moduledecl_child(node_)) smn_from_fmn = util.get_simple_module_name_from_full_module_name(fmn) names = [smn_from_fmn] for im in get_importmodule_children(node_): name = importmodule_get_declaration_name(im) if name in names: util.report_error("Bad module import declaration name: " + name) names.append(name) ## # Section 4.2 -- Distinct member names condition names = [] for ptd in get_payloadtypedecl_children(node_): name = payloadtypedecl_get_declaration_name(ptd) if name in names: util.report_error("Bad payload type declaration name: " + name) names.append(name) for gpd in get_globalprotocoldecl_children(node_): name = globalprotocoldecl_get_name(gpd) if name in names: util.report_error("Bad global protocol declaration name: " + name) names.append(name) for lpd in get_localprotocoldecl_children(node_): name = localprotocoldecl_get_name(lpd) if name in names: util.report_error("Bad local protocol declaration name: " + name) names.append(name) for im in get_importmember_children(node_): # TODO: import member declaration names util.report_error("TODO member import: " + im) ## # Section 4.2 -- Well-formed import declarations and members # # Same visiting structure as traverse; in the general case, however, # well-formedness visiting needs to visit each child with a separate # context, so cannot directly reuse the traverse routine here visited = [] moduledecl_ = get_moduledecl_child(node_) visited.append(checker.visit(moduledecl_)) for im in get_importmodule_children(node_): visited.append(checker.visit(im)) for im in get_importmember_children(node_): util.report_error("Member Import not supported yet.") # FIXME: also members for ptd in get_payloadtypedecl_children(node_): visited.append(checker.visit(ptd)) for gpd in get_globalprotocoldecl_children(node_): visited.append(checker.visit(gpd)) for lpd in get_localprotocoldecl_children(node_): #visited.append(checker.visit(lpd)) # TODO util.report_warning("[WellformednessChecker] Skipping localprotocoldecl: " \ + localprotocoldecl_get_name(lpd)) #print "Skipped:\n", localprotocoldecl_pretty_print(lpd) # rebuild using new children return util.antlr_dupnode_and_replace_children(node_, visited)
def traverse_recursion(traverser, node_, label, body): traversed = [traverser.traverse_untyped_leaf(label)] traversed.append(traverser.traverse(body)) rebuilt = util.antlr_dupnode_and_replace_children(node_, traversed) return rebuilt
def traverse(traverser, node_): traversed = [] for child in get_argument_children(node_): traversed.append(traverser.traverse(child)) new = util.antlr_dupnode_and_replace_children(node_, traversed) return new
def traverse(traverser, node_): traversed = [] for child in get_payloadelement_children(node_): traversed.append(traverser.traverse(child)) new = util.antlr_dupnode_and_replace_children(node_, traversed) return new
def traverse(traverser, node_): sequence = get_localinteractionsequence_child(node_) traversed = [traverser.traverse(sequence)] return util.antlr_dupnode_and_replace_children(node_, traversed)
def traverse(traverser, node_): traversed = [] traversed.append(traverser.traverse_untyped_leaf(get_annotation_child(node_))) traversed.append(traverser.traverse_untyped_leaf(get_type_child(node_))) new = util.antlr_dupnode_and_replace_children(node_, traversed) return new
def traverse_continue(traverser, node_, label): traversed = [traverser.traverse_untyped_leaf(label)] new = util.antlr_dupnode_and_replace_children(node_, traversed) return new