Re[2]: [CEDET-devel] tags internal representation
Brought to you by:
zappo
From: Eric M. L. <er...@si...> - 2003-03-20 09:38:05
|
David, >>> David PONCE <dav...@wa...> seems to think that: [ ... ] >> * (defsubst semantic-tag-attributes-cdr (tag) >> >> Functions like this exist for put only. It would be nice if they >> could somehow be made unavailable as part of the standard API by >> either removing the docstring, or adding to the docstring about not >> using it. > >I renamed all such functions reserved for internal use. They are now >prefixed `semantic--tag' instead of `semantic-tag'. Their doc string >also tells that they are for internal use only. Good idea using --, thanks. >> >> * (defsubst semantic-tag-overlay-cdr (tag) >> >> The exception being overlay-cdr which has overlay/deoverlay routines >> using it in semantic.el. I would rather see `set-overlay' or >> `put-overlay' to remove the notion of a list being there. > >I created the new function `semantic-tag-set-overlay'. Maybe it >would make sense to consider it as a function for internal use only, >and call it `semantic--tag-set-overlay'? Such a function should only be used by the overlay/deoverlay functions, so making it internal would be a good idea. [ ... ] >> >> * :children ,part-list >> >> Children is a term often used for subclasses. I'm not sure what a >> good term here is. > >In fact, I thought that the default implementation of >`semantic-nonterminal-children' could use that attribute to fetch >children, instead of considering `type' and `function' as particular >case. >Of course for that to work, `semantic-tag-new-function' should store >the function arguments with the :children attribute too. > >For now I didn't changed the code. Maybe have you a better idea? It seems to me that perhaps "children" is overloaded in semantic. Here are some ways children are used: 1) Get any sub tokens for a token 2) Get structure elements from types. 3) Get any sub tokens with overlays from a token 4) Function arguments and there are a few more as well. Number 3 really confuses things, since language authors have to override the semantic-nonterminal-children function to make their tag tables safe. If we remove/rename `semantic-nonterminal-children' to be more explicit such as `semantic-nonterminal-children-with-overlays', other confusion about what children are can be given nice names that mean what we want to ask, such as "tags-in-scope". Thus, if the cursor is in a specific environment, you can find the tags in scope it can refer to, and said tags do not have to have overlays. This could help the mental model. I'll look into that. Not that this helps decide a name for the :children property for types. ;) [ ... ] >> >> * (defsubst semantic-tag-variable-const (tag) >> >> spelling out constant would be nice to remove this C-ism. > >It appears that the attribute `const' is a flag too. So I renamed >the function `semantic-tag-variable-constant-p'. Good idea. Thanks. >> >> * (defsubst semantic-tag-variable-optsuffix (tag) >> >> What was I thinking? I should go find out what those bitwise colon >> operators are called. Does java use these? I'm tempted to >> completely rmeove this one and have override methods in the C >> support do the right thing in the token->text functions. > >No Java don't use that function. It doesn't seem to be used anywhere in semantic. We can probably just declare it as obsolete. [ ... ] > >For now, I don't see other changes to do. To simplify our work on >semantic-tag.el, I added it into the CVS repository. [ ... ] Great. I will fetch it. Thanks Eric -- Eric Ludlam: za...@gn..., er...@si... Home: http://www.ludlam.net Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net GNU: www.gnu.org |