mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-10-31 16:13:45 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			39 lines
		
	
	
		
			494 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			494 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package hcl
 | |
| 
 | |
| import (
 | |
| 	"unicode"
 | |
| 	"unicode/utf8"
 | |
| )
 | |
| 
 | |
| type lexModeValue byte
 | |
| 
 | |
| const (
 | |
| 	lexModeUnknown lexModeValue = iota
 | |
| 	lexModeHcl
 | |
| 	lexModeJson
 | |
| )
 | |
| 
 | |
| // lexMode returns whether we're going to be parsing in JSON
 | |
| // mode or HCL mode.
 | |
| func lexMode(v []byte) lexModeValue {
 | |
| 	var (
 | |
| 		r      rune
 | |
| 		w      int
 | |
| 		offset int
 | |
| 	)
 | |
| 
 | |
| 	for {
 | |
| 		r, w = utf8.DecodeRune(v[offset:])
 | |
| 		offset += w
 | |
| 		if unicode.IsSpace(r) {
 | |
| 			continue
 | |
| 		}
 | |
| 		if r == '{' {
 | |
| 			return lexModeJson
 | |
| 		}
 | |
| 		break
 | |
| 	}
 | |
| 
 | |
| 	return lexModeHcl
 | |
| }
 | 
