Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 179393
Collapse All | Expand All

(-)parser/org/eclipse/cdt/internal/core/parser/scanner2/FileCodeReaderFactory.java (-3 / +3 lines)
Lines 11-20 Link Here
11
package org.eclipse.cdt.internal.core.parser.scanner2;
11
package org.eclipse.cdt.internal.core.parser.scanner2;
12
12
13
import org.eclipse.cdt.core.dom.ICodeReaderFactory;
13
import org.eclipse.cdt.core.dom.ICodeReaderFactory;
14
import org.eclipse.cdt.core.dom.ICodeReaderFactoryCallback;
14
import org.eclipse.cdt.core.model.ITranslationUnit;
15
import org.eclipse.cdt.core.model.ITranslationUnit;
15
import org.eclipse.cdt.core.parser.CodeReader;
16
import org.eclipse.cdt.core.parser.CodeReader;
16
import org.eclipse.cdt.core.parser.ICodeReaderCache;
17
import org.eclipse.cdt.core.parser.ICodeReaderCache;
17
import org.eclipse.cdt.core.parser.IScanner;
18
import org.eclipse.cdt.internal.core.dom.parser.EmptyCodeReaderCache;
18
import org.eclipse.cdt.internal.core.dom.parser.EmptyCodeReaderCache;
19
19
20
/**
20
/**
Lines 49-57 Link Here
49
    }
49
    }
50
    
50
    
51
    /* (non-Javadoc)
51
    /* (non-Javadoc)
52
     * @see org.eclipse.cdt.core.dom.ICodeReaderFactory#createCodeReaderForInclusion(java.lang.String)
52
     * @see org.eclipse.cdt.core.dom.ICodeReaderFactory#createCodeReaderForInclusion(org.eclipse.cdt.core.dom.ICodeReaderFactoryCallback, java.lang.String)
53
     */
53
     */
54
    public CodeReader createCodeReaderForInclusion(IScanner scanner, String path) {
54
    public CodeReader createCodeReaderForInclusion(ICodeReaderFactoryCallback scanner, String path) {
55
		return cache.get(path);
55
		return cache.get(path);
56
	}
56
	}
57
57
(-)src/org/eclipse/cdt/internal/core/dom/NullCodeReaderFactory.java (-3 / +3 lines)
Lines 11-19 Link Here
11
package org.eclipse.cdt.internal.core.dom;
11
package org.eclipse.cdt.internal.core.dom;
12
12
13
import org.eclipse.cdt.core.dom.ICodeReaderFactory;
13
import org.eclipse.cdt.core.dom.ICodeReaderFactory;
14
import org.eclipse.cdt.core.dom.ICodeReaderFactoryCallback;
14
import org.eclipse.cdt.core.parser.CodeReader;
15
import org.eclipse.cdt.core.parser.CodeReader;
15
import org.eclipse.cdt.core.parser.ICodeReaderCache;
16
import org.eclipse.cdt.core.parser.ICodeReaderCache;
16
import org.eclipse.cdt.core.parser.IScanner;
17
17
18
/**
18
/**
19
 * A <code>ICodeReaderFactory</code> which creates dummy <code>CodeReader</code>s without content.
19
 * A <code>ICodeReaderFactory</code> which creates dummy <code>CodeReader</code>s without content.
Lines 34-42 Link Here
34
	}
34
	}
35
35
36
	/*
36
	/*
37
	 * @see org.eclipse.cdt.core.dom.ICodeReaderFactory#createCodeReaderForInclusion(org.eclipse.cdt.core.parser.IScanner, java.lang.String)
37
	 * @see org.eclipse.cdt.core.dom.ICodeReaderFactory#createCodeReaderForInclusion(org.eclipse.cdt.core.dom.ICodeReaderFactoryCallback, java.lang.String)
38
	 */
38
	 */
39
	public CodeReader createCodeReaderForInclusion(IScanner scanner, String path) {
39
	public CodeReader createCodeReaderForInclusion(ICodeReaderFactoryCallback scanner, String path) {
40
		return new CodeReader(path, EMPTY_CHARS);
40
		return new CodeReader(path, EMPTY_CHARS);
41
	}
41
	}
