STCCompilerInterface.st
changeset 4468 cf6348f8d103
parent 4400 978971f3de9e
child 4477 2eef68083666
equal deleted inserted replaced
4467:4698a67f4800 4468:cf6348f8d103
     1 "{ Encoding: utf8 }"
       
     2 
       
     3 "
     1 "
     4  COPYRIGHT (c) 1989 by Claus Gittinger
     2  COPYRIGHT (c) 1989 by Claus Gittinger
     5  COPYRIGHT (c) 2006 by eXept Software AG
     3  COPYRIGHT (c) 2006 by eXept Software AG
     6               All Rights Reserved
     4               All Rights Reserved
     7 
     5 
   942     "Modified: / 21-12-2013 / 00:08:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   940     "Modified: / 21-12-2013 / 00:08:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   943     "Modified: / 11-05-2018 / 09:29:20 / stefan"
   941     "Modified: / 11-05-2018 / 09:29:20 / stefan"
   944 !
   942 !
   945 
   943 
   946 reportCompilationErrorFor:aCommand fromFile:anErrorFilename
   944 reportCompilationErrorFor:aCommand fromFile:anErrorFilename
   947     |eMsg errorMessages lNr|
   945     |eMsg errorMessages errorMessagesColorized lNr cFile stFile|
   948 
   946 
   949     (executionStatus notNil and:[executionStatus couldNotExecute]) ifTrue:[
   947     (executionStatus notNil and:[executionStatus couldNotExecute]) ifTrue:[
   950         eMsg := 'oops, no %1 - cannot create machine code' bindWith:aCommand.
   948         eMsg := 'oops, no %1 - cannot create machine code' bindWith:aCommand.
   951     ] ifFalse:[
   949     ] ifFalse:[
   952         errorMessages := anErrorFilename contents 
   950         errorMessages := anErrorFilename contents 
   953                             collect:[:l | OperatingSystem decodePathOrCommandOutput: l ].
   951                             collect:[:l | OperatingSystem decodePathOrCommandOutput: l ].
   954         Transcript showCR:errorMessages asString.
   952 
       
   953         "/ replace the filename string
       
   954         cFile := cFileName asFilename name.
       
   955         stFile := stFileName asFilename name.
       
   956         errorMessages := errorMessages 
       
   957             collect:[:line |
       
   958                 (line startsWith:cFile) ifTrue:[
       
   959                     cFileName asFilename baseName,(line copyFrom:cFile size+1)
       
   960                 ] ifFalse:[
       
   961                     (line startsWith:stFile) ifTrue:[
       
   962                         stFileName asFilename baseName,(line copyFrom:stFile size+1)
       
   963                     ] ifFalse:[
       
   964                         line
       
   965                     ].
       
   966                 ].
       
   967             ].
       
   968 
       
   969         errorMessagesColorized := 
       
   970             errorMessages collect:[:line |
       
   971                 (line includesString:'warning:' caseSensitive:false) ifTrue:[
       
   972                     line withColor:Color orange
       
   973                 ] ifFalse:[
       
   974                     (line includesString:'error:' caseSensitive:false) ifTrue:[
       
   975                         line withColor:Color red
       
   976                     ] ifFalse:[
       
   977                         line
       
   978                     ]
       
   979                 ]
       
   980             ].
       
   981         Transcript showCR:errorMessagesColorized asString.
       
   982 
   955         errorMessages notNil ifTrue:[
   983         errorMessages notNil ifTrue:[
   956             errorMessages := errorMessages reject:[:line | line includesString:'Note:' caseSensitive:false].
   984             errorMessages := errorMessages reject:[:line | line includesString:'Note:' caseSensitive:false].
   957             errorMessages size > 20 ifTrue:[
   985             errorMessages size > 20 ifTrue:[
   958                 errorMessages := errorMessages reject:[:line | line includesString:'Warning:' caseSensitive:false].
   986                 errorMessages := errorMessages reject:[:line | line includesString:'Warning:' caseSensitive:false].
   959                 errorMessages size > 20 ifTrue:[
   987                 errorMessages size > 20 ifTrue:[