aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/tafreader.cpp12
-rw-r--r--src/tafreader.h1
2 files changed, 11 insertions, 2 deletions
diff --git a/src/tafreader.cpp b/src/tafreader.cpp
index 4f0e1ec..29796f1 100644
--- a/src/tafreader.cpp
+++ b/src/tafreader.cpp
@@ -13,7 +13,8 @@ using namespace Bu;
13 13
14Bu::TafReader::TafReader( Bu::Stream &sIn ) : 14Bu::TafReader::TafReader( Bu::Stream &sIn ) :
15 c( 0 ), 15 c( 0 ),
16 sIn( sIn ) 16 sIn( sIn ),
17 iLine( 1 ), iCol( 1 )
17{ 18{
18 next(); next(); 19 next(); next();
19} 20}
@@ -62,7 +63,7 @@ void Bu::TafReader::groupContent( Bu::TafGroup *pGroup )
62 else if( c == '/' && la == '/' ) 63 else if( c == '/' && la == '/' )
63 pGroup->addChild( readComment( true ) ); 64 pGroup->addChild( readComment( true ) );
64 else if( c == ':' ) 65 else if( c == ':' )
65 throw TafException("Encountered stray ':' in taf stream."); 66 throw TafException("Encountered stray ':' in taf stream at %d:%d.", iLine, iCol );
66 else 67 else
67 pGroup->addChild( readProperty() ); 68 pGroup->addChild( readProperty() );
68 } 69 }
@@ -187,6 +188,13 @@ bool Bu::TafReader::isws()
187 188
188void Bu::TafReader::next() 189void Bu::TafReader::next()
189{ 190{
191 if( c == '\n' )
192 {
193 iLine++;
194 iCol = 1;
195 }
196 else
197 iCol++;
190 if( c == '}' ) 198 if( c == '}' )
191 { 199 {
192 sIn.read( &c, 1 ); 200 sIn.read( &c, 1 );
diff --git a/src/tafreader.h b/src/tafreader.h
index 3668296..ce67a5f 100644
--- a/src/tafreader.h
+++ b/src/tafreader.h
@@ -37,6 +37,7 @@ namespace Bu
37 Bu::FString readStr(); 37 Bu::FString readStr();
38 char c, la; 38 char c, la;
39 Bu::Stream &sIn; 39 Bu::Stream &sIn;
40 int iLine, iCol;
40 }; 41 };
41} 42}
42 43