42
42
(-)src/org/eclipse/cdt/internal/core/dom/SavedCodeReaderFactory.java (-3 / +3 lines)
Lines 13-23 Link Here
13
import org.eclipse.cdt.core.CCorePlugin;
13
import org.eclipse.cdt.core.CCorePlugin;
14
import org.eclipse.cdt.core.dom.CDOM;
14
import org.eclipse.cdt.core.dom.CDOM;
15
import org.eclipse.cdt.core.dom.ICodeReaderFactory;
15
import org.eclipse.cdt.core.dom.ICodeReaderFactory;
16
import org.eclipse.cdt.core.dom.ICodeReaderFactoryCallback;
16
import org.eclipse.cdt.core.model.ITranslationUnit;
17
import org.eclipse.cdt.core.model.ITranslationUnit;
17
import org.eclipse.cdt.core.parser.CodeReader;
18
import org.eclipse.cdt.core.parser.CodeReader;
18
import org.eclipse.cdt.core.parser.CodeReaderCache;
19
import org.eclipse.cdt.core.parser.CodeReaderCache;
19
import org.eclipse.cdt.core.parser.ICodeReaderCache;
20
import org.eclipse.cdt.core.parser.ICodeReaderCache;
20
import org.eclipse.cdt.core.parser.IScanner;
21
import org.eclipse.core.runtime.Preferences;
21
import org.eclipse.core.runtime.Preferences;
22
22
23
/**
23
/**
Lines 84-92 Link Here
84
    }
84
    }
85
85
86
    /* (non-Javadoc)
86
    /* (non-Javadoc)
87
     * @see org.eclipse.cdt.core.dom.ICodeReaderFactory#createCodeReaderForInclusion(java.lang.String)
87
     * @see org.eclipse.cdt.core.dom.ICodeReaderFactory#createCodeReaderForInclusion(org.eclipse.cdt.core.dom.ICodeReaderFactoryCallback, java.lang.String)
88
     */
88
     */
89
    public CodeReader createCodeReaderForInclusion(IScanner scanner, String path) {
89
    public CodeReader createCodeReaderForInclusion(ICodeReaderFactoryCallback scanner, String path) {
90
		return cache.get(path);
90
		return cache.get(path);
91
    }
91
    }
92
	
92
	
(-)src/org/eclipse/cdt/internal/core/dom/PartialWorkingCopyCodeReaderFactory.java (-3 / +3 lines)
Lines 15-25 Link Here
15
15
16
import org.eclipse.cdt.core.dom.CDOM;
16
import org.eclipse.cdt.core.dom.CDOM;
17
import org.eclipse.cdt.core.dom.ICodeReaderFactory;
17
import org.eclipse.cdt.core.dom.ICodeReaderFactory;
18
import org.eclipse.cdt.core.dom.ICodeReaderFactoryCallback;
18
import org.eclipse.cdt.core.model.ITranslationUnit;
19
import org.eclipse.cdt.core.model.ITranslationUnit;
19
import org.eclipse.cdt.core.model.IWorkingCopyProvider;
20
import org.eclipse.cdt.core.model.IWorkingCopyProvider;
20
import org.eclipse.cdt.core.parser.CodeReader;
21
import org.eclipse.cdt.core.parser.CodeReader;
21
import org.eclipse.cdt.core.parser.ICodeReaderCache;
22
import org.eclipse.cdt.core.parser.ICodeReaderCache;
22
import org.eclipse.cdt.core.parser.IScanner;
23
import org.eclipse.cdt.core.parser.ParserUtil;
23
import org.eclipse.cdt.core.parser.ParserUtil;
24
import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator;
24
import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator;
25
25
Lines 70-78 Link Here
70
	}
70
	}
71
71
72
    /* (non-Javadoc)
72
    /* (non-Javadoc)
73
     * @see org.eclipse.cdt.core.dom.ICodeReaderFactory#createCodeReaderForInclusion(java.lang.String)
73
     * @see org.eclipse.cdt.core.dom.ICodeReaderFactory#createCodeReaderForInclusion(org.eclipse.cdt.core.dom.ICodeReaderFactoryCallback, java.lang.String)
74
     */
74
     */
75
    public CodeReader createCodeReaderForInclusion(IScanner scanner, String path) {
75
    public CodeReader createCodeReaderForInclusion(ICodeReaderFactoryCallback scanner, String path) {
76
        return cache.get( path );
76
        return cache.get( path );
77
    }
77
    }
78
78
(-)parser/org/eclipse/cdt/core/dom/ICodeReaderFactory.java (-2 / +1 lines)
Lines 12-18 Link Here
12
12
13
import org.eclipse.cdt.core.parser.CodeReader;
13
import org.eclipse.cdt.core.parser.CodeReader;
14
import org.eclipse.cdt.core.parser.ICodeReaderCache;
14
import org.eclipse.cdt.core.parser.ICodeReaderCache;
15
import org.eclipse.cdt.core.parser.IScanner;
16
15
17
/**
16
/**
18
 * This is the interface that an AST Service uses to delegate the construction
17
 * This is the interface that an AST Service uses to delegate the construction
Lines 43-49 Link Here
43
	 * @param path
42
	 * @param path
44
	 * @return CodeReader for contents at that path.
43
	 * @return CodeReader for contents at that path.
45
	 */
44
	 */
46
	public CodeReader createCodeReaderForInclusion(IScanner scanner, String path);
