On 18/03/2013 03:11, Paul Ishenin wrote: > 18.03.13, 9:27, Xiangrong Fang пишет: >> I am sorry I didn't follow this thread although I am the "OP" :-). If >> I understand correct, I would suggest NOT introduce the "absolute" >> keyword, instead, make it ALWAYS absolute. i.e.: >> >> with a = SomeObject, b = SomeRecord do begin >> ... ... >> end; >> >> Both a and b are "reference" to the object or record, IMO there seems no >> need to do assignment in the with syntax. Thus, I suggest use = instead >> of := > > '=' can't be used because it can be a part of expression. There is no big > difference between > with (a = SomeObject) do > and > with a = SomeObject do > > After more thinking I see that ':=' as well as absolute keyword are also bad > because they will complicate the parser (although it is possible to use > them). Parser will need to read the first token and check if it is an > identifier, read second token and compare with ':=' (or 'absolute') and if it > is not ':=' (or 'absolute') return to expression parse. > > At the same time we will not complicate the parser if we place alias > identifier after the with expression like: > > with expression1, expression2 => alias2, expression3, expression4 => alias4 do > > begin > > end; > > Where '=>' is some token which can't be used in expressions. > For example '@' ?
e.g. with alias1@SomeLongObject, alias2@SomeOtherLongObject, ... do rationale: it's sufficiently different, and as for its nominal usage, it does similar thing. ? > Best regards, > Paul Ishenin > Lukasz _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal