fparser Reference Guide  0.0.14
fparser.two.utils.SequenceBase Class Reference
Inheritance diagram for fparser.two.utils.SequenceBase:
Collaboration diagram for fparser.two.utils.SequenceBase:

Public Member Functions

def init (self, separator, items)
 
def tostr (self)
 
def torepr (self)
 
- Public Member Functions inherited from fparser.two.utils.Base
def __init__ (self, string, parent_cls=None)
 
def __new__ (cls, string, parent_cls=None)
 
def get_root (self)
 
def children (self)
 
def init (self, items)
 
def torepr (self)
 
def __str__ (self)
 
def __repr__ (self)
 
def tofortran (self, tab="", isfix=None)
 
def restore_reader (self, reader)
 
- Public Member Functions inherited from fparser.two.utils.ComparableMixin
def __lt__ (self, other)
 
def __le__ (self, other)
 
def __eq__ (self, other)
 
def __ge__ (self, other)
 
def __gt__ (self, other)
 
def __ne__ (self, other)
 

Static Public Member Functions

def match (separator, subcls, string)
 

Public Attributes

 separator
 
 items
 
- Public Attributes inherited from fparser.two.utils.Base
 parent
 
 items
 

Additional Inherited Members

- Static Public Attributes inherited from fparser.two.utils.Base
 subclasses
 

Detailed Description

Match one or more fparser2 rules separated by a defined separator.

sequence-base is obj [sep obj ] ...

Definition at line 838 of file utils.py.

Member Function Documentation

◆ init()

def fparser.two.utils.SequenceBase.init (   self,
  separator,
  items 
)
Store the result of the match method if the match is successful.

:param str separator: the separator used to split the supplied string.
:param items: a tuple containing the matched objects.
:type items: tuple(Subclass of :py:class:`fparser.two.utils.Base`)

Definition at line 895 of file utils.py.

References fparser.two.Fortran2003.Comment.items, fparser.one.statements.StatementWithNamelist.items, fparser.one.statements.Assign.items, fparser.one.statements.Call.items, fparser.one.statements.ComputedGoto.items, fparser.one.statements.AssignedGoto.items, fparser.two.utils.Base.items, fparser.one.statements.Print.items, fparser.one.statements.Read0.items, fparser.one.statements.Read1.items, fparser.one.typedecl_statements.Implicit.items, fparser.one.statements.Write.items, fparser.one.statements.Allocate.items, fparser.one.statements.Deallocate.items, fparser.one.statements.ModuleProcedure.items, fparser.one.statements.Access.items, fparser.one.statements.Save.items, fparser.one.statements.Nullify.items, fparser.one.statements.Use.items, fparser.one.statements.Parameter.items, fparser.one.statements.Equivalence.items, fparser.one.statements.Dimension.items, fparser.one.statements.Target.items, fparser.one.statements.Pointer.items, fparser.one.statements.Inquire.items, fparser.one.statements.Namelist.items, fparser.one.statements.Common.items, fparser.one.statements.Intent.items, fparser.one.statements.Entry.items, fparser.one.statements.GenericBinding.items, fparser.one.statements.Allocatable.items, fparser.one.statements.Bind.items, fparser.one.statements.Case.items, fparser.one.statements.TypeIs.items, fparser.one.statements.ClassIs.items, fparser.one.statements.Enumerator.items, fparser.one.statements.Depend.items, and fparser.two.utils.SequenceBase.separator.

895  def init(self, separator, items):
896  """Store the result of the match method if the match is successful.
897 
898  :param str separator: the separator used to split the supplied string.
899  :param items: a tuple containing the matched objects.
900  :type items: tuple(Subclass of :py:class:`fparser.two.utils.Base`)
901 
902  """
903  self.separator = separator
904  self.items = items
905 

◆ match()

def fparser.two.utils.SequenceBase.match (   separator,
  subcls,
  string 
)
static
Match one or more 'subcls' fparser2 rules in the string 'string'
separated by 'separator'.

:param str separator: the separator used to split the supplied \
string.
:param subcls: an fparser2 object representing the rule that \
should be matched.
:type subcls: subclass of :py:class:`fparser.two.utils.Base`
:param str string: the input string to match.

:returns: a tuple containing 1) the separator and 2) the \
matched objects in a tuple, or None if there is no match.
:rtype: (str, (Subclass of \
:py:class:`fparser.two.utils.Base`)) or NoneType

:raises InternalError: if the separator or string arguments \
are not the expected type.
:raises InternalError: if the separator is white space.

Definition at line 847 of file utils.py.

847  def match(separator, subcls, string):
848  """Match one or more 'subcls' fparser2 rules in the string 'string'
849  separated by 'separator'.
850 
851  :param str separator: the separator used to split the supplied \
852  string.
853  :param subcls: an fparser2 object representing the rule that \
854  should be matched.
855  :type subcls: subclass of :py:class:`fparser.two.utils.Base`
856  :param str string: the input string to match.
857 
858  :returns: a tuple containing 1) the separator and 2) the \
859  matched objects in a tuple, or None if there is no match.
860  :rtype: (str, (Subclass of \
861  :py:class:`fparser.two.utils.Base`)) or NoneType
862 
863  :raises InternalError: if the separator or string arguments \
864  are not the expected type.
865  :raises InternalError: if the separator is white space.
866 
867  """
868  if not isinstance(separator, str):
869  raise InternalError(
870  f"SequenceBase class match method argument separator expected "
871  f"to be a string but found '{type(separator)}'."
872  )
873  if not isinstance(string, str):
874  raise InternalError(
875  f"SequenceBase class match method argument string expected to "
876  f"be a string but found '{type(string)}'."
877  )
878 
879  if separator == " ":
880  raise InternalError(
881  "SequenceBase class match method argument separator cannot "
882  "be white space."
883  )
884 
885  line, repmap = string_replace_map(string)
886  splitted = line.split(separator)
887  if not splitted:
888  # There should be at least one entry.
889  return None
890 
891  lst = [subcls(repmap(entry.strip())) for entry in splitted]
892 
893  return separator, tuple(lst)
894 
Here is the caller graph for this function:

◆ torepr()

def fparser.two.utils.SequenceBase.torepr (   self)
:returns: The Python representation of this object as a string.
:rtype: str

Definition at line 921 of file utils.py.

References fparser.one.statements.GeneralAssignment.__class__, fparser.one.statements.Read.__class__, fparser.two.Fortran2003.Comment.items, fparser.one.statements.StatementWithNamelist.items, fparser.one.statements.Assign.items, fparser.one.statements.Call.items, fparser.one.statements.ComputedGoto.items, fparser.one.statements.AssignedGoto.items, fparser.two.utils.Base.items, fparser.one.statements.Print.items, fparser.one.statements.Read0.items, fparser.one.typedecl_statements.Implicit.items, fparser.one.statements.Read1.items, fparser.one.statements.Write.items, fparser.one.statements.Allocate.items, fparser.one.statements.Deallocate.items, fparser.one.statements.ModuleProcedure.items, fparser.one.statements.Access.items, fparser.one.statements.Save.items, fparser.one.statements.Nullify.items, fparser.one.statements.Use.items, fparser.one.statements.Parameter.items, fparser.one.statements.Equivalence.items, fparser.one.statements.Dimension.items, fparser.one.statements.Target.items, fparser.one.statements.Pointer.items, fparser.one.statements.Inquire.items, fparser.one.statements.Namelist.items, fparser.one.statements.Common.items, fparser.one.statements.Intent.items, fparser.one.statements.Entry.items, fparser.one.statements.GenericBinding.items, fparser.one.statements.Allocatable.items, fparser.one.statements.Bind.items, fparser.one.statements.Case.items, fparser.one.statements.TypeIs.items, fparser.one.statements.ClassIs.items, fparser.one.statements.Enumerator.items, fparser.one.statements.Depend.items, and fparser.two.utils.SequenceBase.separator.

921  def torepr(self):
922  """
923  :returns: The Python representation of this object as a string.
924  :rtype: str
925 
926  """
927  return "{0}('{1}', {2})".format(
928  self.__class__.__name__, self.separator, self.items
929  )
930 

◆ tostr()

def fparser.two.utils.SequenceBase.tostr (   self)
:returns: The Fortran representation of this object as a string.
:rtype: str

Definition at line 906 of file utils.py.

References fparser.two.Fortran2003.Comment.items, fparser.one.statements.StatementWithNamelist.items, fparser.one.statements.Assign.items, fparser.one.statements.Call.items, fparser.one.statements.ComputedGoto.items, fparser.one.statements.AssignedGoto.items, fparser.two.utils.Base.items, fparser.one.statements.Print.items, fparser.one.statements.Read0.items, fparser.one.statements.Read1.items, fparser.one.typedecl_statements.Implicit.items, fparser.one.statements.Write.items, fparser.one.statements.Allocate.items, fparser.one.statements.Deallocate.items, fparser.one.statements.ModuleProcedure.items, fparser.one.statements.Access.items, fparser.one.statements.Save.items, fparser.one.statements.Nullify.items, fparser.one.statements.Use.items, fparser.one.statements.Parameter.items, fparser.one.statements.Equivalence.items, fparser.one.statements.Dimension.items, fparser.one.statements.Target.items, fparser.one.statements.Pointer.items, fparser.one.statements.Inquire.items, fparser.one.statements.Namelist.items, fparser.one.statements.Common.items, fparser.one.statements.Intent.items, fparser.one.statements.Entry.items, fparser.one.statements.GenericBinding.items, fparser.one.statements.Allocatable.items, fparser.one.statements.Bind.items, fparser.one.statements.Case.items, fparser.one.statements.TypeIs.items, fparser.one.statements.ClassIs.items, fparser.one.statements.Enumerator.items, fparser.one.statements.Depend.items, and fparser.two.utils.SequenceBase.separator.

906  def tostr(self):
907  """
908  :returns: The Fortran representation of this object as a string.
909  :rtype: str
910 
911  """
912  sep = self.separator
913  if sep == ",":
914  sep = sep + " "
915  elif sep == " ":
916  pass
917  else:
918  sep = " " + sep + " "
919  return sep.join(map(str, self.items))
920 
Here is the caller graph for this function:

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