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