# Path: fmodpy/parsing/util.py
# def class_name(cls): return str(type(cls)).split(".")[-1].split("'")[0]


from . import class_name
        from fmodpy.config import fmodpy_print as print
                    from fmodpy.config import end_is_named
                        from fmodpy.exceptions import ParseError
                            from fmodpy.exceptions import ParseError
                        from . import class_name
                        from fmodpy.exceptions import ParseError
            from fmodpy.exceptions import ParseError
            from fmodpy.parsing.util import wrap_long_lines
            from fmodpy.config import run, f_compiler, \
                GET_SIZE_PROG_FILE, GET_SIZE_EXEC_FILE
                from fmodpy.exceptions import CompileError
            import os
                    continue
            # Parse the contained objects out of the file.
            for (parser, name) in self.can_contain:
                pre_length = len(list_of_lines)
                instances = parser(list_of_lines, comments, self)
                length = pre_length - len(list_of_lines)
                self.lines += length
                # If instances were found, we have a match, break.
                if (len(instances) > 0):
                    for inst in instances:
                        getattr(self,name).append( inst )
                    comments = ""
                    break
                # If any parsing was done otherwise, then it was a match, break.
                elif (length > 0): break
            else:
                # Look for things that will be parsed, but ignored.
                for parser in self.will_ignore:
                    pre_length = len(list_of_lines)
                    instances = parser(list_of_lines, comments, self)
                    length = len(list_of_lines) - pre_length
                    self.lines += length
                    if ((len(instances) > 0) or (length > 0)): break
                else:
                    # This is an unknown block of code.
                    if self.allowed_unknown:
                        comments = ""
                        # This is an un-identifiable line, it belongs ???
                        print(f"  skipping line '{list_of_lines.pop(0)}'")
                    else:

# Path: fmodpy/parsing/util.py
# def class_name(cls): return str(type(cls)).split(".")[-1].split("'")[0]


# Path: fmodpy/parsing/code.py
from . import class_name
        from fmodpy.config import fmodpy_print as print
                    from fmodpy.config import end_is_named
                        from fmodpy.exceptions import ParseError
                            from fmodpy.exceptions import ParseError
                        from . import class_name
                        from fmodpy.exceptions import ParseError
            from fmodpy.exceptions import ParseError
            from fmodpy.parsing.util import wrap_long_lines
            from fmodpy.config import run, f_compiler, \
                GET_SIZE_PROG_FILE, GET_SIZE_EXEC_FILE
                from fmodpy.exceptions import CompileError
            import os

                    continue
            # Parse the contained objects out of the file.
            for (parser, name) in self.can_contain:
                pre_length = len(list_of_lines)
                instances = parser(list_of_lines, comments, self)
                length = pre_length - len(list_of_lines)
                self.lines += length
                # If instances were found, we have a match, break.
                if (len(instances) > 0):
                    for inst in instances:
                        getattr(self,name).append( inst )
                    comments = ""
                    break
                # If any parsing was done otherwise, then it was a match, break.
                elif (length > 0): break
            else:
                # Look for things that will be parsed, but ignored.
                for parser in self.will_ignore:
                    pre_length = len(list_of_lines)
                    instances = parser(list_of_lines, comments, self)
                    length = len(list_of_lines) - pre_length
                    self.lines += length
                    if ((len(instances) > 0) or (length > 0)): break
                else:
                    # This is an unknown block of code.
                    if self.allowed_unknown:
                        comments = ""
                        # This is an un-identifiable line, it belongs ???
                        print(f"  skipping line '{list_of_lines.pop(0)}'")
                    else:

                        raise(ParseError(f"\n\nEncountered unrecognized line while parsing {class_name(self)}:\n\n  {str([list_of_lines.pop(0)])[1:-1]}\n\n"))