KeysInMatrix.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00028 #ifndef KEYVALUE_PATTERN_KEYSINMATRIX_H_
00029 #define KEYVALUE_PATTERN_KEYSINMATRIX_H_
00030
00031 #include "keyvalue/extern/Vector.h"
00032 #include "keyvalue/pattern/Pattern.h"
00033
00034 namespace keyvalue {
00035 namespace pattern {
00036
00056 class KeysInMatrix : public Pattern {
00057
00058 public:
00059
00060 KeysInMatrix();
00061
00062 bool
00063 parse(frontend::Queue& queue);
00064
00065 std::pair<string, value::Value>
00066 pop();
00067
00068 bool
00069 isEmpty() const;
00070
00071 private:
00072
00073 size_t next_;
00074 vector<std::pair<string, value::Value> > data_;
00075
00087 bool
00088 check(const value::Matrix& matrix, bool transpose = false);
00089
00090 };
00091
00092 }
00093 }
00094
00095 #endif // KEYVALUE_PATTERN_KEYSINMATRIX_H_