Location now stores width instead of Error
This commit is contained in:
		
							parent
							
								
									050c956787
								
							
						
					
					
						commit
						7914f0df45
					
				| @ -12,7 +12,6 @@ const ( | ||||
| 
 | ||||
| type Error struct { | ||||
| 	Location | ||||
| 	width   int | ||||
| 	message string | ||||
| 	kind    ErrorKind | ||||
| } | ||||
| @ -20,7 +19,6 @@ type Error struct { | ||||
| // NewError creates a new error at the specified location. | ||||
| func NewError ( | ||||
| 	location Location, | ||||
| 	width int, | ||||
| 	message string, | ||||
| 	kind ErrorKind, | ||||
| ) ( | ||||
| @ -28,7 +26,6 @@ func NewError ( | ||||
| ) { | ||||
| 	return &Error { | ||||
| 		Location: location, | ||||
| 		width:    width, | ||||
| 		message:  message, | ||||
| 		kind:     kind, | ||||
| 	} | ||||
|  | ||||
| @ -108,5 +108,6 @@ func (file *File) Location () (location Location) { | ||||
| 		file:   file, | ||||
| 		row:    file.currentLine, | ||||
| 		column: file.currentColumn, | ||||
| 		width:  1, | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @ -6,4 +6,5 @@ type Location struct { | ||||
| 	file   *File | ||||
| 	row    int | ||||
| 	column int | ||||
| 	width  int | ||||
| } | ||||
|  | ||||
| @ -35,7 +35,7 @@ func (lexer *LexingOperation) tokenize () (err error) { | ||||
| 		 | ||||
| 		if err != nil || shebangCheck[index] != lexer.char { | ||||
| 			err = file.NewError ( | ||||
| 				lexer.file.Location(), 1, | ||||
| 				lexer.file.Location(), | ||||
| 				"not an arf file", | ||||
| 				file.ErrorKindError) | ||||
| 			return | ||||
| @ -119,7 +119,7 @@ func (lexer *LexingOperation) tokenizeSymbolBeginning () (err error) { | ||||
| 			err = lexer.nextRune() | ||||
| 			 | ||||
| 			file.NewError ( | ||||
| 				lexer.file.Location(), 1, | ||||
| 				lexer.file.Location(), | ||||
| 				"tab not used as indent", | ||||
| 				file.ErrorKindWarn).Print() | ||||
| 			return | ||||
| @ -272,7 +272,7 @@ func (lexer *LexingOperation) tokenizeSymbolBeginning () (err error) { | ||||
| 		err = lexer.nextRune() | ||||
| 	default: | ||||
| 		err = file.NewError ( | ||||
| 			lexer.file.Location(), 1, | ||||
| 			lexer.file.Location(), | ||||
| 			"unexpected symbol character " + | ||||
| 			string(lexer.char), | ||||
| 			file.ErrorKindError) | ||||
| @ -334,7 +334,7 @@ func (lexer *LexingOperation) nextRune () (err error) { | ||||
| 	lexer.char, _, err = lexer.file.ReadRune() | ||||
| 	if err != nil && err != io.EOF { | ||||
| 		return file.NewError ( | ||||
| 			lexer.file.Location(), 1, | ||||
| 			lexer.file.Location(), | ||||
| 			err.Error(), file.ErrorKindError) | ||||
| 	} | ||||
| 	return | ||||
|  | ||||
| @ -23,7 +23,7 @@ func (lexer *LexingOperation) tokenizeNumberBeginning (negative bool) (err error | ||||
| 			number, fragment, isFloat, err = lexer.tokenizeNumber(8) | ||||
| 		} else { | ||||
| 			return file.NewError ( | ||||
| 				lexer.file.Location(), 1, | ||||
| 				lexer.file.Location(), | ||||
| 				"unexpected character in number literal", | ||||
| 				file.ErrorKindError) | ||||
| 		} | ||||
|  | ||||
| @ -43,7 +43,7 @@ func (lexer *LexingOperation) tokenizeString (isRuneLiteral bool) (err error) { | ||||
| 	if isRuneLiteral { | ||||
| 		if len(got) > 1 { | ||||
| 			err = file.NewError ( | ||||
| 				lexer.file.Location(), len(got) - 1, | ||||
| 				lexer.file.Location(), | ||||
| 				"excess data in rune literal", | ||||
| 				file.ErrorKindError) | ||||
| 			return | ||||
| @ -99,7 +99,7 @@ func (lexer *LexingOperation) getEscapeSequence () (result rune, err error) { | ||||
|                  | ||||
|                 if len(number) < 3 { | ||||
| 			err = file.NewError ( | ||||
| 				lexer.file.Location(), 1, | ||||
| 				lexer.file.Location(), | ||||
| 				"octal escape sequence too short", | ||||
| 				file.ErrorKindError) | ||||
| 			return | ||||
| @ -133,7 +133,7 @@ func (lexer *LexingOperation) getEscapeSequence () (result rune, err error) { | ||||
|                  | ||||
|                 if len(number) < want { | ||||
| 			err = file.NewError ( | ||||
| 				lexer.file.Location(), 1, | ||||
| 				lexer.file.Location(), | ||||
| 				"hex escape sequence too short ", | ||||
| 				file.ErrorKindError) | ||||
| 			return | ||||
| @ -143,7 +143,7 @@ func (lexer *LexingOperation) getEscapeSequence () (result rune, err error) { | ||||
|                 result = rune(parsedNumber) | ||||
| 	} else { | ||||
| 		err = file.NewError ( | ||||
| 			lexer.file.Location(), 1, | ||||
| 			lexer.file.Location(), | ||||
| 			"unknown escape character " + | ||||
| 			string(lexer.char), file.ErrorKindError) | ||||
| 		return | ||||
|  | ||||
		Reference in New Issue
	
	Block a user