Reference Guide  2.5.0
psyclone.f2pygen.DoGen Class Reference
Inheritance diagram for psyclone.f2pygen.DoGen:
Collaboration diagram for psyclone.f2pygen.DoGen:

Public Member Functions

def __init__ (self, parent, variable_name, start, end, step=None)
 
def add (self, content, position=None, bubble_up=False)
 
- Public Member Functions inherited from psyclone.f2pygen.BaseGen
def __init__ (self, parent, root)
 
def parent (self)
 
def children (self)
 
def root (self)
 
def add (self, new_object, position=None)
 
def previous_loop (self)
 
def last_declaration (self)
 
def start_parent_loop (self, debug=False)
 

Detailed Description

 Create a Fortran Do loop 

Definition at line 1351 of file f2pygen.py.

Constructor & Destructor Documentation

◆ __init__()

def psyclone.f2pygen.DoGen.__init__ (   self,
  parent,
  variable_name,
  start,
  end,
  step = None 
)
:param parent: the node to which to add this do loop as a child
:type parent: :py:class:`psyclone.f2pygen.BaseGen`
:param str variable_name: the name of the loop variable
:param str start: start value for Do loop
:param str end: upper-limit of Do loop
:param str step: increment to use in Do loop

Definition at line 1353 of file f2pygen.py.

1353  def __init__(self, parent, variable_name, start, end, step=None):
1354  '''
1355  :param parent: the node to which to add this do loop as a child
1356  :type parent: :py:class:`psyclone.f2pygen.BaseGen`
1357  :param str variable_name: the name of the loop variable
1358  :param str start: start value for Do loop
1359  :param str end: upper-limit of Do loop
1360  :param str step: increment to use in Do loop
1361  '''
1362  reader = FortranStringReader("do i=1,n\nend do")
1363  reader.set_format(FortranFormat(True, True)) # free form, strict
1364  doline = reader.next()
1365  enddoline = reader.next()
1366  dogen = fparser1.block_statements.Do(parent.root, doline)
1367  dogen.loopcontrol = variable_name + "=" + start + "," + end
1368  if step is not None:
1369  dogen.loopcontrol = dogen.loopcontrol + "," + step
1370  enddo = fparser1.block_statements.EndDo(dogen, enddoline)
1371  dogen.content.append(enddo)
1372 
1373  BaseGen.__init__(self, parent, dogen)
1374 

References psyclone.f2pygen.BaseGen.parent(), psyclone.psyir.nodes.node.Node.parent(), psyclone.f2pygen.BaseGen.root(), psyclone.f2pygen.BaseDeclGen.root(), and psyclone.psyir.nodes.node.Node.root().

Here is the call graph for this function:

The documentation for this class was generated from the following file: