67 """Provides FortranParser. 77 __autodoc__ = [
"FortranParser"]
78 __all__ = [
"FortranParser"]
83 Parser of FortranReader structure. 85 Use .parse() method for parsing, parsing result is saved in .block 91 def __init__(self, reader, ignore_comments=True):
93 logging.getLogger(__name__).setLevel(logging.DEBUG)
94 if reader.id
in self.
cache:
95 parser = self.
cache[reader.id]
96 self.
block = parser.block
98 logging.getLogger(__name__).info(
"using cached %s", (reader.id))
100 self.
cache[reader.id] = self
108 Retrieves the next item from the reader. 113 except StopIteration:
119 Pushes the given item to the reader. 121 self.
reader.fifo_item.insert(0, item)
125 """Parses the program specified in the reader object.""" 126 if self.
block is not None:
130 except KeyboardInterrupt:
132 except Exception
as error:
134 logger = logging.getLogger(__name__)
135 while reader
is not None:
136 message = reader.format_message(
138 "while processing line",
142 logger.critical(message)
143 reader = reader.reader
144 logger.debug(
"An error occurred during parsing.", exc_info=error)
145 logger.critical(
"STOPPED PARSING")
151 Attempts to analyse the parsed Fortran. It is not clear what for. 155 if self.
block is None:
156 logging.getLogger(__name__).info(
"Nothing to analyze.")