当前位置: 首页>>代码示例>>Python>>正文


Python Parser.parse_input方法代码示例

本文整理汇总了Python中Parser.Parser.parse_input方法的典型用法代码示例。如果您正苦于以下问题:Python Parser.parse_input方法的具体用法?Python Parser.parse_input怎么用?Python Parser.parse_input使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Parser.Parser的用法示例。


在下文中一共展示了Parser.parse_input方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __init__

# 需要导入模块: from Parser import Parser [as 别名]
# 或者: from Parser.Parser import parse_input [as 别名]
class __Controller:
    def __init__(self, canvas_object):
        self.states = []
        self.main_window, self.canvas_window = canvas_object.setup()
        self.control_window = ControlWindow()
        self.parser = Parser()
        self.main()

    def main(self):
        self.control_window.run()
        self.control_window.add_button.configure(width=8, command=self.add_state, text="Add State")
        self.control_window.input_button.configure(width=8, command=self.parse, text="Input")
        # self.control_window.frame.bind("<Return>", self.add_state)
        self.main_window.mainloop()

    def parse(self):
        input_word = self.control_window.input_entry.get()
        self.control_window.input_entry.delete(0, END)
        try:
            result = self.parser.parse_input(input_word)
        except LookupError as le:
            print(le)
        else:
            if result:
                print("This machine accepts ", input_word)
            else:
                print("This machine does not accept ", input_word)

    def add_state(self):
        new_state_name = self.control_window.state_entry.get()
        print(new_state_name)
        self.control_window.state_entry.delete(0, END)
        self.states.append(State(self.control_window.frame, new_state_name))
        new_state = self.states[-1]
        new_state.state_label.grid(row=len(self.states), column=0)
        new_state.transition_button.configure(text="TRANSITION", command=lambda : self.transition(new_state))
        new_state.transition_button.grid(row=len(self.states), column=1)
        new_state.delete_button.configure(text="DELETE", command=lambda : self.delete_state(new_state))
        new_state.delete_button.grid(row=len(self.states), column=2)
        new_state.accept_button.configure(text="ACCEPT", command=lambda : self.make_accepting(new_state))
        new_state.accept_button.grid(row=len(self.states), column=3)
        new_state.entry_button.configure(text="--->", command=lambda : self.make_entry(new_state))
        new_state.entry_button.grid(row=len(self.states), column=4)
        self.parser.add_state(new_state)
        Geometry.add_state(self.canvas_window, new_state, self.states)
        pass

    def transition(self, state):
        print("Transition Fired")
        # Popup(??) to input transition

    def delete_state(self, state):
        print("Delete Fired")
        self.parser.delete_state(state)
        for prop in state:
            prop.grid_forget()
        del self.states[self.states.index(state)]

    def make_accepting(self, state):
        print("Accept Fired")
        is_accepting = self.parser.add_accepting(state)
        if is_accepting:
            state.accept_button.configure(bg=ACCEPTING)
        else:
            state.accept_button.configure(bg=NONE)
        is_entry = self.parser.is_entry(state)
        Geometry.make_accepting(self.canvas_window, state, is_accepting, is_entry)

    def make_entry(self, state):
        print("Entry Fired")
        old_entry = self.parser.set_entry(state)
        state.entry_button.configure(bg=ENTRY)
        try:
            old_entry.entry_button.configure(bg=NONE)
        except AttributeError as ae:
            print(ae)
            print("No return value")
开发者ID:Shadow1356,项目名称:FiniteAutomata,代码行数:79,代码来源:Controller.py


注:本文中的Parser.Parser.parse_input方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。