Replace SplittedRules in the parsed tree with the original one.
    This method is mandatory if you insert Rule class with multiple rules into the grammar.
    :param root: Root of the parsed tree.
    :return: Modified tree.

def splitted_rules(root):
    # type: (Nonterminal) -> Nonterminal
    """
    Replace SplittedRules in the parsed tree with the original one.
    This method is mandatory if you insert Rule class with multiple rules into the grammar.
    :param root: Root of the parsed tree.
    :return: Modified tree.
    """
    items = Traversing.post_order(root)
    items = filter(lambda x: isinstance(x, SplitRule), items)
    for i in items:
        # create the original rule
        newRule = i.from_rule()
        # replace it with the node in the tree
        Manipulations.replace(i, newRule)
    return root