class Wait_Node ( Node ): # d is a double def __init__(self, d): Node.__init__(self) self.duration = Double_Node(d) self.type = 'Wait' assert(self.duration is not None) def print_children(self, indent_level): self.duration.print_node(indent_level + 1, "(DURATION)")
def __init__(self, var): Node.__init__(self) if isinstance(var, float): self.string_value = None self.left_child = Double_Node(var) self.type = "ReturnStmt" else: if isinstance(var, str): self.string_value = var self.type = "ReturnStmt"
class Loop_Node ( Node ): # all doubles """ Loop_Node -> self.start -- represents the starting number (default is 0.0) -> self.end -- represents the end number -> self.increment -- represents the increment (default is 1.0) -> self.left_child -- as per usual, for the actions associated with the loop -> self.right_child -- same as above """ def __init__(self, e, s=0.0, i=1.0): Node.__init__(self) self.type = "LoopNInOrder" self.start = Double_Node(s) self.end = Double_Node(e) self.increment = Double_Node(i) """ prints the child nodes """ def print_children(self, indent_level): self.start.print_node(indent_level + 1, "(START)") self.end.print_node(indent_level + 1, "(END)") self.increment.print_node(indent_level + 1, "(INCREMENT)") if self.left_child is not None: self.left_child.print_node(indent_level + 1, "(ACTIONS)") if self.right_child is not None: self.right_child.print_node(indent_level + 1)
class Return_Node ( Node ): # var is either a double or a string def __init__(self, var): Node.__init__(self) if isinstance(var, float): self.string_value = None self.left_child = Double_Node(var) self.type = "ReturnStmt" else: if isinstance(var, str): self.string_value = var self.type = "ReturnStmt" # returns true if a string (other than true or false, which are bools) is being # returned. def has_string_value(self): if self.string_value is None: return False if self.string_value == 'true' or self.string_value == 'false': return False return True # returns the string value if it's a string. def get_string_value(self): if self.has_string_value() is True: return self.string_value return None # prints the child nodes. def print_children(self, indent_level): if self.left_child is not None: self.left_child.print_node(indent_level + 1) else: if self.string_value == "true" or self.string_value == "false": print "Bool value: " + self.string_value else: print "String value: " + self.string_value
def __init__(self, e, s=0.0, i=1.0): Node.__init__(self) self.type = "LoopNInOrder" self.start = Double_Node(s) self.end = Double_Node(e) self.increment = Double_Node(i)
def __init__(self, d): Node.__init__(self) self.duration = Double_Node(d) self.type = 'Wait' assert(self.duration is not None)