ParseError.st
author HG Automerge
Thu, 12 Jan 2017 09:44:22 +0000
branchjv
changeset 4088 529963173d68
parent 4035 7b356dc3e0c2
child 4261 1b91b0f56a54
permissions -rw-r--r--
Merge

"
 COPYRIGHT (c) 1989 by Claus Gittinger
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
"{ Package: 'stx:libcomp' }"

"{ NameSpace: Smalltalk }"

ProceedableError subclass:#ParseError
	instanceVariableNames:'errorMessage startPosition endPosition lineNumber'
	classVariableNames:''
	poolDictionaries:''
	category:'System-Compiler'
!

!ParseError class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) 1989 by Claus Gittinger
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
!

documentation
"
    raised for any compilation-related errors.
    (originally, I wanted to subclass this from compilationError,
    and raise different error for code generator issues (i.e. method too
    big, etc.) But all users of the parser in the system (RB-stuff, Lint stuff,
    fileIn etc.) always handle the ParseError, and I don't want them to be forced to change.
    So we subclass the codeGenerator issues from this one.
"
! !

!ParseError methodsFor:'accessing'!

description
    |s|

    s := super description.
    s last isSeparator ifFalse:[
        errorMessage notEmptyOrNil ifTrue:[
            s := s , ' '
        ]
    ].
    s := s , (errorMessage ? '').
    lineNumber notNil ifTrue:[
        s := s , ' [Line ' , lineNumber asString , ']'
    ].
    ^ s
!

endPosition
    ^ endPosition
!

errorMessage
    ^ errorMessage
!

errorMessage:something
    errorMessage := something.
!

errorMessage:errorMessageArg startPosition:startPositionArg 
    errorMessage := errorMessageArg.
    startPosition := startPositionArg.
!

errorMessage:errorMessageArg startPosition:startPositionArg endPosition:endPositionArg 
    errorMessage := errorMessageArg.
    startPosition := startPositionArg.
    endPosition := endPositionArg.
!

lineNumber
    ^ lineNumber
!

lineNumber:something
    lineNumber := something.
!

parser
    ^ originator
!

startPosition
    ^ startPosition
! !

!ParseError class methodsFor:'documentation'!

version
    ^ '$Header$'
!

version_CVS
    ^ '$Header$'
! !