From 1afd460373ee68d73b4e11ed2d98a35ab7851b17 Mon Sep 17 00:00:00 2001 From: Gregor Hartmann Date: Wed, 5 Dec 2001 10:12:31 +0000 Subject: new handling of meta tags --- transex3/inc/tagtest.hxx | 13 ++++++++++--- transex3/source/gsicheck.cxx | 6 +++--- transex3/source/tagtest.cxx | 22 ++++++++++++++++------ 3 files changed, 29 insertions(+), 12 deletions(-) diff --git a/transex3/inc/tagtest.hxx b/transex3/inc/tagtest.hxx index a46562fb2d5e..4b64931ccb21 100644 --- a/transex3/inc/tagtest.hxx +++ b/transex3/inc/tagtest.hxx @@ -2,9 +2,9 @@ * * $RCSfile: tagtest.hxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: nf $ $Date: 2001-06-26 12:56:08 $ + * last change: $Author: gh $ $Date: 2001-12-05 11:12:30 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -100,6 +100,8 @@ typedef USHORT Token; #define TAG_KEY ( TAG_GROUP_STRUCTURE << TAG_GROUPSHIFT | 0x040 ) #define TAG_INDEX ( TAG_GROUP_STRUCTURE << TAG_GROUPSHIFT | 0x080 ) +#define TAG_REFSTART ( TAG_GROUP_STRUCTURE << TAG_GROUPSHIFT | 0x100 ) + #define TAG_GROUP_SYSSWITCH 0x4 #define TAG_WIN ( TAG_GROUP_SYSSWITCH << TAG_GROUPSHIFT | 0x001 ) #define TAG_UNIX ( TAG_GROUP_SYSSWITCH << TAG_GROUPSHIFT | 0x002 ) @@ -130,7 +132,11 @@ typedef USHORT Token; #define TAG_PORTALSHORTNAME ( TAG_GROUP_META << TAG_GROUPSHIFT | 0x100 ) -#define TAG_GROUP_MULTI 0x7 +#define TAG_GROUP_SINGLE 0x7 +#define TAG_REFINSERT ( TAG_GROUP_SINGLE << TAG_GROUPSHIFT | 0x001 ) + + +#define TAG_GROUP_MULTI 0x8 #define TAG_END ( TAG_GROUP_MULTI << TAG_GROUPSHIFT | 0x100 ) #define TAG_ELSE ( TAG_GROUP_MULTI << TAG_GROUPSHIFT | 0x200 ) #define TAG_AEND ( TAG_GROUP_MULTI << TAG_GROUPSHIFT | 0x400 ) @@ -199,6 +205,7 @@ private: USHORT nPos; ByteString aSource; ByteString aLastToken; + static ByteString aLastUnknownToken; TokenList aTokenList; ByteString GetNextTokenString(); diff --git a/transex3/source/gsicheck.cxx b/transex3/source/gsicheck.cxx index a99de6b2a122..92cf240ad765 100644 --- a/transex3/source/gsicheck.cxx +++ b/transex3/source/gsicheck.cxx @@ -2,9 +2,9 @@ * * $RCSfile: gsicheck.cxx,v $ * - * $Revision: 1.4 $ + * $Revision: 1.5 $ * - * last change: $Author: gh $ $Date: 2001-11-28 13:03:52 $ + * last change: $Author: gh $ $Date: 2001-12-05 11:12:31 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -304,7 +304,7 @@ void Help() /*****************************************************************************/ { fprintf( stdout, "\n" ); - fprintf( stdout, "gsicheck Version 1.5.0 (c)1999 - 2001 by SUN Microsystems\n" ); + fprintf( stdout, "gsicheck Version 1.5.1 (c)1999 - 2001 by SUN Microsystems\n" ); fprintf( stdout, "================================================\n" ); fprintf( stdout, "\n" ); fprintf( stdout, "gsicheck checks the syntax of tags in GSI-Files (Gutschmitt-Interface)\n" ); diff --git a/transex3/source/tagtest.cxx b/transex3/source/tagtest.cxx index 686cb934cc8b..608cb1a78e3a 100644 --- a/transex3/source/tagtest.cxx +++ b/transex3/source/tagtest.cxx @@ -2,9 +2,9 @@ * * $RCSfile: tagtest.cxx,v $ * - * $Revision: 1.3 $ + * $Revision: 1.4 $ * - * last change: $Author: gh $ $Date: 2001-11-28 13:03:52 $ + * last change: $Author: gh $ $Date: 2001-12-05 11:12:31 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -739,38 +739,48 @@ void LingTest::CheckTags( TokenList aReference, TokenList aTestee, ParserMessage */ // filter uninteresting Tags + Token aMetaTokens = 0; i=0; while ( i < aReference.Count() ) { Token aToken = aReference.GetObject( i ); Token aTokenGroup = TAG_GROUP( aToken ); if ( TAG_GROUP_PROGSWITCH == aTokenGroup - || TAG_GROUP_META == aTokenGroup || TAG_REFINSERT == aToken || TAG_REFSTART == aToken || TAG_NAME == aToken || TAG_HREF == aToken || TAG_AVIS == aToken - || TAG_AHID == aToken ) + || TAG_AHID == aToken + || ( TAG_GROUP_META == aTokenGroup && (aMetaTokens & aToken) == aToken ) ) + { i++; + if ( TAG_GROUP_META == aTokenGroup ) + aMetaTokens |= aToken; + } else aReference.Remove( i ); } + aMetaTokens = 0; i=0; while ( i < aTestee.Count() ) { Token aToken = aTestee.GetObject( i ); Token aTokenGroup = TAG_GROUP( aToken ); if ( TAG_GROUP_PROGSWITCH == aTokenGroup - || TAG_GROUP_META == aTokenGroup || TAG_REFINSERT == aToken || TAG_REFSTART == aToken || TAG_NAME == aToken || TAG_HREF == aToken || TAG_AVIS == aToken - || TAG_AHID == aToken ) + || TAG_AHID == aToken + || ( TAG_GROUP_META == aTokenGroup && (aMetaTokens & aToken) == aToken ) ) + { i++; + if ( TAG_GROUP_META == aTokenGroup ) + aMetaTokens |= aToken; + } else aTestee.Remove( i ); } -- cgit