8 Handle(byte) (state, error)
10 Transition(state) error
13 type baseState struct {
18 func (base baseState) Enter() error {
22 func (base baseState) Exit() error {
26 func (base baseState) Handle(b byte) (s state, e error) {
30 return base.parser.csiEntry, nil
32 return base.parser.dcsEntry, nil
33 case b == ANSI_ESCAPE_PRIMARY:
34 return base.parser.escape, nil
36 return base.parser.oscString, nil
37 case sliceContains(toGroundBytes, b):
38 return base.parser.ground, nil
44 func (base baseState) Name() string {
48 func (base baseState) Transition(s state) error {
49 if s == base.parser.ground {
50 execBytes := []byte{0x18}
51 execBytes = append(execBytes, 0x1A)
52 execBytes = append(execBytes, getByteRange(0x80, 0x8F)...)
53 execBytes = append(execBytes, getByteRange(0x91, 0x97)...)
54 execBytes = append(execBytes, 0x99)
55 execBytes = append(execBytes, 0x9A)
57 if sliceContains(execBytes, base.parser.context.currentChar) {
58 return base.parser.execute()
65 type dcsEntryState struct {
69 type errorState struct {