Viewing file: TerminalInput.py (2.06 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
import code, string import DebugCommands
g_commandDict = {'r':DebugCommands.RUN, 'run':DebugCommands.RUN, 'q':DebugCommands.QUIT, 'quit':DebugCommands.QUIT, 't':DebugCommands.TEMPLATE, 'template':DebugCommands.TEMPLATE, 'p':DebugCommands.PRINT, 'print':DebugCommands.PRINT, 'ls':DebugCommands.LIST_SHEET, 'bt':DebugCommands.BACK_TRACE, 's':DebugCommands.STEP, 'step':DebugCommands.STEP, 'n':DebugCommands.NEXT, 'next':DebugCommands.NEXT, 'test':DebugCommands.TEST, 'e':DebugCommands.EVAL, 'eval':DebugCommands.EVAL, 'm':DebugCommands.MATCH, 'match':DebugCommands.MATCH, 'a':DebugCommands.AVT, 'avt':DebugCommands.AVT, 'lt':DebugCommands.LIST_TEMPLATE, 'break':DebugCommands.SET_BREAK, 'b':DebugCommands.SET_BREAK, 'lb':DebugCommands.LIST_BREAK, 'db':DebugCommands.DELETE_BREAK, 'h':DebugCommands.HELP, 'help':DebugCommands.HELP, }
class TerminalInputHandler:
def __init__(self): self.console = code.InteractiveConsole({}) self.lastCommand = None
def getNextCommand(self,outputHandler):
try: cmd = self.console.raw_input(">>> ") except EOFError: raise SystemExit()
args = () index = string.find(cmd,' ') if index != -1: args = [] args = string.split(cmd[index+1:],',') cmd = cmd[:index]
if self.lastCommand and not cmd: cmd = self.lastCommand self.lastCommand = cmd
if not g_commandDict.has_key(cmd): outputHandler.display_error("Unknown Command '%s'" % cmd) return None
return g_commandDict[cmd],args
|