1
0
Fork 0
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:
Doug Schaefer 2003-04-21 14:49:26 +00:00
parent d3d90593b4
commit bfbb6e209b
2 changed files with 32 additions and 0 deletions

View file

@ -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();
} }

View file

@ -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;
} }