summaryrefslogtreecommitdiff
path: root/transex3
diff options
context:
space:
mode:
authorVladimir Glazounov <vg@openoffice.org>2005-03-23 14:52:57 +0000
committerVladimir Glazounov <vg@openoffice.org>2005-03-23 14:52:57 +0000
commit81d6e42c78930294292be07bd07463bdfa072009 (patch)
treea059d6416d4f62981445fcba74c1997704962199 /transex3
parentca6f90a7c4a739e7115402cf0b28a2077da1b729 (diff)
INTEGRATION: CWS gh10 (1.6.2); FILE MERGED
2005/03/22 16:06:07 gh 1.6.2.3: improve tagchecking and replace -i option 2005/02/23 14:39:00 gh 1.6.2.2: implement new switches for different modes of gsicheck 2005/01/31 16:03:33 gh 1.6.2.1: add column information to errormessages
Diffstat (limited to 'transex3')
-rw-r--r--transex3/inc/tagtest.hxx67
1 files changed, 37 insertions, 30 deletions
diff --git a/transex3/inc/tagtest.hxx b/transex3/inc/tagtest.hxx
index 9cbed19a0f51..ccd2e3270a6e 100644
--- a/transex3/inc/tagtest.hxx
+++ b/transex3/inc/tagtest.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: tagtest.hxx,v $
*
- * $Revision: 1.6 $
+ * $Revision: 1.7 $
*
- * last change: $Author: rt $ $Date: 2004-12-10 17:16:43 $
+ * last change: $Author: vg $ $Date: 2005-03-23 15:52:57 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -68,16 +68,36 @@
typedef USHORT TokenId;
-struct TokenInfo
+#define TOK_INVALIDPOS USHORT( 0xFFFF )
+
+class ParserMessage;
+
+DECLARE_LIST( ParserMessageList, ParserMessage* );
+
+class TokenInfo
{
- ByteString aName;
+private:
+ void SplitTag( ParserMessageList &rErrorList );
+
+ String aTagName;
+
+public:
+
+ String aTokenString;
TokenId nId;
+ USHORT nPos; // Position in String
+
+ String aName;
TokenInfo():nId( 0 ){;}
-explicit TokenInfo( TokenId pnId ):nId( pnId ){;}
-explicit TokenInfo( TokenId pnId, ByteString paStr ):nId( pnId ), aName( paStr ){;}
+explicit TokenInfo( TokenId pnId, USHORT nP ):nId( pnId ),nPos(nP){;}
+explicit TokenInfo( TokenId pnId, USHORT nP, String paStr ):nId( pnId ), nPos(nP), aTokenString( paStr ){;}
+explicit TokenInfo( TokenId pnId, USHORT nP, String paStr, ParserMessageList &rErrorList );
+
+ String GetTagName() const;
+
BOOL operator == ( const TokenInfo& rInfo ) const
- { return nId == rInfo.nId && aName.Equals( rInfo.aName ); }
+ { return nId == rInfo.nId && aTokenString.Equals( rInfo.aTokenString ); }
};
@@ -228,13 +248,7 @@ class ParserMessage
ByteString aErrorText;
USHORT nTagBegin,nTagLength;
public:
- ParserMessage( USHORT PnErrorNr, const ByteString &PaErrorText, USHORT PnTagBegin = STRING_NOTFOUND, USHORT PnTagLength = 0)
- : nErrorNr( PnErrorNr )
- , aErrorText( PaErrorText )
- , nTagBegin( PnTagBegin )
- , nTagLength( PnTagLength )
- {}
-
+ ParserMessage( USHORT PnErrorNr, ByteString PaErrorText, const TokenInfo &rTag );
USHORT GetErrorNr() { return nErrorNr; }
ByteString GetErrorText() { return aErrorText; }
@@ -243,28 +257,23 @@ public:
USHORT GetTagLength() { return nTagLength; }
};
-DECLARE_LIST( ParserMessageList, ParserMessage* );
-
class SimpleParser
{
private:
USHORT nPos;
- ByteString aSource;
- ByteString aLastToken;
-// static ByteString aLastUnknownToken;
+ String aSource;
+ String aLastToken;
TokenList aTokenList;
TokenInfo aNextTag; // to store closetag in case of combined tags like <br/>
- ByteString GetNextTokenString( ParserMessageList &rErrorList );
+ String GetNextTokenString( ParserMessageList &rErrorList, USHORT &rTokeStartPos );
public:
SimpleParser();
- void Parse( ByteString PaSource );
+ void Parse( String PaSource );
TokenInfo GetNextToken( ParserMessageList &rErrorList );
- ByteString GetTokenText();
- static ByteString GetLexem( TokenInfo const &aToken );
- USHORT GetScanningPosition(){ return nPos; }
+ static String GetLexem( TokenInfo const &aToken );
TokenList GetTokenList(){ return aTokenList; }
};
@@ -272,7 +281,7 @@ class TokenParser
{
BOOL match( const TokenInfo &aCurrentToken, const TokenId &aExpectedToken );
BOOL match( const TokenInfo &aCurrentToken, const TokenInfo &aExpectedToken );
- void ParseError( USHORT nErrNr, const ByteString &aErrMsg );
+ void ParseError( USHORT nErrNr, ByteString aErrMsg, const TokenInfo &rTag );
void Paragraph();
void PfCase();
void PfCaseBegin();
@@ -282,7 +291,6 @@ class TokenParser
void SimpleTag();
void TagPair();
void TagRef();
- void Error( const ByteString &aMsg );
SimpleParser aParser;
TokenInfo aTag;
@@ -297,7 +305,7 @@ class TokenParser
public:
TokenParser();
- void Parse( const ByteString &aCode );
+ void Parse( const String &aCode );
ParserMessageList& GetErrors(){ return aErrorList; }
BOOL HasErrors(){ return ( aErrorList.Count() > 0 ); }
TokenList GetTokenList(){ return aParser.GetTokenList(); }
@@ -309,12 +317,11 @@ private:
TokenParser aReferenceParser;
TokenParser aTesteeParser;
ParserMessageList aCompareWarningList;
- void CheckMandatoryTag( TokenList aReference, TokenList aTestee, ParserMessageList &rErrorList, TokenInfo aToken );
void CheckTags( TokenList aReference, TokenList aTestee, ParserMessageList &rErrorList );
BOOL IsTagMandatory( TokenInfo const &aToken, TokenId &aMetaTokens );
public:
- BOOL ReferenceOK( const ByteString &aReference );
- BOOL TesteeOK( const ByteString &aTestee, BOOL bHasSourceLine );
+ BOOL ReferenceOK( const String &aReference );
+ BOOL TesteeOK( const String &aTestee, BOOL bHasSourceLine );
ParserMessageList& GetReferenceErrors(){ return aReferenceParser.GetErrors(); }
BOOL HasReferenceErrors(){ return aReferenceParser.HasErrors(); }