package hhccli type simpleTCESParserStates uint8 const ( stces_state_initial simpleTCESParserStates = 0 stces_state_seq91 simpleTCESParserStates = 1 stces_state_seq79 simpleTCESParserStates = 2 stces_state_s91n1 simpleTCESParserStates = 3 stces_state_s91n2 simpleTCESParserStates = 4 stces_state_s91n3 simpleTCESParserStates = 5 stces_state_s91n5 simpleTCESParserStates = 7 stces_state_s91n6 simpleTCESParserStates = 8 stces_state_s91n15 simpleTCESParserStates = 9 stces_state_s91n17 simpleTCESParserStates = 10 stces_state_s91n18 simpleTCESParserStates = 11 stces_state_s91n19 simpleTCESParserStates = 12 stces_state_s91n20 simpleTCESParserStates = 13 stces_state_s91n21 simpleTCESParserStates = 14 stces_state_s91n23 simpleTCESParserStates = 15 stces_state_s91n24 simpleTCESParserStates = 16 ) type SimpleTCESParserResult uint8 const ( SimpleTCESParserResult_Unsupported SimpleTCESParserResult = 0 SimpleTCESParserResult_UpArrow SimpleTCESParserResult = 1 SimpleTCESParserResult_DownArrow SimpleTCESParserResult = 2 SimpleTCESParserResult_LeftArrow SimpleTCESParserResult = 3 SimpleTCESParserResult_RightArrow SimpleTCESParserResult = 4 SimpleTCESParserResult_HomeKey SimpleTCESParserResult = 5 SimpleTCESParserResult_EndKey SimpleTCESParserResult = 6 SimpleTCESParserResult_InsKey SimpleTCESParserResult = 7 SimpleTCESParserResult_DelKey SimpleTCESParserResult = 8 SimpleTCESParserResult_PageUpKey SimpleTCESParserResult = 9 SimpleTCESParserResult_PageDnKey SimpleTCESParserResult = 10 SimpleTCESParserResult_F1Key SimpleTCESParserResult = 11 SimpleTCESParserResult_F2Key SimpleTCESParserResult = 12 SimpleTCESParserResult_F3Key SimpleTCESParserResult = 13 SimpleTCESParserResult_F4Key SimpleTCESParserResult = 14 SimpleTCESParserResult_F5Key SimpleTCESParserResult = 15 SimpleTCESParserResult_F6Key SimpleTCESParserResult = 16 SimpleTCESParserResult_F7Key SimpleTCESParserResult = 17 SimpleTCESParserResult_F8Key SimpleTCESParserResult = 18 SimpleTCESParserResult_F9Key SimpleTCESParserResult = 19 SimpleTCESParserResult_F10Key SimpleTCESParserResult = 20 SimpleTCESParserResult_F11Key SimpleTCESParserResult = 21 SimpleTCESParserResult_F12Key SimpleTCESParserResult = 22 ) func (r SimpleTCESParserResult) Name() string { switch r { case SimpleTCESParserResult_Unsupported: return "Unsupported" case SimpleTCESParserResult_UpArrow: return "UpArrow" case SimpleTCESParserResult_DownArrow: return "DownArrow" case SimpleTCESParserResult_LeftArrow: return "LeftArrow" case SimpleTCESParserResult_RightArrow: return "RightArrow" case SimpleTCESParserResult_HomeKey: return "Home" case SimpleTCESParserResult_EndKey: return "End" case SimpleTCESParserResult_InsKey: return "Insert" case SimpleTCESParserResult_DelKey: return "Delete" case SimpleTCESParserResult_PageUpKey: return "PageUp" case SimpleTCESParserResult_PageDnKey: return "PageDown" case SimpleTCESParserResult_F1Key: return "F1" case SimpleTCESParserResult_F2Key: return "F2" case SimpleTCESParserResult_F3Key: return "F3" case SimpleTCESParserResult_F4Key: return "F4" case SimpleTCESParserResult_F5Key: return "F5" case SimpleTCESParserResult_F6Key: return "F6" case SimpleTCESParserResult_F7Key: return "F7" case SimpleTCESParserResult_F8Key: return "F8" case SimpleTCESParserResult_F9Key: return "F9" case SimpleTCESParserResult_F10Key: return "F10" case SimpleTCESParserResult_F11Key: return "F11" case SimpleTCESParserResult_F12Key: return "F12" default: return "Unknown" } } type SimpleTCESParser struct { state simpleTCESParserStates } func NewSimpleTCESParser() *SimpleTCESParser { p := &SimpleTCESParser{} p.ResetState() return p } func (p *SimpleTCESParser) ResetState() { p.state = stces_state_initial } func (p *SimpleTCESParser) PushRune(r rune) (bool, SimpleTCESParserResult) { switch p.state { case stces_state_initial: switch r { case '[': p.state = stces_state_seq91 return false, 0 case 'O': p.state = stces_state_seq79 return false, 0 default: return true, SimpleTCESParserResult_Unsupported } case stces_state_seq79: switch r { case 'P': return true, SimpleTCESParserResult_F1Key case 'Q': return true, SimpleTCESParserResult_F2Key case 'R': return true, SimpleTCESParserResult_F3Key case 'S': return true, SimpleTCESParserResult_F4Key default: return true, SimpleTCESParserResult_Unsupported } case stces_state_seq91: switch r { case 'A': return true, SimpleTCESParserResult_UpArrow case 'B': return true, SimpleTCESParserResult_DownArrow case 'D': return true, SimpleTCESParserResult_LeftArrow case 'C': return true, SimpleTCESParserResult_RightArrow case 'H': return true, SimpleTCESParserResult_HomeKey case 'F': return true, SimpleTCESParserResult_EndKey case '1': p.state = stces_state_s91n1 return false, 0 case '2': p.state = stces_state_s91n2 return false, 0 case '3': p.state = stces_state_s91n3 return false, 0 case '5': p.state = stces_state_s91n5 return false, 0 case '6': p.state = stces_state_s91n6 return false, 0 default: return true, SimpleTCESParserResult_Unsupported } case stces_state_s91n1: switch r { case '5': p.state = stces_state_s91n15 return false, 0 case '7': p.state = stces_state_s91n17 return false, 0 case '8': p.state = stces_state_s91n18 return false, 0 case '9': p.state = stces_state_s91n19 return false, 0 default: return true, SimpleTCESParserResult_Unsupported } case stces_state_s91n2: switch r { case '~': return true, SimpleTCESParserResult_InsKey case '0': p.state = stces_state_s91n20 return false, 0 case '1': p.state = stces_state_s91n21 return false, 0 case '3': p.state = stces_state_s91n23 return false, 0 case '4': p.state = stces_state_s91n24 return false, 0 default: return true, SimpleTCESParserResult_Unsupported } case stces_state_s91n3: if r == '~' { return true, SimpleTCESParserResult_DelKey } else { return true, SimpleTCESParserResult_Unsupported } case stces_state_s91n5: if r == '~' { return true, SimpleTCESParserResult_PageUpKey } else { return true, SimpleTCESParserResult_Unsupported } case stces_state_s91n6: if r == '~' { return true, SimpleTCESParserResult_PageDnKey } else { return true, SimpleTCESParserResult_Unsupported } case stces_state_s91n15: if r == '~' { return true, SimpleTCESParserResult_F5Key } else { return true, SimpleTCESParserResult_Unsupported } case stces_state_s91n17: if r == '~' { return true, SimpleTCESParserResult_F6Key } else { return true, SimpleTCESParserResult_Unsupported } case stces_state_s91n18: if r == '~' { return true, SimpleTCESParserResult_F7Key } else { return true, SimpleTCESParserResult_Unsupported } case stces_state_s91n19: if r == '~' { return true, SimpleTCESParserResult_F8Key } else { return true, SimpleTCESParserResult_Unsupported } case stces_state_s91n20: if r == '~' { return true, SimpleTCESParserResult_F9Key } else { return true, SimpleTCESParserResult_Unsupported } case stces_state_s91n21: if r == '~' { return true, SimpleTCESParserResult_F10Key } else { return true, SimpleTCESParserResult_Unsupported } case stces_state_s91n23: if r == '~' { return true, SimpleTCESParserResult_F11Key } else { return true, SimpleTCESParserResult_Unsupported } case stces_state_s91n24: if r == '~' { return true, SimpleTCESParserResult_F12Key } else { return true, SimpleTCESParserResult_Unsupported } default: return true, SimpleTCESParserResult_Unsupported } }