OSDN Git Service

Initial Commit
[qcad/qcad.git] / compiler / QCompilerCntl.h
1 //----------------------------------------------------------------------------\r
2 //  Compile intermediates into list of the calc units\r
3 //----------------------------------------------------------------------------\r
4 #ifndef QCOMPILERCNTL_H\r
5 #define QCOMPILERCNTL_H\r
6 \r
7 #include <iostream>\r
8 #include <vector>\r
9 #include "QCompiler.h"\r
10 #include "QParseInfo.h"\r
11 #include "QCalcUnit.h"\r
12 \r
13 class QCompilerCntl : public QCompiler {\r
14 protected:\r
15   int mNumOfQBits;\r
16 \r
17 public:\r
18   QCompilerCntl(void);\r
19   QCompilerCntl(std::istream &is);\r
20   virtual ~QCompilerCntl();\r
21   int GetNumberOfControl(void) {\r
22     return mQParseInfo.size();\r
23   }\r
24   QCalcUnit *AllocateControl(const unsigned int index);\r
25   void Clear(void) {\r
26     mQParseInfo.clear();\r
27   }\r
28   int GetNumberOfQBits(void) {\r
29     return mNumOfQBits;\r
30   }\r
31 \r
32 protected:\r
33   std::vector<QParseInfo> mQParseInfo;\r
34   virtual bool CompileOneLine(const QParseInfo &pinfo);\r
35   virtual void CatchError(const QParseInfo &pinfo, const int at);\r
36 };\r
37 \r
38 #endif //QCOMPILERCNTL_H\r