you should really read the syntax chapter of the Pharo by example because it explains all these points really precisely.
I'm sure that you will get a ahhhhha effect once you read it.

Stef

On Mar 23, 2013, at 2:14 PM, Mohammad Al Houssami (Alumni) <mha53@mail.aub.edu> wrote:

Probably because I am not using dots except at the end of blocks which I think is wrong. 
This is a sample of what I had earlier:
currentCharacter = CHARACTERTABULATION  ifTrue: [anythingElseBoolean:= false
                AfterDOCTYPENameState value: currentCharacter ].
There should be a dot after false right ? Once I add the dot I get a complain.

 
From: pharo-users-bounces@lists.gforge.inria.fr [mailto:pharo-users-bounces@lists.gforge.inria.fr] On Behalf Of Esteban Lorenzano
Sent: Saturday, March 23, 2013 3:09 PM
To: A friendly place where any question about pharo is welcome
Subject: Re: [Pharo-users] Method Calling Inside Nested Blocks
 
if it is a method, it needs the receiver, in this case "self" (remember, any call in smalltalk is: receiver+message).
If for some weird reason you did not need it before (like some chained call effect), that was just by chance... you just were lucky before :)
 
Esteban
 
On Mar 23, 2013, at 1:58 PM, "Mohammad Al Houssami (Alumni)" <mha53@mail.aub.edu> wrote:


So the method declaration should be self afterDOCTYPEPublicKeywordState: currentCharacter. ?
 
But I have been doing the same for quite some time and I wasn�t getting any complains. This is the first time and the only thing that changed is that I have two blocks in this case. As I said earlier if I move the method call outside the block it works with no complains J
 
I'll change the names of all my methods to camel case. Thanks for that
 
 
From: pharo-users-bounces@lists.gforge.inria.fr [mailto:pharo-users-bounces@lists.gforge.inria.fr] On Behalf Of Esteban Lorenzano
Sent: Saturday, March 23, 2013 2:52 PM
To: A friendly place where any question about pharo is welcome
Subject: Re: [Pharo-users] Method Calling Inside Nested Blocks
 
 
On Mar 23, 2013, at 12:31 PM, "Mohammad Al Houssami (Alumni)" <mha53@mail.aub.edu> 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