45
	public CodeReader createCodeReaderForInclusion(ICodeReaderFactoryCallback callback, String path);
47
	
46
	
48
	/**
47
	/**
49
	 * Returns the ICodeReaderCache used for this ICodeReaderFacotry.
48
	 * Returns the ICodeReaderCache used for this ICodeReaderFacotry.
(-)parser/org/eclipse/cdt/internal/core/index/IndexBasedCodeReaderFactory.java (-2 / +2 lines)
Lines 26-31 Link Here
26
26
27
import org.eclipse.cdt.core.CCorePlugin;
27
import org.eclipse.cdt.core.CCorePlugin;
28
import org.eclipse.cdt.core.dom.ICodeReaderFactory;
28
import org.eclipse.cdt.core.dom.ICodeReaderFactory;
29
import org.eclipse.cdt.core.dom.ICodeReaderFactoryCallback;
29
import org.eclipse.cdt.core.index.IIndex;
30
import org.eclipse.cdt.core.index.IIndex;
30
import org.eclipse.cdt.core.index.IIndexFile;
31
import org.eclipse.cdt.core.index.IIndexFile;
31
import org.eclipse.cdt.core.index.IIndexFileLocation;
32
import org.eclipse.cdt.core.index.IIndexFileLocation;
Lines 35-41 Link Here
35
import org.eclipse.cdt.core.parser.CodeReader;
36
import org.eclipse.cdt.core.parser.CodeReader;
36
import org.eclipse.cdt.core.parser.ICodeReaderCache;
37
import org.eclipse.cdt.core.parser.ICodeReaderCache;
37
import org.eclipse.cdt.core.parser.IMacro;
38
import org.eclipse.cdt.core.parser.IMacro;
38
import org.eclipse.cdt.core.parser.IScanner;
39
import org.eclipse.cdt.core.parser.ParserUtil;
39
import org.eclipse.cdt.core.parser.ParserUtil;
40
import org.eclipse.cdt.internal.core.parser.scanner2.ObjectStyleMacro;
40
import org.eclipse.cdt.internal.core.parser.scanner2.ObjectStyleMacro;
41
import org.eclipse.cdt.internal.core.pdom.dom.PDOMMacro;
41
import org.eclipse.cdt.internal.core.pdom.dom.PDOMMacro;
Lines 103-109 Link Here
103
		return ParserUtil.createReader(path, null);
103
		return ParserUtil.createReader(path, null);
104
	}
104
	}
105
	
105
	
106
	public CodeReader createCodeReaderForInclusion(IScanner scanner, String path) {
106
	public CodeReader createCodeReaderForInclusion(ICodeReaderFactoryCallback scanner, String path) {
107
		// if the file is in the index, we skip it
107
		// if the file is in the index, we skip it
108
		File location= new File(path);
108
		File location= new File(path);
109
		String canonicalPath= path;
109
		String canonicalPath= path;
(-)parser/org/eclipse/cdt/core/parser/IScanner.java (-1 / +2 lines)
Lines 12-17 Link Here
12
12
13
import java.util.Map;
13
import java.util.Map;
14
14
15
import org.eclipse.cdt.core.dom.ICodeReaderFactoryCallback;
15
import org.eclipse.cdt.core.parser.ast.IASTFactory;
16
import org.eclipse.cdt.core.parser.ast.IASTFactory;
16
import org.eclipse.cdt.core.parser.util.CharArrayObjectMap;
17
import org.eclipse.cdt.core.parser.util.CharArrayObjectMap;
17
import org.eclipse.cdt.internal.core.parser.scanner2.ILocationResolver;
18
import org.eclipse.cdt.internal.core.parser.scanner2.ILocationResolver;
Lines 20-26 Link Here
20
 * @author jcamelon
21
 * @author jcamelon
21
 *
22
 *
22
 */
23
 */
23
public interface IScanner {
24
public interface IScanner extends ICodeReaderFactoryCallback {
24
	
25
	
25
	public static final int tPOUNDPOUND = -6;
26
	public static final int tPOUNDPOUND = -6;
26
	public static final int tPOUND      = -7;
27
	public static final int tPOUND      = -7;
(-)parser/org/eclipse/cdt/core/dom/ICodeReaderFactoryCallback.java (+23 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2007 IBM Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 * IBM - Initial API and implementation
10
 *******************************************************************************/
11
package org.eclipse.cdt.core.dom;
12
13
import org.eclipse.cdt.core.parser.IMacro;
14
15
/**
16
 * Allows an ICodeReaderFactory to retrieve macro definitions from the index, 
17
 * and then add these definitions to the scanner.
18
 *
19
 */
20
public interface ICodeReaderFactoryCallback {
21
	
22
	public void addDefinition(IMacro macro);
23
}

Return to bug 179393