From my understanding ( the fpc team probably can to more exact):

* lexical level
This would be like a simple "Find and Replace" on the text. This would work with anything, as it doesn't know what it is translating.
(It is very similar to a (non-buildin) C-preprocessor)

* parser level
The parser will likely translate the source into a structure of objects
 a := a + 1
becomes
 ObjectAssignmenOp
     LeftHandTerm = ObjVariable "a"
RightHandTerm = ObjExpression ( ObjAddition: Op1 = Variable "a"; Op2= 1 )

If that happens to "+=" then "a+=1"
 ObjectAssignmenOpIncr
     LeftHandTerm = ObjVariable
     RightHandTerm = ObjExpression

if the left hand term is a property, then because it is the left hand (which will be assigned to), the lefthand term becomes the property-setter.
The ObjectAssignmenOpIncr then has no reference to the property-getter.


Graeme Geldenhuys wrote:
On Thu, Jul 17, 2008 at 9:07 AM, Micha Nelissen <[EMAIL PROTECTED]> wrote:
Jonas Maebe wrote:
Indeed. I've checked the code and properties are explicitly not allowed
for the C-style operators. The reason is that the x+=y is translated into
"x:=x+y" at the parser level rather than at the lexical level. This
So I guess the obvious question is: would it be risky to change that so it
parses it at the lexical level? :-)


My question too....   Would somebody be so kind as to explain the
difference to me?  As I mentioned before, I'm not a compiler
developer.


Regards,
 - Graeme -


_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to