errors.go raw

   1  package gohex
   2  
   3  import (
   4  	"fmt"
   5  )
   6  
   7  type parseErrorType uint
   8  
   9  const (
  10  	_SYNTAX_ERROR   parseErrorType = 1
  11  	_RECORD_ERROR   parseErrorType = 2
  12  	_DATA_ERROR     parseErrorType = 3
  13  	_CHECKSUM_ERROR parseErrorType = 4
  14  )
  15  
  16  type parseError struct {
  17  	errorType parseErrorType
  18  	message   string
  19  	lineNum   uint
  20  }
  21  
  22  func (e *parseError) Error() string {
  23  	var str string = "error"
  24  	switch e.errorType {
  25  	case _SYNTAX_ERROR:
  26  		str = "syntax error"
  27  	case _RECORD_ERROR:
  28  		str = "record error"
  29  	case _DATA_ERROR:
  30  		str = "data error"
  31  	case _CHECKSUM_ERROR:
  32  		str = "checksum error"
  33  	}
  34  	return fmt.Sprintf("%s: %s at line %d", str, e.message, e.lineNum)
  35  }
  36  
  37  func newParseError(et parseErrorType, msg string, line uint) error {
  38  	return &parseError{errorType: et, message: msg, lineNum: line}
  39  }
  40