Hi Hannu,
You are right about the pointer/ref thing. Refs came later and since I
was a C programmer at the time, the info didn't get stored away. Since
then, the detail hasn't really been needed.
As for as :pointer being part of the :type, and not the function tag
itself, I think that makes good sense. Switching over will be a big job
though.
Based on your recent questions, I'm guessing you are working on some
sort of CEDET based Emacs project. What might it be?
Eric
Hannu Koivisto wrote:
> Greetings,
>
> Given
>
> class Kala
> {
> ...
> int* sur();
> int& pur();
> ...
> };
>
> Tags for sur and pur look like this:
>
> ("sur" function (:prototype-flag t :pointer 1 :type "int") (reparse-symbol classsubparts) #<overlay from 211 to 222 in kala.h>)
> ("pur" function (:prototype-flag t :type "int") (reparse-symbol classsubparts) #<overlay from 227 to 238 in kala.h>)
>
> In the case of pur there is no indication that it returns a
> reference to an int. "sur" also looks wrong; it has that :pointer
> 1 but I'd expect that to be a property of the function (not that I
> can figure out what it would mean for a function to have a
> pointer attribute), not its return type. Documentation of
> semantic-tag-type seems to agree with this interpretation: it says
> it returns the value of :type attribute and in the case of a
> function that is "the data type of the return value".
> semantic-tag-type returns "int" for both of those tags. I'd
> expect "int*" and "int&" (actually I'd expect to have a method that
> returns something structured that also takes care of namespace
> issues etc and another that returns the actual textual
> representation, but anyway).
>
|