Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-dev] Re: IASTTranslationUnit.getTranslationUnit returns null

Please disregard the last message.
I tried it on another system and it worked fine.
I've since re-installed CDT on the original system and it works, as expected.

Ben Monroe

I wrote:
Greetings.

I am new to CDT.
I would like to programmatically have CDT parse some C++ code.
However, IASTTranslationUnit.getTranslationUnit returns null.
The little bit of code up to this point includes the following:

  IFile file = ... // Is valid
  CDOM dom = CDOM.getInstance();
  IASTServiceProvider ast = dom.getASTService();
  IASTTranslationUnit atu = ast.getTranslationUnit(file);

I have also tried specifing an ICodeReaderFactory as below, but with
the same results:
  IASTTranslationUnit atu = ast.getTranslationUnit(file,
dom.getCodeReaderFactory(CDOM.PARSE_SAVED_RESOURCES));

Using the source code, it is ultimately failing in the peek method in
org.eclipse.cdt.internal.core.util.OverflowingLRUCache:

  public Object peek(Object key)  {
        LRUCacheEntry entry = (LRUCacheEntry) fEntryTable.get(key);
        if (entry == null) {
                return null;
        }
        return entry._fValue;
  }

The key is apparently not in the fEntryTable hashtable, thus returning null.

What am I doing wrong?
Is there some kind of initialization that I am missing?
Do I need to add it to the cache first? If so, how?

Any help would be appreciated.
Thanks.
Ben Monroe


Back to the top