Changeset 1038
- Timestamp:
- 01/30/17 16:33:03 (6 years ago)
- Location:
- XIOS/trunk/src
- Files:
-
- 2 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/parse_expr/filter_expr_node.cpp
r1001 r1038 2 2 #include "unary_arithmetic_filter.hpp" 3 3 #include "binary_arithmetic_filter.hpp" 4 #include "ternary_arithmetic_filter.hpp" 4 5 #include "field.hpp" 5 6 … … 129 130 return filter; 130 131 } 132 133 134 135 136 CFilterScalarScalarFieldOpExprNode::CFilterScalarScalarFieldOpExprNode(IScalarExprNode* child1, const std::string& opId, IScalarExprNode* child2, IFilterExprNode* child3) 137 : child1(child1) 138 , opId(opId) 139 , child2(child2) 140 , child3(child3) 141 { 142 if (!child1 || !child2 || !child3) 143 ERROR(" CFilterScalarScalarFieldOpExprNode::CFilterScalarScalarFieldOpExprNode(IScalarExprNode* child1, const std::string& opId, IScalarExprNode* child2, IFilterExprNode* child3)", 144 "Impossible to create the new expression node, an invalid child node was provided."); 145 } 146 147 boost::shared_ptr<COutputPin> CFilterScalarScalarFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 148 { 149 boost::shared_ptr<CScalarScalarFieldArithmeticFilter> filter(new CScalarScalarFieldArithmeticFilter(gc, opId, child1->reduce(),child2->reduce())); 150 child3->reduce(gc, thisField)->connectOutput(filter, 0); 151 return filter; 152 } 153 154 155 CFilterScalarFieldScalarOpExprNode::CFilterScalarFieldScalarOpExprNode(IScalarExprNode* child1, const std::string& opId, IFilterExprNode* child2, IScalarExprNode* child3) 156 : child1(child1) 157 , opId(opId) 158 , child2(child2) 159 , child3(child3) 160 { 161 if (!child1 || !child2 || !child3) 162 ERROR(" CFilterScalarFieldScalarOpExprNode::CFilterScalarFieldScalarOpExprNode(IScalarExprNode* child1, const std::string& opId, IFilterExprNode* child2, IScalarExprNode* child3)", 163 "Impossible to create the new expression node, an invalid child node was provided."); 164 } 165 166 boost::shared_ptr<COutputPin> CFilterScalarFieldScalarOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 167 { 168 boost::shared_ptr<CScalarFieldScalarArithmeticFilter> filter(new CScalarFieldScalarArithmeticFilter(gc, opId, child1->reduce(),child3->reduce())); 169 child2->reduce(gc, thisField)->connectOutput(filter, 0); 170 return filter; 171 } 172 173 174 CFilterScalarFieldFieldOpExprNode::CFilterScalarFieldFieldOpExprNode(IScalarExprNode* child1, const std::string& opId, IFilterExprNode* child2, IFilterExprNode* child3) 175 : child1(child1) 176 , opId(opId) 177 , child2(child2) 178 , child3(child3) 179 { 180 if (!child1 || !child2 || !child3) 181 ERROR(" CFilterScalarFieldFieldOpExprNode::CFilterScalarFieldFieldOpExprNode(IScalarExprNode* child1, const std::string& opId, IFilterExprNode* child2, IFilterExprNode* child3)", 182 "Impossible to create the new expression node, an invalid child node was provided."); 183 } 184 185 boost::shared_ptr<COutputPin> CFilterScalarFieldFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 186 { 187 boost::shared_ptr<CScalarFieldFieldArithmeticFilter> filter(new CScalarFieldFieldArithmeticFilter(gc, opId, child1->reduce())); 188 child2->reduce(gc, thisField)->connectOutput(filter, 0); 189 child3->reduce(gc, thisField)->connectOutput(filter, 1); 190 return filter; 191 } 192 193 194 195 CFilterFieldScalarScalarOpExprNode::CFilterFieldScalarScalarOpExprNode(IFilterExprNode* child1, const std::string& opId, IScalarExprNode* child2, IScalarExprNode* child3) 196 : child1(child1) 197 , opId(opId) 198 , child2(child2) 199 , child3(child3) 200 { 201 if (!child1 || !child2 || !child3) 202 ERROR(" CFilterFieldScalarScalarOpExprNode::CFilterFieldScalarScalarOpExprNode(IFilterExprNode* child1, const std::string& opId, IScalarExprNode* child2, IScalarExprNode* child3)", 203 "Impossible to create the new expression node, an invalid child node was provided."); 204 } 205 206 boost::shared_ptr<COutputPin> CFilterFieldScalarScalarOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 207 { 208 boost::shared_ptr<CFieldScalarScalarArithmeticFilter> filter(new CFieldScalarScalarArithmeticFilter(gc, opId, child2->reduce(),child3->reduce())); 209 child1->reduce(gc, thisField)->connectOutput(filter, 0); 210 return filter; 211 } 212 213 214 215 CFilterFieldScalarFieldOpExprNode::CFilterFieldScalarFieldOpExprNode(IFilterExprNode* child1, const std::string& opId, IScalarExprNode* child2, IFilterExprNode* child3) 216 : child1(child1) 217 , opId(opId) 218 , child2(child2) 219 , child3(child3) 220 { 221 if (!child1 || !child2 || !child3) 222 ERROR(" CFilterFieldScalarFieldOpExprNode::CFilterFieldScalarFieldOpExprNode(IFilterExprNode* child1, const std::string& opId, IScalarExprNode* child2, IFilterExprNode* child3)", 223 "Impossible to create the new expression node, an invalid child node was provided."); 224 } 225 226 boost::shared_ptr<COutputPin> CFilterFieldScalarFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 227 { 228 boost::shared_ptr<CFieldScalarFieldArithmeticFilter> filter(new CFieldScalarFieldArithmeticFilter(gc, opId, child2->reduce())); 229 child1->reduce(gc, thisField)->connectOutput(filter, 0); 230 child3->reduce(gc, thisField)->connectOutput(filter, 1); 231 return filter; 232 } 233 234 235 236 CFilterFieldFieldScalarOpExprNode::CFilterFieldFieldScalarOpExprNode(IFilterExprNode* child1, const std::string& opId, IFilterExprNode* child2, IScalarExprNode* child3) 237 : child1(child1) 238 , opId(opId) 239 , child2(child2) 240 , child3(child3) 241 { 242 if (!child1 || !child2 || !child3) 243 ERROR(" CFilterFieldFieldScalarOpExprNode::CFilterFieldFieldScalarOpExprNode(IFilterExprNode* child1, const std::string& opId, IFilterExprNode* child2, IScalarExprNode* child3)", 244 "Impossible to create the new expression node, an invalid child node was provided."); 245 } 246 247 boost::shared_ptr<COutputPin> CFilterFieldFieldScalarOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 248 { 249 boost::shared_ptr<CFieldFieldScalarArithmeticFilter> filter(new CFieldFieldScalarArithmeticFilter(gc, opId, child3->reduce())); 250 child1->reduce(gc, thisField)->connectOutput(filter, 0); 251 child2->reduce(gc, thisField)->connectOutput(filter, 1); 252 return filter; 253 } 254 255 256 CFilterFieldFieldFieldOpExprNode::CFilterFieldFieldFieldOpExprNode(IFilterExprNode* child1, const std::string& opId, IFilterExprNode* child2, IFilterExprNode* child3) 257 : child1(child1) 258 , opId(opId) 259 , child2(child2) 260 , child3(child3) 261 { 262 if (!child1 || !child2 || !child3) 263 ERROR(" CFilterFieldFieldFieldOpExprNode::CFilterFieldFieldFieldOpExprNode(IFilterExprNode* child1, const std::string& opId, IFilterExprNode* child2, IFilterExprNode* child3)", 264 "Impossible to create the new expression node, an invalid child node was provided."); 265 } 266 267 boost::shared_ptr<COutputPin> CFilterFieldFieldFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 268 { 269 boost::shared_ptr<CFieldFieldFieldArithmeticFilter> filter(new CFieldFieldFieldArithmeticFilter(gc, opId)); 270 child1->reduce(gc, thisField)->connectOutput(filter, 0); 271 child2->reduce(gc, thisField)->connectOutput(filter, 1); 272 child3->reduce(gc, thisField)->connectOutput(filter, 2); 273 return filter; 274 } 275 131 276 } -
XIOS/trunk/src/parse_expr/filter_expr_node.hpp
r643 r1038 169 169 boost::scoped_ptr<IFilterExprNode> child1, child2; //!< The field child nodes to which the operator is applied 170 170 }; 171 172 173 174 /*! 175 * Expression node corresponding to a ternary operation on a scalar-scalar-field. 176 */ 177 class CFilterScalarScalarFieldOpExprNode : public IFilterExprNode 178 { 179 public: 180 /*! 181 * Constructs an expression node corresponding to the specified ternary operation 182 * applied to the provided fields and scalars child nodes. 183 * Note that the child nodes will be destroyed automatically when the parent node 184 * is destroyed. 185 * 186 * \param child1 the scalar child node to which the operator is applied 187 * \param opId the identifier of the operator 188 * \param child2 the scalar child node to which the operator is applied 189 * \param child3 the field child node to which the operator is applied 190 */ 191 CFilterScalarScalarFieldOpExprNode(IScalarExprNode* child1, const std::string& opId, IScalarExprNode* child2, IFilterExprNode* child3); 192 193 virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 194 195 private: 196 std::string opId; //!< The identifier of the field 197 boost::scoped_ptr<IScalarExprNode> child1; //!< The scalar child node to which the operator is applied 198 boost::scoped_ptr<IScalarExprNode> child2; //!< The scalar child node to which the operator is applied 199 boost::scoped_ptr<IFilterExprNode> child3; //!< The field child node to which the operator is applied 200 }; 201 202 203 /*! 204 * Expression node corresponding to a ternary operation on a scalar-field-scalar. 205 */ 206 class CFilterScalarFieldScalarOpExprNode : public IFilterExprNode 207 { 208 public: 209 /*! 210 * Constructs an expression node corresponding to the specified ternary operation 211 * applied to the provided fields and scalars child nodes. 212 * Note that the child nodes will be destroyed automatically when the parent node 213 * is destroyed. 214 * 215 * \param child1 the scalar child node to which the operator is applied 216 * \param opId the identifier of the operator 217 * \param child2 the field child node to which the operator is applied 218 * \param child3 the scalar child node to which the operator is applied 219 */ 220 CFilterScalarFieldScalarOpExprNode(IScalarExprNode* child1, const std::string& opId, IFilterExprNode* child2, IScalarExprNode* child3); 221 222 virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 223 224 private: 225 std::string opId; //!< The identifier of the field 226 boost::scoped_ptr<IScalarExprNode> child1; //!< The scalar child node to which the operator is applied 227 boost::scoped_ptr<IFilterExprNode> child2; //!< The field child node to which the operator is applied 228 boost::scoped_ptr<IScalarExprNode> child3; //!< The scalar child node to which the operator is applied 229 }; 230 231 232 /*! 233 * Expression node corresponding to a ternary operation on a scalar-field-field. 234 */ 235 class CFilterScalarFieldFieldOpExprNode : public IFilterExprNode 236 { 237 public: 238 /*! 239 * Constructs an expression node corresponding to the specified ternary operation 240 * applied to the provided fields and scalars child nodes. 241 * Note that the child nodes will be destroyed automatically when the parent node 242 * is destroyed. 243 * 244 * \param child1 the scalar child node to which the operator is applied 245 * \param opId the identifier of the operator 246 * \param child2 the field child node to which the operator is applied 247 * \param child3 the field child node to which the operator is applied 248 */ 249 CFilterScalarFieldFieldOpExprNode(IScalarExprNode* child1, const std::string& opId, IFilterExprNode* child2, IFilterExprNode* child3); 250 251 virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 252 253 private: 254 std::string opId; //!< The identifier of the field 255 boost::scoped_ptr<IScalarExprNode> child1; //!< The scalar child node to which the operator is applied 256 boost::scoped_ptr<IFilterExprNode> child2; //!< The field child node to which the operator is applied 257 boost::scoped_ptr<IFilterExprNode> child3; //!< The field child node to which the operator is applied 258 }; 259 260 261 262 /*! 263 * Expression node corresponding to a ternary operation on a field-scalar-scalar. 264 */ 265 class CFilterFieldScalarScalarOpExprNode : public IFilterExprNode 266 { 267 public: 268 /*! 269 * Constructs an expression node corresponding to the specified ternary operation 270 * applied to the provided fields and scalars child nodes. 271 * Note that the child nodes will be destroyed automatically when the parent node 272 * is destroyed. 273 * 274 * \param child1 the field child node to which the operator is applied 275 * \param opId the identifier of the operator 276 * \param child2 the scalar child node to which the operator is applied 277 * \param child3 the scalar child node to which the operator is applied 278 */ 279 CFilterFieldScalarScalarOpExprNode(IFilterExprNode* child1, const std::string& opId, IScalarExprNode* child2, IScalarExprNode* child3); 280 281 virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 282 283 private: 284 std::string opId; //!< The identifier of the field 285 boost::scoped_ptr<IFilterExprNode> child1; //!< The field child node to which the operator is applied 286 boost::scoped_ptr<IScalarExprNode> child2; //!< The scalar child node to which the operator is applied 287 boost::scoped_ptr<IScalarExprNode> child3; //!< The scalar child node to which the operator is applied 288 }; 289 290 291 /*! 292 * Expression node corresponding to a ternary operation on a field-scalar-field. 293 */ 294 class CFilterFieldScalarFieldOpExprNode : public IFilterExprNode 295 { 296 public: 297 /*! 298 * Constructs an expression node corresponding to the specified ternary operation 299 * applied to the provided fields and scalars child nodes. 300 * Note that the child nodes will be destroyed automatically when the parent node 301 * is destroyed. 302 * 303 * \param child1 the field child node to which the operator is applied 304 * \param opId the identifier of the operator 305 * \param child2 the scalar child node to which the operator is applied 306 * \param child3 the field child node to which the operator is applied 307 */ 308 CFilterFieldScalarFieldOpExprNode(IFilterExprNode* child1, const std::string& opId, IScalarExprNode* child2, IFilterExprNode* child3); 309 310 virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 311 312 private: 313 std::string opId; //!< The identifier of the field 314 boost::scoped_ptr<IFilterExprNode> child1; //!< The field child node to which the operator is applied 315 boost::scoped_ptr<IScalarExprNode> child2; //!< The scalar child node to which the operator is applied 316 boost::scoped_ptr<IFilterExprNode> child3; //!< The field child node to which the operator is applied 317 }; 318 319 /*! 320 * Expression node corresponding to a ternary operation on a field-field-scalar. 321 */ 322 class CFilterFieldFieldScalarOpExprNode : public IFilterExprNode 323 { 324 public: 325 /*! 326 * Constructs an expression node corresponding to the specified ternary operation 327 * applied to the provided fields and scalars child nodes. 328 * Note that the child nodes will be destroyed automatically when the parent node 329 * is destroyed. 330 * 331 * \param child1 the field child node to which the operator is applied 332 * \param opId the identifier of the operator 333 * \param child2 the field child node to which the operator is applied 334 * \param child3 the scalar child node to which the operator is applied 335 */ 336 CFilterFieldFieldScalarOpExprNode(IFilterExprNode* child1, const std::string& opId, IFilterExprNode* child2, IScalarExprNode* child3); 337 338 virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 339 340 private: 341 std::string opId; //!< The identifier of the field 342 boost::scoped_ptr<IFilterExprNode> child1; //!< The field child node to which the operator is applied 343 boost::scoped_ptr<IFilterExprNode> child2; //!< The field child node to which the operator is applied 344 boost::scoped_ptr<IScalarExprNode> child3; //!< The scalar child node to which the operator is applied 345 }; 346 347 348 /*! 349 * Expression node corresponding to a ternary operation on a field-field-field. 350 */ 351 class CFilterFieldFieldFieldOpExprNode : public IFilterExprNode 352 { 353 public: 354 /*! 355 * Constructs an expression node corresponding to the specified ternary operation 356 * applied to the provided fields and scalars child nodes. 357 * Note that the child nodes will be destroyed automatically when the parent node 358 * is destroyed. 359 * 360 * \param child1 the field child node to which the operator is applied 361 * \param opId the identifier of the operator 362 * \param child2 the field child node to which the operator is applied 363 * \param child3 the field child node to which the operator is applied 364 */ 365 CFilterFieldFieldFieldOpExprNode(IFilterExprNode* child1, const std::string& opId, IFilterExprNode* child2, IFilterExprNode* child3); 366 367 virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 368 369 private: 370 std::string opId; //!< The identifier of the field 371 boost::scoped_ptr<IFilterExprNode> child1; //!< The field child node to which the operator is applied 372 boost::scoped_ptr<IFilterExprNode> child2; //!< The field child node to which the operator is applied 373 boost::scoped_ptr<IFilterExprNode> child3; //!< The field child node to which the operator is applied 374 }; 375 376 377 171 378 } 172 379 -
XIOS/trunk/src/parse_expr/generate_lex_yacc.sh
r501 r1038 1 bison - d yacc_parser.yacc -o yacc_parser.cpp1 bison --verbose -d yacc_parser.yacc -o yacc_parser.cpp 2 2 flex -o lex_parser.cpp -f lex_parser.lex -
XIOS/trunk/src/parse_expr/lex_parser.cpp
r1019 r1038 372 372 4, 4, 5, 4, 4, 4, 6, 4, 4, 4, 373 373 7, 8, 9, 10, 4, 11, 4, 12, 13, 13, 374 13, 13, 13, 13, 13, 13, 13, 13, 375 1 4, 15, 16, 4, 17, 18, 18, 18, 18, 18,376 377 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,378 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,379 18, 4, 4, 4, 19, 4, 4, 18, 18, 18,380 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,381 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,382 18, 18, 18, 4, 4, 4, 4, 4374 13, 13, 13, 13, 13, 13, 13, 13, 14, 4, 375 15, 16, 17, 18, 19, 20, 20, 20, 20, 20, 376 377 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 378 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 379 20, 4, 4, 4, 21, 4, 4, 20, 20, 20, 380 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 381 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 382 20, 20, 20, 4, 4, 4, 4, 4 383 383 }, 384 384 … … 390 390 391 391 7, 8, 9, 10, 4, 11, 4, 12, 13, 13, 392 13, 13, 13, 13, 13, 13, 13, 13, 393 1 4, 15, 16, 4, 17, 18, 18, 18, 18, 18,394 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,395 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,396 18, 4, 4, 4, 19, 4, 4, 18, 18, 18,397 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,398 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,399 18, 18, 18, 4, 4, 4, 4, 4392 13, 13, 13, 13, 13, 13, 13, 13, 14, 4, 393 15, 16, 17, 18, 19, 20, 20, 20, 20, 20, 394 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 395 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 396 20, 4, 4, 4, 21, 4, 4, 20, 20, 20, 397 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 398 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 399 20, 20, 20, 4, 4, 4, 4, 4 400 400 }, 401 401 … … 436 436 437 437 { 438 3, -5, -5, -5, -5, -5, -5, -5, -5, 2 1,438 3, -5, -5, -5, -5, -5, -5, -5, -5, 23, 439 439 -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, 440 440 -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, 441 -5, -5, 2 1, -5, -5, -5, -5, -5, -5, -5,441 -5, -5, 23, -5, -5, -5, -5, -5, -5, -5, 442 442 -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, 443 443 … … 460 460 -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, 461 461 -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, 462 -6, -6, -6, -6, -6, 2 2, 22, 22, 22, 22,463 2 2, 22, 22, 22, 22, 22, 22, 22, 22, 22,464 2 2, 22, 22, 22, 22, 22, 22, 22, 22, 22,465 2 2, -6, -6, -6, -6, -6, -6, 22, 22, 22,466 2 2, 22, 22, 22, 22, 22, 22, 22, 22, 22,467 2 2, 22, 22, 22, 22, 22, 22, 22, 22, 22,468 469 2 2, 22, 22, -6, -6, -6, -6, -6462 -6, -6, -6, -6, -6, 24, 24, 24, 24, 24, 463 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 464 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 465 24, -6, -6, -6, -6, -6, -6, 24, 24, 24, 466 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 467 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 468 469 24, 24, 24, -6, -6, -6, -6, -6 470 470 }, 471 471 … … 564 564 -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, 565 565 -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, 566 -12, 2 3, -12, -12, -12, -12, -12, -12, -12, -12,566 -12, 25, -12, -12, -12, -12, -12, -12, -12, -12, 567 567 -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, 568 568 -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, … … 579 579 -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 580 580 -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 581 -13, -13, -13, -13, -13, -13, 2 4, -13, 25, 25,582 2 5, 25, 25, 25, 25, 25, 25, 25, -13, -13,583 -13, -13, -13, -13, -13, -13, -13, -13, -13, 2 6,581 -13, -13, -13, -13, -13, -13, 26, -13, 27, 27, 582 27, 27, 27, 27, 27, 27, 27, 27, -13, -13, 583 -13, -13, -13, -13, -13, -13, -13, -13, -13, 28, 584 584 -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 585 585 -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 586 586 -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 587 -13, 2 6, -13, -13, -13, -13, -13, -13, -13, -13,587 -13, 28, -13, -13, -13, -13, -13, -13, -13, -13, 588 588 589 589 -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, … … 598 598 -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, 599 599 -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, 600 -14, 27, -14, -14, -14, -14, -14, -14, -14, -14,600 -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, 601 601 -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, 602 602 … … 616 616 617 617 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, 618 -15, 2 8, -15, -15, -15, -15, -15, -15, -15, -15,618 -15, 29, -15, -15, -15, -15, -15, -15, -15, -15, 619 619 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, 620 620 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, … … 633 633 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, 634 634 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, 635 -16, 29, -16, -16, -16, -16, -16, -16, -16, -16,635 -16, 30, -16, -16, -16, -16, -16, -16, -16, -16, 636 636 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, 637 637 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, … … 650 650 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, 651 651 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, 652 -17, -17, -17, -17, -17, 30, 30, 30, 30, 30,653 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,654 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,655 656 30, -17, -17, -17, -17, -17, -17, 30, 30, 30,657 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,658 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,659 30, 30, 30, -17, -17, -17, -17, -17652 -17, 31, -17, -17, -17, -17, -17, -17, -17, -17, 653 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, 654 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, 655 656 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, 657 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, 658 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, 659 -17, -17, -17, -17, -17, -17, -17, -17 660 660 }, 661 661 … … 665 665 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 666 666 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 667 -18, -18, -18, -18, -18, -18, -18, -18, 31, 31,668 31, 31, 31, 31, 31, 31, 31, 31, -18, -18,669 670 -18, -18, -18, -18, -18, 31, 31, 31, 31, 31,671 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,672 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,673 31, -18, -18, -18, -18, 31, -18, 31, 31, 31,674 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,675 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,676 31, 31, 31, -18, -18, -18, -18, -18667 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 668 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 669 670 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 671 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 672 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 673 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 674 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 675 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 676 -18, -18, -18, -18, -18, -18, -18, -18 677 677 }, 678 678 … … 685 685 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, 686 686 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, 687 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,688 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,689 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,690 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,691 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,692 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,693 -19, -19, -19, -19, -19, -19, -19, -19687 -19, -19, -19, -19, -19, 32, 32, 32, 32, 32, 688 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 689 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 690 32, -19, -19, -19, -19, -19, -19, 32, 32, 32, 691 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 692 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 693 32, 32, 32, -19, -19, -19, -19, -19 694 694 695 695 }, … … 700 700 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, 701 701 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, 702 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,703 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,704 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,705 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,706 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,707 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,708 709 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,710 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,711 -20, -20, -20, -20, -20, -20, -20, -20712 }, 713 714 { 715 3, -21, -21, -21, -21, -21, -21, -21, -21, 702 -20, -20, -20, -20, -20, -20, -20, -20, 33, 33, 703 33, 33, 33, 33, 33, 33, 33, 33, -20, -20, 704 -20, -20, -20, -20, -20, 33, 33, 33, 33, 33, 705 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 706 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 707 33, -20, -20, -20, -20, 33, -20, 33, 33, 33, 708 709 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 710 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 711 33, 33, 33, -20, -20, -20, -20, -20 712 }, 713 714 { 715 3, -21, -21, -21, -21, -21, -21, -21, -21, -21, 716 716 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, 717 717 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, 718 -21, -21, 718 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, 719 719 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, 720 720 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, … … 735 735 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, 736 736 737 -22, -22, -22, -22, -22, -22, -22, -22, 32, 32, 738 32, 32, 32, 32, 32, 32, 32, 32, -22, -22, 739 -22, -22, -22, -22, -22, 32, 32, 32, 32, 32, 740 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 741 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 742 32, -22, -22, -22, -22, 32, -22, 32, 32, 32, 743 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 744 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 745 32, 32, 32, -22, -22, -22, -22, -22 746 }, 747 748 { 749 3, -23, -23, -23, -23, -23, -23, -23, -23, -23, 750 737 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, 738 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, 739 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, 740 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, 741 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, 742 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, 743 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, 744 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, 745 -22, -22, -22, -22, -22, -22, -22, -22 746 }, 747 748 { 749 3, -23, -23, -23, -23, -23, -23, -23, -23, 23, 750 751 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, 752 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, 753 -23, -23, 23, -23, -23, -23, -23, -23, -23, -23, 751 754 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, 752 755 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, … … 756 759 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, 757 760 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, 758 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,759 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,760 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,761 761 762 762 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, … … 769 769 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, 770 770 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, 771 -24, -24, -24, -24, -24, -24, -24, -24, 3 3, 33,772 3 3, 33, 33, 33, 33, 33, 33, 33, -24, -24,773 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,774 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,775 776 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,777 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,778 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,779 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,780 -24, -24, -24, -24, -24, -24, -24, -24771 -24, -24, -24, -24, -24, -24, -24, -24, 34, 34, 772 34, 34, 34, 34, 34, 34, 34, 34, -24, -24, 773 -24, -24, -24, -24, -24, 34, 34, 34, 34, 34, 774 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 775 776 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 777 34, -24, -24, -24, -24, 34, -24, 34, 34, 34, 778 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 779 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 780 34, 34, 34, -24, -24, -24, -24, -24 781 781 }, 782 782 … … 786 786 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 787 787 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 788 -25, -25, -25, -25, -25, -25, 24, -25, 25, 25, 789 790 25, 25, 25, 25, 25, 25, 25, 25, -25, -25, 791 -25, -25, -25, -25, -25, -25, -25, -25, -25, 26, 788 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 789 792 790 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 793 791 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 794 792 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 795 -25, 26, -25, -25, -25, -25, -25, -25, -25, -25, 793 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 794 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 795 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 796 796 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 797 797 -25, -25, -25, -25, -25, -25, -25, -25 … … 804 804 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, 805 805 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, 806 -26, -26, -26, 34, -26, 34, -26, -26, 35, 35,806 -26, -26, -26, -26, -26, -26, -26, -26, 35, 35, 807 807 35, 35, 35, 35, 35, 35, 35, 35, -26, -26, 808 808 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, … … 821 821 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, 822 822 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, 823 -27, -27, -27, -27, -27, -27, 26, -27, 27, 27, 824 27, 27, 27, 27, 27, 27, 27, 27, -27, -27, 825 -27, -27, -27, -27, -27, -27, -27, -27, -27, 28, 823 826 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, 824 827 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, 828 825 829 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, 826 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, 827 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, 828 829 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, 830 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, 830 -27, 28, -27, -27, -27, -27, -27, -27, -27, -27, 831 831 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, 832 832 -27, -27, -27, -27, -27, -27, -27, -27 … … 838 838 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, 839 839 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, 840 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,841 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,840 -28, -28, -28, 36, -28, 36, -28, -28, 37, 37, 841 37, 37, 37, 37, 37, 37, 37, 37, -28, -28, 842 842 843 843 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, … … 873 873 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, 874 874 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, 875 -30, -30, -30, -30, -30, -30, -30, -30, 36, 36,876 36, 36, 36, 36, 36, 36, 36, 36, -30, -30,877 -30, -30, -30, -30, -30, 36, 36, 36, 36, 36,878 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,879 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,880 36, -30, -30, -30, -30, 36, -30, 36, 36, 36,881 882 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,883 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,884 36, 36, 36, -30, -30, -30, -30, -30875 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, 876 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, 877 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, 878 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, 879 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, 880 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, 881 882 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, 883 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, 884 -30, -30, -30, -30, -30, -30, -30, -30 885 885 }, 886 886 … … 890 890 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, 891 891 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, 892 -31, -31, -31, -31, -31, -31, -31, -31, 31,31,893 31, 31, 31, 31, 31, 31, 31,31, -31, -31,894 -31, -31, -31, -31, -31, 31, 31, 31, 31,31,895 896 31, 31, 31, 31, 31, 31, 31, 31, 31,31,897 31, 31, 31, 31, 31, 31, 31, 31, 31,31,898 31, -31, -31, -31, -31, 31, -31, 31, 31,31,899 31, 31, 31, 31, 31, 31, 31, 31, 31,31,900 31, 31, 31, 31, 31, 31, 31, 31, 31,31,901 31, 31,31, -31, -31, -31, -31, -31892 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, 893 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, 894 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, 895 896 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, 897 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, 898 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, 899 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, 900 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, 901 -31, -31, -31, -31, -31, -31, -31, -31 902 902 }, 903 903 … … 908 908 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, 909 909 910 -32, -32, -32, -32, -32, -32, -32, -32, 3 2, 32,911 3 2, 32, 32, 32, 32, 32, 32, 32, -32, -32,912 -32, -32, -32, -32, -32, 3 2, 32, 32, 32, 32,913 3 2, 32, 32, 32, 32, 32, 32, 32, 32, 32,914 3 2, 32, 32, 32, 32, 32, 32, 32, 32, 32,915 3 2, -32, -32, -32, -32, 32, -32, 32, 32, 32,916 3 2, 32, 32, 32, 32, 32, 32, 32, 32, 32,917 3 2, 32, 32, 32, 32, 32, 32, 32, 32, 32,918 3 2, 32, 32, -32, -32, -32, -32, -32910 -32, -32, -32, -32, -32, -32, -32, -32, 38, 38, 911 38, 38, 38, 38, 38, 38, 38, 38, -32, -32, 912 -32, -32, -32, -32, -32, 38, 38, 38, 38, 38, 913 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 914 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 915 38, -32, -32, -32, -32, 38, -32, 38, 38, 38, 916 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 917 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 918 38, 38, 38, -32, -32, -32, -32, -32 919 919 }, 920 920 … … 927 927 -33, -33, -33, -33, -33, -33, -33, -33, 33, 33, 928 928 33, 33, 33, 33, 33, 33, 33, 33, -33, -33, 929 -33, -33, -33, -33, -33, -33, -33, -33, -33, 26,930 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,931 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,932 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,933 -33, 26, -33, -33, -33, -33, -33, -33, -33, -33,934 935 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,936 -33, -33, -33, -33, -33, -33, -33, -33929 -33, -33, -33, -33, -33, 33, 33, 33, 33, 33, 930 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 931 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 932 33, -33, -33, -33, -33, 33, -33, 33, 33, 33, 933 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 934 935 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 936 33, 33, 33, -33, -33, -33, -33, -33 937 937 }, 938 938 … … 942 942 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, 943 943 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, 944 -34, -34, -34, -34, -34, -34, -34, -34, 3 5, 35,945 3 5, 35, 35, 35, 35, 35, 35, 35, -34, -34,946 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,947 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,948 949 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,950 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,951 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,952 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,953 -34, -34, -34, -34, -34, -34, -34, -34944 -34, -34, -34, -34, -34, -34, -34, -34, 34, 34, 945 34, 34, 34, 34, 34, 34, 34, 34, -34, -34, 946 -34, -34, -34, -34, -34, 34, 34, 34, 34, 34, 947 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 948 949 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 950 34, -34, -34, -34, -34, 34, -34, 34, 34, 34, 951 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 952 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 953 34, 34, 34, -34, -34, -34, -34, -34 954 954 }, 955 955 … … 962 962 963 963 35, 35, 35, 35, 35, 35, 35, 35, -35, -35, 964 -35, -35, -35, -35, -35, -35, -35, -35, -35, 28, 964 965 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 965 966 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 966 967 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 967 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 968 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 968 -35, 28, -35, -35, -35, -35, -35, -35, -35, -35, 969 969 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 970 970 -35, -35, -35, -35, -35, -35, -35, -35 … … 977 977 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, 978 978 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, 979 -36, -36, -36, -36, -36, -36, -36, -36, 36, 36, 980 36, 36, 36, 36, 36, 36, 36, 36, -36, -36, 981 -36, -36, -36, -36, -36, 36, 36, 36, 36, 36, 982 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 983 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 984 36, -36, -36, -36, -36, 36, -36, 36, 36, 36, 985 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 986 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 987 988 36, 36, 36, -36, -36, -36, -36, -36 979 -36, -36, -36, -36, -36, -36, -36, -36, 37, 37, 980 37, 37, 37, 37, 37, 37, 37, 37, -36, -36, 981 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, 982 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, 983 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, 984 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, 985 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, 986 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, 987 988 -36, -36, -36, -36, -36, -36, -36, -36 989 }, 990 991 { 992 3, -37, -37, -37, -37, -37, -37, -37, -37, -37, 993 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, 994 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, 995 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, 996 -37, -37, -37, -37, -37, -37, -37, -37, 37, 37, 997 37, 37, 37, 37, 37, 37, 37, 37, -37, -37, 998 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, 999 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, 1000 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, 1001 1002 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, 1003 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, 1004 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, 1005 -37, -37, -37, -37, -37, -37, -37, -37 1006 }, 1007 1008 { 1009 3, -38, -38, -38, -38, -38, -38, -38, -38, -38, 1010 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, 1011 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, 1012 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, 1013 -38, -38, -38, -38, -38, -38, -38, -38, 38, 38, 1014 38, 38, 38, 38, 38, 38, 38, 38, -38, -38, 1015 1016 -38, -38, -38, -38, -38, 38, 38, 38, 38, 38, 1017 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 1018 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 1019 38, -38, -38, -38, -38, 38, -38, 38, 38, 38, 1020 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 1021 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 1022 38, 38, 38, -38, -38, -38, -38, -38 989 1023 }, 990 1024 … … 1006 1040 (yy_c_buf_p) = yy_cp; 1007 1041 1008 #define YY_NUM_RULES 2 01009 #define YY_END_OF_BUFFER 2 11042 #define YY_NUM_RULES 22 1043 #define YY_END_OF_BUFFER 23 1010 1044 /* This struct is not used in this scanner, 1011 1045 but its presence is necessary. */ … … 1015 1049 flex_int32_t yy_nxt; 1016 1050 }; 1017 static yyconst flex_int16_t yy_accept[3 7] =1051 static yyconst flex_int16_t yy_accept[39] = 1018 1052 { 0, 1019 0, 0, 2 1, 20, 1, 20, 17, 18, 8, 6,1020 7, 9, 2, 1 2, 20, 13, 20, 5, 10, 19,1021 1, 4, 16, 0, 2, 0, 14, 11, 15, 3,1022 5, 4, 2, 0, 2, 31053 0, 0, 23, 22, 1, 22, 19, 20, 8, 6, 1054 7, 9, 2, 18, 12, 22, 13, 17, 22, 5, 1055 10, 21, 1, 4, 16, 0, 2, 0, 14, 11, 1056 15, 3, 5, 4, 2, 0, 2, 3 1023 1057 } ; 1024 1058 … … 1026 1060 static char *yy_last_accepting_cpos; 1027 1061 1028 static yyconst yy_state_type yy_NUL_trans[3 7] =1062 static yyconst yy_state_type yy_NUL_trans[39] = 1029 1063 { 0, 1030 2 0, 20, 0, 0, 0, 0, 0, 0, 0, 0,1064 22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 1031 1065 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1032 1066 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1033 0, 0, 0, 0, 0, 0 1067 0, 0, 0, 0, 0, 0, 0, 0 1034 1068 } ; 1035 1069 … … 1061 1095 #include "yacc_parser.hpp" 1062 1096 1063 #line 10 64"lex_parser.cpp"1097 #line 1098 "lex_parser.cpp" 1064 1098 1065 1099 #define INITIAL 0 … … 1230 1264 1231 1265 1232 #line 12 33"lex_parser.cpp"1266 #line 1267 "lex_parser.cpp" 1233 1267 1234 1268 if ( !(yy_init) ) … … 1395 1429 case 17: 1396 1430 YY_RULE_SETUP 1397 #line 6 9"lex_parser.lex"1398 return LEFT_PARENTHESIS;1431 #line 68 "lex_parser.lex" 1432 return QUESTION_MARK; 1399 1433 YY_BREAK 1400 1434 case 18: 1401 1435 YY_RULE_SETUP 1402 #line 70"lex_parser.lex"1403 return RIGHT_PARENTHESIS;1436 #line 69 "lex_parser.lex" 1437 return COLON; 1404 1438 YY_BREAK 1405 1439 case 19: 1406 1440 YY_RULE_SETUP 1407 #line 7 2"lex_parser.lex"1408 return END;1441 #line 70 "lex_parser.lex" 1442 return LEFT_PARENTHESIS; 1409 1443 YY_BREAK 1410 1444 case 20: 1411 1445 YY_RULE_SETUP 1446 #line 71 "lex_parser.lex" 1447 return RIGHT_PARENTHESIS; 1448 YY_BREAK 1449 case 21: 1450 YY_RULE_SETUP 1412 1451 #line 73 "lex_parser.lex" 1452 return END; 1453 YY_BREAK 1454 case 22: 1455 YY_RULE_SETUP 1456 #line 74 "lex_parser.lex" 1413 1457 ECHO; 1414 1458 YY_BREAK 1415 #line 14 16"lex_parser.cpp"1459 #line 1460 "lex_parser.cpp" 1416 1460 case YY_STATE_EOF(INITIAL): 1417 1461 yyterminate(); … … 2172 2216 char *buf; 2173 2217 yy_size_t n; 2174 yy_size_t i;2218 int i; 2175 2219 2176 2220 /* Get memory for full buffer, including space for trailing EOB's. */ … … 2402 2446 #define YYTABLES_NAME "yytables" 2403 2447 2404 #line 7 3"lex_parser.lex"2448 #line 74 "lex_parser.lex" -
XIOS/trunk/src/parse_expr/lex_parser.lex
r1019 r1038 66 66 ">=" return GE; 67 67 "/=" return NE; 68 68 "?" return QUESTION_MARK; 69 ":" return COLON; 69 70 "(" return LEFT_PARENTHESIS; 70 71 ")" return RIGHT_PARENTHESIS; -
XIOS/trunk/src/parse_expr/operator_expr.hpp
r1019 r1038 17 17 typedef double (*functionScalar)(double); 18 18 typedef double (*functionScalarScalar)(double, double); 19 typedef double (*functionScalarScalarScalar)(double, double,double); 19 20 typedef CArray<double,1> (*functionField)(const CArray<double,1>&); 20 21 typedef CArray<double,1> (*functionFieldField)(const CArray<double,1>&, const CArray<double,1>&); 21 22 typedef CArray<double,1> (*functionFieldScalar)(const CArray<double,1>&, double); 22 23 typedef CArray<double,1> (*functionScalarField)(double, const CArray<double,1>&); 23 24 typedef CArray<double,1> (*functionScalarScalarField)(double, double, const CArray<double,1>&); 25 typedef CArray<double,1> (*functionScalarFieldScalar)(double, const CArray<double,1>&, double); 26 typedef CArray<double,1> (*functionScalarFieldField)(double, const CArray<double,1>&, const CArray<double,1>&); 27 typedef CArray<double,1> (*functionFieldScalarScalar)(const CArray<double,1>&, double, double); 28 typedef CArray<double,1> (*functionFieldScalarField)(const CArray<double,1>&, double, const CArray<double,1>&); 29 typedef CArray<double,1> (*functionFieldFieldScalar)(const CArray<double,1>&, const CArray<double,1>&, double); 30 typedef CArray<double,1> (*functionFieldFieldField)(const CArray<double,1>&, const CArray<double,1>&, const CArray<double,1>&); 31 24 32 COperatorExpr(void) 25 33 { … … 44 52 opScalarScalar[string("ge")] = ge_ss; 45 53 opScalarScalar[string("ne")] = ne_ss; 46 54 opScalarScalarScalar[string("cond")] = cond_sss; 55 47 56 opField[string("neg")] = neg_f; 48 57 opField[string("cos")] = cos_f; … … 88 97 opScalarField[string("ge")] = ge_sf; 89 98 opScalarField[string("ne")] = ne_sf; 99 100 opScalarScalarField[string("cond")] = cond_ssf; 101 opScalarFieldScalar[string("cond")] = cond_sfs; 102 opScalarFieldField[string("cond")] = cond_sff; 103 opFieldScalarScalar[string("cond")] = cond_fss; 104 opFieldScalarField[string("cond")] = cond_fsf; 105 opFieldFieldScalar[string("cond")] = cond_ffs; 106 opFieldFieldField[string("cond")] = cond_fff; 107 108 90 109 } 91 110 … … 106 125 } 107 126 127 functionScalarScalarScalar getOpScalarScalarScalar(const string& id) 128 { 129 map<string,double (*)(double,double,double)>::iterator it; 130 it = opScalarScalarScalar.find(id); 131 if (it == opScalarScalarScalar.end()) ERROR("functionScalarScalarScalar getOpScalarScalarScalar(const string& id)", << "unknown operator : " << id) 132 return it->second; 133 } 134 108 135 functionField getOpField(const string& id) 109 136 { … … 138 165 } 139 166 167 functionScalarScalarField getOpScalarScalarField(const string& id) 168 { 169 map<string,functionScalarScalarField>::iterator it; 170 it = opScalarScalarField.find(id); 171 if (it == opScalarScalarField.end()) ERROR("functionScalarScalarField getOpScalarScalarField(const string& id)", << "unknown operator : " << id) 172 return it->second; 173 } 174 175 functionScalarFieldScalar getOpScalarFieldScalar(const string& id) 176 { 177 map<string,functionScalarFieldScalar>::iterator it; 178 it = opScalarFieldScalar.find(id); 179 if (it == opScalarFieldScalar.end()) ERROR("functionScalarFieldScalar getOpScalarScalarField(const string& id)", << "unknown operator : " << id) 180 return it->second; 181 } 182 183 functionScalarFieldField getOpScalarFieldField(const string& id) 184 { 185 map<string,functionScalarFieldField>::iterator it; 186 it = opScalarFieldField.find(id); 187 if (it == opScalarFieldField.end()) ERROR("functionScalarFieldField getOpScalarFieldField(const string& id)", << "unknown operator : " << id) 188 return it->second; 189 } 190 191 functionFieldScalarScalar getOpFieldScalarScalar(const string& id) 192 { 193 map<string,functionFieldScalarScalar>::iterator it; 194 it = opFieldScalarScalar.find(id); 195 if (it == opFieldScalarScalar.end()) ERROR("functionFieldScalarScalar getOpFieldScalarScalar(const string& id)", << "unknown operator : " << id) 196 return it->second; 197 } 198 199 functionFieldScalarField getOpFieldScalarField(const string& id) 200 { 201 map<string,functionFieldScalarField>::iterator it; 202 it = opFieldScalarField.find(id); 203 if (it == opFieldScalarField.end()) ERROR("functionFieldScalarField getOpFieldScalarField(const string& id)", << "unknown operator : " << id) 204 return it->second; 205 } 206 207 functionFieldFieldScalar getOpFieldFieldScalar(const string& id) 208 { 209 map<string,functionFieldFieldScalar>::iterator it; 210 it = opFieldFieldScalar.find(id); 211 if (it == opFieldFieldScalar.end()) ERROR("functionFieldFieldScalar getOpFieldFieldScalar(const string& id)", << "unknown operator : " << id) 212 return it->second; 213 } 214 215 functionFieldFieldField getOpFieldFieldField(const string& id) 216 { 217 map<string,functionFieldFieldField>::iterator it; 218 it = opFieldFieldField.find(id); 219 if (it == opFieldFieldField.end()) ERROR("functionFieldFieldField getOpFieldFieldField(const string& id)", << "unknown operator : " << id) 220 return it->second; 221 } 222 223 140 224 map<string,functionScalar> opScalar; 141 225 map<string,functionScalarScalar> opScalarScalar; 226 map<string,functionScalarScalarScalar> opScalarScalarScalar; 142 227 map<string,functionField> opField; 143 228 map<string,functionFieldField> opFieldField; 144 229 map<string,functionFieldScalar> opFieldScalar; 145 230 map<string,functionScalarField> opScalarField; 231 map<string,functionScalarScalarField> opScalarScalarField; 232 map<string,functionScalarFieldScalar> opScalarFieldScalar; 233 map<string,functionScalarFieldField> opScalarFieldField; 234 map<string,functionFieldScalarScalar> opFieldScalarScalar; 235 map<string,functionFieldScalarField> opFieldScalarField; 236 map<string,functionFieldFieldScalar> opFieldFieldScalar; 237 map<string,functionFieldFieldField> opFieldFieldField; 238 239 146 240 147 241 static inline double neg_s(double x) { return -x; } … … 209 303 static inline CArray<double,1> ge_sf(double x, const CArray<double,1>& y) { return Array<double,1>(x >= y); } 210 304 static inline CArray<double,1> ne_sf(double x, const CArray<double,1>& y) { return Array<double,1>(x != y); } 305 306 307 static inline double cond_sss(double x, double y, double z) { return (x==0) ? z : y ; } 308 309 static inline CArray<double,1> cond_ssf(double x, double y, const CArray<double,1>& z) 310 { 311 CArray<double,1> ret(z.numElements()) ; 312 if (x==0) ret=z ; 313 else ret=y ; 314 return ret ; 315 } 316 317 static inline CArray<double,1> cond_sfs(double x, const CArray<double,1>& y, double z) 318 { 319 CArray<double,1> ret(y.numElements()) ; 320 if (x==0) ret=z ; 321 else ret=y ; 322 return ret ; 323 } 324 325 static inline CArray<double,1> cond_sff(double x, const CArray<double,1>& y, const CArray<double,1>& z) 326 { 327 CArray<double,1> ret(y.numElements()) ; 328 if (x==0) ret=z ; 329 else ret=y ; 330 return ret ; 331 } 332 333 static inline CArray<double,1> cond_fss(const CArray<double,1>& x, double y, double z) 334 { 335 CArray<double,1> ret(x.numElements()) ; 336 Array<double,1>::const_iterator itx=x.begin(),itxe=x.end(); 337 Array<double,1>::iterator itret=ret.begin() ; 338 339 for(;itx!=itxe;++itx,++itret) *itret=( (*itx==0)?z:y) ; 340 return ret ; 341 } 342 343 static inline CArray<double,1> cond_fsf(const CArray<double,1>& x, double y, const CArray<double,1>& z) 344 { 345 CArray<double,1> ret(x.numElements()) ; 346 Array<double,1>::const_iterator itx=x.begin(), itxe=x.end(), itz=z.begin(); 347 Array<double,1>::iterator itret=ret.begin() ; 348 for(;itx!=itxe;++itx,++itz,++itret) *itret=( (*itx==0)?*itz:y) ; 349 return ret ; 350 } 351 352 static inline CArray<double,1> cond_ffs(const CArray<double,1>& x, const CArray<double,1>& y, double z) 353 { 354 CArray<double,1> ret(x.numElements()) ; 355 Array<double,1>::const_iterator itx=x.begin(), itxe=x.end(), ity=y.begin() ; 356 Array<double,1>::iterator itret=ret.begin() ; 357 for(;itx!=itxe;++itx,++ity,++itret) *itret=( (*itx==0)?z:*ity) ; 358 return ret ; 359 } 360 361 static inline CArray<double,1> cond_fff(const CArray<double,1>& x, const CArray<double,1>& y, const CArray<double,1>& z) 362 { 363 CArray<double,1> ret(x.numElements()) ; 364 Array<double,1>::const_iterator itx=x.begin(), itxe=x.end(), ity=y.begin(), itz=z.begin() ; 365 Array<double,1>::iterator itret=ret.begin() ; 366 for(;itx!=itxe;++itx,++ity,++itz,++itret) *itret=( (*itx==0)?*itz:*ity) ; 367 return ret ; 368 } 369 211 370 }; 212 371 -
XIOS/trunk/src/parse_expr/scalar_expr_node.cpp
r1020 r1038 67 67 return op(child1->reduce(), child2->reduce()); 68 68 } 69 70 71 CScalarTernaryOpExprNode::CScalarTernaryOpExprNode(IScalarExprNode* child1, const std::string& opId, IScalarExprNode* child2, IScalarExprNode* child3) 72 : child1(child1) 73 , opId(opId) 74 , child2(child2) 75 , child3(child3) 76 { 77 if (!child1 || !child2 || !child3) 78 ERROR("CScalarTernaryOpExprNode::CScalarTernaryOpExprNode(IScalarExprNode* child1, const std::string& opId, IScalarExprNode* child2, IScalarExprNode* child3)", 79 "Impossible to create the new expression node, an invalid child node was provided."); 80 } 81 82 double CScalarTernaryOpExprNode::reduce() const 83 { 84 COperatorExpr::functionScalarScalarScalar op = operatorExpr.getOpScalarScalarScalar(opId); 85 return op(child1->reduce(), child2->reduce(), child3->reduce()); 86 } 69 87 } -
XIOS/trunk/src/parse_expr/scalar_expr_node.hpp
r642 r1038 107 107 boost::scoped_ptr<IScalarExprNode> child1, child2; //!< The scalar child nodes to which the operator is applied 108 108 }; 109 110 class CScalarTernaryOpExprNode : public IScalarExprNode 111 { 112 public: 113 /*! 114 * Constructs an expression node corresponding to the specified ternary operation 115 * applied to the provided scalar child nodes. 116 * Note that the child nodes will be destroyed automatically when the parent node 117 * is destroyed. 118 * 119 * \param opId the identifier of the operator 120 * \param child1, child2 , child3 the scalar child nodes to which the operator is applied 121 */ 122 CScalarTernaryOpExprNode(IScalarExprNode* child1, const std::string& opId, IScalarExprNode* child2, IScalarExprNode* child3); 123 124 double reduce() const; 125 126 private: 127 std::string opId; //!< The identifier of the field 128 boost::scoped_ptr<IScalarExprNode> child1, child2, child3; //!< The scalar child nodes to which the operator is applied 129 }; 109 130 } 110 131 -
XIOS/trunk/src/parse_expr/yacc_parser.cpp
r1019 r1038 1 /* A Bison parser, made by GNU Bison 2.7. */1 /* A Bison parser, made by GNU Bison 3.0.2. */ 2 2 3 3 /* Bison implementation for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2012Free Software Foundation, Inc.6 4 5 Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. 6 7 7 This program is free software: you can redistribute it and/or modify 8 8 it under the terms of the GNU General Public License as published by 9 9 the Free Software Foundation, either version 3 of the License, or 10 10 (at your option) any later version. 11 11 12 12 This program is distributed in the hope that it will be useful, 13 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 15 GNU General Public License for more details. 16 16 17 17 You should have received a copy of the GNU General Public License 18 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ … … 27 27 Bison output files to be licensed under the GNU General Public 28 28 License without this special exception. 29 29 30 30 This special exception was added by the Free Software Foundation in 31 31 version 2.2 of Bison. */ … … 45 45 46 46 /* Bison version. */ 47 #define YYBISON_VERSION " 2.7"47 #define YYBISON_VERSION "3.0.2" 48 48 49 49 /* Skeleton name. */ … … 63 63 64 64 /* Copy the first part of user declarations. */ 65 /* Line 371 of yacc.c */ 66 #line 1 "yacc_parser.yacc" 65 #line 1 "yacc_parser.yacc" /* yacc.c:339 */ 67 66 68 67 #include "filter_expr_node.hpp" … … 97 96 } 98 97 99 /* Line 371 of yacc.c */ 100 #line 101 "yacc_parser.cpp" 101 102 # ifndef YY_NULL 98 #line 99 "yacc_parser.cpp" /* yacc.c:339 */ 99 100 # ifndef YY_NULLPTR 103 101 # if defined __cplusplus && 201103L <= __cplusplus 104 # define YY_NULL nullptr102 # define YY_NULLPTR nullptr 105 103 # else 106 # define YY_NULL 0104 # define YY_NULLPTR 0 107 105 # endif 108 106 # endif … … 120 118 #ifndef YY_YY_YACC_PARSER_HPP_INCLUDED 121 119 # define YY_YY_YACC_PARSER_HPP_INCLUDED 122 /* Enabling traces. */120 /* Debug traces. */ 123 121 #ifndef YYDEBUG 124 122 # define YYDEBUG 0 … … 128 126 #endif 129 127 130 /* Token s. */128 /* Token type. */ 131 129 #ifndef YYTOKENTYPE 132 130 # define YYTOKENTYPE 133 /* Put the tokens into the symbol table, so that GDB and other debuggers 134 know about them. */ 135 enum yytokentype { 136 NUMBER = 258, 137 VAR = 259, 138 ID = 260, 139 AVERAGE = 261, 140 PLUS = 262, 141 MINUS = 263, 142 TIMES = 264, 143 DIVIDE = 265, 144 POWER = 266, 145 EQ = 267, 146 LT = 268, 147 GT = 269, 148 LE = 270, 149 GE = 271, 150 NE = 272, 151 LEFT_PARENTHESIS = 273, 152 RIGHT_PARENTHESIS = 274, 153 END = 275, 154 NEG = 276 155 }; 156 #endif 157 158 131 enum yytokentype 132 { 133 NUMBER = 258, 134 VAR = 259, 135 ID = 260, 136 AVERAGE = 261, 137 PLUS = 262, 138 MINUS = 263, 139 TIMES = 264, 140 DIVIDE = 265, 141 POWER = 266, 142 EQ = 267, 143 LT = 268, 144 GT = 269, 145 LE = 270, 146 GE = 271, 147 NE = 272, 148 LEFT_PARENTHESIS = 273, 149 RIGHT_PARENTHESIS = 274, 150 QUESTION_MARK = 275, 151 COLON = 276, 152 END = 277, 153 NEG = 278 154 }; 155 #endif 156 157 /* Value type. */ 159 158 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 160 typedef union YYSTYPE 161 { 162 /* Line 387 of yacc.c */ 163 #line 35 "yacc_parser.yacc" 159 typedef union YYSTYPE YYSTYPE; 160 union YYSTYPE 161 { 162 #line 35 "yacc_parser.yacc" /* yacc.c:355 */ 164 163 165 164 std::string* str; /* symbol table index */ … … 167 166 xios::IFilterExprNode* filterNode; 168 167 169 170 /* Line 387 of yacc.c */ 171 #line 172 "yacc_parser.cpp" 172 } YYSTYPE; 168 #line 169 "yacc_parser.cpp" /* yacc.c:355 */ 169 }; 173 170 # define YYSTYPE_IS_TRIVIAL 1 174 # define yystype YYSTYPE /* obsolescent; will be withdrawn */175 171 # define YYSTYPE_IS_DECLARED 1 176 172 #endif 177 173 174 178 175 extern YYSTYPE yylval; 179 176 180 #ifdef YYPARSE_PARAM181 #if defined __STDC__ || defined __cplusplus182 int yyparse (void *YYPARSE_PARAM);183 #else184 int yyparse ();185 #endif186 #else /* ! YYPARSE_PARAM */187 #if defined __STDC__ || defined __cplusplus188 177 int yyparse (void); 189 #else190 int yyparse ();191 #endif192 #endif /* ! YYPARSE_PARAM */193 178 194 179 #endif /* !YY_YY_YACC_PARSER_HPP_INCLUDED */ … … 196 181 /* Copy the second part of user declarations. */ 197 182 198 /* Line 390 of yacc.c */ 199 #line 200 "yacc_parser.cpp" 183 #line 184 "yacc_parser.cpp" /* yacc.c:358 */ 200 184 201 185 #ifdef short … … 211 195 #ifdef YYTYPE_INT8 212 196 typedef YYTYPE_INT8 yytype_int8; 213 #elif (defined __STDC__ || defined __C99__FUNC__ \ 214 || defined __cplusplus || defined _MSC_VER) 197 #else 215 198 typedef signed char yytype_int8; 216 #else217 typedef short int yytype_int8;218 199 #endif 219 200 … … 235 216 # elif defined size_t 236 217 # define YYSIZE_T size_t 237 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 238 || defined __cplusplus || defined _MSC_VER) 218 # elif ! defined YYSIZE_T 239 219 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 240 220 # define YYSIZE_T size_t … … 258 238 #endif 259 239 240 #ifndef YY_ATTRIBUTE 241 # if (defined __GNUC__ \ 242 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ 243 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C 244 # define YY_ATTRIBUTE(Spec) __attribute__(Spec) 245 # else 246 # define YY_ATTRIBUTE(Spec) /* empty */ 247 # endif 248 #endif 249 250 #ifndef YY_ATTRIBUTE_PURE 251 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) 252 #endif 253 254 #ifndef YY_ATTRIBUTE_UNUSED 255 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) 256 #endif 257 258 #if !defined _Noreturn \ 259 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) 260 # if defined _MSC_VER && 1200 <= _MSC_VER 261 # define _Noreturn __declspec (noreturn) 262 # else 263 # define _Noreturn YY_ATTRIBUTE ((__noreturn__)) 264 # endif 265 #endif 266 260 267 /* Suppress unused-variable warnings by "using" E. */ 261 268 #if ! defined lint || defined __GNUC__ … … 265 272 #endif 266 273 267 /* Identity function, used to suppress warnings about constant conditions. */ 268 #ifndef lint 269 # define YYID(N) (N) 274 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 275 /* Suppress an incorrect diagnostic about yylval being uninitialized. */ 276 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 277 _Pragma ("GCC diagnostic push") \ 278 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 279 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 280 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 281 _Pragma ("GCC diagnostic pop") 270 282 #else 271 #if (defined __STDC__ || defined __C99__FUNC__ \ 272 || defined __cplusplus || defined _MSC_VER) 273 static int 274 YYID (int yyi) 275 #else 276 static int 277 YYID (yyi) 278 int yyi; 279 #endif 280 { 281 return yyi; 282 } 283 #endif 283 # define YY_INITIAL_VALUE(Value) Value 284 #endif 285 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 286 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 287 # define YY_IGNORE_MAYBE_UNINITIALIZED_END 288 #endif 289 #ifndef YY_INITIAL_VALUE 290 # define YY_INITIAL_VALUE(Value) /* Nothing. */ 291 #endif 292 284 293 285 294 #if ! defined yyoverflow || YYERROR_VERBOSE … … 300 309 # else 301 310 # define YYSTACK_ALLOC alloca 302 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 303 || defined __cplusplus || defined _MSC_VER) 311 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 304 312 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 305 313 /* Use EXIT_SUCCESS as a witness for stdlib.h. */ … … 313 321 314 322 # ifdef YYSTACK_ALLOC 315 /* Pacify GCC's `empty if-body' warning. */316 # define YYSTACK_FREE(Ptr) do { /* empty */; } while ( YYID (0))323 /* Pacify GCC's 'empty if-body' warning. */ 324 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 317 325 # ifndef YYSTACK_ALLOC_MAXIMUM 318 326 /* The OS might guarantee only one guard page at the bottom of the stack, … … 330 338 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 331 339 && ! ((defined YYMALLOC || defined malloc) \ 332 340 && (defined YYFREE || defined free))) 333 341 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 334 342 # ifndef EXIT_SUCCESS … … 338 346 # ifndef YYMALLOC 339 347 # define YYMALLOC malloc 340 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 341 || defined __cplusplus || defined _MSC_VER) 348 # if ! defined malloc && ! defined EXIT_SUCCESS 342 349 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 343 350 # endif … … 345 352 # ifndef YYFREE 346 353 # define YYFREE free 347 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 348 || defined __cplusplus || defined _MSC_VER) 354 # if ! defined free && ! defined EXIT_SUCCESS 349 355 void free (void *); /* INFRINGES ON USER NAME SPACE */ 350 356 # endif … … 356 362 #if (! defined yyoverflow \ 357 363 && (! defined __cplusplus \ 358 364 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 359 365 360 366 /* A type that is properly aligned for any stack member. */ … … 381 387 stack. Advance YYPTR to a properly aligned location for the next 382 388 stack. */ 383 # define YYSTACK_RELOCATE(Stack_alloc, Stack) 384 do 385 { 386 YYSIZE_T yynewbytes;\387 YYCOPY (&yyptr->Stack_alloc, Stack, yysize);\388 Stack = &yyptr->Stack_alloc;\389 390 yyptr += yynewbytes / sizeof (*yyptr);\391 } 392 while ( YYID (0))389 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 390 do \ 391 { \ 392 YYSIZE_T yynewbytes; \ 393 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 394 Stack = &yyptr->Stack_alloc; \ 395 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 396 yyptr += yynewbytes / sizeof (*yyptr); \ 397 } \ 398 while (0) 393 399 394 400 #endif … … 409 415 (Dst)[yyi] = (Src)[yyi]; \ 410 416 } \ 411 while ( YYID (0))417 while (0) 412 418 # endif 413 419 # endif … … 417 423 #define YYFINAL 16 418 424 /* YYLAST -- Last index in YYTABLE. */ 419 #define YYLAST 229425 #define YYLAST 371 420 426 421 427 /* YYNTOKENS -- Number of terminals. */ 422 #define YYNTOKENS 2 2428 #define YYNTOKENS 24 423 429 /* YYNNTS -- Number of nonterminals. */ 424 430 #define YYNNTS 4 425 431 /* YYNRULES -- Number of rules. */ 426 #define YYNRULES 56 427 /* YYNRULES -- Number of states. */ 428 #define YYNSTATES 116 429 430 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 432 #define YYNRULES 64 433 /* YYNSTATES -- Number of states. */ 434 #define YYNSTATES 138 435 436 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned 437 by yylex, with out-of-bounds checking. */ 431 438 #define YYUNDEFTOK 2 432 #define YYMAXUTOK 27 6433 434 #define YYTRANSLATE(YYX) 439 #define YYMAXUTOK 278 440 441 #define YYTRANSLATE(YYX) \ 435 442 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 436 443 437 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ 444 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 445 as returned by yylex, without out-of-bounds checking. */ 438 446 static const yytype_uint8 yytranslate[] = 439 447 { … … 465 473 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 466 474 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 467 15, 16, 17, 18, 19, 20, 21 475 15, 16, 17, 18, 19, 20, 21, 22, 23 468 476 }; 469 477 470 478 #if YYDEBUG 471 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 472 YYRHS. */ 473 static const yytype_uint8 yyprhs[] = 474 { 475 0, 0, 3, 5, 8, 10, 12, 16, 20, 24, 476 28, 31, 35, 39, 43, 47, 51, 55, 59, 63, 477 68, 70, 72, 76, 80, 84, 88, 91, 95, 99, 478 103, 107, 111, 115, 119, 123, 127, 131, 135, 139, 479 143, 147, 151, 155, 159, 163, 167, 171, 175, 179, 480 183, 187, 191, 195, 199, 203, 207 481 }; 482 483 /* YYRHS -- A `-1'-separated list of the rules' RHS. */ 484 static const yytype_int8 yyrhs[] = 485 { 486 23, 0, -1, 20, -1, 25, 20, -1, 3, -1, 487 4, -1, 24, 7, 24, -1, 24, 8, 24, -1, 488 24, 9, 24, -1, 24, 10, 24, -1, 8, 24, 489 -1, 24, 11, 24, -1, 24, 12, 24, -1, 24, 490 13, 24, -1, 24, 14, 24, -1, 24, 15, 24, 491 -1, 24, 16, 24, -1, 24, 17, 24, -1, 18, 492 24, 19, -1, 5, 18, 24, 19, -1, 5, -1, 493 6, -1, 25, 7, 25, -1, 25, 8, 25, -1, 494 25, 9, 25, -1, 25, 10, 25, -1, 8, 25, 495 -1, 25, 11, 25, -1, 25, 12, 25, -1, 25, 496 13, 25, -1, 25, 14, 25, -1, 25, 15, 25, 497 -1, 25, 16, 25, -1, 25, 17, 25, -1, 18, 498 25, 19, -1, 25, 7, 24, -1, 24, 7, 25, 499 -1, 25, 8, 24, -1, 24, 8, 25, -1, 25, 500 9, 24, -1, 24, 9, 25, -1, 25, 10, 24, 501 -1, 24, 10, 25, -1, 25, 11, 24, -1, 25, 502 12, 24, -1, 24, 12, 25, -1, 25, 13, 24, 503 -1, 24, 13, 25, -1, 25, 14, 24, -1, 24, 504 14, 25, -1, 25, 15, 24, -1, 24, 15, 25, 505 -1, 25, 16, 24, -1, 24, 16, 25, -1, 25, 506 17, 24, -1, 24, 17, 25, -1, 5, 18, 25, 507 19, -1 508 }; 509 510 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 479 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ 511 480 static const yytype_uint8 yyrline[] = 512 481 { 513 0, 61, 61, 62, 66, 67, 68, 69, 70, 71, 514 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 515 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 516 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 517 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 518 115, 116, 117, 118, 119, 120, 121 482 0, 63, 63, 64, 68, 69, 70, 71, 72, 73, 483 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 484 84, 88, 89, 90, 91, 92, 93, 94, 95, 96, 485 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 486 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 487 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 488 127, 128, 129, 130, 131 519 489 }; 520 490 #endif … … 527 497 "$end", "error", "$undefined", "NUMBER", "VAR", "ID", "AVERAGE", "PLUS", 528 498 "MINUS", "TIMES", "DIVIDE", "POWER", "EQ", "LT", "GT", "LE", "GE", "NE", 529 "LEFT_PARENTHESIS", "RIGHT_PARENTHESIS", " END", "NEG", "$accept", "Line",530 " Expression", "Field_expr", YY_NULL499 "LEFT_PARENTHESIS", "RIGHT_PARENTHESIS", "QUESTION_MARK", "COLON", "END", 500 "NEG", "$accept", "Line", "Expression", "Field_expr", YY_NULLPTR 531 501 }; 532 502 #endif 533 503 534 504 # ifdef YYPRINT 535 /* YYTOKNUM[ YYLEX-NUM] -- Internal token number corresponding to536 token YYLEX-NUM. */505 /* YYTOKNUM[NUM] -- (External) token number corresponding to the 506 (internal) symbol number NUM (which must be that of a token). */ 537 507 static const yytype_uint16 yytoknum[] = 538 508 { 539 509 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 540 510 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 541 275, 276 511 275, 276, 277, 278 542 512 }; 543 513 # endif 544 514 545 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 546 static const yytype_uint8 yyr1[] = 547 { 548 0, 22, 23, 23, 24, 24, 24, 24, 24, 24, 549 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 550 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 551 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 552 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 553 25, 25, 25, 25, 25, 25, 25 515 #define YYPACT_NINF -14 516 517 #define yypact_value_is_default(Yystate) \ 518 (!!((Yystate) == (-14))) 519 520 #define YYTABLE_NINF -1 521 522 #define yytable_value_is_error(Yytable_value) \ 523 (!!((Yytable_value) == (-1))) 524 525 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 526 STATE-NUM. */ 527 static const yytype_int16 yypact[] = 528 { 529 73, -14, -14, -13, -14, 124, 124, -14, 39, 304, 530 104, 124, 34, 36, 220, 234, -14, 124, 124, 124, 531 124, 133, 124, 124, 124, 124, 124, 124, 124, 124, 532 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 533 124, -14, 248, 262, -14, -14, -7, 27, -7, 27, 534 34, 36, 34, 36, 30, 133, 133, 34, 0, 75, 535 0, 75, 0, 75, 0, 75, 0, 75, 0, 75, 536 145, 160, -7, 27, -7, 27, 34, 36, 34, 36, 537 34, 36, 0, 75, 0, 75, 0, 75, 0, 75, 538 0, 75, 0, 75, 175, 190, -14, -14, 133, 34, 539 276, 133, 133, 133, 133, 133, 133, 133, 133, 133, 540 133, 133, 124, 124, 124, 124, 290, 33, 33, 34, 541 34, 360, 360, 360, 360, 360, 360, 205, 318, 332, 542 318, 332, 318, 332, 318, 332, 133, 346 554 543 }; 555 544 556 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ 557 static const yytype_uint8 yyr2[] = 558 { 559 0, 2, 1, 2, 1, 1, 3, 3, 3, 3, 560 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 561 1, 1, 3, 3, 3, 3, 2, 3, 3, 3, 562 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 563 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 564 3, 3, 3, 3, 3, 3, 4 545 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 546 Performed when YYTABLE does not specify something else to do. Zero 547 means the default is an error. */ 548 static const yytype_uint8 yydefact[] = 549 { 550 0, 4, 5, 21, 22, 0, 0, 2, 0, 0, 551 0, 0, 10, 27, 0, 0, 1, 0, 0, 0, 552 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 554 0, 3, 0, 0, 19, 35, 6, 44, 7, 46, 555 8, 48, 9, 50, 0, 0, 0, 11, 12, 53, 556 13, 55, 14, 57, 15, 59, 16, 61, 17, 63, 557 0, 0, 43, 23, 45, 24, 47, 25, 49, 26, 558 51, 28, 52, 29, 54, 30, 56, 31, 58, 32, 559 60, 33, 62, 34, 0, 0, 20, 64, 0, 10, 560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 561 0, 0, 0, 0, 0, 0, 0, 6, 7, 8, 562 9, 12, 13, 14, 15, 16, 17, 0, 18, 36, 563 37, 38, 39, 40, 41, 42, 0, 18 565 564 }; 566 565 567 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. 568 Performed when YYTABLE doesn't specify something else to do. Zero 569 means the default is an error. */ 570 static const yytype_uint8 yydefact[] = 571 { 572 0, 4, 5, 20, 21, 0, 0, 2, 0, 0, 573 0, 0, 10, 26, 0, 0, 1, 0, 0, 0, 574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 575 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 576 0, 0, 18, 34, 6, 36, 7, 38, 8, 40, 577 9, 42, 0, 0, 0, 11, 12, 45, 13, 47, 578 14, 49, 15, 51, 16, 53, 17, 55, 35, 22, 579 37, 23, 39, 24, 41, 25, 43, 27, 44, 28, 580 46, 29, 48, 30, 50, 31, 52, 32, 54, 33, 581 19, 56, 0, 10, 0, 0, 0, 0, 0, 0, 582 0, 0, 0, 0, 0, 0, 6, 7, 8, 9, 583 12, 13, 14, 15, 16, 17 566 /* YYPGOTO[NTERM-NUM]. */ 567 static const yytype_int8 yypgoto[] = 568 { 569 -14, -14, -5, 35 584 570 }; 585 571 586 /* YYDEFGOTO[NTERM-NUM]. */572 /* YYDEFGOTO[NTERM-NUM]. */ 587 573 static const yytype_int8 yydefgoto[] = 588 574 { … … 590 576 }; 591 577 592 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 593 STATE-NUM. */ 594 #define YYPACT_NINF -14 595 static const yytype_int16 yypact[] = 596 { 597 97, -14, -14, -13, -14, 70, 70, -14, 37, 207, 598 115, 70, 32, 34, 129, 142, -14, 70, 70, 70, 599 70, 103, 70, 70, 70, 70, 70, 70, 70, 70, 600 70, 70, 70, 70, 70, 70, 70, 70, 70, -14, 601 155, 168, -14, -14, -7, 25, -7, 25, 32, 34, 602 32, 34, 28, 103, 103, 32, 0, 72, 0, 72, 603 0, 72, 0, 72, 0, 72, 0, 72, -7, 25, 604 -7, 25, 32, 34, 32, 34, 32, 34, 0, 72, 605 0, 72, 0, 72, 0, 72, 0, 72, 0, 72, 606 -14, -14, 103, 32, 181, 103, 103, 103, 103, 103, 607 103, 103, 103, 103, 103, 194, 31, 31, 32, 32, 608 218, 218, 218, 218, 218, 218 578 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If 579 positive, shift that token. If negative, reduce the rule whose 580 number is the opposite. If YYTABLE_NINF, syntax error. */ 581 static const yytype_int16 yytable[] = 582 { 583 12, 14, 19, 20, 21, 11, 42, 17, 18, 19, 584 20, 21, 46, 48, 50, 52, 57, 58, 60, 62, 585 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 586 84, 86, 88, 90, 92, 94, 31, 32, 33, 16, 587 13, 15, 103, 104, 21, 21, 43, 33, 98, 0, 588 99, 100, 47, 49, 51, 53, 0, 59, 61, 63, 589 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 590 85, 87, 89, 91, 93, 95, 1, 2, 3, 4, 591 0, 5, 29, 30, 31, 32, 33, 0, 0, 0, 592 0, 6, 0, 116, 0, 7, 117, 118, 119, 120, 593 121, 122, 123, 124, 125, 126, 127, 128, 130, 132, 594 134, 29, 30, 31, 32, 33, 34, 35, 36, 37, 595 38, 39, 0, 0, 40, 0, 41, 1, 2, 3, 596 4, 137, 5, 0, 0, 0, 1, 2, 54, 0, 597 0, 55, 6, 0, 0, 0, 0, 129, 131, 133, 598 135, 56, 17, 18, 19, 20, 21, 22, 23, 24, 599 25, 26, 27, 0, 0, 28, 112, 29, 30, 31, 600 32, 33, 34, 35, 36, 37, 38, 39, 0, 0, 601 40, 113, 17, 18, 19, 20, 21, 22, 23, 24, 602 25, 26, 27, 0, 0, 28, 114, 29, 30, 31, 603 32, 33, 34, 35, 36, 37, 38, 39, 0, 0, 604 40, 115, 101, 102, 103, 104, 21, 105, 106, 107, 605 108, 109, 110, 0, 0, 111, 136, 17, 18, 19, 606 20, 21, 22, 23, 24, 25, 26, 27, 0, 44, 607 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 608 38, 39, 0, 45, 40, 17, 18, 19, 20, 21, 609 22, 23, 24, 25, 26, 27, 0, 96, 28, 29, 610 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 611 0, 97, 40, 101, 102, 103, 104, 21, 105, 106, 612 107, 108, 109, 110, 0, 44, 111, 101, 102, 103, 613 104, 21, 105, 106, 107, 108, 109, 110, 0, 96, 614 111, 17, 18, 19, 20, 21, 22, 23, 24, 25, 615 26, 27, 0, 0, 28, 17, 18, 19, 20, 21, 616 22, 23, 24, 25, 26, 27, 0, 0, -1, 29, 617 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 618 0, 0, -1, 101, 102, 103, 104, 21, 105, 106, 619 107, 108, 109, 110, 0, 0, -1, 101, 102, 103, 620 104, 21 609 621 }; 610 622 611 /* YYPGOTO[NTERM-NUM]. */ 612 static const yytype_int8 yypgoto[] = 613 { 614 -14, -14, -5, 33 615 }; 616 617 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If 618 positive, shift that token. If negative, reduce the rule which 619 number is the opposite. If YYTABLE_NINF, syntax error. */ 620 #define YYTABLE_NINF -1 621 static const yytype_uint8 yytable[] = 622 { 623 12, 14, 19, 20, 21, 11, 40, 17, 18, 19, 624 20, 21, 44, 46, 48, 50, 55, 56, 58, 60, 625 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 626 82, 84, 86, 88, 30, 31, 32, 16, 13, 15, 627 97, 98, 21, 21, 41, 32, 92, 0, 93, 94, 628 45, 47, 49, 51, 0, 57, 59, 61, 63, 65, 629 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 630 87, 89, 0, 1, 2, 3, 4, 0, 5, 28, 631 29, 30, 31, 32, 0, 0, 0, 105, 6, 0, 632 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 633 1, 2, 3, 4, 0, 5, 1, 2, 52, 0, 634 0, 53, 0, 0, 0, 6, 0, 7, 0, 0, 635 0, 54, 28, 29, 30, 31, 32, 33, 34, 35, 636 36, 37, 38, 0, 0, 39, 17, 18, 19, 20, 637 21, 22, 23, 24, 25, 26, 27, 0, 42, 28, 638 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 639 0, 43, 17, 18, 19, 20, 21, 22, 23, 24, 640 25, 26, 27, 0, 90, 28, 29, 30, 31, 32, 641 33, 34, 35, 36, 37, 38, 0, 91, 95, 96, 642 97, 98, 21, 99, 100, 101, 102, 103, 104, 0, 643 42, 95, 96, 97, 98, 21, 99, 100, 101, 102, 644 103, 104, 0, 90, 17, 18, 19, 20, 21, 22, 645 23, 24, 25, 26, 27, 95, 96, 97, 98, 21 646 }; 647 648 #define yypact_value_is_default(Yystate) \ 649 (!!((Yystate) == (-14))) 650 651 #define yytable_value_is_error(Yytable_value) \ 652 YYID (0) 653 654 static const yytype_int8 yycheck[] = 623 static const yytype_int16 yycheck[] = 655 624 { 656 625 5, 6, 9, 10, 11, 18, 11, 7, 8, 9, 657 626 10, 11, 17, 18, 19, 20, 21, 22, 23, 24, 658 627 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 659 35, 36, 37, 38, 9, 10, 11, 0, 5, 6, 660 9, 10, 11, 11, 11, 11, 18, -1, 53, 54, 661 17, 18, 19, 20, -1, 22, 23, 24, 25, 26, 662 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 663 37, 38, -1, 3, 4, 5, 6, -1, 8, 7, 664 8, 9, 10, 11, -1, -1, -1, 92, 18, -1, 665 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 666 3, 4, 5, 6, -1, 8, 3, 4, 5, -1, 667 -1, 8, -1, -1, -1, 18, -1, 20, -1, -1, 668 -1, 18, 7, 8, 9, 10, 11, 12, 13, 14, 669 15, 16, 17, -1, -1, 20, 7, 8, 9, 10, 670 11, 12, 13, 14, 15, 16, 17, -1, 19, 7, 628 35, 36, 37, 38, 39, 40, 9, 10, 11, 0, 629 5, 6, 9, 10, 11, 11, 11, 11, 18, -1, 630 55, 56, 17, 18, 19, 20, -1, 22, 23, 24, 631 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 632 35, 36, 37, 38, 39, 40, 3, 4, 5, 6, 633 -1, 8, 7, 8, 9, 10, 11, -1, -1, -1, 634 -1, 18, -1, 98, -1, 22, 101, 102, 103, 104, 635 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 636 115, 7, 8, 9, 10, 11, 12, 13, 14, 15, 637 16, 17, -1, -1, 20, -1, 22, 3, 4, 5, 638 6, 136, 8, -1, -1, -1, 3, 4, 5, -1, 639 -1, 8, 18, -1, -1, -1, -1, 112, 113, 114, 640 115, 18, 7, 8, 9, 10, 11, 12, 13, 14, 641 15, 16, 17, -1, -1, 20, 21, 7, 8, 9, 642 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, 643 20, 21, 7, 8, 9, 10, 11, 12, 13, 14, 644 15, 16, 17, -1, -1, 20, 21, 7, 8, 9, 645 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, 646 20, 21, 7, 8, 9, 10, 11, 12, 13, 14, 647 15, 16, 17, -1, -1, 20, 21, 7, 8, 9, 648 10, 11, 12, 13, 14, 15, 16, 17, -1, 19, 649 20, 7, 8, 9, 10, 11, 12, 13, 14, 15, 650 16, 17, -1, 19, 20, 7, 8, 9, 10, 11, 651 12, 13, 14, 15, 16, 17, -1, 19, 20, 7, 671 652 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 672 -1, 19, 7, 8, 9, 10, 11, 12, 13, 14, 673 15, 16, 17, -1, 19, 7, 8, 9, 10, 11, 674 12, 13, 14, 15, 16, 17, -1, 19, 7, 8, 675 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, 676 19, 7, 8, 9, 10, 11, 12, 13, 14, 15, 677 16, 17, -1, 19, 7, 8, 9, 10, 11, 12, 678 13, 14, 15, 16, 17, 7, 8, 9, 10, 11 653 -1, 19, 20, 7, 8, 9, 10, 11, 12, 13, 654 14, 15, 16, 17, -1, 19, 20, 7, 8, 9, 655 10, 11, 12, 13, 14, 15, 16, 17, -1, 19, 656 20, 7, 8, 9, 10, 11, 12, 13, 14, 15, 657 16, 17, -1, -1, 20, 7, 8, 9, 10, 11, 658 12, 13, 14, 15, 16, 17, -1, -1, 20, 7, 659 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 660 -1, -1, 20, 7, 8, 9, 10, 11, 12, 13, 661 14, 15, 16, 17, -1, -1, 20, 7, 8, 9, 662 10, 11 679 663 }; 680 664 681 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing682 symbol of state STATE-NUM. */665 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 666 symbol of state STATE-NUM. */ 683 667 static const yytype_uint8 yystos[] = 684 668 { 685 0, 3, 4, 5, 6, 8, 18, 20, 23, 24, 686 25, 18, 24, 25, 24, 25, 0, 7, 8, 9, 687 10, 11, 12, 13, 14, 15, 16, 17, 7, 8, 688 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 689 24, 25, 19, 19, 24, 25, 24, 25, 24, 25, 690 24, 25, 5, 8, 18, 24, 24, 25, 24, 25, 691 24, 25, 24, 25, 24, 25, 24, 25, 24, 25, 692 24, 25, 24, 25, 24, 25, 24, 25, 24, 25, 693 24, 25, 24, 25, 24, 25, 24, 25, 24, 25, 694 19, 19, 18, 24, 24, 7, 8, 9, 10, 12, 695 13, 14, 15, 16, 17, 24, 24, 24, 24, 24, 696 24, 24, 24, 24, 24, 24 669 0, 3, 4, 5, 6, 8, 18, 22, 25, 26, 670 27, 18, 26, 27, 26, 27, 0, 7, 8, 9, 671 10, 11, 12, 13, 14, 15, 16, 17, 20, 7, 672 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 673 20, 22, 26, 27, 19, 19, 26, 27, 26, 27, 674 26, 27, 26, 27, 5, 8, 18, 26, 26, 27, 675 26, 27, 26, 27, 26, 27, 26, 27, 26, 27, 676 26, 27, 26, 27, 26, 27, 26, 27, 26, 27, 677 26, 27, 26, 27, 26, 27, 26, 27, 26, 27, 678 26, 27, 26, 27, 26, 27, 19, 19, 18, 26, 679 26, 7, 8, 9, 10, 12, 13, 14, 15, 16, 680 17, 20, 21, 21, 21, 21, 26, 26, 26, 26, 681 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 682 26, 27, 26, 27, 26, 27, 21, 26 697 683 }; 698 684 699 #define yyerrok (yyerrstatus = 0) 700 #define yyclearin (yychar = YYEMPTY) 701 #define YYEMPTY (-2) 702 #define YYEOF 0 703 704 #define YYACCEPT goto yyacceptlab 705 #define YYABORT goto yyabortlab 706 #define YYERROR goto yyerrorlab 707 708 709 /* Like YYERROR except do call yyerror. This remains here temporarily 710 to ease the transition to the new meaning of YYERROR, for GCC. 711 Once GCC version 2 has supplanted version 1, this can go. However, 712 YYFAIL appears to be in use. Nevertheless, it is formally deprecated 713 in Bison 2.4.2's NEWS entry, where a plan to phase it out is 714 discussed. */ 715 716 #define YYFAIL goto yyerrlab 717 #if defined YYFAIL 718 /* This is here to suppress warnings from the GCC cpp's 719 -Wunused-macros. Normally we don't worry about that warning, but 720 some users do, and we want to make it easy for users to remove 721 YYFAIL uses, which will produce warnings from Bison 2.5. */ 722 #endif 685 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 686 static const yytype_uint8 yyr1[] = 687 { 688 0, 24, 25, 25, 26, 26, 26, 26, 26, 26, 689 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 690 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 691 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 692 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 693 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 694 27, 27, 27, 27, 27 695 }; 696 697 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ 698 static const yytype_uint8 yyr2[] = 699 { 700 0, 2, 1, 2, 1, 1, 3, 3, 3, 3, 701 2, 3, 3, 3, 3, 3, 3, 3, 5, 3, 702 4, 1, 1, 3, 3, 3, 3, 2, 3, 3, 703 3, 3, 3, 3, 3, 3, 5, 5, 5, 5, 704 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 705 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 706 3, 3, 3, 3, 4 707 }; 708 709 710 #define yyerrok (yyerrstatus = 0) 711 #define yyclearin (yychar = YYEMPTY) 712 #define YYEMPTY (-2) 713 #define YYEOF 0 714 715 #define YYACCEPT goto yyacceptlab 716 #define YYABORT goto yyabortlab 717 #define YYERROR goto yyerrorlab 718 723 719 724 720 #define YYRECOVERING() (!!yyerrstatus) … … 737 733 { \ 738 734 yyerror (YY_("syntax error: cannot back up")); \ 739 YYERROR; 740 } 741 while ( YYID (0))735 YYERROR; \ 736 } \ 737 while (0) 742 738 743 739 /* Error token number */ 744 #define YYTERROR 1 745 #define YYERRCODE 256 746 747 748 /* This macro is provided for backward compatibility. */ 749 #ifndef YY_LOCATION_PRINT 750 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 751 #endif 752 753 754 /* YYLEX -- calling `yylex' with the right arguments. */ 755 #ifdef YYLEX_PARAM 756 # define YYLEX yylex (YYLEX_PARAM) 757 #else 758 # define YYLEX yylex () 759 #endif 740 #define YYTERROR 1 741 #define YYERRCODE 256 742 743 760 744 761 745 /* Enable debugging if requested. */ … … 767 751 # endif 768 752 769 # define YYDPRINTF(Args) \ 770 do { \ 771 if (yydebug) \ 772 YYFPRINTF Args; \ 773 } while (YYID (0)) 774 775 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 776 do { \ 777 if (yydebug) \ 778 { \ 779 YYFPRINTF (stderr, "%s ", Title); \ 780 yy_symbol_print (stderr, \ 781 Type, Value); \ 782 YYFPRINTF (stderr, "\n"); \ 783 } \ 784 } while (YYID (0)) 785 786 787 /*--------------------------------. 788 | Print this symbol on YYOUTPUT. | 789 `--------------------------------*/ 790 791 /*ARGSUSED*/ 792 #if (defined __STDC__ || defined __C99__FUNC__ \ 793 || defined __cplusplus || defined _MSC_VER) 753 # define YYDPRINTF(Args) \ 754 do { \ 755 if (yydebug) \ 756 YYFPRINTF Args; \ 757 } while (0) 758 759 /* This macro is provided for backward compatibility. */ 760 #ifndef YY_LOCATION_PRINT 761 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 762 #endif 763 764 765 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 766 do { \ 767 if (yydebug) \ 768 { \ 769 YYFPRINTF (stderr, "%s ", Title); \ 770 yy_symbol_print (stderr, \ 771 Type, Value); \ 772 YYFPRINTF (stderr, "\n"); \ 773 } \ 774 } while (0) 775 776 777 /*----------------------------------------. 778 | Print this symbol's value on YYOUTPUT. | 779 `----------------------------------------*/ 780 794 781 static void 795 782 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 796 #else797 static void798 yy_symbol_value_print (yyoutput, yytype, yyvaluep)799 FILE *yyoutput;800 int yytype;801 YYSTYPE const * const yyvaluep;802 #endif803 783 { 804 784 FILE *yyo = yyoutput; … … 809 789 if (yytype < YYNTOKENS) 810 790 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 811 # else812 YYUSE (yyoutput);813 791 # endif 814 switch (yytype) 815 { 816 default: 817 break; 818 } 792 YYUSE (yytype); 819 793 } 820 794 … … 824 798 `--------------------------------*/ 825 799 826 #if (defined __STDC__ || defined __C99__FUNC__ \827 || defined __cplusplus || defined _MSC_VER)828 800 static void 829 801 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 830 #else 831 static void 832 yy_symbol_print (yyoutput, yytype, yyvaluep) 833 FILE *yyoutput; 834 int yytype; 835 YYSTYPE const * const yyvaluep; 836 #endif 837 { 838 if (yytype < YYNTOKENS) 839 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 840 else 841 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 802 { 803 YYFPRINTF (yyoutput, "%s %s (", 804 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); 842 805 843 806 yy_symbol_value_print (yyoutput, yytype, yyvaluep); … … 850 813 `------------------------------------------------------------------*/ 851 814 852 #if (defined __STDC__ || defined __C99__FUNC__ \853 || defined __cplusplus || defined _MSC_VER)854 815 static void 855 816 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 856 #else857 static void858 yy_stack_print (yybottom, yytop)859 yytype_int16 *yybottom;860 yytype_int16 *yytop;861 #endif862 817 { 863 818 YYFPRINTF (stderr, "Stack now"); … … 870 825 } 871 826 872 # define YY_STACK_PRINT(Bottom, Top) 873 do { 874 if (yydebug) 875 yy_stack_print ((Bottom), (Top)); 876 } while ( YYID (0))827 # define YY_STACK_PRINT(Bottom, Top) \ 828 do { \ 829 if (yydebug) \ 830 yy_stack_print ((Bottom), (Top)); \ 831 } while (0) 877 832 878 833 … … 881 836 `------------------------------------------------*/ 882 837 883 #if (defined __STDC__ || defined __C99__FUNC__ \884 || defined __cplusplus || defined _MSC_VER)885 838 static void 886 yy_reduce_print (YYSTYPE *yyvsp, int yyrule) 887 #else 888 static void 889 yy_reduce_print (yyvsp, yyrule) 890 YYSTYPE *yyvsp; 891 int yyrule; 892 #endif 893 { 839 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) 840 { 841 unsigned long int yylno = yyrline[yyrule]; 894 842 int yynrhs = yyr2[yyrule]; 895 843 int yyi; 896 unsigned long int yylno = yyrline[yyrule];897 844 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 898 845 yyrule - 1, yylno); 899 846 /* The symbols being reduced. */ 900 847 for (yyi = 0; yyi < yynrhs; yyi++) 901 848 { 902 849 YYFPRINTF (stderr, " $%d = ", yyi + 1); 903 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], 904 &(yyvsp[(yyi + 1) - (yynrhs)]) 905 ); 850 yy_symbol_print (stderr, 851 yystos[yyssp[yyi + 1 - yynrhs]], 852 &(yyvsp[(yyi + 1) - (yynrhs)]) 853 ); 906 854 YYFPRINTF (stderr, "\n"); 907 855 } 908 856 } 909 857 910 # define YY_REDUCE_PRINT(Rule) 911 do { 912 if (yydebug) 913 yy_reduce_print (yy vsp, Rule); \914 } while ( YYID (0))858 # define YY_REDUCE_PRINT(Rule) \ 859 do { \ 860 if (yydebug) \ 861 yy_reduce_print (yyssp, yyvsp, Rule); \ 862 } while (0) 915 863 916 864 /* Nonzero means print parse trace. It is left uninitialized so that … … 926 874 927 875 /* YYINITDEPTH -- initial size of the parser's stacks. */ 928 #ifndef 876 #ifndef YYINITDEPTH 929 877 # define YYINITDEPTH 200 930 878 #endif … … 949 897 # else 950 898 /* Return the length of YYSTR. */ 951 #if (defined __STDC__ || defined __C99__FUNC__ \952 || defined __cplusplus || defined _MSC_VER)953 899 static YYSIZE_T 954 900 yystrlen (const char *yystr) 955 #else956 static YYSIZE_T957 yystrlen (yystr)958 const char *yystr;959 #endif960 901 { 961 902 YYSIZE_T yylen; … … 973 914 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 974 915 YYDEST. */ 975 #if (defined __STDC__ || defined __C99__FUNC__ \976 || defined __cplusplus || defined _MSC_VER)977 916 static char * 978 917 yystpcpy (char *yydest, const char *yysrc) 979 #else980 static char *981 yystpcpy (yydest, yysrc)982 char *yydest;983 const char *yysrc;984 #endif985 918 { 986 919 char *yyd = yydest; … … 1012 945 1013 946 for (;;) 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 947 switch (*++yyp) 948 { 949 case '\'': 950 case ',': 951 goto do_not_strip_quotes; 952 953 case '\\': 954 if (*++yyp != '\\') 955 goto do_not_strip_quotes; 956 /* Fall through. */ 957 default: 958 if (yyres) 959 yyres[yyn] = *yyp; 960 yyn++; 961 break; 962 963 case '"': 964 if (yyres) 965 yyres[yyn] = '\0'; 966 return yyn; 967 } 1035 968 do_not_strip_quotes: ; 1036 969 } … … 1055 988 yytype_int16 *yyssp, int yytoken) 1056 989 { 1057 YYSIZE_T yysize0 = yytnamerr (YY_NULL , yytname[yytoken]);990 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); 1058 991 YYSIZE_T yysize = yysize0; 1059 992 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 1060 993 /* Internationalized format string. */ 1061 const char *yyformat = YY_NULL ;994 const char *yyformat = YY_NULLPTR; 1062 995 /* Arguments of yyformat. */ 1063 996 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; … … 1067 1000 1068 1001 /* There are many possibilities here to consider: 1069 - Assume YYFAIL is not used. It's too flawed to consider. See1070 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>1071 for details. YYERROR is fine as it does not invoke this1072 function.1073 1002 - If this state is a consistent state with a default action, then 1074 1003 the only way this function was invoked is if the default action … … 1120 1049 yyarg[yycount++] = yytname[yyx]; 1121 1050 { 1122 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL , yytname[yyx]);1051 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); 1123 1052 if (! (yysize <= yysize1 1124 1053 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) … … 1187 1116 `-----------------------------------------------*/ 1188 1117 1189 /*ARGSUSED*/1190 #if (defined __STDC__ || defined __C99__FUNC__ \1191 || defined __cplusplus || defined _MSC_VER)1192 1118 static void 1193 1119 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 1194 #else1195 static void1196 yydestruct (yymsg, yytype, yyvaluep)1197 const char *yymsg;1198 int yytype;1199 YYSTYPE *yyvaluep;1200 #endif1201 1120 { 1202 1121 YYUSE (yyvaluep); 1203 1204 1122 if (!yymsg) 1205 1123 yymsg = "Deleting"; 1206 1124 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 1207 1125 1208 switch (yytype) 1209 { 1210 1211 default: 1212 break; 1213 } 1126 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1127 YYUSE (yytype); 1128 YY_IGNORE_MAYBE_UNINITIALIZED_END 1214 1129 } 1215 1130 … … 1220 1135 int yychar; 1221 1136 1222 1223 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN1224 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN1225 # define YY_IGNORE_MAYBE_UNINITIALIZED_END1226 #endif1227 #ifndef YY_INITIAL_VALUE1228 # define YY_INITIAL_VALUE(Value) /* Nothing. */1229 #endif1230 1231 1137 /* The semantic value of the lookahead symbol. */ 1232 YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); 1233 1138 YYSTYPE yylval; 1234 1139 /* Number of syntax errors so far. */ 1235 1140 int yynerrs; … … 1240 1145 `----------*/ 1241 1146 1242 #ifdef YYPARSE_PARAM1243 #if (defined __STDC__ || defined __C99__FUNC__ \1244 || defined __cplusplus || defined _MSC_VER)1245 int1246 yyparse (void *YYPARSE_PARAM)1247 #else1248 int1249 yyparse (YYPARSE_PARAM)1250 void *YYPARSE_PARAM;1251 #endif1252 #else /* ! YYPARSE_PARAM */1253 #if (defined __STDC__ || defined __C99__FUNC__ \1254 || defined __cplusplus || defined _MSC_VER)1255 1147 int 1256 1148 yyparse (void) 1257 #else1258 int1259 yyparse ()1260 1261 #endif1262 #endif1263 1149 { 1264 1150 int yystate; … … 1267 1153 1268 1154 /* The stacks and their tools: 1269 `yyss': related to states.1270 `yyvs': related to semantic values.1155 'yyss': related to states. 1156 'yyvs': related to semantic values. 1271 1157 1272 1158 Refer to the stacks through separate pointers, to allow yyoverflow … … 1336 1222 #ifdef yyoverflow 1337 1223 { 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1224 /* Give user a chance to reallocate the stack. Use copies of 1225 these so that the &'s don't force the real ones into 1226 memory. */ 1227 YYSTYPE *yyvs1 = yyvs; 1228 yytype_int16 *yyss1 = yyss; 1229 1230 /* Each stack pointer address is followed by the size of the 1231 data in use in that stack, in bytes. This used to be a 1232 conditional around just the two extra args, but that might 1233 be undefined if yyoverflow is a macro. */ 1234 yyoverflow (YY_("memory exhausted"), 1235 &yyss1, yysize * sizeof (*yyssp), 1236 &yyvs1, yysize * sizeof (*yyvsp), 1237 &yystacksize); 1238 1239 yyss = yyss1; 1240 yyvs = yyvs1; 1355 1241 } 1356 1242 #else /* no yyoverflow */ … … 1360 1246 /* Extend the stack our own way. */ 1361 1247 if (YYMAXDEPTH <= yystacksize) 1362 1248 goto yyexhaustedlab; 1363 1249 yystacksize *= 2; 1364 1250 if (YYMAXDEPTH < yystacksize) 1365 1251 yystacksize = YYMAXDEPTH; 1366 1252 1367 1253 { 1368 1369 1370 1371 1372 1373 1374 1254 yytype_int16 *yyss1 = yyss; 1255 union yyalloc *yyptr = 1256 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 1257 if (! yyptr) 1258 goto yyexhaustedlab; 1259 YYSTACK_RELOCATE (yyss_alloc, yyss); 1260 YYSTACK_RELOCATE (yyvs_alloc, yyvs); 1375 1261 # undef YYSTACK_RELOCATE 1376 1377 1262 if (yyss1 != yyssa) 1263 YYSTACK_FREE (yyss1); 1378 1264 } 1379 1265 # endif … … 1384 1270 1385 1271 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 1386 1272 (unsigned long int) yystacksize)); 1387 1273 1388 1274 if (yyss + yystacksize - 1 <= yyssp) 1389 1275 YYABORT; 1390 1276 } 1391 1277 … … 1416 1302 { 1417 1303 YYDPRINTF ((stderr, "Reading a token: ")); 1418 yychar = YYLEX;1304 yychar = yylex (); 1419 1305 } 1420 1306 … … 1481 1367 1482 1368 /* If YYLEN is nonzero, implement the default value of the action: 1483 `$$ = $1'.1369 '$$ = $1'. 1484 1370 1485 1371 Otherwise, the following line sets YYVAL to garbage. … … 1495 1381 { 1496 1382 case 2: 1497 /* Line 1792 of yacc.c */ 1498 #line 61 "yacc_parser.yacc" 1383 #line 63 "yacc_parser.yacc" /* yacc.c:1646 */ 1499 1384 { /* Nothing to do */ } 1385 #line 1386 "yacc_parser.cpp" /* yacc.c:1646 */ 1500 1386 break; 1501 1387 1502 1388 case 3: 1503 /* Line 1792 of yacc.c*/1504 #line 62 "yacc_parser.yacc" 1505 { parsed = (yyvsp[(1) - (2)].filterNode); } 1389 #line 64 "yacc_parser.yacc" /* yacc.c:1646 */ 1390 { parsed = (yyvsp[-1].filterNode); } 1391 #line 1392 "yacc_parser.cpp" /* yacc.c:1646 */ 1506 1392 break; 1507 1393 1508 1394 case 4: 1509 /* Line 1792 of yacc.c*/1510 #line 66 "yacc_parser.yacc" 1511 { (yyval.scalarNode) = new CScalarValExprNode(*(yyvsp[(1) - (1)].str)); delete (yyvsp[(1) - (1)].str); } 1395 #line 68 "yacc_parser.yacc" /* yacc.c:1646 */ 1396 { (yyval.scalarNode) = new CScalarValExprNode(*(yyvsp[0].str)); delete (yyvsp[0].str); } 1397 #line 1398 "yacc_parser.cpp" /* yacc.c:1646 */ 1512 1398 break; 1513 1399 1514 1400 case 5: 1515 /* Line 1792 of yacc.c*/1516 #line 67 "yacc_parser.yacc" 1517 { (yyval.scalarNode) = new CScalarVarExprNode(*(yyvsp[(1) - (1)].str)); delete (yyvsp[(1) - (1)].str); } 1401 #line 69 "yacc_parser.yacc" /* yacc.c:1646 */ 1402 { (yyval.scalarNode) = new CScalarVarExprNode(*(yyvsp[0].str)); delete (yyvsp[0].str); } 1403 #line 1404 "yacc_parser.cpp" /* yacc.c:1646 */ 1518 1404 break; 1519 1405 1520 1406 case 6: 1521 /* Line 1792 of yacc.c*/1522 #line 68 "yacc_parser.yacc" 1523 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "add", (yyvsp[(3) - (3)].scalarNode)); } 1407 #line 70 "yacc_parser.yacc" /* yacc.c:1646 */ 1408 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "add", (yyvsp[0].scalarNode)); } 1409 #line 1410 "yacc_parser.cpp" /* yacc.c:1646 */ 1524 1410 break; 1525 1411 1526 1412 case 7: 1527 /* Line 1792 of yacc.c*/1528 #line 69 "yacc_parser.yacc" 1529 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "minus", (yyvsp[(3) - (3)].scalarNode)); } 1413 #line 71 "yacc_parser.yacc" /* yacc.c:1646 */ 1414 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "minus", (yyvsp[0].scalarNode)); } 1415 #line 1416 "yacc_parser.cpp" /* yacc.c:1646 */ 1530 1416 break; 1531 1417 1532 1418 case 8: 1533 /* Line 1792 of yacc.c*/1534 #line 70 "yacc_parser.yacc" 1535 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "mult", (yyvsp[(3) - (3)].scalarNode)); } 1419 #line 72 "yacc_parser.yacc" /* yacc.c:1646 */ 1420 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "mult", (yyvsp[0].scalarNode)); } 1421 #line 1422 "yacc_parser.cpp" /* yacc.c:1646 */ 1536 1422 break; 1537 1423 1538 1424 case 9: 1539 /* Line 1792 of yacc.c*/1540 #line 71 "yacc_parser.yacc" 1541 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "div", (yyvsp[(3) - (3)].scalarNode)); } 1425 #line 73 "yacc_parser.yacc" /* yacc.c:1646 */ 1426 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "div", (yyvsp[0].scalarNode)); } 1427 #line 1428 "yacc_parser.cpp" /* yacc.c:1646 */ 1542 1428 break; 1543 1429 1544 1430 case 10: 1545 /* Line 1792 of yacc.c*/1546 #line 72 "yacc_parser.yacc" 1547 { (yyval.scalarNode) = new CScalarUnaryOpExprNode("neg", (yyvsp[(2) - (2)].scalarNode)); } 1431 #line 74 "yacc_parser.yacc" /* yacc.c:1646 */ 1432 { (yyval.scalarNode) = new CScalarUnaryOpExprNode("neg", (yyvsp[0].scalarNode)); } 1433 #line 1434 "yacc_parser.cpp" /* yacc.c:1646 */ 1548 1434 break; 1549 1435 1550 1436 case 11: 1551 /* Line 1792 of yacc.c*/1552 #line 73 "yacc_parser.yacc" 1553 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "pow", (yyvsp[(3) - (3)].scalarNode)); } 1437 #line 75 "yacc_parser.yacc" /* yacc.c:1646 */ 1438 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "pow", (yyvsp[0].scalarNode)); } 1439 #line 1440 "yacc_parser.cpp" /* yacc.c:1646 */ 1554 1440 break; 1555 1441 1556 1442 case 12: 1557 /* Line 1792 of yacc.c*/1558 #line 74 "yacc_parser.yacc" 1559 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "eq", (yyvsp[(3) - (3)].scalarNode)); } 1443 #line 76 "yacc_parser.yacc" /* yacc.c:1646 */ 1444 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "eq", (yyvsp[0].scalarNode)); } 1445 #line 1446 "yacc_parser.cpp" /* yacc.c:1646 */ 1560 1446 break; 1561 1447 1562 1448 case 13: 1563 /* Line 1792 of yacc.c*/1564 #line 75 "yacc_parser.yacc" 1565 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "lt", (yyvsp[(3) - (3)].scalarNode)); } 1449 #line 77 "yacc_parser.yacc" /* yacc.c:1646 */ 1450 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "lt", (yyvsp[0].scalarNode)); } 1451 #line 1452 "yacc_parser.cpp" /* yacc.c:1646 */ 1566 1452 break; 1567 1453 1568 1454 case 14: 1569 /* Line 1792 of yacc.c*/1570 #line 76 "yacc_parser.yacc" 1571 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "gt", (yyvsp[(3) - (3)].scalarNode)); } 1455 #line 78 "yacc_parser.yacc" /* yacc.c:1646 */ 1456 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "gt", (yyvsp[0].scalarNode)); } 1457 #line 1458 "yacc_parser.cpp" /* yacc.c:1646 */ 1572 1458 break; 1573 1459 1574 1460 case 15: 1575 /* Line 1792 of yacc.c*/1576 #line 77 "yacc_parser.yacc" 1577 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "le", (yyvsp[(3) - (3)].scalarNode)); } 1461 #line 79 "yacc_parser.yacc" /* yacc.c:1646 */ 1462 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "le", (yyvsp[0].scalarNode)); } 1463 #line 1464 "yacc_parser.cpp" /* yacc.c:1646 */ 1578 1464 break; 1579 1465 1580 1466 case 16: 1581 /* Line 1792 of yacc.c*/1582 #line 78 "yacc_parser.yacc" 1583 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "ge", (yyvsp[(3) - (3)].scalarNode)); } 1467 #line 80 "yacc_parser.yacc" /* yacc.c:1646 */ 1468 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "ge", (yyvsp[0].scalarNode)); } 1469 #line 1470 "yacc_parser.cpp" /* yacc.c:1646 */ 1584 1470 break; 1585 1471 1586 1472 case 17: 1587 /* Line 1792 of yacc.c*/1588 #line 79 "yacc_parser.yacc" 1589 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "ne", (yyvsp[(3) - (3)].scalarNode)); } 1473 #line 81 "yacc_parser.yacc" /* yacc.c:1646 */ 1474 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "ne", (yyvsp[0].scalarNode)); } 1475 #line 1476 "yacc_parser.cpp" /* yacc.c:1646 */ 1590 1476 break; 1591 1477 1592 1478 case 18: 1593 /* Line 1792 of yacc.c*/1594 #line 80 "yacc_parser.yacc" 1595 { (yyval.scalarNode) = (yyvsp[(2) - (3)].scalarNode); } 1479 #line 82 "yacc_parser.yacc" /* yacc.c:1646 */ 1480 {(yyval.scalarNode) = new CScalarTernaryOpExprNode((yyvsp[-4].scalarNode), "cond", (yyvsp[-2].scalarNode), (yyvsp[0].scalarNode));} 1481 #line 1482 "yacc_parser.cpp" /* yacc.c:1646 */ 1596 1482 break; 1597 1483 1598 1484 case 19: 1599 /* Line 1792 of yacc.c*/1600 #line 81 "yacc_parser.yacc" 1601 { (yyval.scalarNode) = new CScalarUnaryOpExprNode(*(yyvsp[(1) - (4)].str), (yyvsp[(3) - (4)].scalarNode)); delete (yyvsp[(1) - (4)].str); } 1485 #line 83 "yacc_parser.yacc" /* yacc.c:1646 */ 1486 { (yyval.scalarNode) = (yyvsp[-1].scalarNode); } 1487 #line 1488 "yacc_parser.cpp" /* yacc.c:1646 */ 1602 1488 break; 1603 1489 1604 1490 case 20: 1605 /* Line 1792 of yacc.c*/1606 #line 85 "yacc_parser.yacc" 1607 { (yyval.filterNode) = new CFilterFieldExprNode(*(yyvsp[(1) - (1)].str)); delete (yyvsp[(1) - (1)].str); } 1491 #line 84 "yacc_parser.yacc" /* yacc.c:1646 */ 1492 { (yyval.scalarNode) = new CScalarUnaryOpExprNode(*(yyvsp[-3].str), (yyvsp[-1].scalarNode)); delete (yyvsp[-3].str); } 1493 #line 1494 "yacc_parser.cpp" /* yacc.c:1646 */ 1608 1494 break; 1609 1495 1610 1496 case 21: 1611 /* Line 1792 of yacc.c*/1612 #line 86 "yacc_parser.yacc" 1613 { (yyval.filterNode) = new CFilterTemporalFieldExprNode(*(yyvsp[(1) - (1)].str)); delete (yyvsp[(1) - (1)].str); } 1497 #line 88 "yacc_parser.yacc" /* yacc.c:1646 */ 1498 { (yyval.filterNode) = new CFilterFieldExprNode(*(yyvsp[0].str)); delete (yyvsp[0].str); } 1499 #line 1500 "yacc_parser.cpp" /* yacc.c:1646 */ 1614 1500 break; 1615 1501 1616 1502 case 22: 1617 /* Line 1792 of yacc.c*/1618 #line 87 "yacc_parser.yacc" 1619 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "add", (yyvsp[(3) - (3)].filterNode)); } 1503 #line 89 "yacc_parser.yacc" /* yacc.c:1646 */ 1504 { (yyval.filterNode) = new CFilterTemporalFieldExprNode(*(yyvsp[0].str)); delete (yyvsp[0].str); } 1505 #line 1506 "yacc_parser.cpp" /* yacc.c:1646 */ 1620 1506 break; 1621 1507 1622 1508 case 23: 1623 /* Line 1792 of yacc.c*/1624 #line 88 "yacc_parser.yacc" 1625 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "minus", (yyvsp[(3) - (3)].filterNode)); } 1509 #line 90 "yacc_parser.yacc" /* yacc.c:1646 */ 1510 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "add", (yyvsp[0].filterNode)); } 1511 #line 1512 "yacc_parser.cpp" /* yacc.c:1646 */ 1626 1512 break; 1627 1513 1628 1514 case 24: 1629 /* Line 1792 of yacc.c*/1630 #line 89 "yacc_parser.yacc" 1631 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "mult", (yyvsp[(3) - (3)].filterNode)); } 1515 #line 91 "yacc_parser.yacc" /* yacc.c:1646 */ 1516 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "minus", (yyvsp[0].filterNode)); } 1517 #line 1518 "yacc_parser.cpp" /* yacc.c:1646 */ 1632 1518 break; 1633 1519 1634 1520 case 25: 1635 /* Line 1792 of yacc.c*/1636 #line 90 "yacc_parser.yacc" 1637 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "div", (yyvsp[(3) - (3)].filterNode)); } 1521 #line 92 "yacc_parser.yacc" /* yacc.c:1646 */ 1522 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "mult", (yyvsp[0].filterNode)); } 1523 #line 1524 "yacc_parser.cpp" /* yacc.c:1646 */ 1638 1524 break; 1639 1525 1640 1526 case 26: 1641 /* Line 1792 of yacc.c*/1642 #line 91 "yacc_parser.yacc" 1643 { (yyval.filterNode) = new CFilterUnaryOpExprNode("neg", (yyvsp[(2) - (2)].filterNode)); } 1527 #line 93 "yacc_parser.yacc" /* yacc.c:1646 */ 1528 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "div", (yyvsp[0].filterNode)); } 1529 #line 1530 "yacc_parser.cpp" /* yacc.c:1646 */ 1644 1530 break; 1645 1531 1646 1532 case 27: 1647 /* Line 1792 of yacc.c*/1648 #line 92 "yacc_parser.yacc" 1649 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "pow", (yyvsp[(3) - (3)].filterNode)); } 1533 #line 94 "yacc_parser.yacc" /* yacc.c:1646 */ 1534 { (yyval.filterNode) = new CFilterUnaryOpExprNode("neg", (yyvsp[0].filterNode)); } 1535 #line 1536 "yacc_parser.cpp" /* yacc.c:1646 */ 1650 1536 break; 1651 1537 1652 1538 case 28: 1653 /* Line 1792 of yacc.c*/1654 #line 93 "yacc_parser.yacc" 1655 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "eq", (yyvsp[(3) - (3)].filterNode)); } 1539 #line 95 "yacc_parser.yacc" /* yacc.c:1646 */ 1540 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "pow", (yyvsp[0].filterNode)); } 1541 #line 1542 "yacc_parser.cpp" /* yacc.c:1646 */ 1656 1542 break; 1657 1543 1658 1544 case 29: 1659 /* Line 1792 of yacc.c*/1660 #line 94 "yacc_parser.yacc" 1661 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "lt", (yyvsp[(3) - (3)].filterNode)); } 1545 #line 96 "yacc_parser.yacc" /* yacc.c:1646 */ 1546 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "eq", (yyvsp[0].filterNode)); } 1547 #line 1548 "yacc_parser.cpp" /* yacc.c:1646 */ 1662 1548 break; 1663 1549 1664 1550 case 30: 1665 /* Line 1792 of yacc.c*/1666 #line 95 "yacc_parser.yacc" 1667 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "gt", (yyvsp[(3) - (3)].filterNode)); } 1551 #line 97 "yacc_parser.yacc" /* yacc.c:1646 */ 1552 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "lt", (yyvsp[0].filterNode)); } 1553 #line 1554 "yacc_parser.cpp" /* yacc.c:1646 */ 1668 1554 break; 1669 1555 1670 1556 case 31: 1671 /* Line 1792 of yacc.c*/1672 #line 96 "yacc_parser.yacc" 1673 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "le", (yyvsp[(3) - (3)].filterNode)); } 1557 #line 98 "yacc_parser.yacc" /* yacc.c:1646 */ 1558 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "gt", (yyvsp[0].filterNode)); } 1559 #line 1560 "yacc_parser.cpp" /* yacc.c:1646 */ 1674 1560 break; 1675 1561 1676 1562 case 32: 1677 /* Line 1792 of yacc.c*/1678 #line 97 "yacc_parser.yacc" 1679 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "ge", (yyvsp[(3) - (3)].filterNode)); } 1563 #line 99 "yacc_parser.yacc" /* yacc.c:1646 */ 1564 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "le", (yyvsp[0].filterNode)); } 1565 #line 1566 "yacc_parser.cpp" /* yacc.c:1646 */ 1680 1566 break; 1681 1567 1682 1568 case 33: 1683 /* Line 1792 of yacc.c*/1684 #line 98 "yacc_parser.yacc" 1685 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "ne", (yyvsp[(3) - (3)].filterNode)); } 1569 #line 100 "yacc_parser.yacc" /* yacc.c:1646 */ 1570 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "ge", (yyvsp[0].filterNode)); } 1571 #line 1572 "yacc_parser.cpp" /* yacc.c:1646 */ 1686 1572 break; 1687 1573 1688 1574 case 34: 1689 /* Line 1792 of yacc.c*/1690 #line 99 "yacc_parser.yacc" 1691 { (yyval.filterNode) = (yyvsp[(2) - (3)].filterNode); } 1575 #line 101 "yacc_parser.yacc" /* yacc.c:1646 */ 1576 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "ne", (yyvsp[0].filterNode)); } 1577 #line 1578 "yacc_parser.cpp" /* yacc.c:1646 */ 1692 1578 break; 1693 1579 1694 1580 case 35: 1695 /* Line 1792 of yacc.c*/1696 #line 100 "yacc_parser.yacc" 1697 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "add", (yyvsp[(3) - (3)].scalarNode)); } 1581 #line 102 "yacc_parser.yacc" /* yacc.c:1646 */ 1582 { (yyval.filterNode) = (yyvsp[-1].filterNode); } 1583 #line 1584 "yacc_parser.cpp" /* yacc.c:1646 */ 1698 1584 break; 1699 1585 1700 1586 case 36: 1701 /* Line 1792 of yacc.c*/1702 #line 101 "yacc_parser.yacc" 1703 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "add", (yyvsp[(3) - (3)].filterNode)); } 1587 #line 103 "yacc_parser.yacc" /* yacc.c:1646 */ 1588 {(yyval.filterNode) = new CFilterScalarScalarFieldOpExprNode((yyvsp[-4].scalarNode), "cond",(yyvsp[-2].scalarNode), (yyvsp[0].filterNode));} 1589 #line 1590 "yacc_parser.cpp" /* yacc.c:1646 */ 1704 1590 break; 1705 1591 1706 1592 case 37: 1707 /* Line 1792 of yacc.c*/1708 #line 102 "yacc_parser.yacc" 1709 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "minus", (yyvsp[(3) - (3)].scalarNode)); } 1593 #line 104 "yacc_parser.yacc" /* yacc.c:1646 */ 1594 {(yyval.filterNode) = new CFilterScalarFieldScalarOpExprNode((yyvsp[-4].scalarNode), "cond",(yyvsp[-2].filterNode), (yyvsp[0].scalarNode));} 1595 #line 1596 "yacc_parser.cpp" /* yacc.c:1646 */ 1710 1596 break; 1711 1597 1712 1598 case 38: 1713 /* Line 1792 of yacc.c*/1714 #line 103 "yacc_parser.yacc" 1715 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "minus", (yyvsp[(3) - (3)].filterNode)); } 1599 #line 105 "yacc_parser.yacc" /* yacc.c:1646 */ 1600 {(yyval.filterNode) = new CFilterScalarFieldFieldOpExprNode((yyvsp[-4].scalarNode), "cond",(yyvsp[-2].filterNode), (yyvsp[0].filterNode));} 1601 #line 1602 "yacc_parser.cpp" /* yacc.c:1646 */ 1716 1602 break; 1717 1603 1718 1604 case 39: 1719 /* Line 1792 of yacc.c*/1720 #line 104 "yacc_parser.yacc" 1721 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "mult", (yyvsp[(3) - (3)].scalarNode)); } 1605 #line 106 "yacc_parser.yacc" /* yacc.c:1646 */ 1606 {(yyval.filterNode) = new CFilterFieldScalarScalarOpExprNode((yyvsp[-4].filterNode), "cond",(yyvsp[-2].scalarNode), (yyvsp[0].scalarNode));} 1607 #line 1608 "yacc_parser.cpp" /* yacc.c:1646 */ 1722 1608 break; 1723 1609 1724 1610 case 40: 1725 /* Line 1792 of yacc.c*/1726 #line 105 "yacc_parser.yacc" 1727 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "mult", (yyvsp[(3) - (3)].filterNode)); } 1611 #line 107 "yacc_parser.yacc" /* yacc.c:1646 */ 1612 {(yyval.filterNode) = new CFilterFieldScalarFieldOpExprNode((yyvsp[-4].filterNode), "cond",(yyvsp[-2].scalarNode), (yyvsp[0].filterNode));} 1613 #line 1614 "yacc_parser.cpp" /* yacc.c:1646 */ 1728 1614 break; 1729 1615 1730 1616 case 41: 1731 /* Line 1792 of yacc.c*/1732 #line 106 "yacc_parser.yacc" 1733 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "div", (yyvsp[(3) - (3)].scalarNode)); } 1617 #line 108 "yacc_parser.yacc" /* yacc.c:1646 */ 1618 {(yyval.filterNode) = new CFilterFieldFieldScalarOpExprNode((yyvsp[-4].filterNode), "cond",(yyvsp[-2].filterNode), (yyvsp[0].scalarNode));} 1619 #line 1620 "yacc_parser.cpp" /* yacc.c:1646 */ 1734 1620 break; 1735 1621 1736 1622 case 42: 1737 /* Line 1792 of yacc.c*/1738 #line 107 "yacc_parser.yacc" 1739 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "div", (yyvsp[(3) - (3)].filterNode)); } 1623 #line 109 "yacc_parser.yacc" /* yacc.c:1646 */ 1624 {(yyval.filterNode) = new CFilterFieldFieldFieldOpExprNode((yyvsp[-4].filterNode), "cond",(yyvsp[-2].filterNode), (yyvsp[0].filterNode));} 1625 #line 1626 "yacc_parser.cpp" /* yacc.c:1646 */ 1740 1626 break; 1741 1627 1742 1628 case 43: 1743 /* Line 1792 of yacc.c*/1744 #line 108 "yacc_parser.yacc" 1745 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "pow", (yyvsp[(3) - (3)].scalarNode)); } 1629 #line 110 "yacc_parser.yacc" /* yacc.c:1646 */ 1630 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "add", (yyvsp[0].scalarNode)); } 1631 #line 1632 "yacc_parser.cpp" /* yacc.c:1646 */ 1746 1632 break; 1747 1633 1748 1634 case 44: 1749 /* Line 1792 of yacc.c*/1750 #line 109 "yacc_parser.yacc" 1751 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "eq", (yyvsp[(3) - (3)].scalarNode)); } 1635 #line 111 "yacc_parser.yacc" /* yacc.c:1646 */ 1636 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "add", (yyvsp[0].filterNode)); } 1637 #line 1638 "yacc_parser.cpp" /* yacc.c:1646 */ 1752 1638 break; 1753 1639 1754 1640 case 45: 1755 /* Line 1792 of yacc.c*/1756 #line 110 "yacc_parser.yacc" 1757 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "eq", (yyvsp[(3) - (3)].filterNode)); } 1641 #line 112 "yacc_parser.yacc" /* yacc.c:1646 */ 1642 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "minus", (yyvsp[0].scalarNode)); } 1643 #line 1644 "yacc_parser.cpp" /* yacc.c:1646 */ 1758 1644 break; 1759 1645 1760 1646 case 46: 1761 /* Line 1792 of yacc.c*/1762 #line 111 "yacc_parser.yacc" 1763 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "lt", (yyvsp[(3) - (3)].scalarNode)); } 1647 #line 113 "yacc_parser.yacc" /* yacc.c:1646 */ 1648 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "minus", (yyvsp[0].filterNode)); } 1649 #line 1650 "yacc_parser.cpp" /* yacc.c:1646 */ 1764 1650 break; 1765 1651 1766 1652 case 47: 1767 /* Line 1792 of yacc.c*/1768 #line 112 "yacc_parser.yacc" 1769 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "lt", (yyvsp[(3) - (3)].filterNode)); } 1653 #line 114 "yacc_parser.yacc" /* yacc.c:1646 */ 1654 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "mult", (yyvsp[0].scalarNode)); } 1655 #line 1656 "yacc_parser.cpp" /* yacc.c:1646 */ 1770 1656 break; 1771 1657 1772 1658 case 48: 1773 /* Line 1792 of yacc.c*/1774 #line 113 "yacc_parser.yacc" 1775 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "gt", (yyvsp[(3) - (3)].scalarNode)); } 1659 #line 115 "yacc_parser.yacc" /* yacc.c:1646 */ 1660 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "mult", (yyvsp[0].filterNode)); } 1661 #line 1662 "yacc_parser.cpp" /* yacc.c:1646 */ 1776 1662 break; 1777 1663 1778 1664 case 49: 1779 /* Line 1792 of yacc.c*/1780 #line 114 "yacc_parser.yacc" 1781 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "gt", (yyvsp[(3) - (3)].filterNode)); } 1665 #line 116 "yacc_parser.yacc" /* yacc.c:1646 */ 1666 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "div", (yyvsp[0].scalarNode)); } 1667 #line 1668 "yacc_parser.cpp" /* yacc.c:1646 */ 1782 1668 break; 1783 1669 1784 1670 case 50: 1785 /* Line 1792 of yacc.c*/1786 #line 115 "yacc_parser.yacc" 1787 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "le", (yyvsp[(3) - (3)].scalarNode)); } 1671 #line 117 "yacc_parser.yacc" /* yacc.c:1646 */ 1672 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "div", (yyvsp[0].filterNode)); } 1673 #line 1674 "yacc_parser.cpp" /* yacc.c:1646 */ 1788 1674 break; 1789 1675 1790 1676 case 51: 1791 /* Line 1792 of yacc.c*/1792 #line 116 "yacc_parser.yacc" 1793 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "le", (yyvsp[(3) - (3)].filterNode)); } 1677 #line 118 "yacc_parser.yacc" /* yacc.c:1646 */ 1678 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "pow", (yyvsp[0].scalarNode)); } 1679 #line 1680 "yacc_parser.cpp" /* yacc.c:1646 */ 1794 1680 break; 1795 1681 1796 1682 case 52: 1797 /* Line 1792 of yacc.c*/1798 #line 117 "yacc_parser.yacc" 1799 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "ge", (yyvsp[(3) - (3)].scalarNode)); } 1683 #line 119 "yacc_parser.yacc" /* yacc.c:1646 */ 1684 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "eq", (yyvsp[0].scalarNode)); } 1685 #line 1686 "yacc_parser.cpp" /* yacc.c:1646 */ 1800 1686 break; 1801 1687 1802 1688 case 53: 1803 /* Line 1792 of yacc.c*/1804 #line 118 "yacc_parser.yacc" 1805 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "ge", (yyvsp[(3) - (3)].filterNode)); } 1689 #line 120 "yacc_parser.yacc" /* yacc.c:1646 */ 1690 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "eq", (yyvsp[0].filterNode)); } 1691 #line 1692 "yacc_parser.cpp" /* yacc.c:1646 */ 1806 1692 break; 1807 1693 1808 1694 case 54: 1809 /* Line 1792 of yacc.c*/1810 #line 119 "yacc_parser.yacc" 1811 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "ne", (yyvsp[(3) - (3)].scalarNode)); } 1695 #line 121 "yacc_parser.yacc" /* yacc.c:1646 */ 1696 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "lt", (yyvsp[0].scalarNode)); } 1697 #line 1698 "yacc_parser.cpp" /* yacc.c:1646 */ 1812 1698 break; 1813 1699 1814 1700 case 55: 1815 /* Line 1792 of yacc.c*/1816 #line 120 "yacc_parser.yacc" 1817 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "ne", (yyvsp[(3) - (3)].filterNode)); } 1701 #line 122 "yacc_parser.yacc" /* yacc.c:1646 */ 1702 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "lt", (yyvsp[0].filterNode)); } 1703 #line 1704 "yacc_parser.cpp" /* yacc.c:1646 */ 1818 1704 break; 1819 1705 1820 1706 case 56: 1821 /* Line 1792 of yacc.c */ 1822 #line 121 "yacc_parser.yacc" 1823 { (yyval.filterNode) = new CFilterUnaryOpExprNode(*(yyvsp[(1) - (4)].str), (yyvsp[(3) - (4)].filterNode)); delete (yyvsp[(1) - (4)].str); } 1824 break; 1825 1826 1827 /* Line 1792 of yacc.c */ 1828 #line 1829 "yacc_parser.cpp" 1707 #line 123 "yacc_parser.yacc" /* yacc.c:1646 */ 1708 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "gt", (yyvsp[0].scalarNode)); } 1709 #line 1710 "yacc_parser.cpp" /* yacc.c:1646 */ 1710 break; 1711 1712 case 57: 1713 #line 124 "yacc_parser.yacc" /* yacc.c:1646 */ 1714 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "gt", (yyvsp[0].filterNode)); } 1715 #line 1716 "yacc_parser.cpp" /* yacc.c:1646 */ 1716 break; 1717 1718 case 58: 1719 #line 125 "yacc_parser.yacc" /* yacc.c:1646 */ 1720 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "le", (yyvsp[0].scalarNode)); } 1721 #line 1722 "yacc_parser.cpp" /* yacc.c:1646 */ 1722 break; 1723 1724 case 59: 1725 #line 126 "yacc_parser.yacc" /* yacc.c:1646 */ 1726 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "le", (yyvsp[0].filterNode)); } 1727 #line 1728 "yacc_parser.cpp" /* yacc.c:1646 */ 1728 break; 1729 1730 case 60: 1731 #line 127 "yacc_parser.yacc" /* yacc.c:1646 */ 1732 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "ge", (yyvsp[0].scalarNode)); } 1733 #line 1734 "yacc_parser.cpp" /* yacc.c:1646 */ 1734 break; 1735 1736 case 61: 1737 #line 128 "yacc_parser.yacc" /* yacc.c:1646 */ 1738 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "ge", (yyvsp[0].filterNode)); } 1739 #line 1740 "yacc_parser.cpp" /* yacc.c:1646 */ 1740 break; 1741 1742 case 62: 1743 #line 129 "yacc_parser.yacc" /* yacc.c:1646 */ 1744 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "ne", (yyvsp[0].scalarNode)); } 1745 #line 1746 "yacc_parser.cpp" /* yacc.c:1646 */ 1746 break; 1747 1748 case 63: 1749 #line 130 "yacc_parser.yacc" /* yacc.c:1646 */ 1750 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "ne", (yyvsp[0].filterNode)); } 1751 #line 1752 "yacc_parser.cpp" /* yacc.c:1646 */ 1752 break; 1753 1754 case 64: 1755 #line 131 "yacc_parser.yacc" /* yacc.c:1646 */ 1756 { (yyval.filterNode) = new CFilterUnaryOpExprNode(*(yyvsp[-3].str), (yyvsp[-1].filterNode)); delete (yyvsp[-3].str); } 1757 #line 1758 "yacc_parser.cpp" /* yacc.c:1646 */ 1758 break; 1759 1760 1761 #line 1762 "yacc_parser.cpp" /* yacc.c:1646 */ 1829 1762 default: break; 1830 1763 } … … 1848 1781 *++yyvsp = yyval; 1849 1782 1850 /* Now `shift' the result of the reduction. Determine what state1783 /* Now 'shift' the result of the reduction. Determine what state 1851 1784 that goes to, based on the state we popped back to and the rule 1852 1785 number reduced by. */ … … 1863 1796 1864 1797 1865 /*------------------------------------ .1866 | yyerrlab -- here on detecting error |1867 `------------------------------------ */1798 /*--------------------------------------. 1799 | yyerrlab -- here on detecting error. | 1800 `--------------------------------------*/ 1868 1801 yyerrlab: 1869 1802 /* Make sure we have latest lookahead translation. See comments at … … 1916 1849 { 1917 1850 /* If just tried and failed to reuse lookahead token after an 1918 1851 error, discard it. */ 1919 1852 1920 1853 if (yychar <= YYEOF) 1921 1922 1923 1924 1925 1854 { 1855 /* Return failure if at end of input. */ 1856 if (yychar == YYEOF) 1857 YYABORT; 1858 } 1926 1859 else 1927 1928 1929 1930 1931 1860 { 1861 yydestruct ("Error: discarding", 1862 yytoken, &yylval); 1863 yychar = YYEMPTY; 1864 } 1932 1865 } 1933 1866 … … 1948 1881 goto yyerrorlab; 1949 1882 1950 /* Do not reclaim the symbols of the rule wh ichaction triggered1883 /* Do not reclaim the symbols of the rule whose action triggered 1951 1884 this YYERROR. */ 1952 1885 YYPOPSTACK (yylen); … … 1961 1894 `-------------------------------------------------------------*/ 1962 1895 yyerrlab1: 1963 yyerrstatus = 3; 1896 yyerrstatus = 3; /* Each real token shifted decrements this. */ 1964 1897 1965 1898 for (;;) … … 1967 1900 yyn = yypact[yystate]; 1968 1901 if (!yypact_value_is_default (yyn)) 1969 1970 1971 1972 1973 1974 1975 1976 1977 1902 { 1903 yyn += YYTERROR; 1904 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 1905 { 1906 yyn = yytable[yyn]; 1907 if (0 < yyn) 1908 break; 1909 } 1910 } 1978 1911 1979 1912 /* Pop the current state because it cannot handle the error token. */ 1980 1913 if (yyssp == yyss) 1981 1914 YYABORT; 1982 1915 1983 1916 1984 1917 yydestruct ("Error: popping", 1985 1918 yystos[yystate], yyvsp); 1986 1919 YYPOPSTACK (1); 1987 1920 yystate = *yyssp; … … 2034 1967 yytoken, &yylval); 2035 1968 } 2036 /* Do not reclaim the symbols of the rule wh ichaction triggered1969 /* Do not reclaim the symbols of the rule whose action triggered 2037 1970 this YYABORT or YYACCEPT. */ 2038 1971 YYPOPSTACK (yylen); … … 2041 1974 { 2042 1975 yydestruct ("Cleanup: popping", 2043 1976 yystos[*yyssp], yyvsp); 2044 1977 YYPOPSTACK (1); 2045 1978 } … … 2052 1985 YYSTACK_FREE (yymsg); 2053 1986 #endif 2054 /* Make sure YYID is used. */ 2055 return YYID (yyresult); 1987 return yyresult; 2056 1988 } 2057 2058 2059 /* Line 2055 of yacc.c */ 2060 #line 123 "yacc_parser.yacc" 1989 #line 133 "yacc_parser.yacc" /* yacc.c:1906 */ 2061 1990 2062 1991 -
XIOS/trunk/src/parse_expr/yacc_parser.hpp
r1019 r1038 1 /* A Bison parser, made by GNU Bison 2.7. */1 /* A Bison parser, made by GNU Bison 3.0.2. */ 2 2 3 3 /* Bison interface for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2012Free Software Foundation, Inc.6 4 5 Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. 6 7 7 This program is free software: you can redistribute it and/or modify 8 8 it under the terms of the GNU General Public License as published by 9 9 the Free Software Foundation, either version 3 of the License, or 10 10 (at your option) any later version. 11 11 12 12 This program is distributed in the hope that it will be useful, 13 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 15 GNU General Public License for more details. 16 16 17 17 You should have received a copy of the GNU General Public License 18 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ … … 27 27 Bison output files to be licensed under the GNU General Public 28 28 License without this special exception. 29 29 30 30 This special exception was added by the Free Software Foundation in 31 31 version 2.2 of Bison. */ … … 33 33 #ifndef YY_YY_YACC_PARSER_HPP_INCLUDED 34 34 # define YY_YY_YACC_PARSER_HPP_INCLUDED 35 /* Enabling traces. */35 /* Debug traces. */ 36 36 #ifndef YYDEBUG 37 37 # define YYDEBUG 0 … … 41 41 #endif 42 42 43 /* Token s. */43 /* Token type. */ 44 44 #ifndef YYTOKENTYPE 45 45 # define YYTOKENTYPE 46 /* Put the tokens into the symbol table, so that GDB and other debuggers 47 know about them. */ 48 enum yytokentype { 49 NUMBER = 258, 50 VAR = 259, 51 ID = 260, 52 AVERAGE = 261, 53 PLUS = 262, 54 MINUS = 263, 55 TIMES = 264, 56 DIVIDE = 265, 57 POWER = 266, 58 EQ = 267, 59 LT = 268, 60 GT = 269, 61 LE = 270, 62 GE = 271, 63 NE = 272, 64 LEFT_PARENTHESIS = 273, 65 RIGHT_PARENTHESIS = 274, 66 END = 275, 67 NEG = 276 68 }; 46 enum yytokentype 47 { 48 NUMBER = 258, 49 VAR = 259, 50 ID = 260, 51 AVERAGE = 261, 52 PLUS = 262, 53 MINUS = 263, 54 TIMES = 264, 55 DIVIDE = 265, 56 POWER = 266, 57 EQ = 267, 58 LT = 268, 59 GT = 269, 60 LE = 270, 61 GE = 271, 62 NE = 272, 63 LEFT_PARENTHESIS = 273, 64 RIGHT_PARENTHESIS = 274, 65 QUESTION_MARK = 275, 66 COLON = 276, 67 END = 277, 68 NEG = 278 69 }; 69 70 #endif 70 71 71 72 /* Value type. */ 72 73 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 73 typedef union YYSTYPE 74 typedef union YYSTYPE YYSTYPE; 75 union YYSTYPE 74 76 { 75 /* Line 2058 of yacc.c */ 76 #line 35 "yacc_parser.yacc" 77 #line 35 "yacc_parser.yacc" /* yacc.c:1909 */ 77 78 78 79 std::string* str; /* symbol table index */ … … 80 81 xios::IFilterExprNode* filterNode; 81 82 82 83 /* Line 2058 of yacc.c */ 84 #line 85 "yacc_parser.hpp" 85 } YYSTYPE; 83 #line 84 "yacc_parser.hpp" /* yacc.c:1909 */ 84 }; 86 85 # define YYSTYPE_IS_TRIVIAL 1 87 # define yystype YYSTYPE /* obsolescent; will be withdrawn */88 86 # define YYSTYPE_IS_DECLARED 1 89 87 #endif 90 88 89 91 90 extern YYSTYPE yylval; 92 91 93 #ifdef YYPARSE_PARAM94 #if defined __STDC__ || defined __cplusplus95 int yyparse (void *YYPARSE_PARAM);96 #else97 int yyparse ();98 #endif99 #else /* ! YYPARSE_PARAM */100 #if defined __STDC__ || defined __cplusplus101 92 int yyparse (void); 102 #else103 int yyparse ();104 #endif105 #endif /* ! YYPARSE_PARAM */106 93 107 94 #endif /* !YY_YY_YACC_PARSER_HPP_INCLUDED */ -
XIOS/trunk/src/parse_expr/yacc_parser.yacc
r1019 r1038 44 44 %token EQ LT GT LE GE NE 45 45 %token LEFT_PARENTHESIS RIGHT_PARENTHESIS 46 %token QUESTION_MARK COLON 46 47 %token <str> END 47 48 49 %nonassoc QUESTION_MARK COLON 48 50 %left EQ LT GT LE GE NE 49 51 %left PLUS MINUS … … 78 80 | Expression GE Expression { $$ = new CScalarBinaryOpExprNode($1, "ge", $3); } 79 81 | Expression NE Expression { $$ = new CScalarBinaryOpExprNode($1, "ne", $3); } 82 | Expression QUESTION_MARK Expression COLON Expression {$$ = new CScalarTernaryOpExprNode($1, "cond", $3, $5);} 80 83 | LEFT_PARENTHESIS Expression RIGHT_PARENTHESIS { $$ = $2; } 81 84 | ID LEFT_PARENTHESIS Expression RIGHT_PARENTHESIS { $$ = new CScalarUnaryOpExprNode(*$1, $3); delete $1; } … … 98 101 | Field_expr NE Field_expr { $$ = new CFilterFieldFieldOpExprNode($1, "ne", $3); } 99 102 | LEFT_PARENTHESIS Field_expr RIGHT_PARENTHESIS { $$ = $2; } 103 | Expression QUESTION_MARK Expression COLON Field_expr {$$ = new CFilterScalarScalarFieldOpExprNode($1, "cond",$3, $5);} 104 | Expression QUESTION_MARK Field_expr COLON Expression {$$ = new CFilterScalarFieldScalarOpExprNode($1, "cond",$3, $5);} 105 | Expression QUESTION_MARK Field_expr COLON Field_expr {$$ = new CFilterScalarFieldFieldOpExprNode($1, "cond",$3, $5);} 106 | Field_expr QUESTION_MARK Expression COLON Expression {$$ = new CFilterFieldScalarScalarOpExprNode($1, "cond",$3, $5);} 107 | Field_expr QUESTION_MARK Expression COLON Field_expr {$$ = new CFilterFieldScalarFieldOpExprNode($1, "cond",$3, $5);} 108 | Field_expr QUESTION_MARK Field_expr COLON Expression {$$ = new CFilterFieldFieldScalarOpExprNode($1, "cond",$3, $5);} 109 | Field_expr QUESTION_MARK Field_expr COLON Field_expr {$$ = new CFilterFieldFieldFieldOpExprNode($1, "cond",$3, $5);} 100 110 | Field_expr PLUS Expression { $$ = new CFilterFieldScalarOpExprNode($1, "add", $3); } 101 111 | Expression PLUS Field_expr { $$ = new CFilterScalarFieldOpExprNode($1, "add", $3); }
Note: See TracChangeset
for help on using the changeset viewer.