mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-05 23:35:48 +02:00
Hooked up the DOM to the Core Model (kind of). Put in a little more docs.
This commit is contained in:
parent
3fab76a13d
commit
21342769d7
3 changed files with 35 additions and 1 deletions
|
@ -6,6 +6,7 @@ package org.eclipse.cdt.core.model;
|
||||||
*/
|
*/
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
||||||
import org.eclipse.cdt.internal.core.model.IBufferFactory;
|
import org.eclipse.cdt.internal.core.model.IBufferFactory;
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
import org.eclipse.core.runtime.IProgressMonitor;
|
||||||
/**
|
/**
|
||||||
|
@ -320,4 +321,11 @@ public interface ITranslationUnit extends ICElement, IParent, IOpenable, ISource
|
||||||
* returns a map of all new elements and their element info
|
* returns a map of all new elements and their element info
|
||||||
*/
|
*/
|
||||||
Map parse();
|
Map parse();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the root object of a DOM Abstract syntax tree.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
IASTTranslationUnit getASTTranslationUnit();
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.CCorePlugin;
|
import org.eclipse.cdt.core.CCorePlugin;
|
||||||
|
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
||||||
import org.eclipse.cdt.core.filetype.ICFileType;
|
import org.eclipse.cdt.core.filetype.ICFileType;
|
||||||
import org.eclipse.cdt.core.filetype.ICFileTypeConstants;
|
import org.eclipse.cdt.core.filetype.ICFileTypeConstants;
|
||||||
import org.eclipse.cdt.core.model.CModelException;
|
import org.eclipse.cdt.core.model.CModelException;
|
||||||
|
@ -568,4 +569,12 @@ public class TranslationUnit extends Openable implements ITranslationUnit {
|
||||||
return super.exists();
|
return super.exists();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.cdt.core.model.ITranslationUnit#getASTTranslationUnit()
|
||||||
|
*/
|
||||||
|
public IASTTranslationUnit getASTTranslationUnit() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,12 @@ up to the entry rule in the grammer. This view fulfills the role of a
|
||||||
traditional Abstract Syntax Tree, and you'll see that the classes that
|
traditional Abstract Syntax Tree, and you'll see that the classes that
|
||||||
make up this view have AST in their name.<br>
|
make up this view have AST in their name.<br>
|
||||||
</p>
|
</p>
|
||||||
|
<p>The top node of the Syntactic View is <a
|
||||||
|
href="../../reference/api/org/eclipse/cdt/core/dom/ast/IASTTranslationUnit.html">IASTTranslationUnit</a>.
|
||||||
|
The translation unit object can be accessed from the C Model's <a
|
||||||
|
href="../../reference/api/org/eclipse/cdt/core/model/ITranslationUnit.html">ITranslationUnit</a>
|
||||||
|
object.<br>
|
||||||
|
</p>
|
||||||
<h2>Semantic View</h2>
|
<h2>Semantic View</h2>
|
||||||
<p>The semantic view (which we sometimes call the logical view)
|
<p>The semantic view (which we sometimes call the logical view)
|
||||||
represent semantic elements in the program. These elements are
|
represent semantic elements in the program. These elements are
|
||||||
|
@ -31,9 +37,20 @@ generally types, variables, and functions. The JDT calls these things
|
||||||
bindings, so we do to. However, the more general rule is that anything
|
bindings, so we do to. However, the more general rule is that anything
|
||||||
that links sub-branches of the AST is a binding.<br>
|
that links sub-branches of the AST is a binding.<br>
|
||||||
</p>
|
</p>
|
||||||
|
<p>The most common way to get from the Syntactic View is to navigate
|
||||||
|
from an <a
|
||||||
|
href="../../reference/api/org/eclipse/cdt/core/dom/ast/IASTName.html">IASTName</a>
|
||||||
|
view to the <a
|
||||||
|
href="../../reference/api/org/eclipse/cdt/core/dom/ast/IBinding.html">IBinding</a>
|
||||||
|
that represents the Semantic object for that
|
||||||
|
given name.<br>
|
||||||
|
</p>
|
||||||
<h2>Workspace-Wide View</h2>
|
<h2>Workspace-Wide View</h2>
|
||||||
<p>Once you have a binding, it is possible to find all translation
|
<p>Once you have a binding, it is possible to find all translation
|
||||||
units that declare or refer to that binding.</p>
|
units that declare or refer to that binding. From there you can
|
||||||
|
navigate from the IASTTranslationUnit to the IASTNames that declare or
|
||||||
|
refer to that binding.<br>
|
||||||
|
</p>
|
||||||
<h2>Rewriting</h2>
|
<h2>Rewriting</h2>
|
||||||
<p>From the Syntactic view, you can ask the AST Rewriter to calculate
|
<p>From the Syntactic view, you can ask the AST Rewriter to calculate
|
||||||
the TextEdits required to accomplish changes to the AST.<br>
|
the TextEdits required to accomplish changes to the AST.<br>
|
||||||
|
|
Loading…
Add table
Reference in a new issue