def __init__(self): self.__commentsRegex = re.compile('//') #events self.lineEvent = LineEvent() self.eofEvent = LineEvent() #states self.initState = StateMachine.StateBase() self.enumState = EnumState() self.structState = StructState() self.typedefState = TypedefState() #message statemachine commonTransitions = [(self.initState, self.lineEvent, self.structState, StructState.isStructStart, None), (self.initState, self.lineEvent, self.enumState, EnumState.isEnumStart, None), (self.initState, self.lineEvent, self.initState, TypedefState.isTypedef, self.typedefState.do), (self.structState, self.lineEvent, self.initState, StructState.isStructEnd, None), (self.enumState, self.lineEvent, self.initState, EnumState.isEnumEnd, None)] self.messageState = MessageState(commonTransitions, self.initState) #main statemachine mainTransitions = [ (self.initState, self.lineEvent, self.messageState, MessageState.isMessageCode, None), (self.messageState, self.lineEvent, self.messageState, MessageState.isMessageCode, None), (self.messageState, self.eofEvent, self.initState, None, None) ] mainTransitions.extend(commonTransitions) self.mainStateMachine = StateMachine.StateMachine( mainTransitions, self.initState)