@classmethod<EOL><INDENT>def parse(cls, specsFileOrString):<DEDENT>
stringToParse = None<EOL>if os.path.isfile(specsFileOrString):<EOL><INDENT>with open(specsFileOrString, '<STR_LIT:r>') as f:<EOL><INDENT>stringToParse = f.read()<EOL><DEDENT><DEDENT>else:<EOL><INDENT>stringToParse = specsFileOrString<EOL><DEDENT>lines = [x.strip() for x in re.split(r'<STR_LIT>', stringToParse)]<EOL>clips = []<EOL>for line in lines:<EOL><INDENT>if line != '<STR_LIT>':<EOL><INDENT>clips.append(cls._parseLine(line))<EOL><DEDENT><DEDENT>return clips<EOL>
Parsers a file or string and returns a list of AudioClipSpec

        Arguments:
            specsFileOrString (str): specifications' file or string

        Examples:
            >>> SpecsParser.parse('23.4 34.1\n40.2 79.65 Hello World!')
            [<AudioClipSpec start:23.40, end:34.10, text:''>, 
            <AudioClipSpec start:40.20, end:79.65, text:'Hello World!'>]

        Returns: list(AudioClipSpec) or None