# HG changeset patch # User Claus Gittinger # Date 1156250567 -7200 # Node ID 209089a85ed3865c1a18794a45c6ae66ce7b3008 # Parent 61936f01108ef823a277fbc3a85e6106c258cf04 error messages shortened and cleanup diff -r 61936f01108e -r 209089a85ed3 Scanner.st --- a/Scanner.st Tue Aug 22 14:42:34 2006 +0200 +++ b/Scanner.st Tue Aug 22 14:42:47 2006 +0200 @@ -1176,6 +1176,27 @@ errorFlag := false. ! +invalidCharacter:ch + |errMsg v| + + v := ch codePoint. + ch isPrintable ifTrue:[ + errMsg := 'Invalid character: ''' , ch asString , ''' ', '(' , (v radixPrintStringRadix:16) , ').'. + ] ifFalse:[ + errMsg := 'Invalid character: ' , (v radixPrintStringRadix:16) , '.'. + ]. + v > 16r7F ifTrue:[ + errMsg := errMsg , '\\Notice: only 7-bit ascii allowed (for compatibility).' withCRs. + ]. + self syntaxError:errMsg position:tokenPosition to:tokenPosition. + source next. + tokenName := token := nil. + tokenType := #Error. + ^ #Error + + "Modified: / 22-08-2006 / 14:26:21 / cg" +! + lastTokenLineNumber "return the line number of the token which was just read." @@ -1205,12 +1226,14 @@ err := Parser::ParseError new. err errorMessage:aMessage startPosition:position endPosition:endPos. err parameter:self. - err lineNumber:lineNr. + err lineNumber:tokenLineNr "lineNr". err raiseRequest. ^ self ]. self showErrorMessage:aMessage position:position. ]. + + "Modified: / 22-08-2006 / 14:10:16 / cg" ! notifyWarning:aMessage doNotShowAgainAction:doNotShowAgainAction position:position to:endPos @@ -1264,16 +1287,17 @@ parseError:aMessage position:position to:endPos "report an error" - |m| - + |m fullMessage| + + "/ fullMessage := (self errorMessagePrefix) , ' ' , (aMessage ? '???'). + fullMessage := (aMessage ? 'Unspecified error'). self errorFlag:true. - m := (self errorMessagePrefix) , ' ' , (aMessage ? '???'). - self notifyError:m position:position to:endPos. + self notifyError:fullMessage position:position to:endPos. exitBlock value. ^ false - "Created: / 13.5.1998 / 16:44:55 / cg" - "Modified: / 28.9.1998 / 19:29:27 / cg" + "Created: / 13-05-1998 / 16:44:55 / cg" + "Modified: / 22-08-2006 / 14:13:11 / cg" ! showErrorMessage:aMessage position:pos @@ -1303,9 +1327,15 @@ syntaxError:aMessage position:position to:endPos "a syntax error happened" - self notifyError:((self errorMessagePrefix) , ' ' , aMessage) position:position to:endPos. + |fullMessage| + + "/ fullMessage := self errorMessagePrefix , ' ' , aMessage. + fullMessage := aMessage. + self notifyError:fullMessage position:position to:endPos. exitBlock value. ^ false + + "Modified: / 22-08-2006 / 14:05:45 / cg" ! warnCommonMistake:msg at:position @@ -1876,25 +1906,6 @@ !Scanner methodsFor:'reading next token'! -invalidCharacter:ch - |errMsg v| - - v := ch codePoint. - ch isPrintable ifTrue:[ - errMsg := 'Scanner - invalid character: ''' , ch asString , ''' ', '(' , (v radixPrintStringRadix:16) , ').'. - ] ifFalse:[ - errMsg := 'Scanner - invalid character: ' , (v radixPrintStringRadix:16) , '.'. - ]. - v > 16r7F ifTrue:[ - errMsg := errMsg , '\\Notice: only 7-bit ascii allowed (for compatibility).' withCRs. - ]. - self syntaxError:errMsg position:tokenPosition to:tokenPosition. - source next. - tokenName := token := nil. - tokenType := #Error. - ^ #Error -! - nextCharacter "a $ has been read - return a character token" @@ -2663,6 +2674,7 @@ ^ tokenType "Created: / 01-08-2006 / 14:56:07 / cg" + "Modified: / 22-08-2006 / 14:10:26 / cg" ! nextSymbolAfterHash @@ -3082,7 +3094,7 @@ !Scanner class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libcomp/Scanner.st,v 1.221 2006-08-01 14:34:40 cg Exp $' + ^ '$Header: /cvs/stx/stx/libcomp/Scanner.st,v 1.222 2006-08-22 12:42:47 cg Exp $' ! ! Scanner initialize!