arrayOpNode.h
Ir a la documentación de este archivo.
1 //arrayOpNode.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_ARRAYOPNODE_
43 #define _RUN_OPERATORS_ARRAYOPNODE_
44 
45 #include "../tree/typeNode.h"
46 //-------------------------------------------------------------------------------------------
47 
48 //-------------------------------------------------------------------------------------------
59 class reduceNode : public nexpNode {
60  public:
67  reduceNode (runNode* elem, runNode* func);
72  void run ();
78  static runNode* asMethod ();
79  private:
80  runNode *elem_, *func_;
81 };
82 //----------------------------------------------------------------------
83 
84 //----------------------------------------------------------------------
92 class arrayChunkNode : public nexpNode {
93  public:
100  arrayChunkNode (runNode* array, runNode* size);
106  void run ();
112  static runNode *asMethod();
113  private:
114  runNode *array_, *size_;
115 };
116 //----------------------------------------------------------------------
117 
118 //----------------------------------------------------------------------
128 class implodeNode : public stringNode {
129  public:
136  implodeNode (runNode* str, runNode* array);
143  void run ();
149  static runNode* asMethod ();
150  private:
151  runNode *array_, *str_;
152 };
153 //----------------------------------------------------------------------
154 
155 //----------------------------------------------------------------------
163 class arraylastNode : public nexpNode {
164  public:
169  arraylastNode (runNode* array);
175  void run ();
181  static runNode* asMethod ();
182  private:
183  runNode *array_;
184 };
185 //----------------------------------------------------------------------
186 
187 //----------------------------------------------------------------------
196 class arrayfirstNode : public nexpNode {
197  public:
202  arrayfirstNode (runNode* array);
208  void run ();
214  static runNode* asMethod ();
215  private:
216  runNode *array_;
217 };
218 //----------------------------------------------------------------------
219 
220 //----------------------------------------------------------------------
229 class arrayinsertNode : public nexpNode {
230  public:
237  arrayinsertNode (runNode* array, runNode* index, runNode *element);
243  void run ();
249  static runNode* asMethod ();
250  protected:
251  runNode *array_, *index_, *element_;
252 };
253 //----------------------------------------------------------------------
254 
255 //----------------------------------------------------------------------
264 class arraydeleteNode : public nexpNode {
265  public:
271  arraydeleteNode (runNode* array, runNode* index);
277  void run ();
283  static runNode* asMethod ();
284  protected:
285  runNode *array_, *index_;
286 };
287 //----------------------------------------------------------------------
288 
289 //----------------------------------------------------------------------
297  public:
303  arrayunshiftNode (runNode* array, runNode* element);
309  static runNode* asMethod ();
310 };
311 //----------------------------------------------------------------------
312 
313 //----------------------------------------------------------------------
322  public:
328  arraypushNode (runNode* array, runNode* element);
334  void run();
340  static runNode* asMethod ();
341 };
342 //----------------------------------------------------------------------
343 
344 //----------------------------------------------------------------------
353  public:
358  arrayshiftNode (runNode* array);
364  void run ();
370  static runNode* asMethod ();
371 };
372 //----------------------------------------------------------------------
373 
374 //----------------------------------------------------------------------
384  public:
389  arraypopNode (runNode* array);
395  void run ();
401  static runNode* asMethod ();
402 };
403 //-------------------------------------------------------------------------------------------------------
404 
405 //-------------------------------------------------------------------------------------------------------
406 #endif
407 //-------------------------------------------------------------------------------------------------------
408 //Fco. Javier Bohórquez Ogalla
void run()
Definition: arrayOpNode.cpp:384
void run()
Definition: arrayOpNode.cpp:40
static runNode * asMethod()
Definition: arrayOpNode.cpp:137
Nodo unión de elementos de array.
Definition: arrayOpNode.h:128
Nodo funcion inserta al final del array.
Definition: arrayOpNode.h:321
static runNode * asMethod()
Definition: arrayOpNode.cpp:199
Nodo division de array.
Definition: arrayOpNode.h:92
static runNode * asMethod()
Definition: arrayOpNode.cpp:275
arraypushNode(runNode *array, runNode *element)
Definition: arrayOpNode.cpp:443
arrayChunkNode(runNode *array, runNode *size)
Definition: arrayOpNode.cpp:88
implodeNode(runNode *str, runNode *array)
Definition: arrayOpNode.cpp:148
Nodo función elimina y devuelve el primer elemento de array.
Definition: arrayOpNode.h:352
Nodo función elimina y devuelve el último elemento de array.
Definition: arrayOpNode.h:383
Nodo reduccion de array.
Definition: arrayOpNode.h:59
arrayunshiftNode(runNode *array, runNode *element)
Definition: arrayOpNode.cpp:429
Nodo función eliminar elemento de array.
Definition: arrayOpNode.h:264
static runNode * asMethod()
Definition: arrayOpNode.cpp:370
reduceNode(runNode *elem, runNode *func)
Definition: arrayOpNode.cpp:38
static runNode * asMethod()
Definition: arrayOpNode.cpp:239
static runNode * asMethod()
Definition: arrayOpNode.cpp:77
arrayinsertNode(runNode *array, runNode *index, runNode *element)
Definition: arrayOpNode.cpp:284
Nodo función priemer elemento de array.
Definition: arrayOpNode.h:196
void run()
Definition: arrayOpNode.cpp:526
void run()
Definition: arrayOpNode.cpp:90
Nodo ejecutable.
Definition: runTree.h:123
static runNode * asMethod()
Definition: arrayOpNode.cpp:561
arraydeleteNode(runNode *array, runNode *index)
Definition: arrayOpNode.cpp:382
static runNode * asMethod()
Definition: arrayOpNode.cpp:469
arraylastNode(runNode *array)
Definition: arrayOpNode.cpp:210
Nodo función insertar elemento en array.
Definition: arrayOpNode.h:229
void run()
Definition: arrayOpNode.cpp:250
void run()
Definition: arrayOpNode.cpp:286
void run()
Definition: arrayOpNode.cpp:152
Nodo obtener último elemento de array.
Definition: arrayOpNode.h:163
arraypopNode(runNode *array)
Definition: arrayOpNode.cpp:524
static runNode * asMethod()
Definition: arrayOpNode.cpp:432
arrayfirstNode(runNode *array)
Definition: arrayOpNode.cpp:248
arrayshiftNode(runNode *array)
Definition: arrayOpNode.cpp:480
Nodo función insertar al inicio de array.
Definition: arrayOpNode.h:296
void run()
Definition: arrayOpNode.cpp:212
static runNode * asMethod()
Definition: arrayOpNode.cpp:418
Nodos cadenas de texto.
Definition: expNode.h:418
void run()
Definition: arrayOpNode.cpp:445
static runNode * asMethod()
Definition: arrayOpNode.cpp:515
Nodo expresión de tipo no definido.
Definition: expNode.h:164
void run()
Definition: arrayOpNode.cpp:482