RequirementParser.hpp
1 #ifndef INC_RequirementParser_hpp_ 2 #define INC_RequirementParser_hpp_ 3 4 #include <antlr/config.hpp> 5 /* $ANTLR 2.7.7 (20121221): "requirements.grammar" -> "RequirementParser.hpp"$ */ 6 #include <antlr/TokenStream.hpp> 7 #include <antlr/TokenBuffer.hpp> 8 #include "RequirementParserTokenTypes.hpp" 9 #include <antlr/LLkParser.hpp> 10 11 12 #include "requirement.h" 13 using namespace CodeSigning; 14 typedef Requirement::Maker Maker; 15 16 ANTLR_BEGIN_NAMESPACE(Security_CodeSigning) 17 class CUSTOM_API RequirementParser : public antlr::LLkParser, public RequirementParserTokenTypes 18 { 19 20 public: 21 std::string errors; 22 void reportError(const antlr::RecognitionException &ex); 23 void reportError(const std::string &s); 24 25 private: 26 static string hexString(const string &s); 27 static void hashString(const string &s, SHA1::Digest hash); 28 void certMatchOperation(Maker &maker, int32_t slot, string key); 29 public: 30 void initializeASTFactory( antlr::ASTFactory& factory ); 31 protected: 32 RequirementParser(antlr::TokenBuffer& tokenBuf, int k); 33 public: 34 RequirementParser(antlr::TokenBuffer& tokenBuf); 35 protected: 36 RequirementParser(antlr::TokenStream& lexer, int k); 37 public: 38 RequirementParser(antlr::TokenStream& lexer); 39 RequirementParser(const antlr::ParserSharedInputState& state); 40 int getNumTokens() const 41 { 42 return RequirementParser::NUM_TOKENS; 43 } 44 const char* getTokenName( int type ) const 45 { 46 if( type > getNumTokens() ) return 0; 47 return RequirementParser::tokenNames[type]; 48 } 49 const char* const* getTokenNames() const 50 { 51 return RequirementParser::tokenNames; 52 } 53 public: BlobCore * autosense(); 54 public: Requirement * requirement(); 55 public: Requirements * requirementSet(); 56 public: uint32_t requirementType(); 57 public: Requirement * requirementElement(); 58 public: int32_t integer(); 59 public: void expr( 60 Maker &maker 61 ); 62 public: void fluff(); 63 public: void term( 64 Maker &maker 65 ); 66 public: void primary( 67 Maker &maker 68 ); 69 public: void certspec( 70 Maker &maker 71 ); 72 public: void infospec( 73 Maker &maker 74 ); 75 public: void entitlementspec( 76 Maker &maker 77 ); 78 public: void eql(); 79 public: string identifierString(); 80 public: void hash( 81 SHA1::Digest digest 82 ); 83 public: void appleanchor( 84 Maker &maker 85 ); 86 public: int32_t certSlot(); 87 public: void certslotspec( 88 Maker &maker, int32_t slot 89 ); 90 public: void empty(); 91 public: void certificateDigest( 92 SHA1::Digest digest 93 ); 94 public: string bracketKey(); 95 public: void match_suffix( 96 Maker &maker 97 ); 98 public: string datavalue(); 99 public: int64_t timestamp(); 100 public: string stringvalue(); 101 public: string pathstring(); 102 public: 103 antlr::RefAST getAST() 104 { 105 return returnAST; 106 } 107 108 protected: 109 antlr::RefAST returnAST; 110 private: 111 static const char* tokenNames[]; 112 #ifndef NO_STATIC_CONSTS 113 static const int NUM_TOKENS = 62; 114 #else 115 enum { 116 NUM_TOKENS = 62 117 }; 118 #endif 119 120 static const unsigned long _tokenSet_0_data_[]; 121 static const antlr::BitSet _tokenSet_0; 122 static const unsigned long _tokenSet_1_data_[]; 123 static const antlr::BitSet _tokenSet_1; 124 static const unsigned long _tokenSet_2_data_[]; 125 static const antlr::BitSet _tokenSet_2; 126 static const unsigned long _tokenSet_3_data_[]; 127 static const antlr::BitSet _tokenSet_3; 128 static const unsigned long _tokenSet_4_data_[]; 129 static const antlr::BitSet _tokenSet_4; 130 static const unsigned long _tokenSet_5_data_[]; 131 static const antlr::BitSet _tokenSet_5; 132 static const unsigned long _tokenSet_6_data_[]; 133 static const antlr::BitSet _tokenSet_6; 134 static const unsigned long _tokenSet_7_data_[]; 135 static const antlr::BitSet _tokenSet_7; 136 static const unsigned long _tokenSet_8_data_[]; 137 static const antlr::BitSet _tokenSet_8; 138 static const unsigned long _tokenSet_9_data_[]; 139 static const antlr::BitSet _tokenSet_9; 140 static const unsigned long _tokenSet_10_data_[]; 141 static const antlr::BitSet _tokenSet_10; 142 static const unsigned long _tokenSet_11_data_[]; 143 static const antlr::BitSet _tokenSet_11; 144 static const unsigned long _tokenSet_12_data_[]; 145 static const antlr::BitSet _tokenSet_12; 146 static const unsigned long _tokenSet_13_data_[]; 147 static const antlr::BitSet _tokenSet_13; 148 static const unsigned long _tokenSet_14_data_[]; 149 static const antlr::BitSet _tokenSet_14; 150 static const unsigned long _tokenSet_15_data_[]; 151 static const antlr::BitSet _tokenSet_15; 152 static const unsigned long _tokenSet_16_data_[]; 153 static const antlr::BitSet _tokenSet_16; 154 static const unsigned long _tokenSet_17_data_[]; 155 static const antlr::BitSet _tokenSet_17; 156 static const unsigned long _tokenSet_18_data_[]; 157 static const antlr::BitSet _tokenSet_18; 158 }; 159 160 ANTLR_END_NAMESPACE 161 #endif /*INC_RequirementParser_hpp_*/