aboutsummaryrefslogtreecommitdiff
path: root/tool_src/QvLib/QvInput.h
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2026-08-24 11:16:07 +0200
committerFelix Morgner <felix.morgner@gmail.com>2026-08-24 11:16:07 +0200
commitc068f22329d5cc722622a2183bbb22eef2093df7 (patch)
tree12d56c1aede67988a55e241364606bfbb4dba933 /tool_src/QvLib/QvInput.h
downloadopenparsec-main.tar.xz
openparsec-main.zip
initial importHEADmain
Diffstat (limited to 'tool_src/QvLib/QvInput.h')
-rw-r--r--tool_src/QvLib/QvInput.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/tool_src/QvLib/QvInput.h b/tool_src/QvLib/QvInput.h
new file mode 100644
index 0000000..f458aed
--- /dev/null
+++ b/tool_src/QvLib/QvInput.h
@@ -0,0 +1,65 @@
+#ifndef _QV_INPUT_
+#define _QV_INPUT_
+
+#include <QvDict.h>
+#include <QvString.h>
+
+class QvNode;
+class QvDB;
+
+class QvInput {
+ public:
+
+ QvInput();
+ ~QvInput();
+
+ static float isASCIIHeader(const char *string);
+ void setFilePointer(FILE *newFP);
+ FILE * getCurFile() const { return fp; }
+ float getVersion();
+ QvBool get(char &c);
+ QvBool read(char &c);
+ QvBool read(QvString &s);
+ QvBool read(QvName &n, QvBool validIdent = FALSE);
+ QvBool read(int &i);
+ QvBool read(unsigned int &i);
+ QvBool read(short &s);
+ QvBool read(unsigned short &s);
+ QvBool read(long &l);
+ QvBool read(unsigned long &l);
+ QvBool read(float &f);
+ QvBool read(double &d);
+ QvBool eof() const;
+ void getLocationString(QvString &string) const;
+ void putBack(char c);
+ void putBack(const char *string);
+ void addReference(const QvName &name, QvNode *node);
+ QvNode * findReference(const QvName &name) const;
+
+ private:
+ FILE *fp; // File pointer
+ int lineNum; // Number of line currently reading
+ float version; // Version number of file
+ QvBool readHeader; // TRUE if header was checked for A/B
+ QvBool headerOk; // TRUE if header was read ok
+ QvDict refDict; // Node reference dictionary
+ QvString backBuf;
+ int backBufIndex;
+
+ QvBool checkHeader();
+
+ QvBool skipWhiteSpace();
+
+ QvBool readInteger(long &l);
+ QvBool readUnsignedInteger(unsigned long &l);
+ QvBool readReal(double &d);
+ QvBool readUnsignedIntegerString(char *str);
+ int readDigits(char *string);
+ int readHexDigits(char *string);
+ int readChar(char *string, char charToRead);
+
+friend class QvNode;
+friend class QvDB;
+};
+
+#endif /* _QV_INPUT_ */