logicOpNode.h
Ir a la documentación de este archivo.
1 //logicOpNode.h
2 //-------------------------------------------------------------------------------------------
3 /*
4  * Fco. Javier Bohórquez Ogalla
5  * 75766599-E
6  * Puerto Real (Cádiz)
7  * powersgame@gmail.com
8  */
9 //-------------------------------------------------------------------------------------------
10 
11 //-------------------------------------------------------------------------------------------
12 /*
13  * This program is free software; you can redistribute it and/or modify
14  * it under the terms of the GNU General Public License as published by
15  * the Free Software Foundation; either version 2 of the License, or
16  * (at your option) any later version.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21  * GNU General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with this program; if not, write to the Free Software
25  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
26  * MA 02110-1301, USA.
27  */
28 //-------------------------------------------------------------------------------------------
29 
30 //-------------------------------------------------------------------------------------------
39 //-------------------------------------------------------------------------------------------
40 
41 //-------------------------------------------------------------------------------------------
42 #ifndef _RUN_OPERATORS_LOGICOPNODE_
43 #define _RUN_OPERATORS_LOGICOPNODE_
44 
45 #include "../tree/typeNode.h"
46 //-------------------------------------------------------------------------------------------
47 
48 //-------------------------------------------------------------------------------------------
59 class orNode :
60  public nexpNode {
61  public:
67  orNode (runNode* op1, runNode* op2);
73  void run ();
80  bool do_or (runNode* op1, runNode* op2);
81  private:
82  runNode *op1_, *op2_;
83 };
84 //-------------------------------------------------------------------------------------------
85 
86 //-------------------------------------------------------------------------------------------
96 class andNode :
97  public nexpNode {
98  public:
104  andNode (runNode* op1, runNode* op2);
110  void run ();
117  bool do_and (runNode* op1, runNode* op2);
118  private:
119  runNode *op1_, *op2_;
120 };
121 //-------------------------------------------------------------------------------------------
122 
123 //-------------------------------------------------------------------------------------------
134 class notNode :
135  public logicNode {
136  public:
141  notNode (runNode* op);
146  void run ();
152  bool do_not (runNode* op);
153  private:
154  runNode *op_;
155 };
156 //-------------------------------------------------------------------------------------------
157 
158 //-------------------------------------------------------------------------------------------
167 class lthNode :
168  public logicNode {
169  public:
176  lthNode (runNode* node1, runNode*node2);
183  void run ();
190  static bool do_lth (runNode *op1, runNode *op2);
191 
192  private:
193  runNode *node1_, *node2_;
194 };
195 //-------------------------------------------------------------------------------------------
196 
197 //-------------------------------------------------------------------------------------------
207 class leqNode :
208  public logicNode {
209  public:
215  leqNode (runNode* node1, runNode*node2);
222  void run ();
229  static bool do_leq (runNode *op1, runNode *op2);
230  private:
231  runNode *node1_, *node2_;
232 };
233 //-------------------------------------------------------------------------------------------
234 
235 //-------------------------------------------------------------------------------------------
244 class gthNode :
245  public logicNode {
246  public:
252  gthNode (runNode* node1, runNode*node2);
259  void run ();
266  static bool do_gth (runNode *op1, runNode *op2);
267  private:
268  runNode *node1_, *node2_;
269 };
270 //-------------------------------------------------------------------------------------------
271 
272 //-------------------------------------------------------------------------------------------
282 class geqNode :
283  public logicNode {
284  public:
290  geqNode (runNode* node1, runNode*node2);
297  void run ();
304  static bool do_geq (runNode *op1, runNode *op2);
305  private:
306  runNode *node1_, *node2_;
307 };
308 //-------------------------------------------------------------------------------------------
309 
310 //-------------------------------------------------------------------------------------------
323 class eqNode :
324  public logicNode {
325  public:
331  eqNode (runNode* node1, runNode*node2);
338  void run ();
345  static bool do_eq (runNode *op1, runNode* op2);
346  private:
347  runNode *node1_, *node2_;
348 };
349 //-------------------------------------------------------------------------------------------
350 
351 //-------------------------------------------------------------------------------------------
363 class idenNode :
364  public logicNode {
365  public:
371  idenNode (runNode* node1, runNode*node2);
378  void run ();
385  static bool do_iden (runNode* op1, runNode* op2);
386  private:
387  runNode *node1_, *node2_;
388 };
389 //-------------------------------------------------------------------------------------------
390 
391 //-------------------------------------------------------------------------------------------
403 class neqNode :
404  public logicNode {
405  public:
411  neqNode (runNode* node1, runNode*node2);
418  void run ();
425  static bool do_neq (runNode* op1, runNode* op2);
426  private:
427  runNode *node1_, *node2_;
428 };
429 //-------------------------------------------------------------------------------------------
430 
431 //-------------------------------------------------------------------------------------------
443 class nidenNode :
444  public logicNode {
445  public:
451  nidenNode (runNode* node1, runNode*node2);
458  void run ();
465  static bool do_niden (runNode* op1, runNode* op2);
466  private:
467  runNode *node1_, *node2_;
468 };
469 //-------------------------------------------------------------------------------------------
470 
471 //-------------------------------------------------------------------------------------------
483 class isNullNode :
484  public logicNode {
485  public:
490  isNullNode (runNode* node);
496  void run ();
497  private:
498  runNode *node_;
499 };
500 //----------------------------------------------------------------------
501 
502 //----------------------------------------------------------------------
515 class isBoolNode : public logicNode {
516  public:
521  isBoolNode (runNode* node);
522  void run ();
528  private:
529  runNode *node_;
530 };
531 //----------------------------------------------------------------------
532 
533 //----------------------------------------------------------------------
546 class isStringNode : public logicNode {
547  public:
552  isStringNode (runNode* node);
558  void run ();
559  private:
560  runNode *node_;
561 };
562 //-------------------------------------------------------------------------------------------
563 
564 //-------------------------------------------------------------------------------------------
577 class isNumNode : public logicNode {
578  public:
583  isNumNode (runNode* node);
589  void run ();
590  private:
591  runNode *node_;
592 };
593 //-------------------------------------------------------------------------------------------
594 
595 //-------------------------------------------------------------------------------------------
608 class isArrayNode : public logicNode {
609  public:
614  isArrayNode (runNode* node);
620  void run ();
621  private:
622  runNode *node_;
623 };
624 //-------------------------------------------------------------------------------------------
625 
626 //-------------------------------------------------------------------------------------------
639 class isObjectNode : public logicNode {
640  public:
645  isObjectNode (runNode* node);
651  void run ();
652  private:
653  runNode *node_;
654 };
655 //-------------------------------------------------------------------------------------------
656 
657 //-------------------------------------------------------------------------------------------
669 class emptyNode : public logicNode {
670  public:
675  emptyNode (runNode* elem);
680  void run ();
681  private:
682  runNode *elem_;
683 };
684 //-------------------------------------------------------------------------------------------
685 
686 //-------------------------------------------------------------------------------------------
687 #endif
688 //-------------------------------------------------------------------------------------------
689 //Fco. Javier Bohórquez Ogalla
Nodo operador comprobación de objeto.
Definition: logicOpNode.h:639
Node operador elemento vacío.
Definition: logicOpNode.h:669
lthNode(runNode *node1, runNode *node2)
Definition: logicOpNode.cpp:134
void run()
Definition: logicOpNode.cpp:631
void run()
Definition: logicOpNode.cpp:532
Nodo operador comprobación de numérico.
Definition: logicOpNode.h:577
idenNode(runNode *node1, runNode *node2)
Definition: logicOpNode.cpp:405
Nodos lógicos.
Definition: expNode.h:279
void run()
Definition: logicOpNode.cpp:452
emptyNode(runNode *elem)
Definition: logicOpNode.cpp:629
bool do_not(runNode *op)
Definition: logicOpNode.cpp:127
void run()
Definition: logicOpNode.cpp:611
isBoolNode(runNode *node)
Definition: logicOpNode.cpp:530
static bool do_leq(runNode *op1, runNode *op2)
Definition: logicOpNode.cpp:236
Nodo operador comprobación de array.
Definition: logicOpNode.h:608
isNullNode(runNode *node)
Definition: logicOpNode.cpp:510
gthNode(runNode *node1, runNode *node2)
Definition: logicOpNode.cpp:243
void run()
Definition: logicOpNode.cpp:76
leqNode(runNode *node1, runNode *node2)
Definition: logicOpNode.cpp:212
isStringNode(runNode *node)
Definition: logicOpNode.cpp:550
Nodo operador identico.
Definition: logicOpNode.h:363
static bool do_neq(runNode *op1, runNode *op2)
Definition: logicOpNode.cpp:472
Nodo operador igual que.
Definition: logicOpNode.h:323
static bool do_niden(runNode *op1, runNode *op2)
Definition: logicOpNode.cpp:503
void run()
Definition: logicOpNode.cpp:572
static bool do_iden(runNode *op1, runNode *op2)
Definition: logicOpNode.cpp:429
Nodo operador de comprobación de nulo.
Definition: logicOpNode.h:483
isNumNode(runNode *node)
Definition: logicOpNode.cpp:570
void run()
Definition: logicOpNode.cpp:247
static bool do_lth(runNode *op1, runNode *op2)
Definition: logicOpNode.cpp:158
geqNode(runNode *node1, runNode *node2)
Definition: logicOpNode.cpp:274
void run()
Definition: logicOpNode.cpp:512
Nodo operador menor o igual que.
Definition: logicOpNode.h:207
Nodo ejecutable.
Definition: runTree.h:123
static bool do_eq(runNode *op1, runNode *op2)
Definition: logicOpNode.cpp:329
void run()
Definition: logicOpNode.cpp:40
Nodo operador menor que.
Definition: logicOpNode.h:167
nidenNode(runNode *node1, runNode *node2)
Definition: logicOpNode.cpp:479
void run()
Definition: logicOpNode.cpp:483
void run()
Definition: logicOpNode.cpp:278
void run()
Definition: logicOpNode.cpp:591
Nodo operador AND.
Definition: logicOpNode.h:96
Nodo operador NOT.
Definition: logicOpNode.h:134
andNode(runNode *op1, runNode *op2)
Definition: logicOpNode.cpp:74
static bool do_geq(runNode *op1, runNode *op2)
Definition: logicOpNode.cpp:298
Nodo operador comprobación de cadena de caracteres.
Definition: logicOpNode.h:546
static bool do_gth(runNode *op1, runNode *op2)
Definition: logicOpNode.cpp:267
Nodo operador OR.
Definition: logicOpNode.h:59
void run()
Definition: logicOpNode.cpp:309
Nodo operador no identico.
Definition: logicOpNode.h:443
void run()
Definition: logicOpNode.cpp:552
notNode(runNode *op)
Definition: logicOpNode.cpp:110
isObjectNode(runNode *node)
Definition: logicOpNode.cpp:609
orNode(runNode *op1, runNode *op2)
Definition: logicOpNode.cpp:38
neqNode(runNode *node1, runNode *node2)
Definition: logicOpNode.cpp:448
Nodo operador distinto.
Definition: logicOpNode.h:403
isArrayNode(runNode *node)
Definition: logicOpNode.cpp:589
void run()
Definition: logicOpNode.cpp:409
bool do_or(runNode *op1, runNode *op2)
Definition: logicOpNode.cpp:67
void run()
Definition: logicOpNode.cpp:138
bool do_and(runNode *op1, runNode *op2)
Definition: logicOpNode.cpp:103
eqNode(runNode *node1, runNode *node2)
Definition: logicOpNode.cpp:305
Nodo operador comprobación de booleano.
Definition: logicOpNode.h:515
void run()
Definition: logicOpNode.cpp:216
void run()
Definition: logicOpNode.cpp:112
Nodo operador mayor o igual que.
Definition: logicOpNode.h:282
Nodo expresión de tipo no definido.
Definition: expNode.h:164
Nodo operador mayor que.
Definition: logicOpNode.h:244