online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#Emitted from framec_v0.11.7 class FrameEvent: def __init__(self, message, parameters): self._message = message self._parameters = parameters def main(): lamp = Lamp() lamp.turnOn() lamp.turnOff() class Lamp: # ==================== System Factory =================== # def __init__(self): # Create and initialize start state compartment. next_compartment = None next_compartment = LampCompartment('__lamp_state_Off', next_compartment) self.__compartment = next_compartment self.__next_compartment = None self.return_stack = [None] # Initialize domain # Send system start event frame_event = FrameEvent(">", None) self.__kernel(frame_event) # ==================== Interface Block ================== # def turnOn(self,): self.return_stack.append(None) __e = FrameEvent("turnOn",None) self.__kernel(__e) return self.return_stack.pop(-1) def turnOff(self,): self.return_stack.append(None) __e = FrameEvent("turnOff",None) self.__kernel(__e) return self.return_stack.pop(-1) # ===================== Machine Block =================== # # ---------------------------------------- # $Off def __lamp_state_Off(self, __e, compartment): if __e._message == ">": print("Entering $Off") return elif __e._message == "<": print("Exiting $Off") return elif __e._message == "turnOn": next_compartment = None next_compartment = LampCompartment('__lamp_state_On', next_compartment) self.__transition(next_compartment) return # ---------------------------------------- # $On def __lamp_state_On(self, __e, compartment): if __e._message == ">": print("Entering $On") return elif __e._message == "<": print("Exiting $On") return elif __e._message == "turnOff": next_compartment = None next_compartment = LampCompartment('__lamp_state_Off', next_compartment) self.__transition(next_compartment) return # ==================== System Runtime =================== # def __kernel(self, __e): # send event to current state self.__router(__e) # loop until no transitions occur while self.__next_compartment != None: next_compartment = self.__next_compartment self.__next_compartment = None # exit current state self.__router(FrameEvent( "<", self.__compartment.exit_args)) # change state self.__compartment = next_compartment if next_compartment.forward_event is None: # send normal enter event self.__router(FrameEvent(">", self.__compartment.enter_args)) else: # there is a forwarded event if next_compartment.forward_event._message == ">": # forwarded event is enter event self.__router(next_compartment.forward_event) else: # forwarded event is not enter event # send normal enter event self.__router(FrameEvent(">", self.__compartment.enter_args)) # and now forward event to new, intialized state self.__router(next_compartment.forward_event) next_compartment.forward_event = None def __router(self, __e): if self.__compartment.state == '__lamp_state_Off': self.__lamp_state_Off(__e, self.__compartment) elif self.__compartment.state == '__lamp_state_On': self.__lamp_state_On(__e, self.__compartment) def __transition(self, next_compartment): self.__next_compartment = next_compartment # ===================== Compartment =================== # class LampCompartment: def __init__(self,state,parent_compartment): self.state = state self.state_args = {} self.state_vars = {} self.enter_args = {} self.exit_args = {} self.forward_event = None self.parent_compartment = parent_compartment if __name__ == '__main__': main()

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue