123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282 |
- 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
- }
- }
|