/* * @see org.eclipse.cdt.core.dom.ast.ASTVisitor#visit(org.eclipse.cdt.core.dom.ast.IASTTranslationUnit) */ @Override public int visit(IASTTranslationUnit tu) { fTranslationUnitFileName = tu.getFilePath(); push(ICElement.C_UNIT, TRANSLATION_UNIT_NAME, 0); // TODO fix ordering of includes and macros // includes final IASTPreprocessorIncludeStatement[] includeDirectives = tu.getIncludeDirectives(); for (int i = 0; i < includeDirectives.length; i++) { IASTPreprocessorIncludeStatement includeDirective = includeDirectives[i]; if (isLocalToFile(includeDirective)) { push( ICElement.C_INCLUDE, new String(includeDirective.getName().toCharArray()), getStartOffset(includeDirective)); pop(getEndOffset(includeDirective)); } } // macros final IASTPreprocessorMacroDefinition[] macroDefinitions = tu.getMacroDefinitions(); for (int i = 0; i < macroDefinitions.length; i++) { IASTPreprocessorMacroDefinition macroDefinition = macroDefinitions[i]; if (isLocalToFile(macroDefinition)) { push( ICElement.C_MACRO, new String(macroDefinition.getName().toCharArray()), getStartOffset(macroDefinition)); pop(getEndOffset(macroDefinition)); } } return super.visit(tu); }