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)
Esempio n. 3
0
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
Esempio n. 4
0
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)
Esempio n. 5
0
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
Esempio n. 10
0
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)
Esempio n. 12
0
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)
Esempio n. 14
0
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)
Esempio n. 15
0
 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_
Esempio n. 18
0
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)
Esempio n. 19
0
 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_
Esempio n. 21
0
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)
Esempio n. 22
0
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)
Esempio n. 23
0
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
Esempio n. 24
0
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
Esempio n. 25
0
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
Esempio n. 26
0
 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
Esempio n. 28
0
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
Esempio n. 29
0
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
Esempio n. 30
0
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)
Esempio n. 31
0
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)
Esempio n. 35
0
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) 
Esempio n. 36
0
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)
Esempio n. 37
0
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)
Esempio n. 38
0
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)
Esempio n. 39
0
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) 
Esempio n. 40
0
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)
Esempio n. 42
0
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)
Esempio n. 47
0
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)
Esempio n. 48
0
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)
Esempio n. 50
0
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)
Esempio n. 51
0
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
Esempio n. 53
0
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
Esempio n. 54
0
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
Esempio n. 56
0
def traverse_continue(traverser, node_, label):
    traversed = [traverser.traverse_untyped_leaf(label)]
    new = util.antlr_dupnode_and_replace_children(node_, traversed)
    return new