OSDN Git Service

Initial Commit
[qcad/qcad.git] / compiler / QParseInfo.h
1 //----------------------------------------------------------------------------\r
2 //  Parse information\r
3 //----------------------------------------------------------------------------\r
4 #ifndef QPARSEINFO_H\r
5 #define QPARSEINFO_H\r
6 \r
7 #include <iostream>\r
8 #include <string>\r
9 #include <vector>\r
10 \r
11 // ---------------------------------------------------------------------------\r
12 class QParseInfo {\r
13   friend std::ostream &operator<<(std::ostream &os, const QParseInfo &pinfo);\r
14 public:\r
15   static const int er_no_error           = 0;\r
16   static const int er_syntax_error       = 1;\r
17   static const int er_unknown_operation  = 2;\r
18   static const int er_lack_of_arguments  = 3;\r
19   static const int er_too_many_arguments = 4;\r
20   static const int er_invalid_arguments  = 5;\r
21 \r
22   QParseInfo(const QParseInfo &pinfo);\r
23   QParseInfo(const int _error);\r
24   QParseInfo(const int _operator,\r
25              const std::vector<int> &_targets,\r
26              const double _rotation = 0,\r
27              const bool _result = true,\r
28              const int _error = 0);\r
29 \r
30   ~QParseInfo() {}\r
31 \r
32   int                 getOperator(void) const {\r
33     return mOperator;\r
34   }\r
35   const std::vector<int> &getTargetIndices(void) const {\r
36     return mTargetIndices;\r
37   }\r
38   double                 getRotation(void) const {\r
39     return mRotation;\r
40   }\r
41   bool                getParseResult(void) const {\r
42     return mParseResult;\r
43   }\r
44   int                 getErrorNo(void) const {\r
45     return mErrorNo;\r
46   }\r
47 private:\r
48   int                 mOperator;\r
49   std::vector<int>    mTargetIndices;\r
50   double                 mRotation;\r
51   bool                mParseResult;\r
52   int                 mErrorNo;\r
53 };\r
54 \r
55 std::ostream &operator<<(std::ostream &os, const QParseInfo &pinfo);\r
56 \r
57 #endif //QPARSEINFO_H\r