[Uml-devel] KDE/kdesdk/umbrello/umbrello/codeimport/kdevcppparser

Jean Vittor jean.vittor at free.fr
Sun Mar 23 13:07:35 UTC 2008


SVN commit 789160 by jvittor:

Use boost::spirit::file_position

 M  +1 -1      driver.cpp  
 M  +1 -1      lexer.cpp  
 M  +6 -6      lexer.h  
 M  +2 -2      parser.cpp  
 M  +9 -13     position.h  


--- trunk/KDE/kdesdk/umbrello/umbrello/codeimport/kdevcppparser/driver.cpp #789159:789160
@@ -155,7 +155,7 @@
 
     if ( !QFile::exists( file ) ) {
 	Problem p( "Could not find include file " + dep.first,
-		   lexer ? lexer->currentPosition() : Position( -1, -1));
+		   lexer ? lexer->currentPosition() : Position());
 	addProblem( fileName, p );
 	return;
     }
--- trunk/KDE/kdesdk/umbrello/umbrello/codeimport/kdevcppparser/lexer.cpp #789159:789160
@@ -338,7 +338,7 @@
                     }
 		} else {
 	  Position l_newPosition( svPosition);
-	  l_newPosition.m_column += (endIde - start);
+	  l_newPosition.column += (endIde - start);
 	  tk = m_source.createToken( Token_identifier, start, endIde - start,
 				     svPosition, l_newPosition );
 
--- trunk/KDE/kdesdk/umbrello/umbrello/codeimport/kdevcppparser/lexer.h #789159:789160
@@ -296,15 +296,15 @@
     int length() const {return m_endPtr - m_ptr;}
     void nextChar() {
       if(m_source[m_ptr++] == '\n') {
-	++m_currentPosition.m_line;
-	m_currentPosition.m_column = 0;
+	++m_currentPosition.line;
+	m_currentPosition.column = 0;
 	m_startLine = true;
       } else {
-	++m_currentPosition.m_column;
+	++m_currentPosition.column;
       }
     }
     void nextChar( int n ) {
-      m_currentPosition.m_column += n;
+      m_currentPosition.column += n;
       m_ptr += n;
     }
     QChar peekChar( int n = 1) const {
@@ -367,8 +367,8 @@
       m_ptr = 0;
       m_endPtr = 0;
       m_startLine = false;
-      m_currentPosition.m_line = 0;
-      m_currentPosition.m_column = 0;
+      m_currentPosition.line = 0;
+      m_currentPosition.column = 0;
     }
     void set_source( const QString& source) {
       m_source = source;
--- trunk/KDE/kdesdk/umbrello/umbrello/codeimport/kdevcppparser/parser.cpp #789159:789160
@@ -1915,12 +1915,12 @@
 void Parser::advanceAndCheckTrailingComment(QString& comment)
 {
   Token t = *m_tokenIt;
-  int previousTokenEndLine = t.getEndPosition().m_line;
+  int previousTokenEndLine = t.getEndPosition().line;
   ++m_tokenIt;
   if( (*m_tokenIt) != Token_comment )
 	return;
   t = *m_tokenIt;
-  int commentStartLine = t.getStartPosition().m_line;
+  int commentStartLine = t.getStartPosition().line;
     if( commentStartLine != previousTokenEndLine )
 	return;
   comment += (*m_tokenIt).text();
--- trunk/KDE/kdesdk/umbrello/umbrello/codeimport/kdevcppparser/position.h #789159:789160
@@ -20,21 +20,17 @@
 #ifndef _Position_H_
 #define _Position_H_
 
-struct Position {
-  Position() : m_line(0), m_column(0) {}
-  Position( int line, int column) : m_line( line), m_column( column) {}
+#include <boost/spirit.hpp>
 
-  bool operator==( Position const& p) const
-  {return ((m_line == p.m_line) && (m_column == p.m_column));}
+typedef boost::spirit::file_position Position;
 
-  bool operator<( Position const& p) const {
-    return ((m_line < p.m_line)
-	    || ((m_line == p.m_line) && (m_column < p.m_column)));
-  }
+inline bool operator<( Position const& p1, Position const& p2) {
+  assert( p1.file == p2.file);
+  return( (p1.line < p2.line)
+	  || ( (p1.line == p2.line) && (p1.column < p2.column)));
+}
 
-  bool operator>=( Position const& p) const {return ! (*this < p);}
+inline bool operator>=( Position const& p1, Position const& p2)
+{return !(p1 < p2);}
 
-  int m_line, m_column;
-};
-
 #endif




More information about the umbrello-devel mailing list