On Mar 23, 2013, at 12:31 PM, "Mohammad Al Houssami (Alumni)" 
<[email protected]> wrote:

> Hello everyone
>  
> I was trying to save my method which has the below piece of code
>  
> anythingElseBoolean = false ifFalse: [
>                 doctypeString := reader next: 6
>                 doctypeString asLowercase =  'public'     ifTrue: [
>                                 AfterDOCTYPEPublicKeywordState value: 
> currentCharacter
>                                 ]
>  
> I get a complain that the AfterDOCTYPEPublicKeywordState is unknown even 
> though I have a method with this name. 

AfterDOCTYPEPublicKeywordState is a METHOD????
then, you are missing some points:

1) it does not conforms conventions (it should start with lowercase)
2) you need a self call

so, it would be like this:

self afterDOCTYPEPublicKeywordState value: currentCharacter. 

but that is also wrong from a design point of view (anti demeters law). So, you 
better create a (perhaps private) method who does the assignment. And then you 
have something like this:

self afterDOCTYPEPublicKeywordState: currentCharacter.

Esteban

> If I move the method call outside outside the ifTrue block to the ifFalse 
> block it doesn’t complain.
> 
> Is the problem because of nested blocks ? If that’s the case then what would 
> be a good work around ?
> 
>  
> Thanks
> Mohammad

Reply via email to