mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Patch for Hoda Amer:
- A fix for bug 36379: The parser to set Line information when scanning as well.
This commit is contained in:
parent
d3d90593b4
commit
bfbb6e209b
2 changed files with 32 additions and 0 deletions
|
@ -294,4 +294,14 @@ public interface ICElement extends IAdaptable {
|
||||||
* exception occurs while accessing its corresponding resource
|
* exception occurs while accessing its corresponding resource
|
||||||
*/
|
*/
|
||||||
boolean isStructureKnown() throws CModelException;
|
boolean isStructureKnown() throws CModelException;
|
||||||
|
/**
|
||||||
|
* Returns the start line of the CElement
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int getStartLine();
|
||||||
|
/**
|
||||||
|
* Returns the end line of the CElement
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int getEndLine();
|
||||||
}
|
}
|
||||||
|
|
|
@ -228,6 +228,8 @@ public class CModelBuilder {
|
||||||
// set position
|
// set position
|
||||||
element.setIdPos(inclusion.getNameOffset(), inclusion.getNameLength());
|
element.setIdPos(inclusion.getNameOffset(), inclusion.getNameLength());
|
||||||
element.setPos(inclusion.getStartingOffset(), inclusion.getTotalLength());
|
element.setPos(inclusion.getStartingOffset(), inclusion.getTotalLength());
|
||||||
|
// set the element lines
|
||||||
|
element.setLines(inclusion.getTopLine(), inclusion.getBottomLine());
|
||||||
this.newElements.put(element, element.getElementInfo());
|
this.newElements.put(element, element.getElementInfo());
|
||||||
return element;
|
return element;
|
||||||
}
|
}
|
||||||
|
@ -240,6 +242,8 @@ public class CModelBuilder {
|
||||||
// set position
|
// set position
|
||||||
element.setIdPos(macro.getNameOffset(), macro.getNameLength());
|
element.setIdPos(macro.getNameOffset(), macro.getNameLength());
|
||||||
element.setPos(macro.getStartingOffset(), macro.getTotalLength());
|
element.setPos(macro.getStartingOffset(), macro.getTotalLength());
|
||||||
|
// set the element lines
|
||||||
|
element.setLines(macro.getTopLine(), macro.getBottomLine());
|
||||||
this.newElements.put(element, element.getElementInfo());
|
this.newElements.put(element, element.getElementInfo());
|
||||||
return element;
|
return element;
|
||||||
}
|
}
|
||||||
|
@ -258,6 +262,8 @@ public class CModelBuilder {
|
||||||
}
|
}
|
||||||
element.setPos(nsDef.getStartingOffset(), nsDef.getTotalLength());
|
element.setPos(nsDef.getStartingOffset(), nsDef.getTotalLength());
|
||||||
element.setTypeName(nsDef.getStartToken().getImage());
|
element.setTypeName(nsDef.getStartToken().getImage());
|
||||||
|
// set the element lines
|
||||||
|
element.setLines(nsDef.getTopLine(), nsDef.getBottomLine());
|
||||||
|
|
||||||
this.newElements.put(element, element.getElementInfo());
|
this.newElements.put(element, element.getElementInfo());
|
||||||
return element;
|
return element;
|
||||||
|
@ -284,6 +290,8 @@ public class CModelBuilder {
|
||||||
}
|
}
|
||||||
element.setPos(enumSpecifier.getStartingOffset(), enumSpecifier.getTotalLength());
|
element.setPos(enumSpecifier.getStartingOffset(), enumSpecifier.getTotalLength());
|
||||||
element.setTypeName(enumSpecifier.getStartToken().getImage());
|
element.setTypeName(enumSpecifier.getStartToken().getImage());
|
||||||
|
// set the element lines
|
||||||
|
element.setLines(enumSpecifier.getTopLine(), enumSpecifier.getBottomLine());
|
||||||
|
|
||||||
this.newElements.put(element, element.getElementInfo());
|
this.newElements.put(element, element.getElementInfo());
|
||||||
return element;
|
return element;
|
||||||
|
@ -296,6 +304,8 @@ public class CModelBuilder {
|
||||||
// set enumerator position
|
// set enumerator position
|
||||||
element.setIdPos(enumDef.getName().getStartOffset(), enumDef.getName().length());
|
element.setIdPos(enumDef.getName().getStartOffset(), enumDef.getName().length());
|
||||||
element.setPos(enumDef.getStartingOffset(), enumDef.getTotalLength());
|
element.setPos(enumDef.getStartingOffset(), enumDef.getTotalLength());
|
||||||
|
// set the element lines
|
||||||
|
element.setLines(enumDef.getTopLine(), enumDef.getBottomLine());
|
||||||
|
|
||||||
this.newElements.put(element, element.getElementInfo());
|
this.newElements.put(element, element.getElementInfo());
|
||||||
return element;
|
return element;
|
||||||
|
@ -345,6 +355,8 @@ public class CModelBuilder {
|
||||||
}
|
}
|
||||||
element.setTypeName( type );
|
element.setTypeName( type );
|
||||||
element.setPos(classSpecifier.getStartingOffset(), classSpecifier.getTotalLength());
|
element.setPos(classSpecifier.getStartingOffset(), classSpecifier.getTotalLength());
|
||||||
|
// set the element lines
|
||||||
|
element.setLines(classSpecifier.getTopLine(), classSpecifier.getBottomLine());
|
||||||
|
|
||||||
this.newElements.put(element, element.getElementInfo());
|
this.newElements.put(element, element.getElementInfo());
|
||||||
return element;
|
return element;
|
||||||
|
@ -366,6 +378,8 @@ public class CModelBuilder {
|
||||||
// set positions
|
// set positions
|
||||||
element.setIdPos(domName.getStartOffset(), domName.length());
|
element.setIdPos(domName.getStartOffset(), domName.length());
|
||||||
element.setPos(simpleDeclaration.getStartingOffset(), simpleDeclaration.getTotalLength());
|
element.setPos(simpleDeclaration.getStartingOffset(), simpleDeclaration.getTotalLength());
|
||||||
|
// set the element lines
|
||||||
|
element.setLines(simpleDeclaration.getTopLine(), simpleDeclaration.getBottomLine());
|
||||||
|
|
||||||
this.newElements.put(element, element.getElementInfo());
|
this.newElements.put(element, element.getElementInfo());
|
||||||
return element;
|
return element;
|
||||||
|
@ -409,6 +423,8 @@ public class CModelBuilder {
|
||||||
// set position
|
// set position
|
||||||
element.setIdPos( domName.getStartOffset(), domName.length() );
|
element.setIdPos( domName.getStartOffset(), domName.length() );
|
||||||
element.setPos(simpleDeclaration.getStartingOffset(), simpleDeclaration.getTotalLength());
|
element.setPos(simpleDeclaration.getStartingOffset(), simpleDeclaration.getTotalLength());
|
||||||
|
// set the element lines
|
||||||
|
element.setLines(simpleDeclaration.getTopLine(), simpleDeclaration.getBottomLine());
|
||||||
|
|
||||||
this.newElements.put(element, element.getElementInfo());
|
this.newElements.put(element, element.getElementInfo());
|
||||||
return element;
|
return element;
|
||||||
|
@ -492,6 +508,9 @@ public class CModelBuilder {
|
||||||
// hook up the offsets
|
// hook up the offsets
|
||||||
element.setIdPos( domName.getStartOffset(), domName.length() );
|
element.setIdPos( domName.getStartOffset(), domName.length() );
|
||||||
element.setPos(simpleDeclaration.getStartingOffset(), simpleDeclaration.getTotalLength());
|
element.setPos(simpleDeclaration.getStartingOffset(), simpleDeclaration.getTotalLength());
|
||||||
|
// set the element lines
|
||||||
|
element.setLines(simpleDeclaration.getTopLine(), simpleDeclaration.getBottomLine());
|
||||||
|
|
||||||
this.newElements.put(element, element.getElementInfo());
|
this.newElements.put(element, element.getElementInfo());
|
||||||
return element;
|
return element;
|
||||||
}
|
}
|
||||||
|
@ -544,6 +563,9 @@ public class CModelBuilder {
|
||||||
// hook up the offsets
|
// hook up the offsets
|
||||||
element.setIdPos( declarator.getDeclarator().getName().getStartOffset(), declarator.getDeclarator().getName().length() );
|
element.setIdPos( declarator.getDeclarator().getName().getStartOffset(), declarator.getDeclarator().getName().length() );
|
||||||
element.setPos(simpleDeclaration.getStartingOffset(), simpleDeclaration.getTotalLength());
|
element.setPos(simpleDeclaration.getStartingOffset(), simpleDeclaration.getTotalLength());
|
||||||
|
// set the element lines
|
||||||
|
element.setLines(simpleDeclaration.getTopLine(), simpleDeclaration.getBottomLine());
|
||||||
|
|
||||||
this.newElements.put(element, element.getElementInfo());
|
this.newElements.put(element, element.getElementInfo());
|
||||||
return element;
|
return element;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue