ground_state.go 427 B

12345678910111213141516171819202122232425
  1. package ansiterm
  2. type groundState struct {
  3. baseState
  4. }
  5. func (gs groundState) Handle(b byte) (s state, e error) {
  6. gs.parser.context.currentChar = b
  7. nextState, err := gs.baseState.Handle(b)
  8. if nextState != nil || err != nil {
  9. return nextState, err
  10. }
  11. switch {
  12. case sliceContains(printables, b):
  13. return gs, gs.parser.print()
  14. case sliceContains(executors, b):
  15. return gs, gs.parser.execute()
  16. }
  17. return gs, nil
  18. }