Mac binaries
[jabaws.git] / website / archive / binaries / mac / src / clustalw / src / fileInput / FileParser.h
diff --git a/website/archive/binaries/mac/src/clustalw/src/fileInput/FileParser.h b/website/archive/binaries/mac/src/clustalw/src/fileInput/FileParser.h
new file mode 100644 (file)
index 0000000..0a59c1d
--- /dev/null
@@ -0,0 +1,63 @@
+/**
+ * Author: Mark Larkin
+ * 
+ * Copyright (c) 2007 Des Higgins, Julie Thompson and Toby Gibson.  
+ */
+/** The aim of this class is to return one sequence at a time.
+ * Note that the file must be open when it is passed to the FileParser.
+ * The parser does not know the name of the file to open. Only the filereader knows.
+ *
+ * Changes: 
+ *
+ * Mark 24-1-2007. I added the function findDelimiter to determine if '\r' or '\n' 
+ * will be used as the line delimiter when parsing the file.
+ *
+ * 10-02-07,Nigel Brown(EMBL): Removed delimiter and findDelimiter()
+ * members, as functionality now handled by the stream class.
+ */
+#ifndef FILEPARSER_H
+#define FILEPARSER_H
+
+#include <ctype.h>
+#include "../alignment/Sequence.h"
+#include "../general/userparams.h"
+#include <iostream>
+#include "InFileStream.h"
+
+namespace clustalw
+{
+class FileParser
+{
+    public:
+        /* Functions */
+        FileParser();
+        virtual ~FileParser();
+        virtual vector<Sequence> getSeqRange(int firstSeq, int num, string *offendingSeq) = 0;
+        virtual Sequence getSeq(int seqNum, string *offendingSeq=NULL) = 0;
+        virtual int countSeqs() = 0; // VIRTUAL 
+        virtual void getSecStructure(vector<char>& gapPenaltyMask, 
+                                     vector<char>& secStructMask,
+                                     string& secStructName, int &structPenalties, int length) = 0;
+        void fillCharTab(void);
+        char getDelimiter(string filename);
+        /* Attributes */
+        char chartab[128];
+        int getParseExitCode() { return parseExitCode; };
+        
+    protected:
+        void freeFileResources(InFileStream* filePtr);
+        InFileStream* _fileIn;
+        int parseExitCode; // reason for returning empty sequence
+                           // vector; same as used in FileReader
+
+    private:
+        /* Functions */
+
+        /* Attributes */
+
+};
+
+}
+#endif
+