[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