forked from toolshed/abra
		
	
		
			
				
	
	
		
			25 lines
		
	
	
		
			427 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			427 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package ansiterm
 | |
| 
 | |
| type groundState struct {
 | |
| 	baseState
 | |
| }
 | |
| 
 | |
| func (gs groundState) Handle(b byte) (s state, e error) {
 | |
| 	gs.parser.context.currentChar = b
 | |
| 
 | |
| 	nextState, err := gs.baseState.Handle(b)
 | |
| 	if nextState != nil || err != nil {
 | |
| 		return nextState, err
 | |
| 	}
 | |
| 
 | |
| 	switch {
 | |
| 	case sliceContains(printables, b):
 | |
| 		return gs, gs.parser.print()
 | |
| 
 | |
| 	case sliceContains(executors, b):
 | |
| 		return gs, gs.parser.execute()
 | |
| 	}
 | |
| 
 | |
| 	return gs, nil
 | |
| }
 |