.
authorclaus
Wed, 10 May 1995 04:27:38 +0200
changeset 86 26316d17e8c0
parent 85 31681583c44f
child 87 f05dac458d20
.
Parser.st
--- a/Parser.st	Sat May 06 16:12:26 1995 +0200
+++ b/Parser.st	Wed May 10 04:27:38 1995 +0200
@@ -41,7 +41,7 @@
 COPYRIGHT (c) 1989 by Claus Gittinger
 	     All Rights Reserved
 
-$Header: /cvs/stx/stx/libcomp/Parser.st,v 1.38 1995-05-06 14:12:26 claus Exp $
+$Header: /cvs/stx/stx/libcomp/Parser.st,v 1.39 1995-05-10 02:27:38 claus Exp $
 '!
 
 !Parser class methodsFor:'documentation'!
@@ -62,7 +62,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libcomp/Parser.st,v 1.38 1995-05-06 14:12:26 claus Exp $
+$Header: /cvs/stx/stx/libcomp/Parser.st,v 1.39 1995-05-10 02:27:38 claus Exp $
 "
 !
 
@@ -1191,26 +1191,43 @@
 
 undefError:aName position:pos1 to:pos2
     "report an undefined variable error - return true, if it should be
-     corrected"
-
-    (requestor isNil or:[requestor isStream]) ifTrue:[
-	warnedUndefVars notNil ifTrue:[
-	    (warnedUndefVars includes:aName) ifTrue:[
-		"already warned about this one"
-		^ false
-	    ].
+     corrected. If not corrected, only one warning is made per undefined
+     variable."
+
+    |doCorrect|
+
+    "
+     alredy warned about this one ?
+    "
+    warnedUndefVars notNil ifTrue:[
+	(warnedUndefVars includes:aName) ifTrue:[
+	    "already warned about this one"
+	    ^ false
 	].
+    ].
+
+   (requestor isNil or:[requestor isStream]) ifTrue:[
 	aName first isUppercase ifFalse:[
 	    self showErrorMessage:('Error: ' , aName , ' is undefined') position:pos1.
 	].
+	doCorrect := false.
+    ] ifFalse:[
+	"
+	 ask requestor for correct/continue/abort ...
+	 it is supposed to raise abort or return true/false.
+	 True return means that correction is wanted.
+	"
+	doCorrect := self correctableError:('Error: ' , aName , ' is undefined') position:pos1 to:pos2
+    ].
+
+    doCorrect ifFalse:[
 	warnedUndefVars isNil ifTrue:[
 	    warnedUndefVars := Set new.
 	].
 	warnedUndefVars add:aName.
-	^ false
     ].
 
-    ^ self correctableError:('Error: ' , aName , ' is undefined') position:pos1 to:pos2
+    ^ doCorrect
 !
 
 identifierExpectedIn:what