Explainer.st
changeset 4707 e9860b345dfa
parent 4673 1e092670cf8f
child 4708 527bda38efd8
equal deleted inserted replaced
4706:c66624849b64 4707:e9860b345dfa
     1 "{ Encoding: utf8 }"
       
     2 
       
     3 "
     1 "
     4  COPYRIGHT (c) 1993 by Claus Gittinger
     2  COPYRIGHT (c) 1993 by Claus Gittinger
     5               All Rights Reserved
     3               All Rights Reserved
     6 
     4 
     7  This software is furnished under a license and may be used
     5  This software is furnished under a license and may be used
   138       or:[ literalValue isString ]]
   136       or:[ literalValue isString ]]
   139     ) ifTrue:[
   137     ) ifTrue:[
   140         literalValue size == 0 ifTrue:[
   138         literalValue size == 0 ifTrue:[
   141             ^ 'empty ' , expl
   139             ^ 'empty ' , expl
   142         ].
   140         ].
   143         (literalValue isString 
   141         literalValue isString ifTrue:[
   144         and:[ node token isLiteralCString ]) ifTrue:[
   142             node token isLiteralCString ifTrue:[
   145             expl := expl,' (C-syntax)'.
   143                 expl := expl,' (C-syntax)'.
       
   144             ] ifFalse:[
       
   145                 node token isLiteralEString ifTrue:[
       
   146                     expl := expl,' (expandeded String)'.
       
   147                 ] ifFalse:[
       
   148                     node token isLiteralIString ifTrue:[
       
   149                         expl := expl,' (internationalized String)'.
       
   150                     ] ifFalse:[
       
   151                         node token isLiteralRString ifTrue:[
       
   152                             expl := expl,' (regex)'.
       
   153                         ].
       
   154                     ].
       
   155                 ].
       
   156             ].
   146         ].
   157         ].
   147         elementIndex notNil ifTrue:[
   158         elementIndex notNil ifTrue:[
   148             ^ expl , (' (size=%1; element=%2)' bindWith:literalValue size with:elementIndex)
   159             ^ expl , (' (size=%1; element=%2)' bindWith:literalValue size with:elementIndex)
   149         ].
   160         ].
   150         literalValue isString ifTrue:[
   161         literalValue isString ifTrue:[
   290         |clsName action1 action2|
   301         |clsName action1 action2|
   291 
   302 
   292         implMethod := implClass compiledMethodAt:selector.
   303         implMethod := implClass compiledMethodAt:selector.
   293         clsName := implClass name.
   304         clsName := implClass name.
   294         clsName := self asLink:clsName to:(self actionToBrowseClass:implClass selector:selector).
   305         clsName := self asLink:clsName to:(self actionToBrowseClass:implClass selector:selector).
   295         "/ info := '%1 » %2' bindWith:clsName "allBold" with:selectorString.
   306         "/ info := '%1 » %2' bindWith:clsName "allBold" with:selectorString.
   296         info := '%1 %2' bindWith:clsName with:(implMethod methodDefinitionTemplateForSelector:selector).
   307         info := '%1 %2' bindWith:clsName with:(implMethod methodDefinitionTemplateForSelector:selector).
   297         info := self asLink:info to:(action1 := self actionToBrowseClass:implClass selector:selector info:nil).
   308         info := self asLink:info to:(action1 := self actionToBrowseClass:implClass selector:selector info:nil).
   298         
   309         
   299         redefiningClasses size ~~ 0 ifTrue:[
   310         redefiningClasses size ~~ 0 ifTrue:[
   300             redefiningClasses size == 1 ifTrue:[
   311             redefiningClasses size == 1 ifTrue:[
  2864                         asLink:selectorString "allBold" 
  2875                         asLink:selectorString "allBold" 
  2865                         info:('Browse all implementors of %1' bindWith:selectorString)
  2876                         info:('Browse all implementors of %1' bindWith:selectorString)
  2866                         to:(self actionToOpenMethodFinderFor:sel)) 
  2877                         to:(self actionToOpenMethodFinderFor:sel)) 
  2867             with:(self 
  2878             with:(self 
  2868                     asLink:inheritedClass name "allBold" 
  2879                     asLink:inheritedClass name "allBold" 
  2869                     info:('Browse %1 » %2' bindWith:inheritedClass name with:sel)
  2880                     info:('Browse %1 » %2' bindWith:inheritedClass name with:sel)
  2870                     to:(self actionToBrowseClass:inheritedClass selector:sel)).
  2881                     to:(self actionToBrowseClass:inheritedClass selector:sel)).
  2871     ].
  2882     ].
  2872 
  2883 
  2873     ^ msg
  2884     ^ msg
  2874 
  2885