On 03/02/2014 15:38, Dmitry Boyarintsev wrote:
On Mon, Feb 3, 2014 at 10:25 AM, Martin Frb <laza...@mfriebe.de
<mailto:laza...@mfriebe.de>> wrote:
It does not state if or if not it is an operator. And also give no
indication on its precedence, or if it is applied before or after
operators.
This is not so much about he -a^ (which is a (very) constructed
case), but about @a^ which is possible (not doing much so)
So if {$T-}
a : pinteger;
@a^ gives an untyped pointer (same as "pointer(a)" ? / but shorter)
But only because it is @(a^) and not (@a)^ . The second would only
compile wit {$T+}
Both still both expressions are parsed the same (not if $T is enabled
or not).
If you treat ^ as a part of identified, you'll be able to parse the
expression.
Parsed yes, but if it comes to evaluation, then you get {$T-} (@a)^
"cant dereference an untyped pointer" or similar
@a^ always works. All I was asking is if the documentation should state
it more clearly that ^ is (As part of the identifier) done before ^
Being picky:
http://www.freepascal.org/docs-html/ref/refse15.html#x46-530003.4
The expression
BP^
is known as the dereferencing of BP. The result is of type Buffer
If "BP^" is a single identifier, then where in this expression is the
action coming from? ("dereferencing" describes an action)
Also "result" used for a single identifier seems strange. (so that is
correct)
If on the other hand BP is the operator, and ^ is added to the operator
(becoming a part of it), then what is ^ on its own? (more specific, than
a token, please)
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel