fparser Reference Guide  0.0.14
fparser.one.parsefortran.FortranParser Class Reference

Public Member Functions

def __init__ (self, reader, ignore_comments=True)
 
def get_item (self)
 
def put_item (self, item)
 
def parse (self)
 
def analyze (self)
 

Public Attributes

 reader
 
 block
 
 is_analyzed
 
 ignore_comments
 

Static Public Attributes

 cache
 

Detailed Description

Parser of FortranReader structure.

Use .parse() method for parsing, parsing result is saved in .block
attribute.

Definition at line 81 of file parsefortran.py.

Member Function Documentation

◆ analyze()

def fparser.one.parsefortran.FortranParser.analyze (   self)
Attempts to analyse the parsed Fortran. It is not clear what for.

Definition at line 149 of file parsefortran.py.

References fparser.one.parsefortran.FortranParser.block, fparser.common.readfortran.MultiLine.block, and fparser.one.parsefortran.FortranParser.is_analyzed.

149  def analyze(self):
150  """
151  Attempts to analyse the parsed Fortran. It is not clear what for.
152  """
153  if self.is_analyzed:
154  return
155  if self.block is None:
156  logging.getLogger(__name__).info("Nothing to analyze.")
157  return
158 
159  try:
160  self.block.analyze()
161  except AnalyzeError:
162  pass
163  self.is_analyzed = True
164  return
165 

◆ get_item()

def fparser.one.parsefortran.FortranParser.get_item (   self)
Retrieves the next item from the reader.

Definition at line 106 of file parsefortran.py.

References fparser.one.parsefortran.FortranParser.ignore_comments, fparser.one.parsefortran.FortranParser.reader, fparser.common.readfortran.Line.reader, fparser.common.readfortran.Comment.reader, fparser.common.readfortran.MultiLine.reader, fparser.common.readfortran.FortranReaderBase.reader, and fparser.common.base_classes.Statement.reader.

106  def get_item(self):
107  """
108  Retrieves the next item from the reader.
109  """
110  try:
111  item = self.reader.next(ignore_comments=self.ignore_comments)
112  return item
113  except StopIteration:
114  pass
115  return
116 

◆ parse()

def fparser.one.parsefortran.FortranParser.parse (   self)
Parses the program specified in the reader object.

Definition at line 124 of file parsefortran.py.

References fparser.one.parsefortran.FortranParser.block, fparser.common.readfortran.MultiLine.block, fparser.one.parsefortran.FortranParser.reader, fparser.common.readfortran.Line.reader, fparser.common.readfortran.Comment.reader, fparser.common.readfortran.MultiLine.reader, fparser.common.readfortran.FortranReaderBase.reader, and fparser.common.base_classes.Statement.reader.

124  def parse(self):
125  """Parses the program specified in the reader object."""
126  if self.block is not None:
127  return
128  try:
129  self.block = BeginSource(self)
130  except KeyboardInterrupt:
131  raise
132  except Exception as error:
133  reader = self.reader
134  logger = logging.getLogger(__name__)
135  while reader is not None:
136  message = reader.format_message(
137  "FATAL ERROR",
138  "while processing line",
139  reader.linecount,
140  reader.linecount,
141  )
142  logger.critical(message)
143  reader = reader.reader
144  logger.debug("An error occurred during parsing.", exc_info=error)
145  logger.critical("STOPPED PARSING")
146  raise error
147  return
148 

◆ put_item()

def fparser.one.parsefortran.FortranParser.put_item (   self,
  item 
)
Pushes the given item to the reader.

Definition at line 117 of file parsefortran.py.

References fparser.one.parsefortran.FortranParser.reader, fparser.common.readfortran.Line.reader, fparser.common.readfortran.Comment.reader, fparser.common.readfortran.MultiLine.reader, fparser.common.readfortran.FortranReaderBase.reader, and fparser.common.base_classes.Statement.reader.

117  def put_item(self, item):
118  """
119  Pushes the given item to the reader.
120  """
121  self.reader.fifo_item.insert(0, item)
122  return
123 
Here is the caller graph for this function:

The documentation for this class was generated from the following file:
  • /home/docs/checkouts/readthedocs.org/user_builds/fparser-ref/checkouts/342_reference_guide/src/fparser/one/parsefortran.py