Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

/magnus/back_end/AProducts/include/HNNParser.h

Go to the documentation of this file.
00001 /*
00002  *   $Id: HNNParser.h,v 1.1 1997/03/18 22:50:31 bormotov Exp $
00003  */
00004 
00005 // Copyright (C) 1996 The New York Group Theory Cooperative
00006 // See magnus/doc/COPYRIGHT for the full notice.
00007 
00008 // Contents: Implementation of HNNExtensionParser class.
00009 //
00010 // Principal Author: Dmitry Pechkin
00011 //
00012 // Status: in progress
00013 //
00014 // Usage:
00015 //
00016 //
00017 // Special Notes:
00018 //
00019 // Revision History:
00020 //
00021 
00022 #ifndef _HNN_EXTENSION_PARSER_H_
00023 #define _HNN_EXTENSION_PARSER_H_
00024 
00025 #include "PresentationParser.h"
00026 #include "HNNExtOfFreeGroup.h"
00027 
00028 // The grammar for an HNN-extension of Free Group (see the Word grammar):
00029 //
00030 // <HNNExtOfFreeGroup> ::= '<' generator ',' <free group>
00031 //         ('|' | ';' | ':') (<word> '=' <word>)* '>'
00032 //
00033 
00034 //---------------------------------------------------------------------------//
00035 //------------------------ HNNExtensionParser -------------------------------//
00036 //---------------------------------------------------------------------------//
00037 
00038 class HNNExtensionParser : public PresentationParser {
00039 
00040 public:  
00041   HNNExtensionParser( istream& istr ) : PresentationParser(istr) { }
00042   // Initialize the parser with the istream from which to read.
00043   
00044   // Destructor supplied by compiler.
00045   
00046   HNNExtOfFreeGroupRep* parseHNNExtensionOfFreeGroup( Chars& );
00047   // Read a group presentation and return it as a new group rep object.
00048   
00049 protected:
00050   
00051   void parseHNNRelator( const VectorOf<Chars>& names, Word& left, Word& right, 
00052                         Chars& errMesg);
00053   
00054   VectorOf<Word> parseHNNRelatorsList( const VectorOf<Chars>& names,
00055                                        Chars& errMesg, int maxRelators );
00056 
00057   void parseBasisFreeGroupAndRelations( FreeGroup& F, Chars& stableGenName, 
00058                                         VectorOf<Word>& A, VectorOf<Word>& B, 
00059                                         int maxRelators, Chars& errMesg );
00060 
00061 
00062 
00063 };
00064 
00065 #endif
00066 
00067 

Generated at Tue Jun 19 09:49:34 2001 for Magnus Classes by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001